aboutsummaryrefslogtreecommitdiff
path: root/zh_CN.GB2312/books/handbook/l10n/chapter.sgml
blob: 87ae03a44d1c4be248e9025233ce80407bd4b296 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
<!--
     The FreeBSD Documentation Project
     The FreeBSD Chinese Documentation Project

     Original Revision: 1.132
     $FreeBSD$
-->

<chapter id="l10n">
  <chapterinfo>
    <authorgroup>
      <author>
	<firstname>Andrey</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;),例如
	    ISO8859-1, ISO8859-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>与此不同的是, &os; 使用与 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:\
	:setenv=LC_ALL=zh_TW.Big:\
	:setenv=LC_COLLATE=zh_TW.Big5:\ 
	:setenv=LC_CTYPE=zh_TW.Big5:\
	:setenv=LC_MESSAGES=zh_TW.Big5:\
	:setenv=LC_MONETARY=zh_TW.Big5:\
	:setenv=LC_NUMERIC=zh_TW.Big5:\
	:setenv=LC_TIME=zh_TW.Big5:\
	:charset=big5:\
	:xmodifiers="@im=gcin": #Set gcin as 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>Account Type Description</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>

	    <para>在修改用户的登入类型之前, 应首先执行下面的命令:</para>

	    <screen>&prompt.root; <userinput>cap_mkdb /etc/login.conf</userinput></screen>

	    <para>以便使在
	      <filename>/etc/login.conf</filename> 中新增的配置生效。</para>

	    <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>如果需要的话, 还应通过
	<command>sysinstall</command> 来配置与单字节 C
	字符集对应的 keymap 和 screenmap。
	在 <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的范围。
	如果您的语言使用这个范围,您必须把指针范围移出这个范围。
	要绕过这个问题, 需要在
	<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>ISO8859-1 or ISO8859-15</entry>
	      <entry><literal>cons25l1</literal></entry>
	    </row>

	    <row>
	      <entry>ISO8859-2</entry>
	      <entry><literal>cons25l2</literal></entry>
	    </row>

	    <row>
	      <entry>ISO8859-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.msdosfs.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</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>把下面一行加到
	      <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.msdosfs.8; 联机手册。</para>
      </sect3>

      <sect3>
	<title>X11设置</title>

	<orderedlist>
	  <listitem>
	    <para>首先请进行前面介绍的 <link linkend="setting-locale">非-X
	      的本地化设置</link></para>
	  </listitem>

	  <listitem>
	    <para>如果您正使用 <application>&xorg;</application>, 请安装
	    <filename role="package">x11-fonts/xorg-fonts-cyrillic</filename>
	    package。</para>

	    <para>检查您 <filename>/etc/X11/xorg.conf</filename> 文件中的
	      <literal>"Files"</literal> 小节。 下面的行, 应加到任何其它
	      <literal>FontPath</literal> 项之前:</para>

	    <programlisting>FontPath   "/usr/local/lib/X11/fonts/cyrillic"</programlisting>

	    <note>
	      <para>请查看 ports 中的其它西里尔字体。</para></note>
	  </listitem>

	  <listitem>
	    <para>要激活俄语键盘, 需要在
	      <filename>xorg.conf</filename> 文件的
	      <literal>"Keyboard"</literal> 小节中加入下列内容:</para>

	    <programlisting>Option "XkbLayout"   "us,ru"
Option "XkbOptions"  "grp: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>使用 <literal>grp:toggle</literal>
	    时, RUS/LAT 切换键将是 <keycap>右 Alt</keycap>,
	      而使用 <literal>grp:ctrl_shift_toggle</literal> 则表示切换键是
	      <keycombo action="simul"><keycap>Ctrl</keycap><keycap>Shift</keycap></keycombo>。
	      使用 <literal>grp:caps_toggle</literal>
	    时, RUS/LAT 切换键则是 <keycap>CapsLock</keycap>。
	    旧的 <keycap>CapsLock</keycap> 功能仍可通过 <keycombo action="simul"><keycap>Shift</keycap><keycap>CapsLock</keycap></keycombo> (只对 LAT
	      模式有效)。 由于不明原因,
	    <literal>grp:caps_toggle</literal><application>&xorg;</application> 中无法使用。</para>

	    <para>如果您的键盘上有 <quote>&windows;</quote> 键,
	      但发现 RUS 模式下, 某些非字母键映射不正常, 则应在您的
	      <filename>xorg.conf</filename> 文件中加入下面这行:</para>

	<programlisting>Option "XkbVariant" ",winkeys"</programlisting>

	    <note>
	      <para>俄语的 XKB 键盘可能并不为某些不具备本地化功能的应用程序所支持。</para>
	    </note>
	  </listitem>
	</orderedlist>
	<note>
	  <para>本地化程序最低限度应在程序启动时调用 <function>XtSetLanguageProc (NULL, NULL,
	    NULL);</function> 函数。</para>
	  <para>参见 <ulink
	    url="http://koi8.pp.ru/xwin.html">
	    KOI8-R for X Window</ulink> 以获得关于对 X11 应用进行本地化的指导。</para>
	</note>
      </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@cs.tu-berlin.de</email>
	写了一个在 FreeBSD 机器下如何使用日尔曼语言的德语指南。 这份德语教程可以在
	<ulink url="http://user.cs.tu-berlin.de/~eserte/FreeBSD/doc/umlaute/umlaute.html"></ulink> 找到。</para>
    </sect2>

    <sect2>
      <title>希腊语本地化</title>

      <indexterm>
	<primary>localization (本地化)</primary>
	<secondary>Greek (希腊语)</secondary>
      </indexterm>
      <para>Nikos Kokkalis <email>nickkokkalis@gmail.com</email>
	撰写了关于在 &os; 上支持希腊语的完整文章, 在 <ulink
	  url="&url.doc.base;/el_GR.ISO8859-7/articles/greek-language-support/index.html">http://www.freebsd.org/doc/el_GR.ISO8859-7/articles/greek-language-support/index.html</ulink>。
	请注意这篇文章 <emphasis>只有</emphasis> 希腊语的版本。</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:
-->