<!--
     The FreeBSD Documentation Project
     The FreeBSD Chinese Documentation Project

     Original Revision: 1.111
     $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>
      <see>本地化</see>
    </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" pgwide="1">
	<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/编译器
	指定什么样的参数。</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>keymap</primary></indexterm>
      <indexterm><primary>screenmap</primary></indexterm>
      <para>您还需要确定正确地为您的 C 字符集配置了 keymap 和 screenmap，
	这一工作可以通过
	<command>sysinstall</command> (在 &os; 5.2
	之前的版本是 <command>/stand/sysinstall</command>) 来完成。。
	进入 <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" pgwide="1">
	<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" pgwide="1">
	<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.x.org/">&xorg;
	Web 站点</ulink>
	或是您使用的 X11 Server 的网站。</para>

      <para>在<filename>~/.Xresources</filename>里面，您可以适当调整特定应用程序的I18N设置（如字体，菜单等）。</para>

      <sect3>
	<title>显示字体</title>
	<indexterm><primary>X11 True Type 字体服务器</primary></indexterm>
	<para>安装 <application>&xorg;</application> 服务器
	  (<filename role="package">x11-servers/xorg-server</filename>)
	  或 <application>&xfree86;</application> 服务器
	  (<filename role="package">x11-servers/XFree86-4-Server</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;)，
	但在文件系统中不会保存字符集的名字；
	也就是说， 它不加修改地保存 8-位信息， 而并不知道如何编码。
	正式说来， 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> 选项，
	  则一定要首先挂接 <filename>/usr</filename>，
	  然后再挂接 &ms-dos; 分区， 因为转换表是放在
	  <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>&xorg;</application> 是 FreeBSD
		上默认的 X Window System 系统版本。
		因此支持这些地区代码没有任何问题， 除非您使用很旧的
		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>&xorg;</application> (也包括
	      <application>&xfree86;</application> 的 3.3 和更高版本)
	      已经包括了一些 KOI8-R 字体，
	      但上述 port 中的版本能够更好地适应缩放。</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>&xorg;</application> (或
	      <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>&xorg;</application> (或
	      <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:
-->
