Gentoo Archives: gentoo-commits

From: "Le Zhang (r0bertz)" <r0bertz@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] gentoo commit in xml/htdocs/doc/zh_cn: guide-localization.xml
Date: Sun, 06 Apr 2008 16:21:06
Message-Id: E1JiXHZ-0002aa-Nf@stork.gentoo.org
1 r0bertz 08/04/06 15:59:49
2
3 Added: guide-localization.xml
4 Log:
5 [zh_cn] added guide-localization.xml
6
7 Revision Changes Path
8 1.1 xml/htdocs/doc/zh_cn/guide-localization.xml
9
10 file : http://sources.gentoo.org/viewcvs.py/gentoo/xml/htdocs/doc/zh_cn/guide-localization.xml?rev=1.1&view=markup
11 plain: http://sources.gentoo.org/viewcvs.py/gentoo/xml/htdocs/doc/zh_cn/guide-localization.xml?rev=1.1&content-type=text/plain
12
13 Index: guide-localization.xml
14 ===================================================================
15 <?xml version='1.0' encoding='utf-8'?>
16
17 <!DOCTYPE guide SYSTEM "/dtd/guide.dtd">
18
19 <!-- English CVS version: 1.48 -->
20
21 <guide link="/doc/zh_cn/guide-localization.xml" lang="zh_cn">
22 <title>Gentoo Linux本地化指南</title>
23 <author title="作者">
24 Alexander Holler
25 </author>
26 <author title="译者/编辑">
27 <mail link="slucy@××××××××.edu">Steven Lucy</mail>
28 </author>
29 <author title="编辑">
30 <mail link="bennyc@g.o">Benny Chuang</mail>
31 </author>
32 <author title="编辑">
33 <mail link="pylon@g.o">Lars Weiler</mail>
34 </author>
35 <author title="编辑">
36 <mail link="dertobi123@g.o">Tobias Scherbaum</mail>
37 </author>
38 <author title="编辑">
39 <mail link="flammie@g.o">Flammie Pirinen</mail>
40 </author>
41 <author title="译者">
42 <mail link="tysnoo@×××××.com">叶宝泰</mail>
43 </author>
44
45 <abstract>
46 本指南帮助用户将他们的Gentoo Linux发行版本地化为任何欧洲的locale。本文是由德语文档翻译而来的,因此它以德国作为案例分析。其中包含欧元货币符号的使用配置。
47 </abstract>
48
49 <!-- The content of this document is licensed under the CC-BY-SA license -->
50 <!-- See http://creativecommons.org/licenses/by-sa/2.5 -->
51 <license/>
52
53 <version>1.36</version>
54 <date>2007-10-04</date>
55
56 <chapter>
57 <title>时区</title>
58 <section>
59 <body>
60
61 <p>
62 你需要选择时区让系统知道你的地理位置,以保持正确的时间。在<path>/usr/share/zoneinfo</path>中查找你的时区。然后在<path>/etc/conf.d/clock</path>中设置时区。请忽略<path>/usr/share/zoneinfo/Etc/GMT*</path>时区,因为它们的名字并不表示所指的地区。比如,<path>GMT-8</path>实际上是GMT+8。
63 </p>
64
65 <pre caption="设置时区信息">
66 # <i>ls /usr/share/zoneinfo</i>
67 <comment>(假设你要使用布鲁塞尔)</comment>
68 # <i>nano -w /etc/conf.d/clock</i>
69 TIMEZONE="Europe/Brussels"
70
71 # <i>date</i>
72 Wed Mar 8 00:46:05 CET 2006
73 </pre>
74
75 <note>
76 确保代表时区的英文缩写(本案例中为"CET")正是你的地区。
77 </note>
78
79 <note>
80 你可以做一个用户级的设置,在shell的rc文件(如bash的<path>.bash_profile</path>)中将<c>TZ</c>变量的值设为<path>/usr/share/zoneinfo</path>下的任何东西。本案例中<c>TZ="Europe/Berlin"</c>。
81 </note>
82
83 </body>
84 </section>
85 </chapter>
86
87 <chapter>
88 <title>硬件时钟</title>
89 <section>
90 <body>
91
92 <p>
93 Gentoo Linux安装过程中,大多数情况下硬件时钟都是被设成UTC(或GMT,格林威治标准时间),而时区则定为实际的本地时间。如果出于某种原因,你需要将硬件时钟设为非UTC,那么你就要编辑<path>/etc/conf.d/clock</path>,将CLOCK的值由<c>UTC</c>改为<c>local</c>。
94 </p>
95
96 <pre caption="本地时钟vs.格林威治时钟">
97 <comment>(推荐:)</comment>
98 CLOCK="UTC"
99 <comment>(或者:)</comment>
100 CLOCK="local"
101 </pre>
102
103 </body>
104 </section>
105 </chapter>
106
107 <chapter>
108 <title>Locale系统</title>
109 <section>
110 <title>locale是什么?</title>
111 <body>
112
113 <p>
114 一份Locale是一组信息的集合,大多数程序利用它来确定特定的国家和语言设置。这些locale以及它们包含的数据是系统库的一部分,可以在大多数系统中的<path>/usr/share/locale</path>目录下找到。locale的名称通常命名为<c>ab_CD</c>的形式,其中<c>ab</c>是两个(或三个)字母的语言代号(在ISO-639中指定),<c>CD</c>是两个字母的国家代号(在ISO-3166中指定)。一些变量常常附加在locale名称的后面,例如<c>en_GB.utf8</c>或<c>de_DE@euro</c>。更多关于locale及相关的文章请考察<uri link="http://en.wikipedia.org/wiki/Locale">维基百科</uri>。
115 </p>
116
117 </body>
118 </section>
119 <section id="variables">
120 <title>locale环境变量</title>
121 <body>
122
123 <p>
124 Locale的设置保存在环境变量中。典型情况下设置在<path>/etc/env.d/02locale</path>(系统全局设置)和<path>~/.bashrc</path>(特定用户设置)文件中。这些变量分别决定locale各方面的设置,下面的表格给出了具体说明,优先级高的变量排在表格的上面(即上面的变量会覆盖处在它们下面的变量设置)。所有变量都会取一个前述<c>ab_CD</c>格式的locale名称作为值。
125 </p>
126
127 <table>
128 <tr>
129 <th>变量名</th>
130 <th>说明</th>
131 </tr>
132 <tr>
133 <ti>LC_ALL</ti>
134 <ti>
135 一次性定义全部locale设置。这是最高优先级的locale设置,将覆盖所有其它设置。
136 </ti>
137 </tr>
138 <tr>
139 <ti>LC_COLLATE</ti>
140 <ti>
141 定义按字母排序字符串。例如这会影响目录列表的分类显示。
142 </ti>
143 </tr>
144 <tr>
145 <ti>LC_CTYPE</ti>
146 <ti>
147 定义系统的字符处理性能。这决定哪些字符能被视为字母、数字,等等。这个变量如果生效还决定所使用的字符集。
148 </ti>
149 </tr>
150 <tr>
151 <ti>LC_MESSAGES</ti>
152 <ti>
153 用于一些使用基于消息机制的本地化方式进行本地化的应用程序(详细资料请参阅接下去的章节,包括使用这样配置的多数Gnu程序,以及如何让不使用这样配置的程序运行)。
154 </ti>
155 </tr>
156 <tr>
157 <ti>LC_MONETARY</ti>
158 <ti>定义货币单位和货币型数值的格式。</ti>
159 </tr>
160 <tr>
161 <ti>LC_NUMERIC</ti>
162 <ti>
163 定义非货币型数值的格式。影响到千位分隔符和小数分隔符等。
164 </ti>
165 </tr>
166 <tr>
167 <ti>LC_TIME</ti>
168 <ti>定义日期和时间的格式。</ti>
169 </tr>
170 <tr>
171 <ti>LC_PAPER</ti>
172 <ti>定义默认的纸张尺寸。</ti>
173 </tr>
174 <tr>
175 <ti>LANG</ti>
176 <ti>
177 一次性定义全部locale设置。此设置能被单个LC_*或者甚至LC_ALL的设置覆盖。
178 </ti>
179 </tr>
180 </table>
181
182 <note>
183 尽管大多数程序只根据LC_ALL来运行,不过如果设置了LC_ALL而没有设置LANG,有些程序还是会不遵守规矩。如果想玩得安全一点,将它们<e>两个一起</e>设置。
184 </note>
185
186 <p>
187 最典型的情况是用户只在用户级设置LANG变量,可能还有LC_CTYPE,通过添加定义到shell启动文件中,手动从命令行定义环境变量。
188 </p>
189
190 <pre caption="在~/.bashrc中设置用户的locale">
191 export LANG="de_DE@euro"
192 </pre>
193
194 <note>
195 如果要使用欧元货币符号(€),将<c>@euro</c>附加到你的locale后面
196 </note>
197
198 <p>
199 也可能为所有用户和程序设置一个系统全局locale:
200 </p>
201
202 <pre caption="在/etc/env.d/02locale中设置默认的系统locale">
203 LC_ALL="de_DE@euro"
204 LANG="de_DE@euro"
205 </pre>
206
207 <p>
208 通常的做法是只使用每个用户的locale设置,而不设置默认的系统locale。这种情况下系统locale默认为一个特定值<c>"C"</c>,由于历史原因这个值映射为英语locale。
209 </p>
210
211 <p>
212 为了让支持基于消息机制的本地化的程序运行,你可能需要设定<c>nls</c>(本地语言支持)USE标记来编译程序。
213 </p>
214
215 <p>
216 设置好正确的locale后,一定要更新环境变量使系统知道所做的更改:
217 </p>
218
219 <pre caption="更新环境">
220 <comment>(更新系统全局默认的locale:)</comment>
221 # <i>env-update &amp;&amp; source /etc/profile</i>
222
223 <comment>(更新特定用户的locale:)</comment>
224 $ <i>source ~/.bashrc</i>
225 </pre>
226
227 <p>
228 更新环境后,你需要按下<c>Ctrl-Alt-Backspace</c>杀死X服务器,登出,然后以用户身份登入。
229 </p>
230
231 <p>
232 现在,检验一下所做的更改是否已经生效了:
233 </p>
234
235 <pre caption="检验环境更改">
236 $ <i>env | grep -i LC_</i>
237 </pre>
238
239 <p>
240 另外还有一个本地化变量叫做LINGUAS。它影响到安装在基于gettext的程序中的本地化文件。它还决定某些特殊软件包用到的本地化,比如<c>kde-base/kde-i18n</c>和<c>app-office/openoffice</c>。这个变量的值为一组以空格隔开的语言代号序列,建议将其设置在<path>/etc/make.conf</path>中:
241 </p>
242
243 <pre caption="在make.conf中设置LINGUAS">
244 # <i>nano -w /etc/make.conf</i>
245 <comment>加入LINGUAS变量中。例如,德语、芬兰语和英语:)</comment>
246 LINGUAS="de fi en"
247 </pre>
248
249
250 </body>
251 </section>
252 <section>
253 <title>生成指定的Locale</title>
254 <body>
255
256 <p>
257 如果你用一个默认不可用的locale,则应当使用<c>localedef</c>来生成你的locale。比如:
258 </p>
259
260 <pre caption="使用localedef生成一个locale">
261 # <i>localedef -c -i en_US -f ISO-8859-15 en_US.ISO-8859-15</i>
262 </pre>
263
264 <p>
265 生成locale之后,你可以export一个合适的LANG变量。
266 </p>
267
268 <pre caption="Export LANG变量">
269 # <i>export LANG="en_US.ISO-8859-15"</i>
270 </pre>
271
272 <p>
273 做了改动之后一定要更新环境:
274 </p>
275
276 <pre caption="更新环境">
277 # <i>env-update &amp;&amp; source /etc/profile</i>
278 </pre>
279
280 <p>
281 更新环境后,你需要按下<c>Ctrl-Alt-Backspace</c>杀死X服务器,登出,然后以用户身份登入。
282 </p>
283
284 </body>
285 </section>
286 <section>
287 <title>为glibc生成locale</title>
288 <body>
289
290 <p>
291 可能你在系统中只要用到一个或者两个locale。你可以在<path>/etc/locale.gen</path>中指定所需的的locale。
292 </p>
293
294 <pre caption="添加locale到/etc/locale.gen">
295 en_GB ISO-8859-1
296 en_GB.UTF-8 UTF-8
297 de_DE ISO-8859-1
298 de_DE@euro ISO-8859-15
299 </pre>
300
301 <p>
302 下一步是执行<c>locale-gen</c>。它会生成<path>/etc/locale.gen</path>文件中指定的所有locale。
303 </p>
304
305 <note>
306 <c>locale-gen</c>在<c>glibc-2.3.6-r4</c>及更新版本中可用。如果你的glibc版本较旧,那么现在就应该更新了。
307 </note>
308
309 <p>
310 你可以通过执行<c>locale -a</c>来检验所选的locale是否可用。
311 </p>
312
313 </body>
314 </section>
315 </chapter>
316
317 <chapter>
318 <title>控制台下的键盘布局</title>
319 <section>
320 <body>
321
322 <p>
323 控制台下使用的键盘布局通过<path>/etc/conf.d/keymaps</path>中的<c>KEYMAP</c>变量来设定。其有效值可以在<path>/usr/share/keymaps/<c>{arch}</c>/</path>下找到。<path>i386</path>下进一步细分了布局(如<path>qwerty/</path>、<path>azerty/</path>等)。有些语言有多个选择项,你可能要试验后再决定哪个最适合自己的需求。
324 </p>
325
326 <pre caption="设置控制台的键盘映射">
327 KEYMAP="de"
328 KEYMAP="de-latin1"
329 KEYMAP="de-latin1-nodeadkeys"
330 </pre>
331
332 </body>
333 </section>
334 </chapter>
335
336 <chapter>
337 <title>X服务器下的键盘布局</title>
338 <section>
339 <body>
340
341 <p>
342 X服务器下使用的键盘布局通过<path>/etc/X11/xorg.conf</path>中的<c>XkbLayout</c>选项来指定。
343 </p>
344
345 <pre caption="设置X的键盘映射">
346 Section "InputDevice"
347 Identifier "Keyboard1"
348 ...
349 Option "XkbLayout" "de"
350 #Option "XkbModel" "pc105" <comment>## 这适用于国际键盘。</comment>
351 # Option "XkbVariant" "nodeadkeys" <comment>## 这将被用于xterm的输入</comment>
352 ...
353 </pre>
354
355 <p>
356 如果你有一个国际键盘布局,则必须将<c>XkbModel</c>选项设置为<c>pc102</c>或<c>pc105</c>,这样才可以映射你键盘上附加的特殊按键。
357 </p>
358
359 <p>
360 Deadkey允许你按下某些键不马上显示,而是与另一个字母组合得到一个单一的字符如é、è、á、à……等等。将<c>XkbVariant</c>设置为<c>nodeadkeys</c>允许在X终端中输入这些特殊字符。
361 </p>
362
363 <p>
364 如果你想在多个键盘布局之间切换(例如英语和俄语),须要做的全部事情就是在<path>xorg.conf</path>中添加几行内容,指定想要的布局及快捷键命令。
365 </p>
366
367 <pre caption="在两个键盘布局之间切换">
368 Section "InputDevice"
369 Identifier "Keyboard1"
370 ...
371 Option "XkbLayout" "us,ru"
372 Option "XkbOptions" "grp:alt_shift_toggle,grp_led:scroll"
373 </pre>
374
375 <p>
376 这里,<c>XkbOptions</c>允许你通过简单地按下<c>Alt-Shift</c>来在各个键盘布局之间转换。得益于<c>grp_led:scroll</c>选项,也可以通过控制Scroll Lock灯亮或灯灭来转换。这是个得心应手的视觉指示器,指出此时你正在使用的键盘布局。
377 </p>
378
379 </body>
380 </section>
381 </chapter>
382
383 <chapter>
384 <title>KDE</title>
385 <section>
386 <body>
387
388 <p>
389 对于KDE你必须安装<c>kde-base/kde-i18n</c>软件包。Kde-i18n与前面描述的<uri link="#variables">LINGUAS变量</uri>有关。
390 </p>
391
392 </body>
393 </section>
394 </chapter>
395
396 <chapter>
397 <title>控制台下的欧元符号</title>
398 <section>
399 <body>
400
401 <p>
402 为了让控制台显示欧元符号,你需要将<path>/etc/conf.d/consolefont</path>中的<c>CONSOLEFONT</c>设置为<path>/usr/share/consolefonts/</path>下的一个文件(不含<c>.psfu.gz</c>)。<c>lat9w-16</c>有欧元符号。
403 </p>
404
405 <pre caption="设置控制台字体">
406 CONSOLEFONT="lat9w-16"
407 </pre>
408
409 <p>
410 应检验一下<c>CONSOLEFONT</c>是否在boot启动级别:
411 </p>
412
413 <pre caption="检验启动级别是否正确">
414 # <i>rc-update -v show | grep -i consolefont</i>
415 </pre>
416
417 <p>
418 如果显示结果没有关于<c>CONSOLEFONT</c>的启动级别,就要把它添加到正确的级别:
419 </p>
420
421 <pre caption="添加consolefont到boot">
422 # <i>rc-update add consolefont boot</i>
423 </pre>
424
425 </body>
426 </section>
427 </chapter>
428
429 <chapter>
430 <title>X中的欧元符号</title>
431 <section>
432 <title>绝大部分应用程序</title>
433 <body>
434
435 <p>
436 要让欧元符号在X中正确地工作有点麻烦。首先要做的事是修改<path>/usr/share/fonts/misc/fonts.alias</path>中<c>fixed</c>和<c>variable</c>的定义,将末尾的<c>iso8859-1</c>替换为<c>iso8859-15</c>。
437 </p>
438
439 <pre caption="设置默认的X字体">
440 fixed -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-15
441 variable -*-helvetica-bold-r-normal-*-*-120-*-*-*-*-iso8859-15
442 </pre>
443
444 <p>
445 有些应用程序使用它们自己的字体,你必须分别告诉它们使用一个含欧元符号的字体。你可以在<path>.Xdefaults</path>中做特定用户级别的设置(可以将这个文件复制到<path>/etc/skel/</path>下给新用户使用),也可以在<path>/usr/share/X11/app-defaults/</path>下的一个资源文件中为任何应用程序做全局级别的设置(如xterm)。一般在这些文件中你只要修改现有的一行内容,而不需要添加新的一行。举个例子,更改我们的xterm的字体:
446 </p>
447
448 <pre caption="为xterm设定字体">
449 <comment>(在你的主目录下)</comment>
450 $ <i>echo 'XTerm*font: fixed' >> .Xresources </i>
451 $ <i>xrdb -merge .Xresources</i>
452 </pre>
453
454 </body>
455 </section>
456 <section>
457 <title>(X)Emacs中的欧元符号</title>
458 <body>
459
460 <p>
461 要在(X)Emacs中使用欧元符号,将下面的内容加入<path>.Xdefaults</path>:
462 </p>
463
464 <pre caption="为emacs设定字体">
465 Emacs.default.attributeFont: -*-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-15
466 </pre>
467
468 <p>
469 对于XEmacs(非纯Emacs),必须多做点事。在<path>/home/user/.xemacs/init.el</path>中加入:
470 </p>
471
472 <pre caption="为xemacs设定字体">
473 (define-key global-map '(EuroSign) '[€])
474 </pre>
475
476 <note>
477 []中的符号为欧元符号。
478 </note>
479
480 </body>
481 </section>
482 <section>
483 <title>OpenOffice.Org</title>
484 <body>
485
486 <p>
487 当前稳定版的<c>app-office/openoffice</c>和<c>app-office/openoffice-bin</c>的ebuild支持<uri link="#variables">LINGUAS变量</uri>,用以选择已安装的GUI语言包。要了解关于你的语言的GUI翻译、排版、拼写校验以及其它本地化的情况,请参考<uri link="http://l10n.openoffice.org/languages.html">OpenOffice.Org本地化网站</uri>。
488 </p>
489
490 </body>
491 </section>
492 </chapter>
493
494 </guide>
495
496
497
498 --
499 gentoo-commits@l.g.o mailing list