/[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.60 - (show annotations) (download) (as text)
Sun Nov 15 23:51:02 2009 UTC (5 years, 1 month ago) by nightmorph
Branch: MAIN
Changes since 1.59: +3 -3 lines
File MIME type: application/xml
typo

1 <?xml version='1.0' encoding='UTF-8'?>
2 <!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/guide-localization.xml,v 1.59 2009/11/15 21:01:20 nightmorph 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.45</version>
36 <date>2009-11-15</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 localtime)</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.UTF-8</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 Using LC_ALL is strongly discouraged as it can't be overridden later on. Please
210 use it only when testing and <e>never</e> set it in a startup file.
211 </warn>
212
213 <p>
214 Most typically users only set the LANG variable on the global basis. This
215 example is for a unicode German locale:
216 </p>
217
218 <pre caption="Setting the default system locale in /etc/env.d/02locale">
219 LANG="de_DE.UTF-8"
220 LC_COLLATE="C"
221 </pre>
222
223 <note>
224 Use <c>de_DE@euro</c> as your LANG if you want to use the Euro currency symbol
225 (€).
226 </note>
227
228 <p>
229 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 </p>
234
235 <pre caption="Setting the user locale in ~/.bashrc">
236 export LANG="de_DE.UTF-8"
237 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 LC_CTYPE=de_DE.UTF-8
248 </pre>
249
250 <p>
251 Using the above snippet, users will be able to see localized file names
252 properly, while not being forced to your preferred language.
253 </p>
254
255 <p>
256 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 library to extract and use localized messages. Of course, Portage will
260 automatically install it when needed.
261 </p>
262
263 <p>
264 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 <comment>(For system-wide default locale:)</comment>
270 # <i>env-update &amp;&amp; source /etc/profile</i>
271
272 <comment>(For user-specific locale:)</comment>
273 $ <i>source ~/.bashrc</i>
274 </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 $ <i>locale</i>
287 </pre>
288
289 <p>
290 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 <c>kde-base/kde-l10n</c> and <c>app-office/openoffice</c>. The variable
294 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 <pre caption="Setting LINGUAS in make.conf">
299 # <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 </body>
307 </section>
308 <section>
309 <title>Generating Specific Locales</title>
310 <body>
311
312 <p>
313 If you use a locale that isn't available by default, you should use
314 <c>localedef</c> to generate your locale. For instance:
315 </p>
316
317 <pre caption="Generating a locale using localedef">
318 # <i>localedef -c -i en_US -f ISO-8859-15 en_US.ISO-8859-15</i>
319 </pre>
320
321 <p>
322 After having generated the locale, you can export the LANG variable as you see
323 fit.
324 </p>
325
326 <pre caption="Exporting the LANG variable">
327 # <i>export LANG="en_US.ISO-8859-15"</i>
328 </pre>
329
330 <p>
331 Be sure to update the environment after the change:
332 </p>
333
334 <pre caption="Update the environment">
335 # <i>env-update &amp;&amp; source /etc/profile</i>
336 </pre>
337
338 <p>
339 After this, you will need to kill your X server by pressing
340 <c>Ctrl-Alt-Backspace</c>, log out, then log in as user.
341 </p>
342
343 </body>
344 </section>
345 <section>
346 <title>Generating locales for glibc</title>
347 <body>
348
349 <p>
350 You will probably only use one or maybe two locales on your system. You can
351 specify locales you will need in <path>/etc/locale.gen</path>.
352 </p>
353
354 <pre caption="Adding locales to /etc/locale.gen">
355 en_GB ISO-8859-1
356 en_GB.UTF-8 UTF-8
357 de_DE ISO-8859-1
358 de_DE@euro ISO-8859-15
359 </pre>
360
361 <p>
362 The next step is to run <c>locale-gen</c>. It will generate all the locales you
363 have specified in the <path>/etc/locale.gen</path> file.
364 </p>
365
366 <note>
367 <c>locale-gen</c> is available in <c>glibc-2.3.6-r4</c> and newer. If you have
368 an older version of glibc, you should update it now.
369 </note>
370
371 <p>
372 You can verify that your selected locales are available by running <c>locale
373 -a</c>.
374 </p>
375
376 </body>
377 </section>
378 </chapter>
379
380 <chapter>
381 <title>Keyboard layout for the console</title>
382 <section>
383 <body>
384
385 <p>
386 The keyboard layout used by the console is set in
387 <path>/etc/conf.d/keymaps</path> by the <c>KEYMAP</c> variable.
388 Valid values can be found in
389 <path>/usr/share/keymaps/<c>{arch}</c>/</path>.
390 <path>i386</path> has further subdivisions into layout
391 (<path>qwerty/</path>, <path>azerty/</path>, etc.). Some
392 languages have multiple options, so you may wish to experiment
393 to decide which one fits your needs best.
394 </p>
395
396 <pre caption="Setting the console keymap">
397 KEYMAP="de"
398 KEYMAP="de-latin1"
399 KEYMAP="de-latin1-nodeadkeys"
400 </pre>
401
402 </body>
403 </section>
404 </chapter>
405
406 <chapter>
407 <title>Keyboard layout for the X server</title>
408 <section>
409 <body>
410
411 <p>
412 The keyboard layout to be used by the X server is specified
413 in <path>/etc/X11/xorg.conf</path> by the <c>XkbLayout</c>
414 option.
415 </p>
416
417 <pre caption="Setting the X keymap">
418 Section "InputDevice"
419 Identifier "Keyboard1"
420 ...
421 Option "XkbLayout" "de"
422 #Option "XkbModel" "pc105" <comment>## this is for international keyboards.</comment>
423 # Option "XkbVariant" "nodeadkeys" <comment>## this would be used for xterm input</comment>
424 ...
425 </pre>
426
427 <p>
428 If you have an international keyboard layout, you should set the option
429 <c>XkbModel</c> to <c>pc102</c> or <c>pc105</c>, as this will allow mapping of the
430 additional keys specific to your keyboard.
431 </p>
432
433 <p>
434 Deadkeys allow you to press keys that will not show immediately but will be
435 combined with another letter to produce a single character such as é,è,á,à,
436 etc. Setting <c>XkbVariant</c> to <c>nodeadkeys</c> allows input these special
437 characters into X terminals.
438 </p>
439
440 <p>
441 If you would like to switch between more than one keyboard layout (for example
442 English and Russian), all you have to do is add a few lines to
443 <path>xorg.conf</path> that specify the desired layouts and the shortcut
444 command.
445 </p>
446
447 <pre caption="Switching between two keyboard layouts">
448 Section "InputDevice"
449 Identifier "Keyboard1"
450 ...
451 Option "XkbLayout" "us,ru"
452 Option "XkbOptions" "grp:alt_shift_toggle,grp_led:scroll"
453 </pre>
454
455 <p>
456 Here, <c>XkbOptions</c> allows you to toggle between keyboard layouts by simply
457 pressing <c>Alt-Shift</c>. This will also toggle the Scroll Lock light on or
458 off, thanks to the <c>grp_led:scroll</c> option. This is a handy visual
459 indicator of which keyboard layout you are using at the moment.
460 </p>
461
462 </body>
463 </section>
464 </chapter>
465
466 <chapter>
467 <title>KDE</title>
468 <section>
469 <body>
470
471 <p>
472 For KDE you have to install the <c>kde-base/kde-l10n</c> and
473 <c>app-office/koffice-l10n</c> packages. These respect the <uri
474 link="#variables">LINGUAS variable</uri> described earlier.
475 </p>
476
477 </body>
478 </section>
479 </chapter>
480
481 <chapter>
482 <title>The Euro Symbol for the Console</title>
483 <section>
484 <body>
485
486 <p>
487 In order to get your console to display the Euro symbol, you will need to set
488 <c>CONSOLEFONT</c> in <path>/etc/conf.d/consolefont</path> to a file found in
489 <path>/usr/share/consolefonts/</path> (without the <c>.psfu.gz</c>).
490 <c>lat9w-16</c> has the Euro symbol.
491 </p>
492
493 <pre caption="Setting the console font">
494 CONSOLEFONT="lat9w-16"
495 </pre>
496
497 <p>
498 You should verify that <c>CONSOLEFONT</c> is in the boot runlevel:
499 </p>
500
501 <pre caption="Verify the proper runlevel">
502 # <i>rc-update -v show | grep -i consolefont</i>
503 </pre>
504
505 <p>
506 If no runlevel is displayed for <c>CONSOLEFONT</c>, then add it to the proper level:
507 </p>
508
509 <pre caption="Add consolefont to boot">
510 # <i>rc-update add consolefont boot</i>
511 </pre>
512
513 </body>
514 </section>
515 </chapter>
516
517 <chapter>
518 <title>The Euro Symbol in X</title>
519 <section>
520 <title>Most Applications</title>
521 <body>
522
523 <p>
524 Getting the Euro symbol to work properly in X is a little bit tougher. The
525 first thing you should do is change the <c>fixed</c> and <c>variable</c>
526 definitions in <path>/usr/share/fonts/misc/fonts.alias</path> to end in
527 <c>iso8859-15</c> instead of <c>iso8859-1</c>.
528 </p>
529
530 <pre caption="Setting default X fonts">
531 fixed -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-15
532 variable -*-helvetica-bold-r-normal-*-*-120-*-*-*-*-iso8859-15
533 </pre>
534
535 <p>
536 Some applications use their own font, and you will have to tell them separately
537 to use a font with the Euro symbol. You can do this at a user-specific level in
538 <path>.Xdefaults</path> (you can copy this file to <path>/etc/skel/</path> for
539 use by new users), or at a global level for any application with a resource file
540 in <path>/usr/share/X11/app-defaults/</path> (like xterm). In these files you
541 generally have to change an existing line, rather than adding a new one. To
542 change our xterm font, for instance:
543 </p>
544
545 <pre caption="Setting fonts for xterm">
546 <comment>(in your home directory)</comment>
547 $ <i>echo 'XTerm*font: fixed' >> .Xresources </i>
548 $ <i>xrdb -merge .Xresources</i>
549 </pre>
550
551 </body>
552 </section>
553 <section>
554 <title>The Euro symbol in (X)Emacs</title>
555 <body>
556
557 <p>
558 To use the Euro symbol in (X)Emacs, add the following to
559 <path>.Xdefaults</path>:
560 </p>
561
562 <pre caption="setting the font for emacs">
563 Emacs.default.attributeFont: -*-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-15
564 </pre>
565
566 <p>
567 For XEmacs (not plain Emacs), you have to do a little
568 more. In <path>/home/user/.xemacs/init.el</path>, add:
569 </p>
570
571 <pre caption="setting the font for xemacs">
572 (define-key global-map '(EuroSign) '[€])
573 </pre>
574
575 <note>
576 The symbol in the []s is the Euro symbol.
577 </note>
578
579 </body>
580 </section>
581 <section>
582 <title>OpenOffice.Org</title>
583 <body>
584
585 <p>
586 The current stable <c>app-office/openoffice</c> and
587 <c>app-office/openoffice-bin</c> ebuilds support the <uri
588 link="#variables">LINGUAS variable</uri> for selecting installed GUI language
589 packs. To see the status of GUI translation, hyphenation, spell checking and
590 other localisations on your language, please refer to <uri
591 link="http://l10n.openoffice.org/languages.html">OpenOffice.Org localisation
592 web site</uri>.
593 </p>
594
595 </body>
596 </section>
597 </chapter>
598
599 </guide>

  ViewVC Help
Powered by ViewVC 1.1.20