/[gentoo]/xml/htdocs/doc/en/guide-localization.xml
Gentoo

Diff of /xml/htdocs/doc/en/guide-localization.xml

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 1.18 Revision 1.39
1<?xml version='1.0' encoding='UTF-8'?> 1<?xml version='1.0' encoding='UTF-8'?>
2<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/guide-localization.xml,v 1.18 2005/02/05 14:53:36 swift Exp $ --> 2<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/guide-localization.xml,v 1.39 2006/05/25 16:22:37 neysx Exp $ -->
3<!DOCTYPE guide SYSTEM "/dtd/guide.dtd"> 3<!DOCTYPE guide SYSTEM "/dtd/guide.dtd">
4 4
5<guide link="/doc/en/guide-localization.xml"> 5<guide link="/doc/en/guide-localization.xml">
6<title>Gentoo Linux Localization Guide</title> 6<title>Gentoo Linux Localization Guide</title>
7<author title="Author"> 7<author title="Author">
24</author> 24</author>
25 25
26<abstract> 26<abstract>
27This guide should help users localize their Gentoo Linux distribution to any 27This guide should help users localize their Gentoo Linux distribution to any
28European locale. It uses Germany as a case-study, since it is translated from 28European locale. It uses Germany as a case-study, since it is translated from
29the German doc. Includes configuration for use of the Euro currency symbol. 29the German doc. Includes configuration for use of the euro currency symbol.
30</abstract> 30</abstract>
31 31
32<version>1.13</version> 32<version>1.29</version>
33<date>2005-02-05</date> 33<date>2006-05-25</date>
34 34
35<chapter> 35<chapter>
36<title>Timezone</title> 36<title>Time zone</title>
37<section> 37<section>
38<body> 38<body>
39 39
40<p> 40<p>
41In order to keep time properly, <path>/etc/localtime</path> must point to 41In order to keep time properly, <path>/etc/localtime</path> must contain the
42the correct time zone data file. Look around in 42correct time zone data. Look around in <path>/usr/share/zoneinfo/</path>
43<path>/usr/share/zoneinfo/</path> and pick your timezone or a near-by big city. 43and 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
45indicate the expected zones. For instance, <path>GMT-8</path> is in fact GMT+8.
44</p> 46</p>
45 47
46<pre caption="setting the timezone"> 48<pre caption="Setting the timezone">
47# <i>ln -sf /usr/share/zoneinfo/Europe/Berlin /etc/localtime</i> 49# <i>cp /usr/share/zoneinfo/Europe/Berlin /etc/localtime</i>
48# <i>date</i> 50# <i>date</i>
49Sun Feb 16 08:26:44 CET 2003 51Sun Feb 16 08:26:44 CET 2003
50</pre> 52</pre>
51 53
52<note> 54<note>
64</body> 66</body>
65</section> 67</section>
66</chapter> 68</chapter>
67 69
68<chapter> 70<chapter>
69<title>System Clock</title> 71<title>Hardware Clock</title>
70<section> 72<section>
71<body> 73<body>
72 74
73<p> 75<p>
74In most Gentoo Linux installations, your system clock is set to 76In most Gentoo Linux installations, your hardware clock is set to
75UTC (or GMT, Greenwhich Mean Time) and then your timezone is 77UTC (or GMT, Greenwich Mean Time) and then your timezone is
76taken into account to determine the actual, local time. If, 78taken into account to determine the actual, local time. If,
77for some reason, you need your system clock not to be in UTC, 79for some reason, you need your hardware clock not to be in UTC,
78you will need to edit <path>/etc/rc.conf</path> and change the 80you will need to edit <path>/etc/conf.d/clock</path> and change the
79value of <c>CLOCK</c>. 81value of <c>CLOCK</c> from <c>UTC</c> to <c>local</c>.
80</p> 82</p>
81 83
82<pre caption="local vs. GMT clock"> 84<pre caption="local vs. GMT clock">
83<codenote>recommended:</codenote> 85<comment>(recommended:)</comment>
84CLOCK="UTC" 86CLOCK="UTC"
85<codenote>or:</codenote> 87<comment>(or:)</comment>
86CLOCK="local" 88CLOCK="local"
87</pre> 89</pre>
88 90
89</body> 91</body>
90</section> 92</section>
99<p> 101<p>
100A Locale is a set of information that most programs use for determining 102A Locale is a set of information that most programs use for determining
101country and language specific settings. The locales and their data 103country and language specific settings. The locales and their data
102are part of the system library and can be found 104are part of the system library and can be found
103at <path>/usr/share/locale</path> on most systems. A locale name is generally 105at <path>/usr/share/locale</path> on most systems. A locale name is generally
104named <c>ab_CD</c >where <c>ab</c> is your two (or three) letter 106named <c>ab_CD</c> where <c>ab</c> is your two (or three) letter
105language code (as specified in ISO-639) and <c>CD</c> is your two letter country 107language code (as specified in ISO-639) and <c>CD</c> is your two letter country
106code (as specified in ISO-3199). 108code (as specified in ISO-3166).
107</p> 109</p>
108 110
109</body> 111</body>
110</section>
111<section> 112</section>
113<section id="variables">
112<title>Environment variables for locales</title> 114<title>Environment variables for locales</title>
113<body> 115<body>
114 116
115<p> 117<p>
116Locale settings are stored in environment variables. These are typically 118Locale settings are stored in environment variables. These are typically
136</tr> 138</tr>
137<tr> 139<tr>
138 <ti>LC_COLLATE</ti> 140 <ti>LC_COLLATE</ti>
139 <ti> 141 <ti>
140 Define alphabetical ordering of strings. This affects eg. output of sorted 142 Define alphabetical ordering of strings. This affects eg. output of sorted
141 dir listing. 143 directory listing.
142 </ti> 144 </ti>
143</tr> 145</tr>
144<tr> 146<tr>
145 <ti>LC_CTYPE</ti> 147 <ti>LC_CTYPE</ti>
146 <ti> 148 <ti>
183 individual LC_* settings above or even by LC_ALL. 185 individual LC_* settings above or even by LC_ALL.
184 </ti> 186 </ti>
185</tr> 187</tr>
186</table> 188</table>
187 189
190<note>
191Even though most programs work with LC_ALL only, some of them misbehave if
192LC_ALL is set but LANG isn't. If you want to play safe, set them <e>both</e>.
193</note>
194
188<p> 195<p>
189Most typically users only set the LANG variable and perhaps LC_CTYPE variable 196Most typically users only set the LANG variable and perhaps LC_CTYPE variable
190on user level by adding definitions to shells startup files defining 197on user level by adding definitions to shells startup files defining
191the environment variable manually from command line: 198the environment variable manually from command line:
192</p> 199</p>
193 200
194<pre caption="setting the German locale"> 201<pre caption="Setting the user locale in ~/.bashrc">
195export LANG="de_DE@euro" 202export LANG="de_DE@euro"
196</pre> 203</pre>
197 204
198<note> 205<note>
199Append <c>@euro</c> to your locale if you want to use the Euro 206Append <c>@euro</c> to your locale if you want to use the Euro
200currency symbol (&#8364;) 207currency symbol ()
201</note> 208</note>
209
210<p>
211It is also possible to set a system-wide locale for all users and programs:
212</p>
213
214<pre caption="Setting the default system locale in /etc/env.d/02locale">
215LC_ALL="de_DE@euro"
216LANG="de_DE@euro"
217</pre>
218
219<p>
220A common practice is to use only per user locale settings and leave the
221default system locale unset. In this case system locale defaults to a
222special value <c>"C"</c>, which for historical reasons maps to the English
223locale.
224</p>
202 225
203<p> 226<p>
204For message based localization to work in programs that support it, you will 227For message based localization to work in programs that support it, you will
205probably need to have programs compiled with the <c>nls</c> (Native language 228probably need to have programs compiled with the <c>nls</c> (Native language
206support) USE flag set. Most of the programs using nls also need the gettext 229support) USE flag set. Most of the programs using nls also need the gettext
207library to extract and use localized messages. Of course, Gentoo's Portage will 230library to extract and use localized messages. Of course, Portage will
208automatically install it when needed. 231automatically install it when needed.
209</p> 232</p>
233
234<p>
235Once you have set the right locale, be sure to update your environment
236variables to make your system aware of the change:
237</p>
238
239<pre caption="Update the environment">
240<comment>(For system-wide default locale:)</comment>
241# <i>env-update &amp;&amp; source /etc/profile</i>
242
243<comment>(For user-specific locale:</comment>
244$ <i>source ~/.bashrc</i>
245</pre>
246
247<p>
248After this, you will need to kill your X server by pressing
249<c>Ctrl-Alt-Backspace</c>, log out, then log in as user.
250</p>
251
252<p>
253Now, verify that the changes have taken effect:
254</p>
255
256<pre caption="Verify env changes">
257$ <i>env | grep -i LC_</i>
258</pre>
259
260<p>
261There is also additional localisation variable called LINGUAS, which affects
262to localisation files that get installed in gettext-based programs, and decides
263used localisation for some specific software packages, such as
264<c>kde-base/kde-i18n</c> and <c>app-office/openoffice</c>. The variable
265takes in <e>space</e>-separated list of language codes, and suggested
266place to set it is <path>/etc/make.conf</path>:
267</p>
268
269<pre caption="Setting LINGUAS in make.conf">
270# <i>nano -w /etc/make.conf</i>
271<comment>(Add in the LINGUAS variable. For instance,
272for German, Finnish and English:)</comment>
273LINGUAS="de fi en"
274</pre>
275
210 276
211</body> 277</body>
212</section> 278</section>
213<section> 279<section>
214<title>Generating Specific Locales</title> 280<title>Generating Specific Locales</title>
230 296
231<pre caption="Exporting the LANG variable"> 297<pre caption="Exporting the LANG variable">
232# <i>export LANG="en_US.ISO-8859-15"</i> 298# <i>export LANG="en_US.ISO-8859-15"</i>
233</pre> 299</pre>
234 300
301<p>
302Be sure to update the environment after the change:
303</p>
304
305<pre caption="Update the environment">
306# <i>env-update &amp;&amp; source /etc/profile</i>
307</pre>
308
309<p>
310After this, you will need to kill your X server by pressing
311<c>Ctrl-Alt-Backspace</c>, log out, then log in as user.
312</p>
313
235</body> 314</body>
236</section> 315</section>
237<section> 316<section>
238<title>The userlocales USE flag</title> 317<title>The userlocales USE flag</title>
239<body> 318<body>
240 319
241<p> 320<p>
242You will probably only use one or maybe two locales on your system. Up until now 321You will probably only use one or maybe two locales on your system. Up until now
243after compiling <c>glibc</c> a full set of all available locales has been 322after compiling <c>glibc</c> a full set of all available locales has been
244created. As of now you can activate the <c>userlocales</c> USE flag und specify 323created. As of now you can activate the <c>userlocales</c> USE flag and specify
245only the locales you will need in <path>/etc/locales.build</path>. 324only the locales you will need in <path>/etc/locales.build</path>.
246</p> 325</p>
247 326
248<pre caption="Activate the userlocales USE flag especially for glibc"> 327<pre caption="Activate the userlocales USE flag especially for glibc">
249echo "sys-libs/glibc userlocales" >> /etc/portage/package.use 328echo "sys-libs/glibc userlocales" >> /etc/portage/package.use
274<section> 353<section>
275<body> 354<body>
276 355
277<p> 356<p>
278The keyboard layout used by the console is set in 357The keyboard layout used by the console is set in
279<path>/etc/rc.conf</path> by the <c>KEYMAP</c> variable. 358<path>/etc/conf.d/keymaps</path> by the <c>KEYMAP</c> variable.
280Valid values can be found in 359Valid values can be found in
281<path>/usr/share/keymaps/<c>{arch}</c>/</path>. 360<path>/usr/share/keymaps/<c>{arch}</c>/</path>.
282<path>i386</path> has further subdivisions into layout 361<path>i386</path> has further subdivisions into layout
283(<path>qwerty/</path>, <path>azerty/</path>, etc.). Some 362(<path>qwerty/</path>, <path>azerty/</path>, etc.). Some
284languages have multiple options, so you may wish to experiment 363languages have multiple options, so you may wish to experiment
285to decide which one fits your needs best. 364to decide which one fits your needs best.
286</p> 365</p>
287 366
288<pre caption="setting the console keymap"> 367<pre caption="Setting the console keymap">
289KEYMAP="de" 368KEYMAP="de"
290KEYMAP="de-latin1" 369KEYMAP="de-latin1"
291KEYMAP="de-latin1-nodeadkeys" 370KEYMAP="de-latin1-nodeadkeys"
292</pre> 371</pre>
293 372
300<section> 379<section>
301<body> 380<body>
302 381
303<p> 382<p>
304The keyboard layout to be used by the X server is specified 383The keyboard layout to be used by the X server is specified
305in <path>/etc/X11/XF86Config</path> by the <c>XkbLayout</c> 384in <path>/etc/X11/xorg.conf</path> by the <c>XkbLayout</c>
306option. 385option.
307</p> 386</p>
308 387
309<pre caption="setting the X keymap"> 388<pre caption="Setting the X keymap">
310 Section "InputDevice" 389 Section "InputDevice"
311 Identifier "Keyboard1" 390 Identifier "Keyboard1"
312 ... 391 ...
313 Option "XkbLayout" "de" 392 Option "XkbLayout" "de"
314 # Option "XkbVariant" "nodeadkeys" 393 #Option "XkbModel" "pc105" <comment>## this is for international keyboards.</comment>
394 # Option "XkbVariant" "nodeadkeys" <comment>## this would be used for xterm input</comment>
315 ... 395 ...
316</pre> 396</pre>
317 397
398<p>
399If you have an international keyboard layout, you should set the option
400<c>XkbModel</c> to <c>pc102</c> or <c>pc105</c>, as this will allow mapping of the
401additional keys specific to your keyboard.
402</p>
403
404<p>
405Deadkeys allow you to press keys that will not show immediately but will be
406combined with another letter to produce a single character such as é,è,á,à,
407etc. Setting <c>XkbVariant</c> to <c>nodeadkeys</c> allows input these special
408characters into X terminals.
409</p>
410
411<p>
412If you would like to switch between more than one keyboard layout (for example
413English and Russian), all you have to do is add a few lines to
414<path>xorg.conf</path> that specify the desired layouts and the shortcut
415command.
416</p>
417
418<pre caption="Switching between two keyboard layouts">
419 Section "InputDevice"
420 Identifier "Keyboard1"
421 ...
422 Option "XkbLayout" "us,ru"
423 Option "XkbOptions" "grp:alt_shift_toggle,grp_led:scroll"
424</pre>
425
426<p>
427Here, <c>XkbOptions</c> allows you to toggle between keyboard layouts by simply
428pressing <c>Alt-Shift</c>. This will also toggle the Scroll Lock light on or
429off, thanks to the <c>grp_led:scroll</c> option. This is a handy visual
430indicator of which keyboard layout you are using at the moment.
431</p>
432
318</body> 433</body>
319</section> 434</section>
320</chapter> 435</chapter>
321 436
322<chapter> 437<chapter>
323<title>KDE</title> 438<title>KDE</title>
324<section> 439<section>
325<body> 440<body>
326 441
327<p> 442<p>
328For KDE you have to install the kde-i18n package with the appropriate 443For KDE you have to install the <c>kde-base/kde-i18n</c> package. Kde-i18n
329LINGUAS environment variable set:</p> 444respects <uri link="#variables">LINGUAS variable</uri> described earlier.
330
331<pre caption="Install localized KDE">
332# <i>LINGUAS="de" emerge kde-i18n</i>
333</pre> 445</p>
334 446
335</body> 447</body>
336</section> 448</section>
337</chapter> 449</chapter>
338 450
342<body> 454<body>
343 455
344<p> 456<p>
345In order to get your console to display the Euro symbol, you 457In order to get your console to display the Euro symbol, you
346will need to set <c>CONSOLEFONT</c> in 458will need to set <c>CONSOLEFONT</c> in
347<path>/etc/rc.conf</path> to a file found in 459<path>/etc/conf.d/consolefont</path> to a file found in
348<path>/usr/share/consolefonts/</path> (without the 460<path>/usr/share/consolefonts/</path> (without the
349<c>.psfu.gz</c>). <c>lat9w-16</c> has the Euro symbol. 461<c>.psfu.gz</c>). <c>lat9w-16</c> has the Euro symbol.
350</p> 462</p>
351 463
352<pre caption="setting the console font"> 464<pre caption="Setting the console font">
353CONSOLEFONT="lat9w-16" 465CONSOLEFONT="lat9w-16"
466</pre>
467
468<p>
469You should verify that <c>CONSOLEFONT</c> is in the boot runlevel:
470</p>
471
472<pre caption="Verify the proper runlevel">
473# <i>rc-update show | grep -i consolefont</i>
474</pre>
475
476<p>
477If no runlevel is displayed for <c>CONSOLEFONT</c>, then add it to the proper level:
478</p>
479
480<pre caption="Add consolefont to boot">
481# <i>rc-update add consolefont boot</i>
354</pre> 482</pre>
355 483
356</body> 484</body>
357</section> 485</section>
358</chapter> 486</chapter>
369and <c>variable</c> definitions in 497and <c>variable</c> definitions in
370<path>/usr/X11R6/lib/X11/fonts/misc/fonts.alias</path> to end 498<path>/usr/X11R6/lib/X11/fonts/misc/fonts.alias</path> to end
371in <c>iso8859-15</c> instead of <c>iso8859-1</c>. 499in <c>iso8859-15</c> instead of <c>iso8859-1</c>.
372</p> 500</p>
373 501
374<pre caption="setting default X fonts"> 502<pre caption="Setting default X fonts">
375fixed -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-15 503fixed -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-15
376variable -*-helvetica-bold-r-normal-*-*-120-*-*-*-*-iso8859-15 504variable -*-helvetica-bold-r-normal-*-*-120-*-*-*-*-iso8859-15
377</pre> 505</pre>
378 506
379<p> 507<p>
387these files you generally have to change an existing line, 515these files you generally have to change an existing line,
388rather than adding a new one. To change our xterm font, for 516rather than adding a new one. To change our xterm font, for
389instance: 517instance:
390</p> 518</p>
391 519
392<pre caption="setting fonts for xterm"> 520<pre caption="Setting fonts for xterm">
393<codenote>(in your home directory)</codenote> 521<comment>(in your home directory)</comment>
394# <i>echo 'XTerm*font: fixed' >> .Xresources </i> 522$ <i>echo 'XTerm*font: fixed' >> .Xresources </i>
395# <i>xrdb -merge .Xresources</i> 523$ <i>xrdb -merge .Xresources</i>
396</pre> 524</pre>
397 525
398</body> 526</body>
399</section> 527</section>
400<section> 528<section>
414For XEmacs (not plain Emacs), you have to do a little 542For XEmacs (not plain Emacs), you have to do a little
415more. In <path>/home/user/.xemacs/init.el</path>, add: 543more. In <path>/home/user/.xemacs/init.el</path>, add:
416</p> 544</p>
417 545
418<pre caption="setting the font for xemacs"> 546<pre caption="setting the font for xemacs">
419(define-key global-map '(EuroSign) '[&#8364;]) 547(define-key global-map '(EuroSign) '[])
420</pre> 548</pre>
421 549
422<note> 550<note>
423The symbol in the []s is the Euro symbol. 551The symbol in the []s is the Euro symbol.
424</note> 552</note>
425 553
426</body> 554</body>
427</section> 555</section>
428<section> 556<section>
429<title>Language for OpenOffice</title> 557<title>OpenOffice.Org</title>
430<body> 558<body>
431 559
432<note>
433Customized default language is not available for openoffice-bin ebuild. The
434default language in the openoffice-bin is ENUS.
435</note>
436
437<p>
438The default language for OpenOffice is set as "ENUS"(01). If you wish to
439change the default language for OpenOffice, check the ebuild for the
440default language code.
441</p> 560<p>
442 561The current stable <c>app-office/openoffice</c> and
443<pre caption="emerge openoffice with desired default language"> 562<c>app-office/openoffice-bin</c> ebuilds support the <uri
444# <i>LANGUAGE="01" emerge openoffice</i> 563link="#variables">LINGUAS variable</uri> for selecting installed GUI language
445<comment>01 is the ENUS language code for openoffice</comment> 564packs. To see the status of GUI translation, hyphenation, spell checking and
565other localisations on your language, please refer to <uri
566link="http://l10n.openoffice.org/languages.html">OpenOffice.Org localisation
567web site</uri>.
446</pre> 568</p>
447 569
448</body> 570</body>
449</section> 571</section>
450</chapter> 572</chapter>
451 573

Legend:
Removed from v.1.18  
changed lines
  Added in v.1.39

  ViewVC Help
Powered by ViewVC 1.1.20