/[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 - (show annotations) (download) (as text)
Tue Jul 24 12:12:51 2012 UTC (23 months, 2 weeks 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 <?xml version='1.0' encoding='UTF-8'?>
2 <!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/guide-localization.xml,v 1.64 2012/05/27 22:28:07 nightmorph Exp $ -->
3 <!DOCTYPE guide SYSTEM "/dtd/guide.dtd">
4
5 <guide>
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 <author title="Editor">
29 <mail link="klondike"/>
30 </author>
31
32 <abstract>
33 This guide should help users localize their Gentoo Linux distribution to any
34 European locale. It uses Germany as a case-study, since it is translated from
35 the German doc. Includes configuration for use of the euro currency symbol.
36 </abstract>
37
38 <version>3</version>
39 <date>2012-07-24</date>
40
41 <chapter>
42 <title>Time zone</title>
43 <section>
44 <body>
45
46 <p>
47 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 <path>/etc/timezone</path>. Please avoid the
51 <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 </p>
54
55 <pre caption="Setting the timezone information">
56 # <i>ls /usr/share/zoneinfo</i>
57 <comment>(Suppose you want to use Brussels)</comment>
58 <comment>(First copy the proper zone to localtime)</comment>
59 # <i>cp /usr/share/zoneinfo/Europe/Brussels /etc/localtime</i>
60 <comment>(Now specify your timezone)</comment>
61 # <i>nano -w /etc/timezone</i>
62 Europe/Brussels
63
64 # <i>date</i>
65 Wed Mar 8 00:46:05 CET 2006
66 </pre>
67
68 <note>
69 Make sure that the timezone indicator (in this case "CET")
70 is correct for your area.
71 </note>
72
73 <note>
74 You can set the value of <c>TZ</c> to be everything after the
75 <path>/usr/share/zoneinfo</path> in your shell rc file
76 (<path>.bash_profile</path> for bash) for a user-level setting. In this case
77 <c>TZ="Europe/Berlin"</c>.
78 </note>
79
80 </body>
81 </section>
82 </chapter>
83
84 <chapter>
85 <title>Hardware Clock</title>
86 <section>
87 <body>
88
89 <p>
90 In most Gentoo Linux installations, your hardware clock is set to
91 UTC (or GMT, Greenwich Mean Time) and then your timezone is
92 taken into account to determine the actual, local time. If,
93 for some reason, you need your hardware clock not to be in UTC,
94 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 </p>
98
99 <pre caption="local vs. GMT clock">
100 <comment>(recommended:)</comment>
101 clock="UTC"
102 <comment>(or:)</comment>
103 clock="local"
104 </pre>
105
106 </body>
107 </section>
108 </chapter>
109
110 <chapter>
111 <title>Locale system</title>
112 <section>
113 <title>What are locales?</title>
114 <body>
115
116 <p>
117 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 appended to locale names, e.g. <c>en_GB.UTF-8</c> or <c>de_DE@euro</c>. Please
124 explore <uri link="http://en.wikipedia.org/wiki/Locale">Wikipedia</uri> to read
125 more about locales and related articles.
126 </p>
127
128 </body>
129 </section>
130 <section id="variables">
131 <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 are given in the table below. All of them
140 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 <ti>LANG</ti>
150 <ti>
151 Defines all locale settings at once, while allowing further individual
152 customization via the LC_* settings below.
153 </ti>
154 </tr>
155 <tr>
156 <ti>LC_COLLATE</ti>
157 <ti>
158 Define alphabetical ordering of strings. This affects e.g. output of sorted
159 directory listing.
160 </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 <ti>LC_ALL</ti>
199 <ti>
200 A special variable for overriding all other settings.
201 </ti>
202 </tr>
203 </table>
204
205 <note>
206 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 </note>
211
212 <warn>
213 Using LC_ALL is strongly discouraged as it can't be overridden later on. Please
214 use it only when testing and <e>never</e> set it in a startup file.
215 </warn>
216
217 <p>
218 Most typically users only set the LANG variable on the global basis. This
219 example is for a unicode German locale:
220 </p>
221
222 <pre caption="Setting the default system locale in /etc/env.d/02locale">
223 LANG="de_DE.UTF-8"
224 LC_COLLATE="C"
225 </pre>
226
227 <note>
228 Use <c>de_DE@euro</c> as your LANG if you want to use the Euro currency symbol
229 (€) on non UTF-8 based locales.
230 </note>
231
232 <p>
233 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 </p>
238
239 <pre caption="Setting the user locale in ~/.bashrc">
240 export LANG="de_DE.UTF-8"
241 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 LC_CTYPE=de_DE.UTF-8
252 </pre>
253
254 <p>
255 Using the above snippet, users will be able to see localized file names
256 properly, while not being forced to your preferred language.
257 </p>
258
259 <p>
260 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 library to extract and use localized messages. Of course, Portage will
264 automatically install it when needed.
265 </p>
266
267 <p>
268 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 <comment>(For system-wide default locale:)</comment>
274 # <i>env-update &amp;&amp; source /etc/profile</i>
275
276 <comment>(For user-specific locale:)</comment>
277 $ <i>source ~/.bashrc</i>
278 </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 $ <i>locale</i>
291 </pre>
292
293 <p>
294 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 <c>kde-base/kde-l10n</c> and <c>app-office/openoffice</c>. The variable
298 takes in <e>space</e>-separated list of language codes, and suggested
299 place to set it is <path>/etc/portage/make.conf</path>:
300 </p>
301
302 <pre caption="Setting LINGUAS in make.conf">
303 # <i>nano -w /etc/portage/make.conf</i>
304 <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 </body>
311 </section>
312 <section>
313 <title>Generating Specific Locales</title>
314 <body>
315
316 <p>
317 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 </p>
320
321 <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 de_DE@euro ISO-8859-15
326 </pre>
327
328 <p>
329 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 </p>
332
333 <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
338 <p>
339 You can verify that your selected locales are available by running <c>locale
340 -a</c>.
341 </p>
342
343 </body>
344 </section>
345 </chapter>
346
347 <chapter>
348 <title>Keyboard layout for the console</title>
349 <section>
350 <body>
351
352 <p>
353 The keyboard layout used by the console is set in
354 <path>/etc/conf.d/keymaps</path> by the <c>keymap</c> variable.
355 Valid values can be found in
356 <path>/usr/share/keymaps/<c>{arch}</c>/</path>.
357 <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 <pre caption="Setting the console keymap">
364 keymap="de"
365 keymap="de-latin1"
366 keymap="de-latin1-nodeadkeys"
367 </pre>
368
369 </body>
370 </section>
371 </chapter>
372
373 <chapter>
374 <title>Keyboard layout for the X server</title>
375 <section>
376 <body>
377
378 <p>
379 The keyboard layout to be used by the X server is specified
380 in <path>/etc/X11/xorg.conf</path> by the <c>XkbLayout</c>
381 option.
382 </p>
383
384 <pre caption="Setting the X keymap">
385 Section "InputClass"
386 Identifier "keyboard-all"
387 Driver "evdev"
388 Option "XkbLayout" "de"
389 #Option "XkbModel" "pc105"
390 MatchIsKeyboard "on"
391 EndSection
392 </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 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 </pre>
423
424 <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 </body>
432 </section>
433 </chapter>
434
435 <chapter>
436 <title>KDE</title>
437 <section>
438 <body>
439
440 <p>
441 For KDE you have to install the <c>kde-base/kde-l10n</c> and
442 <c>app-office/calligra-l10n</c> packages. These respect the <uri
443 link="#variables">LINGUAS variable</uri> described earlier.
444 </p>
445
446 </body>
447 </section>
448 </chapter>
449
450 <chapter>
451 <title>The Euro Symbol for the Console</title>
452 <section>
453 <body>
454
455 <p>
456 In order to get your console to display the Euro symbol, you will need to set
457 <c>consolefont</c> in <path>/etc/conf.d/consolefont</path> to a file found in
458 <path>/usr/share/consolefonts/</path> (without the <c>.psfu.gz</c>).
459 <c>lat9w-16</c> has the Euro symbol.
460 </p>
461
462 <pre caption="Setting the console font">
463 consolefont="lat9w-16"
464 </pre>
465
466 <p>
467 You should verify that <c>consolefont</c> is in the boot runlevel:
468 </p>
469
470 <pre caption="Verify the proper runlevel">
471 # <i>rc-update -v show | grep consolefont</i>
472 </pre>
473
474 <p>
475 If no runlevel is displayed for <c>consolefont</c>, then add it to the proper level:
476 </p>
477
478 <pre caption="Add consolefont to boot">
479 # <i>rc-update add consolefont boot</i>
480 </pre>
481
482 </body>
483 </section>
484 </chapter>
485
486 <chapter>
487 <title>The Euro Symbol in X</title>
488 <section>
489 <title>Most Applications</title>
490 <body>
491
492 <p>
493 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 </p>
498
499 <pre caption="Setting default X fonts">
500 fixed -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-15
501 variable -*-helvetica-bold-r-normal-*-*-120-*-*-*-*-iso8859-15
502 </pre>
503
504 <p>
505 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 </p>
513
514 <pre caption="Setting fonts for xterm">
515 <comment>(in your home directory)</comment>
516 $ <i>echo 'XTerm*font: fixed' >> .Xresources </i>
517 $ <i>xrdb -merge .Xresources</i>
518 </pre>
519
520 </body>
521 </section>
522 <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
531 <pre caption="setting the font for emacs">
532 Emacs.default.attributeFont: -*-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-15
533 </pre>
534
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 <pre caption="setting the font for xemacs">
541 (define-key global-map '(EuroSign) '[€])
542 </pre>
543
544 <note>
545 The symbol in the []s is the Euro symbol.
546 </note>
547
548 </body>
549 </section>
550 <section>
551 <title>OpenOffice.Org</title>
552 <body>
553
554 <p>
555 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 </p>
563
564 </body>
565 </section>
566 </chapter>
567
568 </guide>

  ViewVC Help
Powered by ViewVC 1.1.20