/[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.28 Revision 1.43
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.28 2005/06/24 18:04:15 fox2mike Exp $ --> 2<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/guide-localization.xml,v 1.43 2006/07/19 11:46:29 rane 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">
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.19</version> 32<version>1.31</version>
33<date>2005-06-24</date> 33<date>2006-07-18</date>
34 34
35<chapter> 35<chapter>
36<title>Time zone</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>
53Make sure that the three-letter timezone indicator (in this case "CET") 55Make sure that the timezone indicator (in this case "CET")
54is correct for your area. 56is correct for your area.
55</note> 57</note>
56 58
57<note> 59<note>
58You can set the value of <c>TZ</c> to be everything after the 60You can set the value of <c>TZ</c> to be everything after the
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
117set in the <path>/etc/env.d/02locale</path> (for system-wide 119set in the <path>/etc/env.d/02locale</path> (for system-wide
118settings) and <path>~/.bashrc</path> (for user-specific settings) file. 120settings) and <path>~/.bashrc</path> (for user-specific settings) file.
119The variables controlling different aspects of locale settings 121The variables controlling different aspects of locale settings
120are given in the table below, those with highest precedence (ie. those 122are given in the table below, those with highest precedence (i.e. those
121that override settings below them) are at the top of the table. All variables 123that override settings below them) are at the top of the table. All variables
122take one name of a locale in <c>ab_CD</c> format given above. 124take one name of a locale in <c>ab_CD</c> format given above.
123</p> 125</p>
124 126
125<table> 127<table>
135 </ti> 137 </ti>
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 e.g. output of sorted
141 directory 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>
194Most 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
195on user level by adding definitions to shells startup files defining 197on user level by adding definitions to shells startup files defining
196the environment variable manually from command line: 198the environment variable manually from command line:
197</p> 199</p>
198 200
199<pre caption="setting the German locale"> 201<pre caption="Setting the user locale in ~/.bashrc">
200export LANG="de_DE@euro" 202export LANG="de_DE@euro"
201</pre> 203</pre>
202 204
203<note> 205<note>
204Append <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
205currency symbol (&#8364;) 207currency symbol ()
206</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>
207 225
208<p> 226<p>
209For 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
210probably 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
211support) 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
212library to extract and use localized messages. Of course, Gentoo's Portage will 230library to extract and use localized messages. Of course, Portage will
213automatically install it when needed. 231automatically install it when needed.
214</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
215 276
216</body> 277</body>
217</section> 278</section>
218<section> 279<section>
219<title>Generating Specific Locales</title> 280<title>Generating Specific Locales</title>
235 296
236<pre caption="Exporting the LANG variable"> 297<pre caption="Exporting the LANG variable">
237# <i>export LANG="en_US.ISO-8859-15"</i> 298# <i>export LANG="en_US.ISO-8859-15"</i>
238</pre> 299</pre>
239 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
240</body> 314</body>
241</section>
242<section> 315</section>
243<title>The userlocales USE flag</title> 316<section>
317<title>Generating locales for glibc</title>
244<body> 318<body>
245 319
246<p> 320<p>
247You 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. You can
248after compiling <c>glibc</c> a full set of all available locales has been
249created. As of now you can activate the <c>userlocales</c> USE flag and specify
250only the locales you will need in <path>/etc/locales.build</path>. 322specify locales you will need in <path>/etc/locale.gen</path>.
251</p>
252
253<pre caption="Activate the userlocales USE flag especially for glibc">
254echo "sys-libs/glibc userlocales" >> /etc/portage/package.use
255</pre>
256
257<p> 323</p>
258Now specify the locales you want to be able to use:
259</p>
260 324
261<pre caption="Adding locales to /etc/locales.build"> 325<pre caption="Adding locales to /etc/locale.gen">
262en_US/ISO-8859-1 326en_GB ISO-8859-1
263en_US.UTF-8/UTF-8 327en_GB.UTF-8 UTF-8
264de_DE/ISO-8859-1 328de_DE ISO-8859-1
265de_DE@euro/ISO-8859-15 329de_DE@euro ISO-8859-15
266</pre> 330</pre>
267 331
268<p>
269The next step is to re-compile <c>glibc</c>. Of course you can defer this until
270the next <c>glibc</c> upgrade is available.
271</p> 332<p>
333The next step is to run <c>locale-gen</c>. It will generate all the locales you
334have specified in the <path>/etc/locale.gen</path> file.
335</p>
336
337<note>
338<c>locale-gen</c> is available in <c>glibc-2.3.6-r4</c> and newer. If you have
339an older version of glibc, you should update it now.
340</note>
272 341
273</body> 342</body>
274</section> 343</section>
275</chapter> 344</chapter>
276 345
288(<path>qwerty/</path>, <path>azerty/</path>, etc.). Some 357(<path>qwerty/</path>, <path>azerty/</path>, etc.). Some
289languages have multiple options, so you may wish to experiment 358languages have multiple options, so you may wish to experiment
290to decide which one fits your needs best. 359to decide which one fits your needs best.
291</p> 360</p>
292 361
293<pre caption="setting the console keymap"> 362<pre caption="Setting the console keymap">
294KEYMAP="de" 363KEYMAP="de"
295KEYMAP="de-latin1" 364KEYMAP="de-latin1"
296KEYMAP="de-latin1-nodeadkeys" 365KEYMAP="de-latin1-nodeadkeys"
297</pre> 366</pre>
298 367
309The keyboard layout to be used by the X server is specified 378The keyboard layout to be used by the X server is specified
310in <path>/etc/X11/xorg.conf</path> by the <c>XkbLayout</c> 379in <path>/etc/X11/xorg.conf</path> by the <c>XkbLayout</c>
311option. 380option.
312</p> 381</p>
313 382
314<pre caption="setting the X keymap"> 383<pre caption="Setting the X keymap">
315 Section "InputDevice" 384 Section "InputDevice"
316 Identifier "Keyboard1" 385 Identifier "Keyboard1"
317 ... 386 ...
318 Option "XkbLayout" "de" 387 Option "XkbLayout" "de"
319 # Option "XkbVariant" "nodeadkeys" 388 #Option "XkbModel" "pc105" <comment>## this is for international keyboards.</comment>
389 # Option "XkbVariant" "nodeadkeys" <comment>## this would be used for xterm input</comment>
320 ... 390 ...
321</pre> 391</pre>
322 392
393<p>
394If you have an international keyboard layout, you should set the option
395<c>XkbModel</c> to <c>pc102</c> or <c>pc105</c>, as this will allow mapping of the
396additional keys specific to your keyboard.
397</p>
398
399<p>
400Deadkeys allow you to press keys that will not show immediately but will be
401combined with another letter to produce a single character such as é,è,á,à,
402etc. Setting <c>XkbVariant</c> to <c>nodeadkeys</c> allows input these special
403characters into X terminals.
404</p>
405
406<p>
407If you would like to switch between more than one keyboard layout (for example
408English and Russian), all you have to do is add a few lines to
409<path>xorg.conf</path> that specify the desired layouts and the shortcut
410command.
411</p>
412
413<pre caption="Switching between two keyboard layouts">
414 Section "InputDevice"
415 Identifier "Keyboard1"
416 ...
417 Option "XkbLayout" "us,ru"
418 Option "XkbOptions" "grp:alt_shift_toggle,grp_led:scroll"
419</pre>
420
421<p>
422Here, <c>XkbOptions</c> allows you to toggle between keyboard layouts by simply
423pressing <c>Alt-Shift</c>. This will also toggle the Scroll Lock light on or
424off, thanks to the <c>grp_led:scroll</c> option. This is a handy visual
425indicator of which keyboard layout you are using at the moment.
426</p>
427
323</body> 428</body>
324</section> 429</section>
325</chapter> 430</chapter>
326 431
327<chapter> 432<chapter>
328<title>KDE</title> 433<title>KDE</title>
329<section> 434<section>
330<body> 435<body>
331 436
332<p> 437<p>
333For KDE you have to install the kde-i18n package with the appropriate 438For KDE you have to install the <c>kde-base/kde-i18n</c> package. Kde-i18n
334LINGUAS variable set: 439respects <uri link="#variables">LINGUAS variable</uri> described earlier.
335</p>
336
337<pre caption="Install localized KDE">
338# <i>nano -w /etc/make.conf</i>
339<comment>(Add in the LINGUAS variable. For instance, for the German language:)</comment>
340LINGUAS="de"
341
342<comment>(Now install kde-i18n)</comment>
343# <i>emerge kde-i18n</i>
344</pre> 440</p>
345 441
346</body> 442</body>
347</section> 443</section>
348</chapter> 444</chapter>
349 445
353<body> 449<body>
354 450
355<p> 451<p>
356In order to get your console to display the Euro symbol, you 452In order to get your console to display the Euro symbol, you
357will need to set <c>CONSOLEFONT</c> in 453will need to set <c>CONSOLEFONT</c> in
358<path>/etc/rc.conf</path> to a file found in 454<path>/etc/conf.d/consolefont</path> to a file found in
359<path>/usr/share/consolefonts/</path> (without the 455<path>/usr/share/consolefonts/</path> (without the
360<c>.psfu.gz</c>). <c>lat9w-16</c> has the Euro symbol. 456<c>.psfu.gz</c>). <c>lat9w-16</c> has the Euro symbol.
361</p> 457</p>
362 458
363<pre caption="setting the console font"> 459<pre caption="Setting the console font">
364CONSOLEFONT="lat9w-16" 460CONSOLEFONT="lat9w-16"
461</pre>
462
463<p>
464You should verify that <c>CONSOLEFONT</c> is in the boot runlevel:
465</p>
466
467<pre caption="Verify the proper runlevel">
468# <i>rc-update show | grep -i consolefont</i>
469</pre>
470
471<p>
472If no runlevel is displayed for <c>CONSOLEFONT</c>, then add it to the proper level:
473</p>
474
475<pre caption="Add consolefont to boot">
476# <i>rc-update add consolefont boot</i>
365</pre> 477</pre>
366 478
367</body> 479</body>
368</section> 480</section>
369</chapter> 481</chapter>
380and <c>variable</c> definitions in 492and <c>variable</c> definitions in
381<path>/usr/X11R6/lib/X11/fonts/misc/fonts.alias</path> to end 493<path>/usr/X11R6/lib/X11/fonts/misc/fonts.alias</path> to end
382in <c>iso8859-15</c> instead of <c>iso8859-1</c>. 494in <c>iso8859-15</c> instead of <c>iso8859-1</c>.
383</p> 495</p>
384 496
385<pre caption="setting default X fonts"> 497<pre caption="Setting default X fonts">
386fixed -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-15 498fixed -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-15
387variable -*-helvetica-bold-r-normal-*-*-120-*-*-*-*-iso8859-15 499variable -*-helvetica-bold-r-normal-*-*-120-*-*-*-*-iso8859-15
388</pre> 500</pre>
389 501
390<p> 502<p>
398these files you generally have to change an existing line, 510these files you generally have to change an existing line,
399rather than adding a new one. To change our xterm font, for 511rather than adding a new one. To change our xterm font, for
400instance: 512instance:
401</p> 513</p>
402 514
403<pre caption="setting fonts for xterm"> 515<pre caption="Setting fonts for xterm">
404<comment>(in your home directory)</comment> 516<comment>(in your home directory)</comment>
405# <i>echo 'XTerm*font: fixed' >> .Xresources </i> 517$ <i>echo 'XTerm*font: fixed' >> .Xresources </i>
406# <i>xrdb -merge .Xresources</i> 518$ <i>xrdb -merge .Xresources</i>
407</pre> 519</pre>
408 520
409</body> 521</body>
410</section> 522</section>
411<section> 523<section>
425For XEmacs (not plain Emacs), you have to do a little 537For XEmacs (not plain Emacs), you have to do a little
426more. In <path>/home/user/.xemacs/init.el</path>, add: 538more. In <path>/home/user/.xemacs/init.el</path>, add:
427</p> 539</p>
428 540
429<pre caption="setting the font for xemacs"> 541<pre caption="setting the font for xemacs">
430(define-key global-map '(EuroSign) '[&#8364;]) 542(define-key global-map '(EuroSign) '[])
431</pre> 543</pre>
432 544
433<note> 545<note>
434The symbol in the []s is the Euro symbol. 546The symbol in the []s is the Euro symbol.
435</note> 547</note>
436 548
437</body> 549</body>
438</section> 550</section>
439<section> 551<section>
440<title>Language for OpenOffice.org</title> 552<title>OpenOffice.Org</title>
441<body> 553<body>
442 554
443<note>
444Customized default language is not available for openoffice-bin ebuild. The
445default language in the openoffice-bin is ENUS.
446</note>
447
448<p>
449Please note that this package now uses the LINGUAS variable to
450provide localization. The old LANGUAGE=ENUS|PORT system does <e>not</e> work
451anymore. The default language for OpenOffice.org is set as "US English". If you
452wish to change the default language for OpenOffice.org, check the ebuild for the
453default language code.
454</p> 555<p>
455 556The current stable <c>app-office/openoffice</c> and
456<pre caption="Example: emerge openoffice for german environment"> 557<c>app-office/openoffice-bin</c> ebuilds support the <uri
457# <i>nano -w /etc/make.conf</i> 558link="#variables">LINGUAS variable</uri> for selecting installed GUI language
458<comment>(Add in the LINGUAS variable. For instance, for the German language:)</comment> 559packs. To see the status of GUI translation, hyphenation, spell checking and
459LINGUAS="de" 560other localisations on your language, please refer to <uri
460 561link="http://l10n.openoffice.org/languages.html">OpenOffice.Org localisation
461<comment>(Now install openoffice)</comment> 562web site</uri>.
462# <i>emerge openoffice</i>
463</pre> 563</p>
464 564
465</body> 565</body>
466</section> 566</section>
467</chapter> 567</chapter>
468 568

Legend:
Removed from v.1.28  
changed lines
  Added in v.1.43

  ViewVC Help
Powered by ViewVC 1.1.20