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/timezone. È 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
# cp /usr/share/zoneinfo/Europe/Rome /etc/localtime
# nano -w /etc/timezone
TIMEZONE="Europe/Rome"
# 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/Rome".
|
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/hwclock (o se si usa Gentoo BSD:
/etc/conf.d/adjkerntz) 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.UTF-8 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. Tutte le variabili accettano valori secondo il formato
ab_CD specificato in precedenza.
| Nome della variabile |
Spiegazione |
| LANG |
Definisce tutte le impostazioni della localizzazione in una volta sola,
lasciando però la possibilità di ulteriori personalizzazioni tramite le
diverse variabili LC_* elencate di seguito.
|
| LC_COLLATE |
Definisce l'ordine alfabetico delle stringhe. Questo ha effetto, per
esempio, sull'output dell'elenco ordinato del contenuto di una directory.
|
| LC_CTYPE |
Definisce il modo in cui il sistema debba gestire i tipi di carattere.
Questo determina quali caratteri devono esser visualizzati 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.
|
| LC_ALL |
Una variabile speciale che scavalca tutte le altre impostazioni.
|
Nota:
Alcuni programmi sono scritti in modo tale da aspettarsi un'ordinamento
dell'alfabeto in Inglese tradizionale, mentre alcune localizzazioni,
specialmente l'Estone, usano un ordine differente. Perciò è raccomandabile di
impostare esplicitamente LC_COLLATE a C quando si ha a che fare con le
impostazioni globali di tali variabili.
|
Avvertenza:
L'uso di LC_ALL è fortemente scoraggiato e non può essere annullato
successivamente. Si prega di usarlo solamente in fase di test e non impostarlo
mai in un file d'avvio.
|
La maggior parte degli utenti imposta solo la variabile LANG a livello globale.
Questo esempio è per una localizzazione Italiana unicode:
Codice 3.1: Impostare la localizzazione predefinita di sistema in /etc/env.d/02locale |
LANG="it_IT.UTF-8"
LC_COLLATE="C"
|
Nota:
Usare it_IT@euro come propria variabile LANG se si vuole utilizzare il
simbolo di valuta dell'Euro (€) o una locale non basata su UTF-8.
|
Una lista di localizzazioni che può essere usata è fornita da file
/usr/portage/profiles/desc/linguas.desc:
Codice 3.2: Ottenere una localizzazione utilizzabile per la lingua italiana |
$ grep -i Italian /usr/portage/profiles/desc/linguas.desc
it - Italian locale
it_IT - Italian locale
|
È anche possibile, e molto comune specialmente in ambienti UNIX più
tradizionali, lasciare le impostazioni globali invariate, ad es. con locale a
"C". Gli utenti potranno comunque specificare la localizzazione preferita
nei propri script d'avvio della shell:
Codice 3.3: Impostare la localizzazione utente in ~/.bashrc |
export LANG="it_IT.UTF-8"
export LC_COLLATE="C"
|
Un altro modo per configurare il sistema consiste nel lasciale la localizzazione
C come predefinita, abilitando al tempo stesso la rappresentazione UTF-8 dei
caratteri. Per ottenere questo risultato è sufficiente specificare in
/etc/env.d/02locale i seguenti valori:
Codice 3.4: Mantenere la localizzazione tradizionale C abilitando UTF-8 |
LC_CTYPE=it_IT.UTF-8
|
Usando questo frammento di codice, gli utenti saranno in grado di vedere
correttamente i nomi localizzati dei file, senza esser forzati ad adottare
la vostra lingua preferita.
Perché la localizzazione basata sui messaggi funzioni 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.5: 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.6: Verificare le modifiche dell'ambiente |
$ locale
|
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-l10n e
app-office/libreoffice. 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/portage/make.conf:
Codice 3.7: Impostare LINGUAS in make.conf |
# nano -w /etc/portage/make.conf
LINGUAS="it de fi en"
|
Generare localizzazioni specifiche
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.8: Aggiungere le localizzazioni a /etc/locale.gen |
en_GB ISO-8859-1
en_GB.UTF-8 UTF-8
it_IT ISO-8859-1
it_IT@euro ISO-8859-15
it_IT.UTF-8 UTF-8
|
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="it"
keymap="it-latin1"
keymap="it-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 "InputClass"
Identifier "keyboard-all"
Driver "evdev"
Option "XkbLayout" "it"
#Option "XkbModel" "pc105"
MatchIsKeyboard "on"
EndSection
|
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 "InputClass"
Identifier "keyboard-all"
Driver "evdev"
Option "XkbLayout" "us,ru"
Option "XkbOptions" "grp:alt_shift_toggle,grp_led:scroll"
MatchIsKeyboard "on"
EndSection
|
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 i pacchetti kde-base/kde-l10n e
app-office/calligra-l10n, che rispettano le regole descritte in precedenza
riguardo alla 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 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
|
LibreOffice.Org
Gli attuali ebuild stabili di app-office/libreoffice e
app-office/libreoffice-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 web delle traduzioni di LibreOffice.
|