/[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.36 - (show annotations) (download) (as text)
Sat Mar 11 17:56:14 2006 UTC (8 years, 6 months ago) by nightmorph
Branch: MAIN
Changes since 1.35: +10 -14 lines
File MIME type: application/xml
Updated openoffice.org linguas section for bug 124515

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

  ViewVC Help
Powered by ViewVC 1.1.20