Guida alla localizzazione di Gentoo Linux
1.
Fuso Orario (Time zone)
Per avere una corretta gestione dell'ora va prima impostato il fuso orario
(timezone) così che il sistema possa sapere in quale parte del mondo si trova.
Cercare il proprio fuso orario nella directory
/usr/share/zoneinfo/, dopodichè impostarlo in modo appropriato
nel file /etc/conf.d/clock. È sconsigliabile riferirsi ai fusi
orari presenti in /usr/share/zoneinfo/Etc/GMT* poichè spesso i loro
nomi non corrispondono a ciò che in realtà sono: ad esempio GMT-8 è
di fatto GMT+8.
Codice 1.1: Impostare le informazioni del fuso orario |
# ls /usr/share/zoneinfo
# nano -w /etc/conf.d/clock
TIMEZONE="Europe/Brussels"
# date
Wed Mar 8 00:46:05 CET 2006
|
Nota:
Assicurarsi che l'indicatore del fuso orario (in questo caso "CET") sia corretto
per la propria zona.
|
Nota:
È possibile impostare il valore di TZ secondo i valori presenti in
/usr/share/zoneinfo nel file rc della propria shell
(.bash_profile per bash) agendo così a livello utente. In questo
caso TZ="Europe/Berlin".
|
2.
Orologio di sistema
In molte installazioni di Gentoo Linux, l'orologio di sistema è impostato su UTC
(o GMT, Greenwhich Mean Time), quindi viene preso il fuso orario dall'account
per determinare l'ora locale. Se per qualche ragione si desidera che il proprio
orologio di sistema non sia in UTC, va modificato il file
/etc/conf.d/clock e cambiato il valore di CLOCK da
UTC a local.
Codice 2.1: Ora locale vs. GMT |
CLOCK="UTC"
CLOCK="local"
|
3.
La localizzazione
Cosa sono le localizzazioni?
Una localizzazione è un insieme di informazioni che la maggior parte dei
programmi utilizzano per determinare le impostazioni di nazionalità e lingua. Le
localizzazioni sono parte delle librerie di sistema e si possono trovare in
/usr/share/locale nella maggior parte dei casi. Generalmente il
nome di una localizzazione ha la struttura ab_CD dove ab è il
codice di due (o tre) lettere che identifica la lingua (secondo le specifiche
ISO-639) e CD è il codice di due lettere che identifica la nazione
(secondo le specifiche ISO-3166). Le varianti sono spesso aggiunte in fondo
ai nome delle localizzazione, ad es. en_GB.utf8 o de_DE@euro.
Per maggiori informazioni sulle localizzazioni visitare
Wikipedia.
Variabili d'ambiente per la localizzazione
Le informazioni sulla lingua e la nazione sono contenute nelle variabili
d'ambiente. Queste, normalmente, sono impostate in
/etc/env.d/02locale (per l'intero sistema) ed in
~/.bashrc (per le impostazioni relative all'utente). Queste
variabili controllano aspetti differenti della localizzazione e sono elencate
nella tabella che segue, ordinate per importanza. Tutte le variabili
accettano valori secondo il formato ab_CD specificato in precedenza.
| Nome della variabile |
Spiegazione |
| LC_ALL |
Definisce tutti le impostazioni della localizzazione. Questa impostazione
scavalcherà tutte le altre impostazioni nella tabella.
|
| LC_COLLATE |
Definisce l'ordine alfabetico delle eventuali stringhe. Questo ha effetto,
per esempio, sull'output dell'elenco ordinato del contenuto di una
directory.
|
| LC_CTYPE |
Definisce come il sistema debba gestire i tipi di carattere. Questo decide
quali caratteri devono essere visti come parte dell'alfabeto, quali come
numeri e così via. Questo inoltre stabilisce quale insieme di caratteri
utilizzare, se possibile.
|
| LC_MESSAGES |
Imposta le localizzazioni dei programmi per le applicazioni che utilizzano
uno schema di localizzazione basato su messaggi (la maggior parte dei
programmi GNU, nel prossimo capitolo si vedrà quali lo fanno e come far
funzionare quelli che non lo fanno)
|
| LC_MONETARY |
Definisce la valuta e la formattazione del valore numerico della valuta
stessa.
|
| LC_NUMERIC |
Definisce la formattazione dei valori numerici che non siano di valuta.
Influisce sui separatori delle migliaia e sulle virgole nei decimali.
|
| LC_TIME |
Definisce il tipo di formattazione per data e ora
|
| LC_PAPER |
Definisce il formato predefinito della carta.
|
| LANG |
Definisce tutte le impostazioni della localizzazione. Questa variabile può
comunque essere scavalcata impostato LC_* individualmente o impostando la
variabile LC_ALL.
|
Nota:
Anche se la maggior parte dei programmi funzionano impostando semplicemente
LC_ALL, alcuni possono presentare dei malfunzionamenti se è stata impostata
LC_ALL ma non LANG. Per essere sicuri impostarle entrambe
|
La maggior parte degli utenti imposta solo le variabili LANG ed LC_CTYPE per il
proprio utente semplicemente aggiungendole ai file di avvio della shell,
definendo così le variabili d'ambiente dalla linea di comando:
Codice 3.1: Impostare la localizzazione in ~/.bashrc |
export LANG="de_DE@euro"
|
Nota:
Aggiungere anche @euro al file di avvio della shell se si vuole
utilizzare questo simbolo di valuta (€)
|
E' anche possibile impostare una localizzazione predefinita per l'intero sistema
che verrà utilizzata da tutti gli utenti e da tutte le applicazioni:
Codice 3.2: Impostare la localizzazione predefinita di sistema in /etc/env.d/02locale |
LC_ALL="de_DE@euro"
LANG="de_DE@euro"
|
Comunemente si imposta la localizzazione solo per i singoli utenti mentre per
l'intero sistema non viene definita. In questo caso la localizzazione per
l'intero sistema assume lo speciale valore "C", che per ragioni storiche
corrisponde a quella Inglese.
Perchè funzioni la localizzazione basata sui messaggi nella applicazioni che la
supportano, bisogna compilare tali programmi con la USE nls (Native
Language Support, "Supporto al Linguaggio Nativo" ndT). Molti dei programmi che
utilizzano nls hanno bisogno anche della libreria gettext per estrarre ed usare
i messaggi localizzati, ovviamente Portage la installerà quando necessaria.
Una volta impostata la localizzazione corretta, assicurarsi di aggiornare le
variabili d'ambiente per rendere effettive le modifiche:
Codice 3.3: Aggiornare l'ambiente |
# env-update && source /etc/profile
$ source ~/.bashrc
|
Fatto ciò, è necessario terminare il server X premendo
Ctrl+Alt+Backspace, effettuare il logout, e poi di nuovo il login come
utente.
Ora verificare che le modifiche siano state applicate:
Codice 3.4: Verificare le modifiche dell'ambiente |
$ env | grep -i LC_
|
Esiste inoltre una variabile addizionale chiamata LINGUAS, che influisce sui
file di localizzazione installati con i programmi che supportano gettext e sulla
localizzazione per alcuni pacchetti specifici, come kde-base/kde-i18n e
app-office/openoffice. Questa variabile può assumere valori separati da
spazi, valori espressi secondo i codici delle lingue trattati in
precedenza. E' consigliabile impostare la variabile LINGUAS in
/etc/make.conf:
Codice 3.5: Impostare LINGUAS in make.conf |
# nano -w /etc/make.conf
LINGUAS="de fi en"
|
Generare localizzazioni specifiche
Se si utilizza una localizzazione che non è disponibile in modo predefinito
bisogna utilizzare localedef per generare la propria localizzazione. Ad
esempio:
Codice 3.6: Generare una localizzazione utilizzando localedef |
# localedef -c -i en_US -f ISO-8859-15 en_US.ISO-8859-15
|
Dopo avere generato la localizzazione, è possibile esportare la variabile LANG
come visto prima
Codice 3.7: Esportare la variabile LANG |
# export LANG="en_US.ISO-8859-15"
|
Assicurarsi di aggiornare l'ambiente dopo la modifica:
Codice 3.8: Aggiornare l'ambiente |
# env-update && source /etc/profile
|
Fatto ciò, è necessario terminare il server X premendo
Ctrl+Alt+Backspace, effettuare il logout, e poi di nuovo il login come
utente.
Creare le localizzazioni per le glibc
Probabilmente sul proprio sistema si utilizzeranno una o due localizzazioni. È
possibile abilitare solo le localizzazioni di cui si ha bisogno inserendole in
/etc/locale.gen.
Codice 3.9: Aggiungere le localizzazioni a /etc/locale.gen |
en_GB ISO-8859-1
en_GB.UTF-8 UTF-8
de_DE/ISO-8859-1
de_DE@euro/ISO-8859-15
|
Fatto ciò eseguire locale-gen. Questo comando genera le localizzazioni
specificate nel file /etc/locale.gen.
Nota:
locale-gen è disponibile a partire dalle glibc-2.3.6-r4. Se si ha
una versione più vecchia delle glibc, è consigliabile aggiornarlo.
|
E' possibile verificare se le localizzazioni selezionate sono disponibili
tramite il comando locale -a.
4.
Layout della tastiera per la console
Il layout della tastiera per la console si imposta in
/etc/conf.d/keymaps tramite la variabile KEYMAP. Valori
validi per tale variabile possono essere trovati in
/usr/share/keymaps/{arch}/. i386 presenta delle
ulteriori sottoclassi (qwerty/, azerty/, etc.). Alcune
lingue hanno opzioni multiple, così la decisione migliore potrebbe essere quella
di provarne diverse per ottenere quella che meglio si adatta alle proprie
necessità.
Codice 4.1: Impostare la keymap della console |
KEYMAP="de"
KEYMAP="de-latin1"
KEYMAP="de-latin1-nodeadkeys"
|
5.
Layout della tastiera per il server grafico
Il layout della tastiera per il server grafico X è specificato in
/etc/X11/xorg.conf dall'opzione XkbLayout
Codice 5.1: Impostare il layout della tastiera per X |
Section "InputDevice"
Identifier "Keyboard1"
...
Option "XkbLayout" "de"
# Option "XkbModel" "pc105"
# Option "XkbVariant" "nodeadkeys"
...
|
Se si ha un layout di tastiera internazionale, impostare l'opzione
XkbModel a pc102 oppure a pc105, dato che questo consentirà
la mappatura dei tasti addizionali specifici per la propria tastiera.
Le deadkeys consentono di premere tasti che non verranno mostrati immediatamente
sullo schermo, ma saranno combinati con un'altra lettera per produrre un singolo
carattere come é,è,á,à,ecc... Impostare XkbVariant a nodeadkeys
consente di immettere questi caratteri speciali all'interno dei terminali X.
Se si desidera passare tra più di un layout di tastiera (per Inglese e Russo),
tutto quello che occorre fare è aggiungere poche linee a xorg.conf
per specificare i layout desiderato e il comando abbreviato.
Codice 5.2: Passare da un layout di tastiera ad un altro |
Section "InputDevice"
Identifier "Keyboard1"
...
Option "XkbLayout" "us,ru"
Option "XkbOptions" "grp:alt_shift_toggle,grp_led:scroll"
|
Qui XkbOptions consente di passare da un layout di tastiera ad un altro,
semplicemente premendo ALT+Shift. Questo farà anche accendere e spegnere
il led Scroll Lock, grazie all'opzione grp_led:scroll. Si tratta di un
indicatore visivo a portata di mano, che mostrerà quale layout di tastiera
si starà usando in un dato momento.
6.
KDE
Per KDE bisogna installare il pacchetto kde-base/kde-i18n. Kde-i18n segue
le regole descritte poco più su riguardo la variabile LINGUAS
7.
Il Simbolo dell'euro per la console
Per fare in modo che la propria console mostri il simbolo dell'euro bisogna
impostare la variabile CONSOLEFONT in
/etc/conf.d/consolefont al nome di uno dei file presenti in
/usr/share/consolefonts/ (senza .psfu.gz). lat9w-16
possiede il simbolo dell'Euro.
Codice 7.1: Impostare i font della console |
CONSOLEFONT="lat9w-16"
|
Verificare che CONSOLEFONT sia nel runlevel di boot:
Codice 7.2: Verificare il giusto runlevel |
# rc-update -v show | grep -i consolefont
|
Se non viene mostrato alcun runlevel per CONSOLEFONT, aggiungerlo al
giusto livello:
Codice 7.3: Aggiungere consolefont al runlevel di boot |
# rc-update add consolefont boot
|
8.
Il simbolo dell'euro in X
Per la maggior parte della applicazioni
Ottenere che il simbolo dell'euro funzioni correttamente in X comporta un
maggiore impegno. La prima cosa da cambiare sono le definizioni di fixed
e di variable nel file /usr/share/fonts/misc/fonts.alias in
modo che finiscano in iso8859-15 invece che in iso8859-1
Codice 8.1: Impostare i font predefiniti di X |
fixed -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-15
variable -*-helvetica-bold-r-normal-*-*-120-*-*-*-*-iso8859-15
|
Alcune applicazioni utilizzano il proprio font, e bisogna indicare loro
manualmente di utilizzare i font che contengono il simbolo dell'euro. Ciò è
possibile a livello utente tramite il file .Xdefaults (si può
copiare questo file in /etc/skel/ in modo che sia utilizzato in
modo predefinito per ogni nuovo utente creato), oppure impostarlo a livello
globale per ogni applicazione con un file in
/usr/share/X11/app-defaults/ (ad esempio xterm). In questi file
generalmente bisogna modificare una stringa già presente piuttosto che
aggiungerne un'altra. Per cambiare i font di xterm ad esempio:
Codice 8.2: Impostare i font per xterm |
$ echo 'XTerm*font: fixed' >> .Xresources
$ xrdb -merge .Xresources
|
Il simbolo dell'euro in (X)Emacs
Per utilizzare il simbolo dell'euro in (X)Emacs aggiungere quanto segue a
.Xdefaults:
Codice 8.3: Impostare i font in emacs |
Emacs.default.attributeFont: -*-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-15
|
Per XEmacs (che non è esattamente come Emacs), bisogna fare qualcosa in più. Nel
file /home/user/.xemacs/init.el, aggiungere:
Codice 8.4: Impostare i font per xemacs |
(define-key global-map '(EuroSign) '[€])
|
Nota:
Il simbolo tra parentesi quadre è appunto il simbolo dell'euro
|
OpenOffice.Org
Gli attuali ebuild stabili di app-office/openoffice e
app-office/openoffice-bin supportano l'impostazione della variabile
LINGUAS per installare i pacchetti relativi alla
lingua. Per avere un'idea dello stato della traduzione dell'interfaccia grafica
(GUI), della sillabazione, del controllo ortografico e di altre opzioni della
propria localizzazione fare riferimento al sito che si occupa della
localizzazione di OpenOffice.Org.
|