/[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.51 - (show annotations) (download) (as text)
Wed Feb 11 09:02:53 2009 UTC (5 years, 10 months ago) by nightmorph
Branch: MAIN
Changes since 1.50: +9 -3 lines
File MIME type: application/xml
updated TZ stuff for bug 250717

1 <?xml version='1.0' encoding='UTF-8'?>
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">
4
5 <guide link="/doc/en/guide-localization.xml">
6 <title>Gentoo Linux Localization Guide</title>
7 <author title="Author">
8 Alexander Holler
9 </author>
10 <author title="Translator/Editor">
11 <mail link="slucy@uchicago.edu">Steven Lucy</mail>
12 </author>
13 <author title="Editor">
14 <mail link="bennyc@gentoo.org">Benny Chuang</mail>
15 </author>
16 <author title="Editor">
17 <mail link="pylon@gentoo.org">Lars Weiler</mail>
18 </author>
19 <author title="Editor">
20 <mail link="dertobi123@gentoo.org">Tobias Scherbaum</mail>
21 </author>
22 <author title="Editor">
23 <mail link="flammie@gentoo.org">Flammie Pirinen</mail>
24 </author>
25 <author title="Editor">
26 <mail link="nightmorph"/>
27 </author>
28
29 <abstract>
30 This guide should help users localize their Gentoo Linux distribution to any
31 European locale. It uses Germany as a case-study, since it is translated from
32 the German doc. Includes configuration for use of the euro currency symbol.
33 </abstract>
34
35 <version>1.39</version>
36 <date>2009-02-11</date>
37
38 <chapter>
39 <title>Time zone</title>
40 <section>
41 <body>
42
43 <p>
44 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 <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 </p>
51
52 <pre caption="Setting the timezone information">
53 # <i>ls /usr/share/zoneinfo</i>
54 <comment>(Suppose you want to use Brussels)</comment>
55 <comment>(First copy the proper zone to localetime)</comment>
56 # <i>cp /usr/share/zoneinfo/Europe/Brussels /etc/localtime</i>
57 <comment>(Now specify your timezone)</comment>
58 # <i>nano -w /etc/conf.d/clock</i>
59 TIMEZONE="Europe/Brussels"
60
61 # <i>date</i>
62 Wed Mar 8 00:46:05 CET 2006
63 </pre>
64
65 <note>
66 Make sure that the timezone indicator (in this case "CET")
67 is correct for your area.
68 </note>
69
70 <note>
71 You can set the value of <c>TZ</c> to be everything after the
72 <path>/usr/share/zoneinfo</path> in your shell rc file
73 (<path>.bash_profile</path> for bash) for a user-level setting. In this case
74 <c>TZ="Europe/Berlin"</c>.
75 </note>
76
77 </body>
78 </section>
79 </chapter>
80
81 <chapter>
82 <title>Hardware Clock</title>
83 <section>
84 <body>
85
86 <p>
87 In most Gentoo Linux installations, your hardware clock is set to
88 UTC (or GMT, Greenwich Mean Time) and then your timezone is
89 taken into account to determine the actual, local time. If,
90 for some reason, you need your hardware clock not to be in UTC,
91 you will need to edit <path>/etc/conf.d/clock</path> and change the
92 value of <c>CLOCK</c> from <c>UTC</c> to <c>local</c>.
93 </p>
94
95 <pre caption="local vs. GMT clock">
96 <comment>(recommended:)</comment>
97 CLOCK="UTC"
98 <comment>(or:)</comment>
99 CLOCK="local"
100 </pre>
101
102 </body>
103 </section>
104 </chapter>
105
106 <chapter>
107 <title>Locale system</title>
108 <section>
109 <title>What are locales?</title>
110 <body>
111
112 <p>
113 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 appended to locale names, e.g. <c>en_GB.utf8</c> or <c>de_DE@euro</c>. Please
120 explore <uri link="http://en.wikipedia.org/wiki/Locale">Wikipedia</uri> to read
121 more about locales and related articles.
122 </p>
123
124 </body>
125 </section>
126 <section id="variables">
127 <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 are given in the table below. All of them
136 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 <ti>LANG</ti>
146 <ti>
147 Defines all locale settings at once, while allowing further individual
148 customization via the LC_* settings below.
149 </ti>
150 </tr>
151 <tr>
152 <ti>LC_COLLATE</ti>
153 <ti>
154 Define alphabetical ordering of strings. This affects e.g. output of sorted
155 directory listing.
156 </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 <ti>LC_ALL</ti>
195 <ti>
196 A special variable for overriding all other settings.
197 </ti>
198 </tr>
199 </table>
200
201 <note>
202 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 </note>
207
208 <warn>
209 For the same reason, using LC_ALL is strongly discouraged. Please use it only
210 when testing and never set it in a startup file.
211 </warn>
212
213 <p>
214 Most typically users only set the LANG variable on the global basis:
215 </p>
216
217 <pre caption="Setting the default system locale in /etc/env.d/02locale">
218 LANG="de_DE.utf8@euro"
219 LC_COLLATE="C"
220 </pre>
221
222 <note>
223 Append <c>@euro</c> to your locale if you want to use the Euro
224 currency symbol (€)
225 </note>
226
227 <p>
228 It's also possible, and pretty common especially in a more traditional UNIX
229 environment, to leave the global settings unchanged, i.e. in the "<c>C</c>"
230 locale. Users can still specify their preferred locale in their own shell RC
231 file:
232 </p>
233
234 <pre caption="Setting the user locale in ~/.bashrc">
235 export LANG="de_DE.utf8@euro"
236 export LC_COLLATE="C"
237 </pre>
238
239 <p>
240 Another way of configuring system is to leave it in the default C locale, but
241 enable UTF-8 character representation at the same time. This option is achieved
242 using the following settings in <path>/etc/env.d/02locale</path>:
243 </p>
244
245 <pre caption="Using traditional C locale while specifying UTF-8">
246 LC_CTYPE=de_DE.utf8
247 </pre>
248
249 <p>
250 Using the above snippet, users will be able to see localized file names
251 properly, while not being forced to your preferred language.
252 </p>
253
254 <p>
255 For message based localization to work in programs that support it, you will
256 probably need to have programs compiled with the <c>nls</c> (Native language
257 support) USE flag set. Most of the programs using nls also need the gettext
258 library to extract and use localized messages. Of course, Portage will
259 automatically install it when needed.
260 </p>
261
262 <p>
263 Once you have set the right locale, be sure to update your environment
264 variables to make your system aware of the change:
265 </p>
266
267 <pre caption="Update the environment">
268 <comment>(For system-wide default locale:)</comment>
269 # <i>env-update &amp;&amp; source /etc/profile</i>
270
271 <comment>(For user-specific locale:)</comment>
272 $ <i>source ~/.bashrc</i>
273 </pre>
274
275 <p>
276 After this, you will need to kill your X server by pressing
277 <c>Ctrl-Alt-Backspace</c>, log out, then log in as user.
278 </p>
279
280 <p>
281 Now, verify that the changes have taken effect:
282 </p>
283
284 <pre caption="Verify env changes">
285 $ <i>locale</i>
286 </pre>
287
288 <p>
289 There is also additional localisation variable called LINGUAS, which affects
290 to localisation files that get installed in gettext-based programs, and decides
291 used localisation for some specific software packages, such as
292 <c>kde-base/kde-i18n</c> and <c>app-office/openoffice</c>. The variable
293 takes in <e>space</e>-separated list of language codes, and suggested
294 place to set it is <path>/etc/make.conf</path>:
295 </p>
296
297 <pre caption="Setting LINGUAS in make.conf">
298 # <i>nano -w /etc/make.conf</i>
299 <comment>(Add in the LINGUAS variable. For instance,
300 for German, Finnish and English:)</comment>
301 LINGUAS="de fi en"
302 </pre>
303
304
305 </body>
306 </section>
307 <section>
308 <title>Generating Specific Locales</title>
309 <body>
310
311 <p>
312 If you use a locale that isn't available by default, you should use
313 <c>localedef</c> to generate your locale. For instance:
314 </p>
315
316 <pre caption="Generating a locale using localedef">
317 # <i>localedef -c -i en_US -f ISO-8859-15 en_US.ISO-8859-15</i>
318 </pre>
319
320 <p>
321 After having generated the locale, you can export the LANG variable as you see
322 fit.
323 </p>
324
325 <pre caption="Exporting the LANG variable">
326 # <i>export LANG="en_US.ISO-8859-15"</i>
327 </pre>
328
329 <p>
330 Be sure to update the environment after the change:
331 </p>
332
333 <pre caption="Update the environment">
334 # <i>env-update &amp;&amp; source /etc/profile</i>
335 </pre>
336
337 <p>
338 After this, you will need to kill your X server by pressing
339 <c>Ctrl-Alt-Backspace</c>, log out, then log in as user.
340 </p>
341
342 </body>
343 </section>
344 <section>
345 <title>Generating locales for glibc</title>
346 <body>
347
348 <p>
349 You will probably only use one or maybe two locales on your system. You can
350 specify locales you will need in <path>/etc/locale.gen</path>.
351 </p>
352
353 <pre caption="Adding locales to /etc/locale.gen">
354 en_GB ISO-8859-1
355 en_GB.UTF-8 UTF-8
356 de_DE ISO-8859-1
357 de_DE@euro ISO-8859-15
358 </pre>
359
360 <p>
361 The next step is to run <c>locale-gen</c>. It will generate all the locales you
362 have specified in the <path>/etc/locale.gen</path> file.
363 </p>
364
365 <note>
366 <c>locale-gen</c> is available in <c>glibc-2.3.6-r4</c> and newer. If you have
367 an older version of glibc, you should update it now.
368 </note>
369
370 <p>
371 You can verify that your selected locales are available by running <c>locale
372 -a</c>.
373 </p>
374
375 </body>
376 </section>
377 </chapter>
378
379 <chapter>
380 <title>Keyboard layout for the console</title>
381 <section>
382 <body>
383
384 <p>
385 The keyboard layout used by the console is set in
386 <path>/etc/conf.d/keymaps</path> by the <c>KEYMAP</c> variable.
387 Valid values can be found in
388 <path>/usr/share/keymaps/<c>{arch}</c>/</path>.
389 <path>i386</path> has further subdivisions into layout
390 (<path>qwerty/</path>, <path>azerty/</path>, etc.). Some
391 languages have multiple options, so you may wish to experiment
392 to decide which one fits your needs best.
393 </p>
394
395 <pre caption="Setting the console keymap">
396 KEYMAP="de"
397 KEYMAP="de-latin1"
398 KEYMAP="de-latin1-nodeadkeys"
399 </pre>
400
401 </body>
402 </section>
403 </chapter>
404
405 <chapter>
406 <title>Keyboard layout for the X server</title>
407 <section>
408 <body>
409
410 <p>
411 The keyboard layout to be used by the X server is specified
412 in <path>/etc/X11/xorg.conf</path> by the <c>XkbLayout</c>
413 option.
414 </p>
415
416 <pre caption="Setting the X keymap">
417 Section "InputDevice"
418 Identifier "Keyboard1"
419 ...
420 Option "XkbLayout" "de"
421 #Option "XkbModel" "pc105" <comment>## this is for international keyboards.</comment>
422 # Option "XkbVariant" "nodeadkeys" <comment>## this would be used for xterm input</comment>
423 ...
424 </pre>
425
426 <p>
427 If you have an international keyboard layout, you should set the option
428 <c>XkbModel</c> to <c>pc102</c> or <c>pc105</c>, as this will allow mapping of the
429 additional keys specific to your keyboard.
430 </p>
431
432 <p>
433 Deadkeys allow you to press keys that will not show immediately but will be
434 combined with another letter to produce a single character such as é,è,á,à,
435 etc. Setting <c>XkbVariant</c> to <c>nodeadkeys</c> allows input these special
436 characters into X terminals.
437 </p>
438
439 <p>
440 If you would like to switch between more than one keyboard layout (for example
441 English and Russian), all you have to do is add a few lines to
442 <path>xorg.conf</path> that specify the desired layouts and the shortcut
443 command.
444 </p>
445
446 <pre caption="Switching between two keyboard layouts">
447 Section "InputDevice"
448 Identifier "Keyboard1"
449 ...
450 Option "XkbLayout" "us,ru"
451 Option "XkbOptions" "grp:alt_shift_toggle,grp_led:scroll"
452 </pre>
453
454 <p>
455 Here, <c>XkbOptions</c> allows you to toggle between keyboard layouts by simply
456 pressing <c>Alt-Shift</c>. This will also toggle the Scroll Lock light on or
457 off, thanks to the <c>grp_led:scroll</c> option. This is a handy visual
458 indicator of which keyboard layout you are using at the moment.
459 </p>
460
461 </body>
462 </section>
463 </chapter>
464
465 <chapter>
466 <title>KDE</title>
467 <section>
468 <body>
469
470 <p>
471 For KDE you have to install the <c>kde-base/kde-i18n</c> package. Kde-i18n
472 respects <uri link="#variables">LINGUAS variable</uri> described earlier.
473 </p>
474
475 </body>
476 </section>
477 </chapter>
478
479 <chapter>
480 <title>The Euro Symbol for the Console</title>
481 <section>
482 <body>
483
484 <p>
485 In order to get your console to display the Euro symbol, you
486 will need to set <c>CONSOLEFONT</c> in
487 <path>/etc/conf.d/consolefont</path> to a file found in
488 <path>/usr/share/consolefonts/</path> (without the
489 <c>.psfu.gz</c>). <c>lat9w-16</c> has the Euro symbol.
490 </p>
491
492 <pre caption="Setting the console font">
493 CONSOLEFONT="lat9w-16"
494 </pre>
495
496 <p>
497 You should verify that <c>CONSOLEFONT</c> is in the boot runlevel:
498 </p>
499
500 <pre caption="Verify the proper runlevel">
501 # <i>rc-update -v show | grep -i consolefont</i>
502 </pre>
503
504 <p>
505 If no runlevel is displayed for <c>CONSOLEFONT</c>, then add it to the proper level:
506 </p>
507
508 <pre caption="Add consolefont to boot">
509 # <i>rc-update add consolefont boot</i>
510 </pre>
511
512 </body>
513 </section>
514 </chapter>
515
516 <chapter>
517 <title>The Euro Symbol in X</title>
518 <section>
519 <title>Most Applications</title>
520 <body>
521
522 <p>
523 Getting the Euro symbol to work properly in X is a little bit tougher. The
524 first thing you should do is change the <c>fixed</c> and <c>variable</c>
525 definitions in <path>/usr/share/fonts/misc/fonts.alias</path> to end in
526 <c>iso8859-15</c> instead of <c>iso8859-1</c>.
527 </p>
528
529 <pre caption="Setting default X fonts">
530 fixed -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-15
531 variable -*-helvetica-bold-r-normal-*-*-120-*-*-*-*-iso8859-15
532 </pre>
533
534 <p>
535 Some applications use their own font, and you will have to tell them separately
536 to use a font with the Euro symbol. You can do this at a user-specific level in
537 <path>.Xdefaults</path> (you can copy this file to <path>/etc/skel/</path> for
538 use by new users), or at a global level for any application with a resource file
539 in <path>/usr/share/X11/app-defaults/</path> (like xterm). In these files you
540 generally have to change an existing line, rather than adding a new one. To
541 change our xterm font, for instance:
542 </p>
543
544 <pre caption="Setting fonts for xterm">
545 <comment>(in your home directory)</comment>
546 $ <i>echo 'XTerm*font: fixed' >> .Xresources </i>
547 $ <i>xrdb -merge .Xresources</i>
548 </pre>
549
550 </body>
551 </section>
552 <section>
553 <title>The Euro symbol in (X)Emacs</title>
554 <body>
555
556 <p>
557 To use the Euro symbol in (X)Emacs, add the following to
558 <path>.Xdefaults</path>:
559 </p>
560
561 <pre caption="setting the font for emacs">
562 Emacs.default.attributeFont: -*-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-15
563 </pre>
564
565 <p>
566 For XEmacs (not plain Emacs), you have to do a little
567 more. In <path>/home/user/.xemacs/init.el</path>, add:
568 </p>
569
570 <pre caption="setting the font for xemacs">
571 (define-key global-map '(EuroSign) '[€])
572 </pre>
573
574 <note>
575 The symbol in the []s is the Euro symbol.
576 </note>
577
578 </body>
579 </section>
580 <section>
581 <title>OpenOffice.Org</title>
582 <body>
583
584 <p>
585 The current stable <c>app-office/openoffice</c> and
586 <c>app-office/openoffice-bin</c> ebuilds support the <uri
587 link="#variables">LINGUAS variable</uri> for selecting installed GUI language
588 packs. To see the status of GUI translation, hyphenation, spell checking and
589 other localisations on your language, please refer to <uri
590 link="http://l10n.openoffice.org/languages.html">OpenOffice.Org localisation
591 web site</uri>.
592 </p>
593
594 </body>
595 </section>
596 </chapter>
597
598 </guide>

  ViewVC Help
Powered by ViewVC 1.1.20