/[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.61 - (hide annotations) (download) (as text)
Sun Feb 14 20:24:37 2010 UTC (4 years, 7 months ago) by nightmorph
Branch: MAIN
Changes since 1.60: +3 -40 lines
File MIME type: application/xml
Remove deprecated localedef section in favor of just using locale-gen. bug 305131; thanks vapier for reporting.

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

  ViewVC Help
Powered by ViewVC 1.1.20