aboutsummaryrefslogtreecommitdiff
path: root/zh_CN.GB2312/books/handbook/l10n
diff options
context:
space:
mode:
authorHiroki Sato <hrs@FreeBSD.org>2004-09-26 05:20:38 +0000
committerHiroki Sato <hrs@FreeBSD.org>2004-09-26 05:20:38 +0000
commit8f1c859fcb214c414fa6913292f585a4879d7655 (patch)
treec62e773df353dd15d663bcea872797a02a9c37cb /zh_CN.GB2312/books/handbook/l10n
parent3e941311cb2ef8bb1151068e4f8f6ab382975287 (diff)
Notes
Diffstat (limited to 'zh_CN.GB2312/books/handbook/l10n')
-rw-r--r--zh_CN.GB2312/books/handbook/l10n/Makefile16
-rw-r--r--zh_CN.GB2312/books/handbook/l10n/chapter.sgml835
2 files changed, 851 insertions, 0 deletions
diff --git a/zh_CN.GB2312/books/handbook/l10n/Makefile b/zh_CN.GB2312/books/handbook/l10n/Makefile
new file mode 100644
index 0000000000..adce6d413f
--- /dev/null
+++ b/zh_CN.GB2312/books/handbook/l10n/Makefile
@@ -0,0 +1,16 @@
+#
+# Build the Handbook with just the content from this chapter.
+#
+# Original Revision: 1.1
+# $FreeBSD$
+#
+
+CHAPTERS= l10n/chapter.sgml
+
+VPATH= ..
+
+MASTERDOC= ${.CURDIR}/../${DOC}.${DOCBOOKSUFFIX}
+
+DOC_PREFIX?= ${.CURDIR}/../../../..
+
+.include "../Makefile"
diff --git a/zh_CN.GB2312/books/handbook/l10n/chapter.sgml b/zh_CN.GB2312/books/handbook/l10n/chapter.sgml
new file mode 100644
index 0000000000..28c96130de
--- /dev/null
+++ b/zh_CN.GB2312/books/handbook/l10n/chapter.sgml
@@ -0,0 +1,835 @@
+<!--
+ The FreeBSD Documentation Project
+ The FreeBSD Chinese Documentation Project
+
+ Original Revision: 1.102
+ $FreeBSD$
+-->
+
+<chapter id="l10n">
+ <chapterinfo>
+ <authorgroup>
+ <author>
+ <firstname>Andrey A.</firstname>
+ <surname>Chernov</surname>
+ <contrib>Contributed by </contrib>
+ </author>
+ </authorgroup>
+ <authorgroup>
+ <author>
+ <firstname>Michael C.</firstname>
+ <surname>Wu</surname>
+ <contrib>Rewritten by </contrib>
+ </author>
+ <!-- 30 Nv 2000 -->
+ </authorgroup>
+ </chapterinfo>
+
+ <title>本地化-I18N/L10N使用和设置</title>
+
+ <sect1 id="l10n-synopsis">
+ <title>概述</title>
+
+ <para>FreeBSD是一个由分布于全世界的用户和贡献者支持的项目。
+ 这章将讨论FreeBSD的国际化和本地化的问题,允许非英语用户也能使用FreeBSD很好地工作。
+ 在系统和应用水平上,主要是通过执行i18N标准来实现的,所以这里我们将为读者提供详细的介绍。
+ </para>
+
+ <para>读完这一章,您将了解到:</para>
+ <itemizedlist>
+ <listitem><para>不同的语言和地域是如何在现代操作系统上进行编码的。
+ </para></listitem>
+ <listitem><para>如何为您的登入shell设置本地化。</para></listitem>
+ <listitem><para>如何配置您的控制台为非英语语言。
+ languages.</para></listitem>
+ <listitem><para>如何使用不同的语言来有效地使用X Windows。</para></listitem>
+ <listitem><para>在哪里可以找到更多有关开发符合i18N标准的应用程序的信息。</para></listitem>
+ </itemizedlist>
+
+ <para>阅读这章之前,您应当了解:</para>
+
+ <itemizedlist>
+ <listitem><para>怎样安装额外的第三方程序(<xref linkend="ports">)。</para></listitem>
+ </itemizedlist>
+ </sect1>
+
+ <sect1 id="l10n-basics">
+ <title>基础知识</title>
+
+ <sect2>
+ <title>什么是I18N/L10N?</title>
+ <indexterm><primary>国际化</primary></indexterm>
+ <indexterm><primary>本地化</primary></indexterm>
+
+ <para>开发人员把internationalization简写成I18N,中间的数字是前后两个字母间的字母个数。
+ L10N依据<quote>localization</quote> 使用同样的命名规则。
+ I18N/L10N方法、协议和应用结合在一起,允许用户使用他们自己所选择的语言。</para>
+
+ <para>I18N应用程序使用I18N工具来编程。它允许开发人员写一个简单的文件,
+ 就可以将显示的菜单和文本翻译成本地语言。我们非常鼓励程序员遵循这种规则。</para>
+ </sect2>
+
+ <sect2>
+ <title>为什么要使用I18N/L10N?</title>
+
+ <para>I18N/L10N标准能够很好地支持您查看、输入或处理非英语语言。</para>
+ </sect2>
+
+ <sect2>
+ <title>I18N支持哪里语言?</title>
+
+ <para>I18N和L10N不是FreeBSD特有的。当前,它能支持世界上绝大部分主力语言,
+ 包括但不限于:中文,德文,日文,朝鲜文,法文,俄文,越南文等等。</para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="using-localization">
+ <title>使用本地化语言</title>
+
+ <para>I18N不是FreeBSD特有的,它是一个规则。我们鼓励您帮助FreeBSD完善这一规则。</para>
+ <indexterm><primary>locale</primary></indexterm>
+
+ <para>本地化设置需要具备三个条件:语言代码 (Language Code)、 国家代码
+ (Country Code) 和编码(Encoding)。 本地名字可以用下面这些部分来构造:</para>
+
+ <programlisting><replaceable>语言代码</replaceable>_<replaceable>国家代码</replaceable>.<replaceable>编码</replaceable></programlisting>
+
+ <sect2>
+ <title>语言和国家代码</title>
+ <indexterm><primary>语言代码</primary></indexterm>
+ <indexterm><primary>国家代码</primary></indexterm>
+
+ <para>为了用特殊的语言来对FreeBSD系统进行本地化(或其他类&unix;系统),
+ 用户必须要知道相应的国家和语言代码(国家代码告诉应用程序使用哪一种语言规范)。
+ 此外,WEB浏览器,SMTP/POP服务器,web服务器等都是以这个为基础的。下面就是一个国家和语言代码的例子:
+ </para>
+
+ <informaltable frame="none">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>语言/国家代码</entry>
+ <entry>描述</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>en_US</entry>
+ <entry>美国英语</entry>
+ </row>
+
+ <row>
+ <entry>ru_RU</entry>
+ <entry>俄语</entry>
+ </row>
+
+ <row>
+ <entry>zh_CN</entry>
+ <entry>简体中文</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ </sect2>
+
+ <sect2>
+ <title>编码</title>
+ <indexterm><primary>编码</primary></indexterm>
+ <indexterm><primary>ASCII</primary></indexterm>
+
+ <para>一些语言不使用 ASCII 编码,它们使用8位,更宽或多位的字符,
+ 更多的信息可以看看&man.multibyte.3; 。
+ 比较老的应用程序可能会无法认出它们,把它们误认为是控制字符。
+ 比较新的应用程序通常会认出8位字符。 根据执行情况,用户可能需要使用更
+ 宽或多位字符支持的标准来重新编译这个应用程序,或者将它正确配置。<ulink
+ url="&url.base;/ports/index.html">FreeBSD Ports collection</ulink>
+ 已经为每一个语言提供了相应的程序。可以在各自的FreeBSD port中参考一下I18N的文档。</para>
+
+ <para>需要特别指出的:用户需要看看应用程序的文档以决定如何配置才能正确设置configure/Makefile/compiler。
+ </para>
+
+ <para>记住下面这些:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>特定语言的简单C字符集(参考&man.multibyte.3;),以及ISO-8859-1, ISO-8859-15, KOI8-R, CP437.</para>
+ </listitem>
+
+ <listitem>
+ <para>宽字节或多字节编码,如EUC, Big5。</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>您可以在<ulink
+ url="http://www.iana.org/assignments/character-sets">IANA Registry</ulink>检查一下现行的字符集列表。</para>
+
+ <note>
+ <para>FreeBSD 4.5及以后的版本使用X11兼容的本地编码来代替。</para>
+ </note>
+
+ </sect2>
+
+ <sect2>
+ <title>I18N应用程序</title>
+
+ <para>在FreeBSD Ports和Package系统里面,I18N应用程序已经使用<literal>I18N</literal>
+ 来命名。然而它们不是总支持需要的语言。</para>
+ </sect2>
+
+ <sect2 id="setting-locale">
+ <title>本地化设置</title>
+
+ <para>通常只要在登入shell里面设置<envar>LANG</envar>为本地化,
+ 一般通过设置用户的 <filename>~/.login_conf</filename>
+ 或用户shell的启动文件(<filename>~/.profile</filename>,<filename>~/.bashrc</filename>,
+ <filename>~/.cshrc</filename>)。没有必要设置
+ <envar>LC_CTYPE</envar>,<envar>LC_CTIME</envar>。
+ 更多的信息请参考特定语言的FreeBSD文档。</para>
+
+ <para>您应当在您的配置文件中设置下面两个变量:</para>
+
+ <itemizedlist>
+ <indexterm><primary>POSIX</primary></indexterm>
+ <listitem>
+ <para><envar>LANG</envar> 为&posix;设置本地化语言功能。</para>
+ </listitem>
+
+ <indexterm><primary>MIME</primary></indexterm>
+ <listitem>
+ <para><envar>MM_CHARSET</envar>应用程序的MIME字符集。</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>这包括用户的shell配置,特定的应用配置和X11配置。</para>
+
+ <sect3>
+ <title>设置本地化的方法</title>
+ <indexterm><primary>本地化</primary></indexterm>
+ <indexterm><primary>登入分类</primary></indexterm>
+
+ <para>有两种方法来设置本地化,接下来都会描述。
+ 第一种 (推荐) 就是在 <link linkend="login-class">登入分类</link>里面指定环境变量。
+ 第二种方法是把环境变量加到shell的<link linkend="startup-file">启动文件</link>里面。
+ </para>
+
+ <sect4 id="login-class">
+ <title>登入分类方法</title>
+
+ <para>这种方法允许把本地化名称和MIME字符集的环境变量赋给可能的shell,
+ 而不是加到每个特定shell的启动文件里面。
+ <link linkend="usr-setup">用户级设置
+ Level Setup</link> 允许普通用户自己完成这个设置,而<link
+ linkend="adm-setup">管理员级设置</link>需要超级用户权限。</para>
+
+ <sect5 id="usr-setup">
+ <title>用户级设置</title>
+
+ <para>这有一个设置用户根目录文件<filename>.login_conf</filename>的小例子,
+ 它为上述两个变量设置了Latin-1编码。</para>
+
+ <programlisting>me:\
+ :charset=ISO-8859-1:\
+ :lang=de_DE.ISO8859-1:</programlisting>
+
+ <indexterm><primary>繁体中文</primary><secondary>BIG-5编码</secondary></indexterm>
+ <para>这是一个为<filename>.login_conf</filename>设置繁体中文的BIG-5编码的例子。应该设置下面的大部分变量,
+ 因为很多软件都没有为中文,日文和韩文设置正确的本地化变量。</para>
+
+ <programlisting>#Users who do not wish to use monetary units or time formats
+#of Taiwan can manually change each variable
+me:\
+ :lang=zh_TW.Big5:\
+ :lc_all=zh_TW.Big:\
+ :lc_collate=zh_TW.Big5:\
+ :lc_ctype=zh_TW.Big5:\
+ :lc_messages=zh_TW.Big5:\
+ :lc_monetary=zh_TW.Big5:\
+ :lc_numeric=zh_TW.Big5:\
+ :lc_time=zh_TW.Big5:\
+ :charset=big5:\
+ :xmodifiers="@im=xcin": #Setting the XIM Input Server</programlisting>
+
+ <para>更多的信息参考<link linkend="adm-setup">管理员级设置</link>和&man.login.conf.5;</para>
+ </sect5>
+
+ <sect5 id="adm-setup">
+ <title>管理员级设置</title>
+
+ <para>检查用户的登入分类在
+ <filename>/etc/login.conf</filename>里面是否设置了正确的语言。主要确定下面的几个设置:</para>
+
+ <programlisting><replaceable>language_name</replaceable>:<replaceable>accounts_title</replaceable>:\
+ :charset=<replaceable>MIME_charset</replaceable>:\
+ :lang=<replaceable>locale_name</replaceable>:\
+ :tc=default:</programlisting>
+
+ <para>再次使用前面的Latin-1编码的例子:</para>
+
+ <programlisting>german:German Users Accounts:\
+ :charset=ISO-8859-1:\
+ :lang=de_DE.ISO8859-1:\
+ :tc=default:</programlisting>
+
+ <bridgehead renderas=sect4>使用&man.vipw.8;改变登入类型。</bridgehead>
+
+ <indexterm>
+ <primary><command>vipw</command></primary>
+ </indexterm>
+ <para>使用<command>vipw</command>添加新用户,看起来像下面这样:
+ </para>
+
+ <programlisting>user:password:1111:11:<replaceable>language</replaceable>:0:0:User Name:/home/user:/bin/sh</programlisting>
+
+ <bridgehead renderas=sect4>用&man.adduser.8;改变登入类型。</bridgehead>
+
+ <indexterm>
+ <primary><command>adduser</command></primary>
+ </indexterm>
+ <indexterm><primary>登入分类</primary></indexterm>
+ <para>用<command>adduser</command>添加新用户看起来像下面这样:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>在<filename>/etc/adduser.conf</filename>里面设置<literal>defaultclass =
+ <replaceable>语言</replaceable></literal>。应该记住,您必须为使用其它语言的所有用户设置
+ <literal>缺省</literal>类别。
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>每一次使用&man.adduser.8;的时候,一个特定语言的可选择性回答会像下面这样给出:
+ <screen><prompt>Enter login class: default []: </prompt></screen>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>如果您打算给每一个用户使用另外一种语言,您应该这样:
+ </para>
+
+ <screen>&prompt.root; <userinput>adduser -class <replaceable>language</replaceable></userinput></screen>
+ </listitem>
+ </itemizedlist>
+
+ <bridgehead renderas=sect4>使用&man.pw.8;改变登入类型。</bridgehead>
+ <indexterm>
+ <primary><command>pw</command></primary>
+ </indexterm>
+ <para>如果您使用&man.pw.8;来添加新用户,应该这样使用:</para>
+
+ <screen>&prompt.root; <userinput>pw useradd <replaceable>user_name</replaceable> -L <replaceable>language</replaceable></userinput></screen>
+ </sect5>
+ </sect4>
+
+ <sect4 id="startup-file">
+ <title>Shell启动文件方法</title>
+
+ <note>
+ <para>不推荐使用这种方法,因为它需要给每一个可能的shell程序一个不同的启动文件。
+ 应该用<link linkend="login-class">登入分类方法</link>来代替这种方法。
+ </para>
+ </note>
+
+ <indexterm><primary>MIME</primary></indexterm>
+ <indexterm><primary>locale</primary></indexterm>
+ <para>为了设置本地化名称和MIME字符集,只要在<filename>/etc/profile</filename>或
+ <filename>/etc/csh.login</filename>启动文件里面设置这两个变量。下面我们使用德语做例子:
+ </para>
+
+ <para>在<filename>/etc/profile</filename>里面:</para>
+
+ <programlisting><envar>LANG=de_DE.ISO8859-1; export LANG</envar>
+<envar>MM_CHARSET=ISO-8859-1; export MM_CHARSET</envar></programlisting>
+
+ <para>或在<filename>/etc/csh.login</filename>里面:</para>
+
+ <programlisting><envar>setenv LANG de_DE.ISO8859-1</envar>
+<envar>setenv MM_CHARSET ISO-8859-1</envar></programlisting>
+
+ <para>另外,您可以把上面的设置添加到<filename>/usr/share/skel/dot.profile</filename>
+ (和前面的<filename>/etc/profile</filename>一样),或者<filename>/usr/share/skel/dot.login</filename>
+ (和前面的<filename>/etc/csh.login</filename>一样)。</para>
+
+ <para>对于X11:</para>
+
+ <para>在<filename>$HOME/.xinitrc</filename>里面:</para>
+
+ <programlisting><envar>LANG=de_DE.ISO8859-1; export LANG</envar></programlisting>
+
+ <para>或者:</para>
+
+ <programlisting><envar>setenv LANG de_DE.ISO8859-1</envar></programlisting>
+
+ <para>依赖您的shell(看上面)。</para>
+
+ </sect4>
+ </sect3>
+ </sect2>
+
+ <sect2 id="setting-console">
+ <title>控制台设置</title>
+
+ <para>对于所有的简单C字符集,在<filename>/etc/rc.conf</filename>中用正在讨论的语言设置正确的控制台字符:
+ </para>
+
+ <programlisting>font8x16=<replaceable>font_name</replaceable>
+font8x14=<replaceable>font_name</replaceable>
+font8x8=<replaceable>font_name</replaceable></programlisting>
+
+ <para>这儿的<replaceable>font_name</replaceable>来自于<filename>/usr/share/syscons/fonts</filename>目录,
+ 不带<filename>.fnt</filename>后缀。</para>
+
+ <indexterm>
+ <primary><application>sysinstall</application></primary>
+ </indexterm>
+ <indexterm><primary>键盘布局</primary></indexterm>
+ <indexterm><primary>屏幕布局</primary></indexterm>
+ <para>也可以通过<filename>/stand/sysinstall</filename>来设置键盘布局和屏幕布局。
+ 进入<application>sysinstall</application>,选择<guimenuitem>Configure</guimenuitem>,然后
+ <guimenuitem>Console</guimenuitem>。您也可以在<filename>/etc/rc.conf</filename>里面添加下面几行:</para>
+
+ <programlisting>scrnmap=<replaceable>screenmap_name</replaceable>
+keymap=<replaceable>keymap_name</replaceable>
+keychange="<replaceable>fkey_number sequence</replaceable>"</programlisting>
+
+ <para>这儿的<replaceable>screenmap_name</replaceable>是来自<filename>/usr/share/syscons/scrnmaps</filename>目录,
+ 不带<filename>.scm</filename>后缀。 一个带影射字体的屏幕布局通常被作为一个工作区,
+ 用来在VGA适配器字体矩阵上扩展8位到9位。 如果屏幕字体是使用一个8位的排列,要移动这些字母离开这些区域。</para>
+
+ <para>
+ 如果您在<filename>/etc/rc.conf</filename>里面启用了<application>moused</application> daemon:</para>
+
+<programlisting>moused_enable="YES"</programlisting>
+
+ <para>那么需要在下一段检查鼠标指针信息。</para>
+
+ <indexterm>
+ <primary><application>moused</application></primary>
+ </indexterm>
+ <para>默认情况下, &man.syscons.4;驱动程序的鼠标指针在字符集中占用0xd0-0xd3的范围。
+ 如果您的语言使用这个范围,您必须把指针范围移出这个范围。
+ 要在5.0以前的FreeBSD版本中启用工作区,需要在您的内核中添加下面这行:</para>
+
+ <programlisting>options SC_MOUSE_CHAR=0x03</programlisting>
+
+ <para>对于 FreeBSD 4.4 和以后的版本, 需要在
+ <filename>/etc/rc.conf</filename> 中加入:</para>
+
+ <programlisting>mousechar_start=3</programlisting>
+
+ <para>这儿的<replaceable>keymap_name</replaceable>来自于<filename>/usr/share/syscons/keymaps</filename>目录,
+ 不带<filename>.kbd</filename>后缀。如果您不确定该使用哪一种键盘布局,使用&man.kbdmap.1;您可以不重起
+ 来检测您的键盘布局。</para>
+
+ <para>因为功能键的范围不能被定义在键盘地图中,所以<literal>keychange</literal>通常需要安排功能键来匹配选择的终端类型。</para>
+
+ <para>也可以在<filename>/etc/ttys</filename>为所有<literal>ttyv*</literal>记录设定正确的控制台终端类型。
+ 当前,预定义是这样的:</para>
+
+ <informaltable frame="none">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>字符集设置</entry>
+ <entry>终端类型</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>ISO-8859-1 or ISO-8859-15</entry>
+ <entry><literal>cons25l1</literal></entry>
+ </row>
+
+ <row>
+ <entry>ISO-8859-2</entry>
+ <entry><literal>cons25l2</literal></entry>
+ </row>
+
+ <row>
+ <entry>ISO-8859-7</entry>
+ <entry><literal>cons25l7</literal></entry>
+ </row>
+
+ <row>
+ <entry>KOI8-R</entry>
+ <entry><literal>cons25r</literal></entry>
+ </row>
+
+ <row>
+ <entry>KOI8-U</entry>
+ <entry><literal>cons25u</literal></entry>
+ </row>
+
+ <row>
+ <entry>CP437 (VGA default)</entry>
+ <entry><literal>cons25</literal></entry>
+ </row>
+
+ <row>
+ <entry>US-ASCII</entry>
+ <entry><literal>cons25w</literal></entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <para>对于多字节字符语言,可以您的在
+ <filename>/usr/ports/<replaceable>language</replaceable></filename>
+ 目录中使用正确的FreeBSD port。一些port以控制台出现,
+ 而系统把它作为串行vtty终端,因此, 必须为 X11
+ 和伪串行控制台准备足够的vtty终端。
+ 下面是在控制台中使用其他语言的应用程序的部分列表:</para>
+
+ <informaltable frame="none">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>语言</entry>
+ <entry>特定区域</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>Traditional Chinese (BIG-5)</entry>
+ <entry><filename role="package">chinese/big5con</filename></entry>
+ </row>
+
+ <row>
+ <entry>Japanese</entry>
+ <entry><filename role="package">japanese/kon2-16dot</filename> or
+ <filename role="package">japanese/mule-freewnn</filename></entry>
+ </row>
+
+ <row>
+ <entry>Korean</entry>
+ <entry><filename role="package">korean/han</filename></entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </sect2>
+
+ <sect2>
+ <title>X11设置</title>
+
+ <para>虽然X11不是FreeBSD计划的一部分,
+ 但我们已经为FreeBSD用户包含了一些信息。
+ 具体细节可以参考
+ <ulink url="http://www.xfree86.org/">&xfree86;web站点</ulink>
+ 或是您使用的 X11 Server。</para>
+
+ <para>在<filename>~/.Xresources</filename>里面,您可以适当调整特定应用程序的I18N设置(如字体,菜单等)。</para>
+
+ <sect3>
+ <title>显示字体</title>
+ <indexterm><primary>X11 True Type字体服务器</primary></indexterm>
+ <para>安装X11 &truetype; 公共服务器 (<filename role="package">x11-servers/XttXF86srv-common</filename>)
+ 和安装对应语言的&truetype;字体。设置正确的本地信息可以允许您在菜单上看到您所选的语言。
+ </para>
+ </sect3>
+
+ <sect3>
+ <title>输入非英语字符</title>
+ <indexterm><primary>X11输入方法(XIM)</primary></indexterm>
+ <para>
+ X11输入方法(XIM)协议是所有X11客户端的一个新标准。
+ 所有将作为XIM客户端来写的X11应用程序从XIM输入服务器输入。
+ 不同的语言有几种XIM服务器可用。
+ </para>
+ </sect3>
+ </sect2>
+
+ <sect2>
+ <title>打印机设置</title>
+
+ <para>一些简单的C字符集通常是用硬编码来编码进打印机的。更宽或多位的字符集需要特定的设置,
+ 我们推荐使用<application>apsfilter</application>。您也可以使用特定语言转换器把文档转换为
+ &postscript;或PDF格式。
+ </para>
+ </sect2>
+
+ <sect2>
+ <title>内核和文件系统</title>
+
+ <para>FreeBSD快速文件系统(FFS)是纯8位的,所以它能使用任何简单的C字符集(参考&man.multibyte.3;),
+ 但不会有字符集名字会储存在文件系统中。它是不知道任何有关编码规则的。
+ 正式的,FFS不支持任何更宽的或多位的字符集形式。
+ 然而一些更宽的或多位的字符集已经通过添加补丁来对FFS进行支持。
+ 他们只是临时性的修正,我们决定不把他们包括在源代码树中。
+ 可以参考相关语言的web站点看看更多信息和修正文件。
+ </para>
+
+ <indexterm><primary>DOS</primary></indexterm>
+ <indexterm><primary>Unicode</primary></indexterm>
+ <para>FreeBSD &ms-dos;已经能够配置成用在&ms-dos;上,Unicode字符集和可选的FreeBSD文件系统字符集的更多信息,
+ 请参考&man.mount.msdos.8;手册页。</para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="l10n-compiling">
+ <title>编译I18N程序</title>
+
+ <para>许多FreeBSD Ports已经支持I18N了。他们中的一些都用-I18N作标记。
+ 这些和其他很多程序已经内建I18N的支持,不需要考虑其他的事项了。
+ </para>
+
+ <indexterm>
+ <primary><application>MySQL</application></primary>
+ </indexterm>
+ <para>然而一些像<application>MySQL</application>这样的应用程序需要重新配置字符集,可在
+ <filename>Makefile</filename>里面设置,或者直接把参数传递给<application>configure</application>。
+ </para>
+ </sect1>
+
+ <sect1 id="lang-setup">
+ <title>本地化FreeBSD</title>
+
+ <sect2 id="ru-localize">
+ <sect2info>
+ <authorgroup>
+ <author>
+ <firstname>Andrey A.</firstname>
+ <surname>Chernov</surname>
+ <contrib>Originally contributed by </contrib>
+ </author>
+ </authorgroup>
+ </sect2info>
+ <title>俄语(KOI8-R编码)</title>
+ <indexterm>
+ <primary>本地化</primary>
+ <secondary>俄语</secondary>
+ </indexterm>
+
+ <para>关于KOI8-R编码的更多信息请查阅<ulink
+ url="http://koi8.pp.ru/">KOI8-R参考(Russian Net Character Set)</ulink>。
+ </para>
+
+ <sect3>
+ <title>本地设置</title>
+
+ <para>把下面的行加入到您的<filename>~/.login_conf</filename>文件:</para>
+
+ <programlisting>me:My Account:\
+ :charset=KOI8-R:\
+ :lang=ru_RU.KOI8-R:</programlisting>
+
+ <para>参看前面的设置<link linkend="setting-locale">本地化</link>的例子。</para>
+ </sect3>
+
+ <sect3>
+ <title>控制台设置</title>
+
+ <itemizedlist>
+ <listitem>
+ <para>
+ 对于FreeBSD 5.0以前的版本,添加下面这行到内核配置文件:
+ </para>
+
+ <programlisting>options SC_MOUSE_CHAR=0x03</programlisting>
+
+ <para>对于 FreeBSD 4.4 和更高版本把下面一行加到
+ <filename>/etc/rc.conf</filename>:</para>
+
+ <programlisting>mousechar_start=3</programlisting>
+ </listitem>
+
+ <listitem>
+ <para>在<filename>/etc/rc.conf</filename>里面使用如下设置:</para>
+
+ <programlisting>keymap="ru.koi8-r"
+scrnmap="koi8-r2cp866"
+font8x16="cp866b-8x16"
+font8x14="cp866-8x14"
+font8x8="cp866-8x8"</programlisting>
+
+ </listitem>
+
+ <listitem>
+ <para>对于<filename>/etc/ttys</filename>里面的<literal>ttyv*</literal>记录,要使用
+ <literal>cons25r</literal>作为终端类型。</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>参看前面的设置<link linkend="setting-console">控制台</link>的例子。</para>
+ </sect3>
+
+ <sect3>
+ <title>打印机设置</title>
+ <indexterm><primary>打印机</primary></indexterm>
+ <para>既然绝大多数带俄语字符的打印机遵循CP866的标准,
+ 那么需要一个针对KOI8-R到CP866转换的特定输出过滤器。这样的一个过滤器默认的安装在
+ <filename>/usr/libexec/lpr/ru/koi2alt</filename>。
+ 一个支持俄语的打印机的<filename>/etc/printcap</filename>记录看起来是这样的:
+ </para>
+
+ <programlisting>lp|Russian local line printer:\
+ :sh:of=/usr/libexec/lpr/ru/koi2alt:\
+ :lp=/dev/lpt0:sd=/var/spool/output/lpd:lf=/var/log/lpd-errs:</programlisting>
+
+ <para>更多信息参考&man.printcap.5;手册页。</para>
+ </sect3>
+
+ <sect3>
+ <title>&ms-dos;文件系统和俄语文件名</title>
+
+ <para>下面的例子是在挂上&ms-dos; 文件系统后,启用对俄语文件名支持的&man.fstab.5;记录:
+ </para>
+
+ <programlisting>/dev/ad0s2 /dos/c msdos rw,-Wkoi2dos,-Lru_RU.KOI8-R 0 0</programlisting>
+
+ <para>选项<option>-L</option>是选择本地化,<option>-W</option>是设置字符转换表。
+ 要使用<option>-W</option>选项,必须在 &ms-dos; 之前挂上<filename>/usr</filename>,
+ 因为转换表位于<filename>/usr/libdata/msdosfs</filename>。更多的信息参考&man.mount.msdos.8;手册页。
+ </para>
+ </sect3>
+
+ <sect3>
+ <title>X11设置</title>
+
+ <orderedlist>
+ <listitem>
+ <para>先描述<link linkend="setting-locale">没有X的本地化设置</link>
+ </para>
+
+ <note>
+ <para><anchor id="russian-note">俄语KOI8-R本地化方法可能在低于<application>&xfree86;</application>3.3
+ 不能工作。
+ <application>&xfree86; 4.X</application>现在在FreeBSD上是缺省的版本。所以这应该不是问题,除非您
+ 是使用的老版本。
+ </para>
+ </note>
+ </listitem>
+
+ <listitem>
+ <para>进入<filename role="package">russian/X.language</filename>目录,然后执行如下的命令:
+ </para>
+
+ <screen>&prompt.root; <userinput>make install</userinput></screen>
+ <para>上面的port安装了KOI8-R字体的最新版本,<application>&xfree86; 3.3</application> 已经支持了一些KOI8-R字体,但这些更好。
+ </para>
+
+ <para>在您的<filename>/etc/XF86Config</filename> 文件中检查<literal>"Files"</literal>那节。
+ 需要在其他<literal>FontPath</literal> 记录<emphasis>之前</emphasis>加入下面这几行:
+ </para>
+
+ <programlisting>FontPath "/usr/X11R6/lib/X11/fonts/cyrillic/misc"
+FontPath "/usr/X11R6/lib/X11/fonts/cyrillic/75dpi"
+FontPath "/usr/X11R6/lib/X11/fonts/cyrillic/100dpi"</programlisting>
+
+ <para>如果您使用一个高分辨率的显示模式,可以交换75 dpi 和100 dpi行。</para>
+ </listitem>
+
+ <listitem>
+ <para>为了激活俄语<literal>"键盘"</literal>,加下面几行到<filename>XF86Config</filename>文件里面:
+ </para>
+
+ <para>对于<application>&xfree86; 3.X</application>:</para>
+
+ <programlisting>XkbLayout "ru"
+XkbOptions "grp:caps_toggle"</programlisting>
+
+ <para>对于<application>&xfree86; 4.X</application>:</para>
+
+ <programlisting>Option "XkbLayout" "ru"
+Option "XkbOptions" "grp:caps_toggle"</programlisting>
+
+ <para>要确信<literal>XkbDisable</literal> 已经关闭(注释掉)了。</para>
+
+ <para>RUS/LAT的切换用<keycap>CapsLock</keycap>。老的<keycap>CapsLock</keycap>功能可以通过
+ <keycombo action="simul"><keycap>Shift</keycap><keycap>CapsLock</keycap></keycombo>
+ 来模拟(只有在LAT模式的时候)。</para>
+
+ <para>如果您的键盘上有<quote>&windows;</quote>键,
+ 注意在俄语模式中,一些非字母顺序的键会影射错误,可以在<filename>XF86Config</filename>文件中添加下面这行:
+ </para>
+
+ <para>对于<application>&xfree86; 3.X</application>:</para>
+
+ <programlisting>XkbVariant "winkeys"</programlisting>
+
+ <para>对于<application>&xfree86; 4.X</application>:</para>
+
+ <programlisting>Option "XkbVariant" "winkeys"</programlisting>
+
+ <note>
+ <para>俄语的XKB键盘可能不能在老版本的<application>&xfree86;</application>下工作,
+ 更多的信息参考<link linkend="russian-note">上面的注释</link>。俄语XKB键盘也不能很好的工作在
+ 非本地化应用程序下面。早期的非本地化应用程序最低限度应该调用<function>XtSetLanguageProc (NULL, NULL,
+ NULL);</function>。更多的本地化X11应用程序的信息请参考<ulink
+ url="http://koi8.pp.ru/xwin.html">
+ KOI8-R for X Window</ulink>。</para>
+ </note>
+ </listitem>
+ </orderedlist>
+ </sect3>
+ </sect2>
+
+ <sect2>
+ <title>设置繁体中文</title>
+ <indexterm>
+ <primary>本地化</primary>
+ <secondary>繁体中文</secondary>
+ </indexterm>
+ <para>FreeBSD-Taiwan计划有一个使用很多中文ports的中文化指南在
+ <ulink url="http://netlab.cse.yzu.edu.tw/~statue/freebsd/zh-tut/"></ulink>。
+ 目前, <literal>FreeBSD 中文化指南</literal> 的维护人员是
+ 沈俊兴 <email>statue@freebsd.sinica.edu.tw</email>。
+ </para>
+
+ <para>沈俊兴 <email>statue@freebsd.sinica.edu.tw</email>
+ 利用 FreeBSD-Taiwan 的 <literal>zh-L10N-tut</literal>建立了
+ <ulink url="http://netlab.cse.yzu.edu.tw/~statue/cfc/">
+ Chinese FreeBSD Collection (CFC)</ulink>。 相关的 packages 和脚本等可以在
+ <ulink url="ftp://freebsd.csie.nctu.edu.tw/pub/taiwan/CFC/"></ulink> 找到。</para>
+ </sect2>
+
+ <sect2>
+ <title>德语本地化(适合所有的ISO 8859-1语言)</title>
+ <indexterm>
+ <primary>本地化</primary>
+ <secondary>德语</secondary>
+ </indexterm>
+
+ <para>Slaven Rezic <email>eserte at cs.tu-berlin.de</email>
+ 写了一个在FreeBSD机器下如何使用日尔曼语言的德语指南。
+ 可以在<ulink url="http://www.de.FreeBSD.org/de/umlaute/"></ulink>下找到。</para>
+ </sect2>
+
+ <sect2>
+ <title>日语和韩语本地化</title>
+ <indexterm>
+ <primary>本地化</primary>
+ <secondary>日语</secondary>
+ </indexterm>
+ <indexterm>
+ <primary>本地化</primary>
+ <secondary>韩语</secondary>
+ </indexterm>
+ <para>日语本地化请参考<ulink url="http://www.jp.FreeBSD.org/"></ulink>,韩语参考
+ <ulink url="http://www.kr.FreeBSD.org/"></ulink>。</para>
+ </sect2>
+
+ <sect2>
+ <title>非英语的FreeBSD文档</title>
+
+ <para>一些FreeBSD的贡献者已经将部分FreeBSD文档翻译成了其他语言。
+ 可以通过<ulink
+ url="&url.base;/index.html">主站</ulink> 或者
+ <filename>/usr/share/doc</filename> 查到。</para>
+ </sect2>
+ </sect1>
+</chapter>
+
+<!--
+ Local Variables:
+ mode: sgml
+ sgml-declaration: "../chapter.decl"
+ sgml-indent-data: t
+ sgml-omittag: nil
+ sgml-always-quote-attributes: t
+ sgml-parent-document: ("../book.sgml" "part" "chapter")
+ End:
+-->