/[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.69 - (show annotations) (download) (as text)
Mon Jul 22 13:59:36 2013 UTC (8 months, 4 weeks ago) by swift
Branch: MAIN
CVS Tags: HEAD
Changes since 1.68: +4 -4 lines
File MIME type: application/xml
Moved gentoo localization guide to https://wiki.gentoo.org/wiki/Localization/HOWTO

1 <?xml version='1.0' encoding='UTF-8'?>
2 <!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/guide-localization.xml,v 1.68 2013/01/15 09:06:46 nightmorph Exp $ -->
3 <!DOCTYPE guide SYSTEM "/dtd/guide.dtd">
4
5 <guide disclaimer="obsolete" redirect="https://wiki.gentoo.org/wiki/Localization/HOWTO">
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>6</version>
39 <date>2013-07-22</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 A list of locales that can be used is provided as
234 <path>/usr/portage/profiles/desc/linguas.desc</path>:
235 </p>
236
237 <pre caption="Getting usable locales for the French language">
238 $ <i>grep -i french /usr/portage/profiles/desc/linguas.desc</i>
239 fr - French locale
240 fr_CA - French locale for Canada
241 fr_FR - French locale for France
242 </pre>
243
244 <p>
245 It's also possible, and pretty common especially in a more traditional UNIX
246 environment, to leave the global settings unchanged, i.e. in the "<c>C</c>"
247 locale. Users can still specify their preferred locale in their own shell RC
248 file:
249 </p>
250
251 <pre caption="Setting the user locale in ~/.bashrc">
252 export LANG="de_DE.UTF-8"
253 export LC_COLLATE="C"
254 </pre>
255
256 <p>
257 Another way of configuring system is to leave it in the default C locale, but
258 enable UTF-8 character representation at the same time. This option is achieved
259 using the following settings in <path>/etc/env.d/02locale</path>:
260 </p>
261
262 <pre caption="Using traditional C locale while specifying UTF-8">
263 LC_CTYPE=de_DE.UTF-8
264 </pre>
265
266 <p>
267 Using the above snippet, users will be able to see localized file names
268 properly, while not being forced to your preferred language.
269 </p>
270
271 <p>
272 For message based localization to work in programs that support it, you will
273 probably need to have programs compiled with the <c>nls</c> (Native language
274 support) USE flag set. Most of the programs using nls also need the gettext
275 library to extract and use localized messages. Of course, Portage will
276 automatically install it when needed.
277 </p>
278
279 <p>
280 Once you have set the right locale, be sure to update your environment
281 variables to make your system aware of the change:
282 </p>
283
284 <pre caption="Update the environment">
285 <comment>(For system-wide default locale:)</comment>
286 # <i>env-update &amp;&amp; source /etc/profile</i>
287
288 <comment>(For user-specific locale:)</comment>
289 $ <i>source ~/.bashrc</i>
290 </pre>
291
292 <p>
293 After this, you will need to kill your X server by pressing
294 <c>Ctrl-Alt-Backspace</c>, log out, then log in as user.
295 </p>
296
297 <p>
298 Now, verify that the changes have taken effect:
299 </p>
300
301 <pre caption="Verify env changes">
302 $ <i>locale</i>
303 </pre>
304
305 <p>
306 There is also additional localisation variable called LINGUAS, which affects
307 to localisation files that get installed in gettext-based programs, and decides
308 used localisation for some specific software packages, such as
309 <c>kde-base/kde-l10n</c> and <c>app-office/libreoffice</c>. The variable
310 takes in <e>space</e>-separated list of language codes, and suggested
311 place to set it is <path>/etc/portage/make.conf</path>:
312 </p>
313
314 <pre caption="Setting LINGUAS in make.conf">
315 # <i>nano -w /etc/portage/make.conf</i>
316 <comment>(Add in the LINGUAS variable. For instance,
317 for German, Finnish and English:)</comment>
318 LINGUAS="de fi en"
319 </pre>
320
321
322 </body>
323 </section>
324 <section>
325 <title>Generating Specific Locales</title>
326 <body>
327
328 <p>
329 You will probably only use one or maybe two locales on your system. You can
330 specify locales you will need in <path>/etc/locale.gen</path>.
331 </p>
332
333 <pre caption="Adding locales to /etc/locale.gen">
334 en_GB ISO-8859-1
335 en_GB.UTF-8 UTF-8
336 de_DE ISO-8859-1
337 de_DE@euro ISO-8859-15
338 </pre>
339
340 <p>
341 The next step is to run <c>locale-gen</c>. It will generate all the locales you
342 have specified in the <path>/etc/locale.gen</path> file.
343 </p>
344
345 <note>
346 <c>locale-gen</c> is available in <c>glibc-2.3.6-r4</c> and newer. If you have
347 an older version of glibc, you should update it now.
348 </note>
349
350 <p>
351 You can verify that your selected locales are available by running <c>locale
352 -a</c>.
353 </p>
354
355 </body>
356 </section>
357 </chapter>
358
359 <chapter>
360 <title>Keyboard layout for the console</title>
361 <section>
362 <body>
363
364 <p>
365 The keyboard layout used by the console is set in
366 <path>/etc/conf.d/keymaps</path> by the <c>keymap</c> variable.
367 Valid values can be found in
368 <path>/usr/share/keymaps/<c>{arch}</c>/</path>.
369 <path>i386</path> has further subdivisions into layout
370 (<path>qwerty/</path>, <path>azerty/</path>, etc.). Some
371 languages have multiple options, so you may wish to experiment
372 to decide which one fits your needs best.
373 </p>
374
375 <pre caption="Setting the console keymap">
376 keymap="de"
377 keymap="de-latin1"
378 keymap="de-latin1-nodeadkeys"
379 </pre>
380
381 </body>
382 </section>
383 </chapter>
384
385 <chapter>
386 <title>Keyboard layout for the X server</title>
387 <section>
388 <body>
389
390 <p>
391 The keyboard layout to be used by the X server is specified
392 in <path>/etc/X11/xorg.conf</path> by the <c>XkbLayout</c>
393 option.
394 </p>
395
396 <pre caption="Setting the X keymap">
397 Section "InputClass"
398 Identifier "keyboard-all"
399 Driver "evdev"
400 Option "XkbLayout" "de"
401 #Option "XkbModel" "pc105"
402 MatchIsKeyboard "on"
403 EndSection
404 </pre>
405
406 <p>
407 If you have an international keyboard layout, you should set the option
408 <c>XkbModel</c> to <c>pc102</c> or <c>pc105</c>, as this will allow mapping of the
409 additional keys specific to your keyboard.
410 </p>
411
412 <p>
413 Deadkeys allow you to press keys that will not show immediately but will be
414 combined with another letter to produce a single character such as é,è,á,à,
415 etc. Setting <c>XkbVariant</c> to <c>nodeadkeys</c> allows input these special
416 characters into X terminals.
417 </p>
418
419 <p>
420 If you would like to switch between more than one keyboard layout (for example
421 English and Russian), all you have to do is add a few lines to
422 <path>xorg.conf</path> that specify the desired layouts and the shortcut
423 command.
424 </p>
425
426 <pre caption="Switching between two keyboard layouts">
427 Section "InputClass"
428 Identifier "keyboard-all"
429 Driver "evdev"
430 Option "XkbLayout" "us,ru"
431 Option "XkbOptions" "grp:alt_shift_toggle,grp_led:scroll"
432 MatchIsKeyboard "on"
433 EndSection
434 </pre>
435
436 <p>
437 Here, <c>XkbOptions</c> allows you to toggle between keyboard layouts by simply
438 pressing <c>Alt-Shift</c>. This will also toggle the Scroll Lock light on or
439 off, thanks to the <c>grp_led:scroll</c> option. This is a handy visual
440 indicator of which keyboard layout you are using at the moment.
441 </p>
442
443 </body>
444 </section>
445 </chapter>
446
447 <chapter>
448 <title>KDE</title>
449 <section>
450 <body>
451
452 <p>
453 For KDE you have to install the <c>kde-base/kde-l10n</c> and
454 <c>app-office/calligra-l10n</c> packages. These respect the <uri
455 link="#variables">LINGUAS variable</uri> described earlier.
456 </p>
457
458 </body>
459 </section>
460 </chapter>
461
462 <chapter>
463 <title>The Euro Symbol for the Console</title>
464 <section>
465 <body>
466
467 <p>
468 In order to get your console to display the Euro symbol, you will need to set
469 <c>consolefont</c> in <path>/etc/conf.d/consolefont</path> to a file found in
470 <path>/usr/share/consolefonts/</path> (without the <c>.psfu.gz</c>).
471 <c>lat9w-16</c> has the Euro symbol.
472 </p>
473
474 <pre caption="Setting the console font">
475 consolefont="lat9w-16"
476 </pre>
477
478 <p>
479 You should verify that <c>consolefont</c> is in the boot runlevel:
480 </p>
481
482 <pre caption="Verify the proper runlevel">
483 # <i>rc-update -v show | grep consolefont</i>
484 </pre>
485
486 <p>
487 If no runlevel is displayed for <c>consolefont</c>, then add it to the proper level:
488 </p>
489
490 <pre caption="Add consolefont to boot">
491 # <i>rc-update add consolefont boot</i>
492 </pre>
493
494 </body>
495 </section>
496 </chapter>
497
498 <chapter>
499 <title>The Euro Symbol in X</title>
500 <section>
501 <title>Most Applications</title>
502 <body>
503
504 <p>
505 Getting the Euro symbol to work properly in X is a little bit tougher. The
506 first thing you should do is change the <c>fixed</c> and <c>variable</c>
507 definitions in <path>/usr/share/fonts/misc/fonts.alias</path> to end in
508 <c>iso8859-15</c> instead of <c>iso8859-1</c>.
509 </p>
510
511 <pre caption="Setting default X fonts">
512 fixed -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-15
513 variable -*-helvetica-bold-r-normal-*-*-120-*-*-*-*-iso8859-15
514 </pre>
515
516 <p>
517 Some applications use their own font, and you will have to tell them separately
518 to use a font with the Euro symbol. You can do this at a user-specific level in
519 <path>.Xdefaults</path> (you can copy this file to <path>/etc/skel/</path> for
520 use by new users), or at a global level for any application with a resource file
521 in <path>/usr/share/X11/app-defaults/</path> (like xterm). In these files you
522 generally have to change an existing line, rather than adding a new one. To
523 change our xterm font, for instance:
524 </p>
525
526 <pre caption="Setting fonts for xterm">
527 <comment>(in your home directory)</comment>
528 $ <i>echo 'XTerm*font: fixed' >> .Xresources </i>
529 $ <i>xrdb -merge .Xresources</i>
530 </pre>
531
532 </body>
533 </section>
534 <section>
535 <title>The Euro symbol in (X)Emacs</title>
536 <body>
537
538 <p>
539 To use the Euro symbol in (X)Emacs, add the following to
540 <path>.Xdefaults</path>:
541 </p>
542
543 <pre caption="setting the font for emacs">
544 Emacs.default.attributeFont: -*-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-15
545 </pre>
546
547 <p>
548 For XEmacs (not plain Emacs), you have to do a little
549 more. In <path>/home/user/.xemacs/init.el</path>, add:
550 </p>
551
552 <pre caption="setting the font for xemacs">
553 (define-key global-map '(EuroSign) '[€])
554 </pre>
555
556 <note>
557 The symbol in the []s is the Euro symbol.
558 </note>
559
560 </body>
561 </section>
562 <section>
563 <title>LibreOffice</title>
564 <body>
565
566 <p>
567 The current stable <c>app-office/libreoffice</c> and
568 <c>app-office/libreoffice-bin</c> ebuilds support the <uri
569 link="#variables">LINGUAS variable</uri> for selecting installed GUI language
570 packs. To see the status of GUI translation, hyphenation, spell checking and
571 other localisations on your language, please refer to <uri
572 link="https://translations.documentfoundation.org/">LibreOffice translation web
573 site</uri>.
574 </p>
575
576 </body>
577 </section>
578 </chapter>
579
580 </guide>

  ViewVC Help
Powered by ViewVC 1.1.20