/[gentoo]/xml/htdocs/doc/en/guide-localization.xml
Gentoo

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.43 - (hide annotations) (download) (as text)
Wed Jul 19 11:46:29 2006 UTC (8 years, 1 month ago) by rane
Branch: MAIN
Changes since 1.42: +17 -22 lines
File MIME type: application/xml
#140098, use locale-gen instead of userlocales

1 swift 1.6 <?xml version='1.0' encoding='UTF-8'?>
2 rane 1.43 <!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/guide-localization.xml,v 1.42 2006/06/19 12:08:14 flammie Exp $ -->
3 swift 1.6 <!DOCTYPE guide SYSTEM "/dtd/guide.dtd">
4    
5     <guide link="/doc/en/guide-localization.xml">
6 antifa 1.4 <title>Gentoo Linux Localization Guide</title>
7 dertobi123 1.12 <author title="Author">
8 pylon 1.16 Alexander Holler
9 drobbins 1.1 </author>
10 dertobi123 1.12 <author title="Translator/Editor">
11     <mail link="slucy@uchicago.edu">Steven Lucy</mail>
12 antifa 1.4 </author>
13 bennyc 1.8 <author title="Editor">
14     <mail link="bennyc@gentoo.org">Benny Chuang</mail>
15     </author>
16 dertobi123 1.11 <author title="Editor">
17     <mail link="pylon@gentoo.org">Lars Weiler</mail>
18     </author>
19 dertobi123 1.15 <author title="Editor">
20     <mail link="dertobi123@gentoo.org">Tobias Scherbaum</mail>
21     </author>
22 swift 1.18 <author title="Editor">
23     <mail link="flammie@gentoo.org">Flammie Pirinen</mail>
24     </author>
25 dertobi123 1.12
26 antifa 1.4 <abstract>
27     This guide should help users localize their Gentoo Linux distribution to any
28 dertobi123 1.12 European locale. It uses Germany as a case-study, since it is translated from
29 swift 1.23 the German doc. Includes configuration for use of the euro currency symbol.
30 antifa 1.4 </abstract>
31 drobbins 1.1
32 rane 1.43 <version>1.31</version>
33     <date>2006-07-18</date>
34 dertobi123 1.12
35 drobbins 1.1 <chapter>
36 swift 1.23 <title>Time zone</title>
37 drobbins 1.1 <section>
38 dertobi123 1.12 <body>
39    
40     <p>
41 jkt 1.33 In order to keep time properly, <path>/etc/localtime</path> must contain the
42 jkt 1.34 correct time zone data. Look around in <path>/usr/share/zoneinfo/</path>
43 neysx 1.31 and pick your timezone or a near-by big city. Please avoid the
44     <path>/usr/share/zoneinfo/Etc/GMT*</path> timezones as their names do not
45     indicate the expected zones. For instance, <path>GMT-8</path> is in fact GMT+8.
46 dertobi123 1.12 </p>
47    
48 neysx 1.39 <pre caption="Setting the timezone">
49 jkt 1.33 # <i>cp /usr/share/zoneinfo/Europe/Berlin /etc/localtime</i>
50 antifa 1.4 # <i>date</i>
51     Sun Feb 16 08:26:44 CET 2003
52 drobbins 1.1 </pre>
53 dertobi123 1.12
54     <note>
55 flammie 1.41 Make sure that the timezone indicator (in this case "CET")
56 dertobi123 1.12 is correct for your area.
57     </note>
58    
59     <note>
60 cam 1.13 You can set the value of <c>TZ</c> to be everything after the
61 aaby 1.10 <path>/usr/share/zoneinfo</path> in your shell rc file
62 antifa 1.4 (<path>.bash_profile</path> for bash) for a user-level setting. In this case
63 cam 1.13 <c>TZ="Europe/Berlin"</c>.
64 dertobi123 1.12 </note>
65    
66     </body>
67 drobbins 1.1 </section>
68     </chapter>
69    
70     <chapter>
71 swift 1.26 <title>Hardware Clock</title>
72 drobbins 1.1 <section>
73 dertobi123 1.12 <body>
74    
75     <p>
76 swift 1.26 In most Gentoo Linux installations, your hardware clock is set to
77 swift 1.23 UTC (or GMT, Greenwich Mean Time) and then your timezone is
78 dertobi123 1.12 taken into account to determine the actual, local time. If,
79 swift 1.26 for some reason, you need your hardware clock not to be in UTC,
80 fox2mike 1.28 you will need to edit <path>/etc/conf.d/clock</path> and change the
81 swift 1.26 value of <c>CLOCK</c> from <c>UTC</c> to <c>local</c>.
82 dertobi123 1.12 </p>
83 antifa 1.4
84     <pre caption="local vs. GMT clock">
85 neysx 1.20 <comment>(recommended:)</comment>
86 dertobi123 1.12 CLOCK="UTC"
87 neysx 1.20 <comment>(or:)</comment>
88 dertobi123 1.12 CLOCK="local"
89 drobbins 1.1 </pre>
90 dertobi123 1.12
91     </body>
92 drobbins 1.1 </section>
93     </chapter>
94    
95     <chapter>
96 swift 1.18 <title>Locale system</title>
97 drobbins 1.1 <section>
98 swift 1.18 <title>What are locales?</title>
99 dertobi123 1.12 <body>
100    
101     <p>
102 swift 1.18 A Locale is a set of information that most programs use for determining
103     country and language specific settings. The locales and their data
104     are part of the system library and can be found
105     at <path>/usr/share/locale</path> on most systems. A locale name is generally
106 swift 1.25 named <c>ab_CD</c> where <c>ab</c> is your two (or three) letter
107 swift 1.18 language code (as specified in ISO-639) and <c>CD</c> is your two letter country
108 nightmorph 1.37 code (as specified in ISO-3166).
109 swift 1.18 </p>
110    
111     </body>
112     </section>
113 flammie 1.32 <section id="variables">
114 swift 1.18 <title>Environment variables for locales</title>
115     <body>
116    
117     <p>
118     Locale settings are stored in environment variables. These are typically
119     set in the <path>/etc/env.d/02locale</path> (for system-wide
120     settings) and <path>~/.bashrc</path> (for user-specific settings) file.
121     The variables controlling different aspects of locale settings
122 flammie 1.42 are given in the table below, those with highest precedence (i.e. those
123 swift 1.18 that override settings below them) are at the top of the table. All variables
124     take one name of a locale in <c>ab_CD</c> format given above.
125     </p>
126    
127     <table>
128     <tr>
129     <th>Variable name</th>
130     <th>Explanation</th>
131     </tr>
132     <tr>
133     <ti>LC_ALL</ti>
134     <ti>
135     Define all locale settings at once. This is the top level setting for
136     locales which will override any other setting.
137     </ti>
138     </tr>
139     <tr>
140     <ti>LC_COLLATE</ti>
141     <ti>
142 flammie 1.42 Define alphabetical ordering of strings. This affects e.g. output of sorted
143 swift 1.23 directory listing.
144 swift 1.18 </ti>
145     </tr>
146     <tr>
147     <ti>LC_CTYPE</ti>
148     <ti>
149     Define the character handling properties for the system. This determines
150     which characters are seen as part of alphabet, numeric and so on. This also
151     determines the character set used, if applicable.
152     </ti>
153     </tr>
154     <tr>
155     <ti>LC_MESSAGES</ti>
156     <ti>
157     Programs' localizations for applications that use message based localization
158     scheme (majority of Gnu programs, see next chapters for closer information
159     which do, and how to get the programs, that don't, to work).
160     </ti>
161     </tr>
162     <tr>
163     <ti>LC_MONETARY</ti>
164     <ti>Defines currency units and formatting of currency type numeric values.</ti>
165     </tr>
166     <tr>
167     <ti>LC_NUMERIC</ti>
168     <ti>
169     Defines formatting of numeric values which aren't monetary. Affects things
170     such as thousand separator and decimal separator.
171     </ti>
172     </tr>
173     <tr>
174     <ti>LC_TIME</ti>
175     <ti>Defines formatting of dates and times.</ti>
176     </tr>
177     <tr>
178     <ti>LC_PAPER</ti>
179     <ti>Defines default paper size.</ti>
180     </tr>
181     <tr>
182     <ti>LANG</ti>
183     <ti>
184     Defines all locale settings at once. This setting can be overridden by
185     individual LC_* settings above or even by LC_ALL.
186     </ti>
187     </tr>
188     </table>
189    
190 swift 1.25 <note>
191     Even though most programs work with LC_ALL only, some of them misbehave if
192     LC_ALL is set but LANG isn't. If you want to play safe, set them <e>both</e>.
193     </note>
194    
195 swift 1.18 <p>
196     Most typically users only set the LANG variable and perhaps LC_CTYPE variable
197     on user level by adding definitions to shells startup files defining
198     the environment variable manually from command line:
199 dertobi123 1.12 </p>
200    
201 neysx 1.39 <pre caption="Setting the user locale in ~/.bashrc">
202 dertobi123 1.12 export LANG="de_DE@euro"
203 drobbins 1.1 </pre>
204 dertobi123 1.12
205     <note>
206 swift 1.18 Append <c>@euro</c> to your locale if you want to use the Euro
207 neysx 1.39 currency symbol (€)
208 dertobi123 1.12 </note>
209    
210 swift 1.18 <p>
211 neysx 1.39 It is also possible to set a system-wide locale for all users and programs:
212     </p>
213    
214     <pre caption="Setting the default system locale in /etc/env.d/02locale">
215     LC_ALL="de_DE@euro"
216     LANG="de_DE@euro"
217     </pre>
218    
219     <p>
220     A common practice is to use only per user locale settings and leave the
221     default system locale unset. In this case system locale defaults to a
222     special value <c>"C"</c>, which for historical reasons maps to the English
223     locale.
224     </p>
225    
226     <p>
227 swift 1.18 For message based localization to work in programs that support it, you will
228     probably need to have programs compiled with the <c>nls</c> (Native language
229     support) USE flag set. Most of the programs using nls also need the gettext
230 neysx 1.39 library to extract and use localized messages. Of course, Portage will
231 swift 1.18 automatically install it when needed.
232     </p>
233    
234 flammie 1.32 <p>
235 rane 1.35 Once you have set the right locale, be sure to update your environment
236     variables to make your system aware of the change:
237     </p>
238    
239     <pre caption="Update the environment">
240 neysx 1.39 <comment>(For system-wide default locale:)</comment>
241 rane 1.35 # <i>env-update &amp;&amp; source /etc/profile</i>
242 neysx 1.39
243 jkt 1.40 <comment>(For user-specific locale:)</comment>
244 neysx 1.39 $ <i>source ~/.bashrc</i>
245 rane 1.35 </pre>
246    
247     <p>
248     After this, you will need to kill your X server by pressing
249     <c>Ctrl-Alt-Backspace</c>, log out, then log in as user.
250     </p>
251    
252     <p>
253     Now, verify that the changes have taken effect:
254     </p>
255    
256     <pre caption="Verify env changes">
257     $ <i>env | grep -i LC_</i>
258     </pre>
259    
260     <p>
261 flammie 1.32 There is also additional localisation variable called LINGUAS, which affects
262     to localisation files that get installed in gettext-based programs, and decides
263     used localisation for some specific software packages, such as
264     <c>kde-base/kde-i18n</c> and <c>app-office/openoffice</c>. The variable
265     takes in <e>space</e>-separated list of language codes, and suggested
266     place to set it is <path>/etc/make.conf</path>:
267     </p>
268    
269 neysx 1.39 <pre caption="Setting LINGUAS in make.conf">
270 flammie 1.32 # <i>nano -w /etc/make.conf</i>
271     <comment>(Add in the LINGUAS variable. For instance,
272     for German, Finnish and English:)</comment>
273     LINGUAS="de fi en"
274     </pre>
275    
276    
277 dertobi123 1.12 </body>
278 drobbins 1.1 </section>
279 swift 1.14 <section>
280     <title>Generating Specific Locales</title>
281     <body>
282    
283     <p>
284     If you use a locale that isn't available by default, you should use
285     <c>localedef</c> to generate your locale. For instance:
286     </p>
287    
288     <pre caption="Generating a locale using localedef">
289     # <i>localedef -c -i en_US -f ISO-8859-15 en_US.ISO-8859-15</i>
290     </pre>
291    
292     <p>
293     After having generated the locale, you can export the LANG variable as you see
294     fit.
295     </p>
296    
297     <pre caption="Exporting the LANG variable">
298     # <i>export LANG="en_US.ISO-8859-15"</i>
299     </pre>
300    
301 rane 1.35 <p>
302     Be sure to update the environment after the change:
303     </p>
304    
305     <pre caption="Update the environment">
306     # <i>env-update &amp;&amp; source /etc/profile</i>
307     </pre>
308    
309     <p>
310     After this, you will need to kill your X server by pressing
311     <c>Ctrl-Alt-Backspace</c>, log out, then log in as user.
312     </p>
313    
314 swift 1.14 </body>
315     </section>
316 dertobi123 1.15 <section>
317 rane 1.43 <title>Generating locales for glibc</title>
318 dertobi123 1.15 <body>
319    
320     <p>
321 rane 1.43 You will probably only use one or maybe two locales on your system. You can
322     specify locales you will need in <path>/etc/locale.gen</path>.
323 dertobi123 1.15 </p>
324    
325 rane 1.43 <pre caption="Adding locales to /etc/locale.gen">
326     en_GB ISO-8859-1
327     en_GB.UTF-8 UTF-8
328     de_DE ISO-8859-1
329     de_DE@euro ISO-8859-15
330 dertobi123 1.15 </pre>
331    
332     <p>
333 rane 1.43 The next step is to run <c>locale-gen</c>. It will generate all the locales you
334     have specified in the <path>/etc/locale.gen</path> file.
335 dertobi123 1.15 </p>
336    
337 rane 1.43 <note>
338     <c>locale-gen</c> is available in <c>glibc-2.3.6-r4</c> and newer. If you have
339     an older version of glibc, you should update it now.
340     </note>
341 dertobi123 1.15
342     </body>
343     </section>
344 drobbins 1.1 </chapter>
345    
346     <chapter>
347 antifa 1.4 <title>Keyboard layout for the console</title>
348 drobbins 1.1 <section>
349 dertobi123 1.12 <body>
350    
351     <p>
352     The keyboard layout used by the console is set in
353 fox2mike 1.27 <path>/etc/conf.d/keymaps</path> by the <c>KEYMAP</c> variable.
354 dertobi123 1.12 Valid values can be found in
355 cam 1.13 <path>/usr/share/keymaps/<c>{arch}</c>/</path>.
356 dertobi123 1.12 <path>i386</path> has further subdivisions into layout
357     (<path>qwerty/</path>, <path>azerty/</path>, etc.). Some
358     languages have multiple options, so you may wish to experiment
359     to decide which one fits your needs best.
360     </p>
361    
362 neysx 1.39 <pre caption="Setting the console keymap">
363 dertobi123 1.12 KEYMAP="de"
364     KEYMAP="de-latin1"
365     KEYMAP="de-latin1-nodeadkeys"
366 drobbins 1.1 </pre>
367 dertobi123 1.12
368     </body>
369 drobbins 1.1 </section>
370     </chapter>
371    
372     <chapter>
373 antifa 1.4 <title>Keyboard layout for the X server</title>
374 drobbins 1.1 <section>
375 dertobi123 1.12 <body>
376    
377     <p>
378     The keyboard layout to be used by the X server is specified
379 alin 1.21 in <path>/etc/X11/xorg.conf</path> by the <c>XkbLayout</c>
380 dertobi123 1.12 option.
381     </p>
382    
383 neysx 1.39 <pre caption="Setting the X keymap">
384 drobbins 1.1 Section "InputDevice"
385     Identifier "Keyboard1"
386     ...
387     Option "XkbLayout" "de"
388 rane 1.35 #Option "XkbModel" "pc105" <comment>## this is for international keyboards.</comment>
389     # Option "XkbVariant" "nodeadkeys" <comment>## this would be used for xterm input</comment>
390     ...
391     </pre>
392    
393     <p>
394     If you have an international keyboard layout, you should set the option
395     <c>XkbModel</c> to <c>pc102</c> or <c>pc105</c>, as this will allow mapping of the
396     additional keys specific to your keyboard.
397     </p>
398    
399     <p>
400     Deadkeys allow you to press keys that will not show immediately but will be
401     combined with another letter to produce a single character such as é,è,á,à,
402     etc. Setting <c>XkbVariant</c> to <c>nodeadkeys</c> allows input these special
403     characters into X terminals.
404     </p>
405    
406     <p>
407     If you would like to switch between more than one keyboard layout (for example
408     English and Russian), all you have to do is add a few lines to
409     <path>xorg.conf</path> that specify the desired layouts and the shortcut
410     command.
411     </p>
412    
413     <pre caption="Switching between two keyboard layouts">
414     Section "InputDevice"
415     Identifier "Keyboard1"
416 drobbins 1.1 ...
417 rane 1.35 Option "XkbLayout" "us,ru"
418     Option "XkbOptions" "grp:alt_shift_toggle,grp_led:scroll"
419 drobbins 1.1 </pre>
420 dertobi123 1.12
421 rane 1.35 <p>
422     Here, <c>XkbOptions</c> allows you to toggle between keyboard layouts by simply
423     pressing <c>Alt-Shift</c>. This will also toggle the Scroll Lock light on or
424     off, thanks to the <c>grp_led:scroll</c> option. This is a handy visual
425     indicator of which keyboard layout you are using at the moment.
426     </p>
427    
428 dertobi123 1.12 </body>
429 drobbins 1.1 </section>
430     </chapter>
431    
432     <chapter>
433 dertobi123 1.11 <title>KDE</title>
434     <section>
435     <body>
436    
437     <p>
438 flammie 1.32 For KDE you have to install the <c>kde-base/kde-i18n</c> package. Kde-i18n
439     respects <uri link="#variables">LINGUAS variable</uri> described earlier.
440 swift 1.22 </p>
441 dertobi123 1.11
442     </body>
443     </section>
444     </chapter>
445    
446     <chapter>
447 antifa 1.4 <title>The Euro Symbol for the Console</title>
448 drobbins 1.1 <section>
449 dertobi123 1.12 <body>
450    
451     <p>
452     In order to get your console to display the Euro symbol, you
453 cam 1.13 will need to set <c>CONSOLEFONT</c> in
454 rane 1.35 <path>/etc/conf.d/consolefont</path> to a file found in
455 dertobi123 1.12 <path>/usr/share/consolefonts/</path> (without the
456     <c>.psfu.gz</c>). <c>lat9w-16</c> has the Euro symbol.
457     </p>
458    
459 neysx 1.39 <pre caption="Setting the console font">
460 dertobi123 1.12 CONSOLEFONT="lat9w-16"
461 drobbins 1.1 </pre>
462 dertobi123 1.12
463 rane 1.35 <p>
464     You should verify that <c>CONSOLEFONT</c> is in the boot runlevel:
465     </p>
466    
467     <pre caption="Verify the proper runlevel">
468     # <i>rc-update show | grep -i consolefont</i>
469     </pre>
470    
471     <p>
472     If no runlevel is displayed for <c>CONSOLEFONT</c>, then add it to the proper level:
473     </p>
474    
475     <pre caption="Add consolefont to boot">
476     # <i>rc-update add consolefont boot</i>
477     </pre>
478    
479 dertobi123 1.12 </body>
480 drobbins 1.1 </section>
481     </chapter>
482    
483     <chapter>
484 dertobi123 1.12 <title>The Euro Symbol in X</title>
485 drobbins 1.1 <section>
486 dertobi123 1.12 <title>Most Applications</title>
487     <body>
488    
489     <p>
490     Getting the Euro symbol to work properly in X is a little
491 cam 1.13 bit tougher. The first thing you should do is change the <c>fixed</c>
492     and <c>variable</c> definitions in
493 dertobi123 1.12 <path>/usr/X11R6/lib/X11/fonts/misc/fonts.alias</path> to end
494 cam 1.13 in <c>iso8859-15</c> instead of <c>iso8859-1</c>.
495 dertobi123 1.12 </p>
496    
497 neysx 1.39 <pre caption="Setting default X fonts">
498 dertobi123 1.12 fixed -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-15
499     variable -*-helvetica-bold-r-normal-*-*-120-*-*-*-*-iso8859-15
500 antifa 1.4 </pre>
501 dertobi123 1.12
502     <p>
503     Some applications use their own font, and you will have to
504     tell them separately to use a font with the Euro symbol. You
505     can do this at a user-specific level in
506     <path>.Xdefaults</path> (you can copy this file to
507     <path>/etc/skel/</path> for use by new users), or at a global
508     level for any application with a resource file in
509     <path>/usr/X11R6/lib/X11/app-defaults/</path> (like xterm). In
510     these files you generally have to change an existing line,
511     rather than adding a new one. To change our xterm font, for
512     instance:
513     </p>
514    
515 neysx 1.39 <pre caption="Setting fonts for xterm">
516 neysx 1.20 <comment>(in your home directory)</comment>
517 nightmorph 1.38 $ <i>echo 'XTerm*font: fixed' >> .Xresources </i>
518     $ <i>xrdb -merge .Xresources</i>
519 drobbins 1.1 </pre>
520 dertobi123 1.12
521     </body>
522 drobbins 1.1 </section>
523 dertobi123 1.12 <section>
524     <title>The Euro symbol in (X)Emacs</title>
525     <body>
526    
527     <p>
528     To use the Euro symbol in (X)Emacs, add the following to
529     <path>.Xdefaults</path>:
530     </p>
531 drobbins 1.1
532 antifa 1.4 <pre caption="setting the font for emacs">
533 dertobi123 1.12 Emacs.default.attributeFont: -*-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-15
534 drobbins 1.1 </pre>
535 dertobi123 1.12
536     <p>
537     For XEmacs (not plain Emacs), you have to do a little
538     more. In <path>/home/user/.xemacs/init.el</path>, add:
539     </p>
540    
541 antifa 1.4 <pre caption="setting the font for xemacs">
542 neysx 1.39 (define-key global-map '(EuroSign) '[€])
543 drobbins 1.1 </pre>
544 dertobi123 1.12
545     <note>
546     The symbol in the []s is the Euro symbol.
547     </note>
548    
549     </body>
550     </section>
551     <section>
552 flammie 1.32 <title>OpenOffice.Org</title>
553 dertobi123 1.12 <body>
554    
555     <p>
556 nightmorph 1.36 The current stable <c>app-office/openoffice</c> and
557     <c>app-office/openoffice-bin</c> ebuilds support the <uri
558     link="#variables">LINGUAS variable</uri> for selecting installed GUI language
559     packs. To see the status of GUI translation, hyphenation, spell checking and
560     other localisations on your language, please refer to <uri
561     link="http://l10n.openoffice.org/languages.html">OpenOffice.Org localisation
562     web site</uri>.
563 dertobi123 1.12 </p>
564    
565     </body>
566 bennyc 1.8 </section>
567 drobbins 1.1 </chapter>
568    
569     </guide>

  ViewVC Help
Powered by ViewVC 1.1.20