Diff of /xml/htdocs/doc/en/guide-localization.xml

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 1.15 Revision 1.50
1<?xml version='1.0' encoding='UTF-8'?> 1<?xml version='1.0' encoding='UTF-8'?>
2<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/guide-localization.xml,v 1.15 2004/11/01 20:15:44 dertobi123 Exp $ --> 2<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/guide-localization.xml,v 1.50 2008/11/30 11:28:59 jkt Exp $ -->
3<!DOCTYPE guide SYSTEM "/dtd/guide.dtd"> 3<!DOCTYPE guide SYSTEM "/dtd/guide.dtd">
4 4
5<guide link="/doc/en/guide-localization.xml"> 5<guide link="/doc/en/guide-localization.xml">
6<title>Gentoo Linux Localization Guide</title> 6<title>Gentoo Linux Localization Guide</title>
7<author title="Author"> 7<author title="Author">
8 <mail link="holler@gentoo.de">Alexander Holler</mail> 8 Alexander Holler
9</author> 9</author>
10<author title="Translator/Editor"> 10<author title="Translator/Editor">
11 <mail link="slucy@uchicago.edu">Steven Lucy</mail> 11 <mail link="slucy@uchicago.edu">Steven Lucy</mail>
12</author> 12</author>
13<author title="Editor"> 13<author title="Editor">
17 <mail link="pylon@gentoo.org">Lars Weiler</mail> 17 <mail link="pylon@gentoo.org">Lars Weiler</mail>
18</author> 18</author>
19<author title="Editor"> 19<author title="Editor">
20 <mail link="dertobi123@gentoo.org">Tobias Scherbaum</mail> 20 <mail link="dertobi123@gentoo.org">Tobias Scherbaum</mail>
21</author> 21</author>
22<author title="Editor">
23 <mail link="flammie@gentoo.org">Flammie Pirinen</mail>
22 25
23<abstract> 26<abstract>
24This guide should help users localize their Gentoo Linux distribution to any 27This guide should help users localize their Gentoo Linux distribution to any
25European locale. It uses Germany as a case-study, since it is translated from 28European locale. It uses Germany as a case-study, since it is translated from
26the German doc. Includes configuration for use of the Euro currency symbol. 29the German doc. Includes configuration for use of the euro currency symbol.
27</abstract> 30</abstract>
28 31
29<version>1.11</version> 32<version>1.38</version>
30<date>November 1, 2004</date> 33<date>2008-11-30</date>
31 34
32<chapter> 35<chapter>
33<title>Timezone</title> 36<title>Time zone</title>
34<section> 37<section>
35<body> 38<body>
36 39
38In order to keep time properly, <path>/etc/localtime</path> must point to
39the correct time zone data file. Look around in
40<path>/usr/share/zoneinfo/</path> and pick your timezone or a near-by big city.
41</p> 40<p>
41In order to keep time properly, you need to select your timezone so that your
42system knows where it is located. Look for your timezone in
43<path>/usr/share/zoneinfo</path>. You then set your timezone in
44<path>/etc/conf.d/clock</path>. Please avoid the
45<path>/usr/share/zoneinfo/Etc/GMT*</path> timezones as their names do not
46indicate the expected zones. For instance, <path>GMT-8</path> is in fact GMT+8.
42 48
43<pre caption="setting the timezone"> 49<pre caption="Setting the timezone information">
44# <i>ln -sf /usr/share/zoneinfo/Europe/Berlin /etc/localtime</i> 50# <i>ls /usr/share/zoneinfo</i>
51<comment>(Suppose you want to use Brussels)</comment>
52# <i>nano -w /etc/conf.d/clock</i>
45# <i>date</i> 55# <i>date</i>
46Sun Feb 16 08:26:44 CET 2003 56Wed Mar 8 00:46:05 CET 2006
47</pre> 57</pre>
48 58
49<note> 59<note>
50Make sure that the three-letter timezone indicator (in this case "CET") 60Make sure that the timezone indicator (in this case "CET")
51is correct for your area. 61is correct for your area.
52</note> 62</note>
53 63
54<note> 64<note>
55You can set the value of <c>TZ</c> to be everything after the 65You can set the value of <c>TZ</c> to be everything after the
61</body> 71</body>
62</section> 72</section>
63</chapter> 73</chapter>
64 74
65<chapter> 75<chapter>
66<title>System Clock</title> 76<title>Hardware Clock</title>
67<section> 77<section>
68<body> 78<body>
69 79
70<p> 80<p>
71In most Gentoo Linux installations, your system clock is set to 81In most Gentoo Linux installations, your hardware clock is set to
72UTC (or GMT, Greenwhich Mean Time) and then your timezone is 82UTC (or GMT, Greenwich Mean Time) and then your timezone is
73taken into account to determine the actual, local time. If, 83taken into account to determine the actual, local time. If,
74for some reason, you need your system clock not to be in UTC, 84for some reason, you need your hardware clock not to be in UTC,
75you will need to edit <path>/etc/rc.conf</path> and change the 85you will need to edit <path>/etc/conf.d/clock</path> and change the
76value of <c>CLOCK</c>. 86value of <c>CLOCK</c> from <c>UTC</c> to <c>local</c>.
77</p> 87</p>
78 88
79<pre caption="local vs. GMT clock"> 89<pre caption="local vs. GMT clock">
80<codenote>recommended:</codenote> 90<comment>(recommended:)</comment>
82<codenote>or:</codenote> 92<comment>(or:)</comment>
83CLOCK="local" 93CLOCK="local"
84</pre> 94</pre>
85 95
86</body> 96</body>
87</section> 97</section>
88</chapter> 98</chapter>
89 99
90<chapter> 100<chapter>
91<title>POSIX Locale</title> 101<title>Locale system</title>
103<title>What are locales?</title>
107A Locale is a set of information that most programs use for determining country
108and language specific settings. The locales and their data are part of the
109system library and can be found at <path>/usr/share/locale</path> on most
110systems. A locale name is generally named <c>ab_CD</c> where <c>ab</c> is your
111two (or three) letter language code (as specified in ISO-639) and <c>CD</c> is
112your two letter country code (as specified in ISO-3166). Variants are often
113appended to locale names, e.g. <c>en_GB.utf8</c> or <c>de_DE@euro</c>. Please
114explore <uri link="http://en.wikipedia.org/wiki/Locale">Wikipedia</uri> to read
115more about locales and related articles.
92<section> 119</section>
93<title>Using Existing Locales</title> 120<section id="variables">
121<title>Environment variables for locales</title>
94<body> 122<body>
95 123
97The next step is to set the <c>LANG</c> shell variable, which
98is used by your shell and window manager (and some other
99applications). Valid values can be found in
100<path>/usr/share/locale</path> and generally take the form
101<c>ab_CD</c>, where <c>ab</c> is your two letter language code
102and <c>CD</c> is your two letter country code. The <c>_CD</c>
103is left off if your language is only (or primarily) spoken in
104one country. <c>LANG</c> can be set in
105<path>/etc/profile</path> if you want it to take effect
106system-wide, or in <path>~/.bashrc</path> as a user-specific
108</p> 124<p>
109 125Locale settings are stored in environment variables. These are typically
110<pre caption="setting the POSIX locale"> 126set in the <path>/etc/env.d/02locale</path> (for system-wide
111export LANG="de_DE@euro" 127settings) and <path>~/.bashrc</path> (for user-specific settings) file.
128The variables controlling different aspects of locale settings
129are given in the table below. All of them
130take one name of a locale in <c>ab_CD</c> format given above.
112</pre> 131</p>
135 <th>Variable name</th>
136 <th>Explanation</th>
139 <ti>LANG</ti>
140 <ti>
141 Defines all locale settings at once, while allowing further individual
142 customization via the LC_* settings below.
143 </ti>
146 <ti>LC_COLLATE</ti>
147 <ti>
148 Define alphabetical ordering of strings. This affects e.g. output of sorted
149 directory listing.
150 </ti>
153 <ti>LC_CTYPE</ti>
154 <ti>
155 Define the character handling properties for the system. This determines
156 which characters are seen as part of alphabet, numeric and so on. This also
157 determines the character set used, if applicable.
158 </ti>
161 <ti>LC_MESSAGES</ti>
162 <ti>
163 Programs' localizations for applications that use message based localization
164 scheme (majority of Gnu programs, see next chapters for closer information
165 which do, and how to get the programs, that don't, to work).
166 </ti>
169 <ti>LC_MONETARY</ti>
170 <ti>Defines currency units and formatting of currency type numeric values.</ti>
173 <ti>LC_NUMERIC</ti>
174 <ti>
175 Defines formatting of numeric values which aren't monetary. Affects things
176 such as thousand separator and decimal separator.
177 </ti>
180 <ti>LC_TIME</ti>
181 <ti>Defines formatting of dates and times.</ti>
184 <ti>LC_PAPER</ti>
185 <ti>Defines default paper size.</ti>
188 <ti>LC_ALL</ti>
189 <ti>
190 A special variable for overriding all other settings.
191 </ti>
113 194
114<note> 195<note>
115Appended <c>@euro</c> to your locale if you want to use the new Euro 196Some programs are written in such a way that they expect traditional English
116currency symbol (&#8364;) 197ordering of the alphabet, while some locales, most notably the Estonian one, use
198a different ordering. Therefore it's recommended to explicitly set LC_COLLATE to C
199when dealing with system-wide settings.
117</note> 200</note>
203For the same reason, using LC_ALL is strongly discouraged. Please use it only
204when testing and never set it in a startup file.
208Most typically users only set the LANG variable on the global basis:
211<pre caption="Setting the default system locale in /etc/env.d/02locale">
217Append <c>@euro</c> to your locale if you want to use the Euro
218currency symbol (€)
222It's also possible, and pretty common especially in a more traditional UNIX
223environment, to leave the global settings unchanged, i.e. in the "<c>C</c>"
224locale. Users can still specify their preferred locale in their own shell RC
228<pre caption="Setting the user locale in ~/.bashrc">
229export LANG="de_DE.utf8@euro"
230export LC_COLLATE="C"
234Another way of configuring system is to leave it in the default C locale, but
235enable UTF-8 character representation at the same time. This option is achieved
236using the following settings in <path>/etc/env.d/02locale</path>:
239<pre caption="Using traditional C locale while specifying UTF-8">
244Using the above snippet, users will be able to see localized file names
245properly, while not being forced to your preferred language.
249For message based localization to work in programs that support it, you will
250probably need to have programs compiled with the <c>nls</c> (Native language
251support) USE flag set. Most of the programs using nls also need the gettext
252library to extract and use localized messages. Of course, Portage will
253automatically install it when needed.
257Once you have set the right locale, be sure to update your environment
258variables to make your system aware of the change:
261<pre caption="Update the environment">
262<comment>(For system-wide default locale:)</comment>
263# <i>env-update &amp;&amp; source /etc/profile</i>
265<comment>(For user-specific locale:)</comment>
266$ <i>source ~/.bashrc</i>
270After this, you will need to kill your X server by pressing
271<c>Ctrl-Alt-Backspace</c>, log out, then log in as user.
275Now, verify that the changes have taken effect:
278<pre caption="Verify env changes">
279$ <i>locale</i>
283There is also additional localisation variable called LINGUAS, which affects
284to localisation files that get installed in gettext-based programs, and decides
285used localisation for some specific software packages, such as
286<c>kde-base/kde-i18n</c> and <c>app-office/openoffice</c>. The variable
287takes in <e>space</e>-separated list of language codes, and suggested
288place to set it is <path>/etc/make.conf</path>:
291<pre caption="Setting LINGUAS in make.conf">
292# <i>nano -w /etc/make.conf</i>
293<comment>(Add in the LINGUAS variable. For instance,
294for German, Finnish and English:)</comment>
295LINGUAS="de fi en"
118 298
119</body> 299</body>
120</section> 300</section>
121<section> 301<section>
122<title>Generating Specific Locales</title> 302<title>Generating Specific Locales</title>
138 318
139<pre caption="Exporting the LANG variable"> 319<pre caption="Exporting the LANG variable">
140# <i>export LANG="en_US.ISO-8859-15"</i> 320# <i>export LANG="en_US.ISO-8859-15"</i>
141</pre> 321</pre>
142 322
324Be sure to update the environment after the change:
327<pre caption="Update the environment">
328# <i>env-update &amp;&amp; source /etc/profile</i>
332After this, you will need to kill your X server by pressing
333<c>Ctrl-Alt-Backspace</c>, log out, then log in as user.
143</body> 336</body>
145<section> 337</section>
146<title>The userlocales USE flag</title> 338<section>
339<title>Generating locales for glibc</title>
147<body> 340<body>
148 341
149<p> 342<p>
150You will probably only use one or maybe two locales on your system. Up until now 343You will probably only use one or maybe two locales on your system. You can
151after compiling <c>glibc</c> a full set of all available locales has been
152created. As of now you can activate the <c>userlocales</c> USE flag und specify
153only the locales you will need in <path>/etc/locales.build</path>. 344specify locales you will need in <path>/etc/locale.gen</path>.
156<pre caption="Activate the userlocales USE flag especially for glibc">
157echo "sys-libs/glibc userlocales" >> /etc/portage/package.use
160<p> 345</p>
161Now specify the locales you want to be able to use:
163 346
164<pre caption="nano -w /etc/locales.build"> 347<pre caption="Adding locales to /etc/locale.gen">
165en_US/ISO-8859-1 348en_GB ISO-8859-1
166en_US.UTF-8/UTF-8 349en_GB.UTF-8 UTF-8
167de_DE/ISO-8859-1 350de_DE ISO-8859-1
168de_DE@euro/ISO-8859-15 351de_DE@euro ISO-8859-15
169</pre> 352</pre>
170 353
355The next step is to run <c>locale-gen</c>. It will generate all the locales you
356have specified in the <path>/etc/locale.gen</path> file.
171<p> 357</p>
172The next step is to re-compile <c>glibc</c>. Of course you can defer this until 358
173the next <c>glibc</c> upgrade is available. 359<note>
360<c>locale-gen</c> is available in <c>glibc-2.3.6-r4</c> and newer. If you have
361an older version of glibc, you should update it now.
365You can verify that your selected locales are available by running <c>locale
174</p> 367</p>
175 368
176</body> 369</body>
177</section> 370</section>
178</chapter> 371</chapter>
182<section> 375<section>
183<body> 376<body>
184 377
185<p> 378<p>
186The keyboard layout used by the console is set in 379The keyboard layout used by the console is set in
187<path>/etc/rc.conf</path> by the <c>KEYMAP</c> variable. 380<path>/etc/conf.d/keymaps</path> by the <c>KEYMAP</c> variable.
188Valid values can be found in 381Valid values can be found in
189<path>/usr/share/keymaps/<c>{arch}</c>/</path>. 382<path>/usr/share/keymaps/<c>{arch}</c>/</path>.
190<path>i386</path> has further subdivisions into layout 383<path>i386</path> has further subdivisions into layout
191(<path>qwerty/</path>, <path>azerty/</path>, etc.). Some 384(<path>qwerty/</path>, <path>azerty/</path>, etc.). Some
192languages have multiple options, so you may wish to experiment 385languages have multiple options, so you may wish to experiment
193to decide which one fits your needs best. 386to decide which one fits your needs best.
194</p> 387</p>
195 388
196<pre caption="setting the console keymap"> 389<pre caption="Setting the console keymap">
197KEYMAP="de" 390KEYMAP="de"
198KEYMAP="de-latin1" 391KEYMAP="de-latin1"
199KEYMAP="de-latin1-nodeadkeys" 392KEYMAP="de-latin1-nodeadkeys"
200</pre> 393</pre>
201 394
208<section> 401<section>
209<body> 402<body>
210 403
211<p> 404<p>
212The keyboard layout to be used by the X server is specified 405The keyboard layout to be used by the X server is specified
213in <path>/etc/X11/XF86Config</path> by the <c>XkbLayout</c> 406in <path>/etc/X11/xorg.conf</path> by the <c>XkbLayout</c>
214option. 407option.
215</p> 408</p>
216 409
217<pre caption="setting the X keymap"> 410<pre caption="Setting the X keymap">
218 Section "InputDevice" 411 Section "InputDevice"
219 Identifier "Keyboard1" 412 Identifier "Keyboard1"
220 ... 413 ...
221 Option "XkbLayout" "de" 414 Option "XkbLayout" "de"
222 # Option "XkbVariant" "nodeadkeys" 415 #Option "XkbModel" "pc105" <comment>## this is for international keyboards.</comment>
416 # Option "XkbVariant" "nodeadkeys" <comment>## this would be used for xterm input</comment>
223 ... 417 ...
224</pre> 418</pre>
225 419
421If you have an international keyboard layout, you should set the option
422<c>XkbModel</c> to <c>pc102</c> or <c>pc105</c>, as this will allow mapping of the
423additional keys specific to your keyboard.
427Deadkeys allow you to press keys that will not show immediately but will be
428combined with another letter to produce a single character such as é,è,á,à,
429etc. Setting <c>XkbVariant</c> to <c>nodeadkeys</c> allows input these special
430characters into X terminals.
434If you would like to switch between more than one keyboard layout (for example
435English and Russian), all you have to do is add a few lines to
436<path>xorg.conf</path> that specify the desired layouts and the shortcut
440<pre caption="Switching between two keyboard layouts">
441 Section "InputDevice"
442 Identifier "Keyboard1"
443 ...
444 Option "XkbLayout" "us,ru"
445 Option "XkbOptions" "grp:alt_shift_toggle,grp_led:scroll"
449Here, <c>XkbOptions</c> allows you to toggle between keyboard layouts by simply
450pressing <c>Alt-Shift</c>. This will also toggle the Scroll Lock light on or
451off, thanks to the <c>grp_led:scroll</c> option. This is a handy visual
452indicator of which keyboard layout you are using at the moment.
226</body> 455</body>
227</section> 456</section>
228</chapter> 457</chapter>
229 458
230<chapter> 459<chapter>
231<title>KDE</title> 460<title>KDE</title>
232<section> 461<section>
233<body> 462<body>
234 463
235<p> 464<p>
236For KDE you have to install the kde-i18n package with the appropriate 465For KDE you have to install the <c>kde-base/kde-i18n</c> package. Kde-i18n
237LINGUAS environment variable set:</p> 466respects <uri link="#variables">LINGUAS variable</uri> described earlier.
239<pre caption="Install localized KDE">
240# <i>LINGUAS="de" emerge kde-i18n</i>
241</pre> 467</p>
242 468
243</body> 469</body>
244</section> 470</section>
245</chapter> 471</chapter>
246 472
250<body> 476<body>
251 477
252<p> 478<p>
253In order to get your console to display the Euro symbol, you 479In order to get your console to display the Euro symbol, you
254will need to set <c>CONSOLEFONT</c> in 480will need to set <c>CONSOLEFONT</c> in
255<path>/etc/rc.conf</path> to a file found in 481<path>/etc/conf.d/consolefont</path> to a file found in
256<path>/usr/share/consolefonts/</path> (without the 482<path>/usr/share/consolefonts/</path> (without the
257<c>.psfu.gz</c>). <c>lat9w-16</c> has the Euro symbol. 483<c>.psfu.gz</c>). <c>lat9w-16</c> has the Euro symbol.
258</p> 484</p>
259 485
260<pre caption="setting the console font"> 486<pre caption="Setting the console font">
261CONSOLEFONT="lat9w-16" 487CONSOLEFONT="lat9w-16"
262</pre> 488</pre>
263 489
491You should verify that <c>CONSOLEFONT</c> is in the boot runlevel:
494<pre caption="Verify the proper runlevel">
495# <i>rc-update -v show | grep -i consolefont</i>
499If no runlevel is displayed for <c>CONSOLEFONT</c>, then add it to the proper level:
502<pre caption="Add consolefont to boot">
503# <i>rc-update add consolefont boot</i>
264</body> 506</body>
265</section> 507</section>
266</chapter> 508</chapter>
267 509
268<chapter> 510<chapter>
270<section> 512<section>
271<title>Most Applications</title> 513<title>Most Applications</title>
272<body> 514<body>
273 515
274<p> 516<p>
275Getting the Euro symbol to work properly in X is a little 517Getting the Euro symbol to work properly in X is a little bit tougher. The
276bit tougher. The first thing you should do is change the <c>fixed</c> 518first thing you should do is change the <c>fixed</c> and <c>variable</c>
277and <c>variable</c> definitions in 519definitions in <path>/usr/share/fonts/misc/fonts.alias</path> to end in
278<path>/usr/X11R6/lib/X11/fonts/misc/fonts.alias</path> to end
279in <c>iso8859-15</c> instead of <c>iso8859-1</c>. 520<c>iso8859-15</c> instead of <c>iso8859-1</c>.
280</p> 521</p>
281 522
282<pre caption="setting default X fonts"> 523<pre caption="Setting default X fonts">
283fixed -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-15 524fixed -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-15
284variable -*-helvetica-bold-r-normal-*-*-120-*-*-*-*-iso8859-15 525variable -*-helvetica-bold-r-normal-*-*-120-*-*-*-*-iso8859-15
285</pre> 526</pre>
286 527
287<p> 528<p>
288Some applications use their own font, and you will have to 529Some applications use their own font, and you will have to tell them separately
289tell them separately to use a font with the Euro symbol. You 530to use a font with the Euro symbol. You can do this at a user-specific level in
290can do this at a user-specific level in
291<path>.Xdefaults</path> (you can copy this file to 531<path>.Xdefaults</path> (you can copy this file to <path>/etc/skel/</path> for
292<path>/etc/skel/</path> for use by new users), or at a global 532use by new users), or at a global level for any application with a resource file
293level for any application with a resource file in
294<path>/usr/X11R6/lib/X11/app-defaults/</path> (like xterm). In 533in <path>/usr/share/X11/app-defaults/</path> (like xterm). In these files you
295these files you generally have to change an existing line, 534generally have to change an existing line, rather than adding a new one. To
296rather than adding a new one. To change our xterm font, for 535change our xterm font, for instance:
298</p> 536</p>
299 537
300<pre caption="setting fonts for xterm"> 538<pre caption="Setting fonts for xterm">
301<codenote>(in your home directory)</codenote> 539<comment>(in your home directory)</comment>
302# <i>echo 'XTerm*font: fixed' >> .Xresources </i> 540$ <i>echo 'XTerm*font: fixed' >> .Xresources </i>
303# <i>xrdb -merge .Xresources</i> 541$ <i>xrdb -merge .Xresources</i>
304</pre> 542</pre>
305 543
306</body> 544</body>
307</section> 545</section>
308<section> 546<section>
322For XEmacs (not plain Emacs), you have to do a little 560For XEmacs (not plain Emacs), you have to do a little
323more. In <path>/home/user/.xemacs/init.el</path>, add: 561more. In <path>/home/user/.xemacs/init.el</path>, add:
324</p> 562</p>
325 563
326<pre caption="setting the font for xemacs"> 564<pre caption="setting the font for xemacs">
327(define-key global-map '(EuroSign) '[&#8364;]) 565(define-key global-map '(EuroSign) '[])
328</pre> 566</pre>
329 567
330<note> 568<note>
331The symbol in the []s is the Euro symbol. 569The symbol in the []s is the Euro symbol.
332</note> 570</note>
333 571
334</body> 572</body>
335</section> 573</section>
336<section> 574<section>
337<title>Language for OpenOffice</title> 575<title>OpenOffice.Org</title>
338<body> 576<body>
339 577
341Customized default language is not available for openoffice-bin ebuild. The
342default language in the openoffice-bin is ENUS.
346The default language for OpenOffice is set as "ENUS"(01). If you wish to
347change the default language for OpenOffice, check the ebuild for the
348default language code.
349</p> 578<p>
350 579The current stable <c>app-office/openoffice</c> and
351<pre caption="emerge openoffice with desired default language"> 580<c>app-office/openoffice-bin</c> ebuilds support the <uri
352# <i>LANGUAGE="01" emerge openoffice</i> 581link="#variables">LINGUAS variable</uri> for selecting installed GUI language
353<comment>01 is the ENUS language code for openoffice</comment> 582packs. To see the status of GUI translation, hyphenation, spell checking and
583other localisations on your language, please refer to <uri
584link="http://l10n.openoffice.org/languages.html">OpenOffice.Org localisation
585web site</uri>.
354</pre> 586</p>
355 587
356</body> 588</body>
357</section> 589</section>
358</chapter> 590</chapter>
359 591

Removed from v.1.15  
changed lines
  Added in v.1.50

  ViewVC Help
Powered by ViewVC 1.1.20