/[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.65 - (hide annotations) (download) (as text)
Tue Jul 24 12:12:51 2012 UTC (2 years, 5 months ago) by swift
Branch: MAIN
Changes since 1.64: +4 -4 lines
File MIME type: application/xml
Fix bug #427860 - Use /etc/portage for make.conf and make.profile. Old location (/etc) is still supported, this is a heads up (new default)

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

  ViewVC Help
Powered by ViewVC 1.1.20