Localizzazione/Guida
Fuso orario
Per mantenere il tempo di sistema correttamente secondo la posizione attuale, è necessario impostare il fuso orario. Le istruzioni su come fare questo per sistemi basati su OpenRC e sistemi basati su systemd based possono essere trovate nell'articolo system time.
Sistema di localizzazione
Cosa sono le localizzazioni
Una localizzazione è un insieme di informazioni che la maggior parte dei programmi utilizzano per determinare le impostazioni specifiche del paese e della lingua. Le localizzazioni e i loro dati fanno parte della libreria di sistema e possono essere trovate in /usr/share/i18n/locales/ sulla maggior parte dei sistemi. Un nome di localizzazione è generalmente denominato ab_CD
dove ab
è il codice di due (o tre) lettere (come specificato nella norma ISO-639) e CD
è il codice a due lettere (come specificato nella norma ISO-3166). Varianti come @euro
o @latin
sono spesso aggiunte al nome localizzazione, ad esempio de_DE@euro
o nan_TW@latin
. Si prega di guardare [1] per leggere di più su località e articoli correlati.
Variabili d'ambiente per localizzazione
Le variabili che controllano aspetti diversi delle impostazioni di localizzazione sono riportate nella tabella sottostante. Tutte loro prendono un valore di localizzazione nel formato seguente ab_CD
.
Nome della variabile | Spiegazione |
---|---|
LANG | Definisce tutte le impostazioni di localizzazione, permettendo ulteriori personalizzazioni tramite le impostazioni LC_* sotto riportate. |
LC_COLLATE | Definisce l'ordinamento alfabetico delle stringhe. Influenza ad esempio l'uscita alfabetica delle liste delle cartelle. |
LC_CTYPE | Definisce le proprietà di gestione dei caratteri per il sistema. Determina quali caratteri sono visti come alfabetici, numerici, e così via. Questo inoltre determina l'insieme di caratteri usato, se applicabile |
LC_MESSAGES | Le localizzazioni dei programmi sono archiviate in /usr/share/locale/ per applicazioni che utilizzano uno schema di localizzazione basato su messaggi (la maggior parte dei programmi GNU). |
LC_MONETARY | Definisce le unità di valuta e la formattazione dei valori numerici per valute. |
LC_NUMERIC | Definisce la formattazione dei valori numerici non monetari. Influenza cose come il separatore delle migliaia ed il separatore decimale. |
LC_TIME | Definisce la formattazione di date ed orari. |
LC_PAPER | Definisce la grandezza di fogli predefinita. |
LC_ALL | Sovrascrive tutte le altre impostazioni. |
Alcuni programmi sono scritti in modo tale da aspettarsi l'ordinamento tradizionale dell'alfabeto inglese, mentre alcune localizzazioni, in particolare l'Estone, utilizzano un ordinamento diverso. Pertanto si consiglia di impostare in modo esplicito LC_COLLATE a C quando si tratta di impostazioni di sistema.
Utilizzare LC_ALL è fortemente sconsigliato poiché esclude automaticamente tutte le altre variabili LC_* (LANG non ne è influenzato). Ciò significa che le modifiche apportate tramite altri mezzi saranno nascoste fino a che LC_ALL verrà impostato su stringa vuota. Probabilmente è meglio non impostarlo in un file di avvio.
Più tipicamente, gli utenti impostano solo la variabile LANG a livello globale.
Generazione di localizzazioni specifiche
La maggior parte degli utenti probabilmente utilizzeranno solo uno o due lingue nel loro sistema. Una localizzazione addizionale può essere specificata nel file /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
Utilizzare un valore
@euro
da /usr/share/i18n/SUPPORTED come localizzazione quando si utilizza il simbolo di valuta Euro (€) su localizzazioni non basate su UTF-8.Il passo successivo è quello di eseguire locale-gen. Esso genererà tutte le localizzazioni specificate nel file /etc/locale.gen e le scriverà nell'archivio di localizzazione (/usr/lib/locale/locale-archive).
root #
locale-gen
* Generating 4 locales (this might take a while) with 1 jobs * (1/4) Generating en_GB.ISO-8859-1 ... [ ok ] * (2/4) Generating en_GB.UTF-8 ... [ ok ] * (3/4) Generating de_DE.ISO-8859-1 ... [ ok ] * (4/4) Generating de_DE.ISO-8859-15@euro ... [ ok ] * Generation complete
Verificare che le impostazioni internazionali selezionate siano disponibili eseguendo locale -a.
user $
locale -a
C POSIX de_DE de_DE.iso88591 de_DE.iso885915@euro de_DE@euro deutsch en_GB en_GB.iso88591 en_GB.utf8 german
Il file /usr/lib/locale/locale-archive può essere mostrato con localedef.
user $
localedef --list-archive
Il suo contenuto può essere visualizzato con il comando strings.
user $
strings /usr/lib/locale/locale-archive | less
Impostare una localizzazione
OpenRC
Quando si utilizza OpenRC le impostazioni di localizzazione vengono memorizzate in variabili d'ambiente. Queste sono tipicamente impostate nel file /etc/env.d/02locale (per le impostazioni di sistema) e nel file ~/.bashrc (per le impostazioni specifiche all'utente). Maggiori dettagli possono essere trovati nell'articolo UTF-8. Le impostazioni a livello di sistema (/etc/env.d/02locale) possono essere gestite attraverso eselect locale. Per esempio, per impostare la variabile LANG al valore C
:
root #
eselect locale list
Available targets for the LANG variable: [1] C [2] POSIX [3] en_US [4] en_US.iso885915 [5] en_US.utf8 [ ] (free form)
root #
eselect locale set 1
Naturalmente, modificando il file manualmente è possibile anche diversificare le variabili di localizzazione.
Il comando prima presentato elenca i suffissi in minuscolo senza alcun tratto d'unione, glibc comprende entrambe le forme del suffisso, molti altri programmi no. Il più comune esempio di ciò è X. Quindi è sempre meglio usare UTF-8 rispetto a utf8.
LANG="de_DE.UTF-8"
LC_COLLATE="C"
In alcuni casi gli utenti potrebbero notare una rappresentazione non inglese problematica in applicazioni come Krusader (https://bugs.kde.org/show_bug.cgi?id=371582). Rimuovere o commentare la linea LC_ALL=""
da /etc/env.d/02locale dovrebbe risolvere il problema.
È anche possibile, e abbastanza comune soprattutto in un ambiente più tradizionale UNIX, lasciare le impostazioni globali invariate, cioè nella localizzazione "C
". Gli utenti possono comunque specificare la loro localizzazione preferita nel proprio file di shell:
export LANG="de_DE.UTF-8"
export LC_COLLATE="C.UTF-8"
export LANG="de_DE.UTF-8"
export LC_COLLATE="C.UTF-8"
Un altro modo di configurare il sistema è quello di lasciarlo nella localizzazione C predefinita, ma allo stesso tempo di abilitare la rappresentazione dei caratteri UTF-8. Questa opzione si ottiene utilizzando le seguenti impostazioni in /etc/env.d/02locale:
LC_CTYPE=de_DE.UTF-8
Utilizzando questo frammento di codice, gli utenti saranno in grado di vedere i nomi di file localizzati correttamente, pur non essendo costretti a utilizzare completamente la lingua selezionata.
Una volta che la giusta localizzazione è impostata, assicurarsi di aggiornare le variabili d'ambiente per informare il sistema del cambiamento.
Per una localizzazione di sistema predefinita:
root #
env-update && source /etc/profile
Per la localizzazione di un utente specifico:
user $
source ~/.bashrc
Dopo ciò, terminare il server X premendo Ctrl+Alt+Backspace, disconnettersi, quindi riaccedere come utente.
Ora, verificare che le modifiche siano state applicate:
user $
locale
I valori delle variabili di localizzazione d'ambiente che sono state impostate esplicitamente come in una dichiarazione d'esportazione (se si usa bash) sono elencate senza doppie virgolette. Quei valori che sono stati ereditati da altre variabile di localizzazione d'ambiente hanno il loro valore tra virgolette.
systemd
Con systemd impostare la localizzazione con il comando localectl. Controllare l'elenco delle localizzazioni disponibili con:
root #
localectl list-locales
Quindi impostare la località desiderata:
root #
localectl set-locale LANG=de_DE.utf8
Infine verificare che il risultato sia corretto:
root #
localectl | grep "System Locale"
System Locale: LANG=de_DE.utf8
Impostazione della tastiera per la console
OpenRC
La configurazione della tastiera utilizzata dalla console si trova in /etc/conf.d/keymaps sulla variabile keymap. Valori corretti possono essere trovati in /usr/share/keymaps/LA_TUA_ARCHITETTURA/. i386 ha ulteriori suddivisioni in impostazioni (qwerty/, azerty/, etc.). Alcune lingue hanno più opzioni - provarne alcune per decidere quale sia la più adatta alle esigenze.
keymap="de"
#keymap="de-latin1"
#keymap="de-latin1-nodeadkeys"
systemd
Con systemd il layout della tastiera utilizzato per la console può essere impostato utilizzando il comando localectl. Prima controllare i layout disponibili:
root #
localectl list-keymaps
Quindi impostare il layout richiesto:
root #
localectl set-keymap it
Infine controllare se il layout della tastiera è stato impostato correttamente:
root #
localectl | grep "VC Keymap"
VC Keymap: it
Configurazione della tastiera per il server X
OpenRC
L'impostazione della tastiera usata dal server X è specificata in /etc/X11/xorg.conf.d/30-keyboard.conf nell'opzione XkbLayout. Per dettagli visitare la guida di Xorg e l'articolo riguardante il cambio d'impostazione della tastiera.
systemd
Con systemd il layout della tastiera per il server X11 può essere impostato utilizzando il comando localectl. Prima verificare i layout disponibili per X11:
root #
localectl list-x11-keymap-layouts
Quindi impostare il layout per X11 richiesto:
root #
localectl set-x11-keymap it
Infine controllare se il layout per X11 è stato impostato correttamente:
root #
localectl | grep "X11 Layout"
X11 Layout: it
Supporto per Lingua Nativa (NLS)
Per far sì che la localizzazione basata su messaggi funzioni in programmi che la supportano ed hanno l'opzione USE nls
, compilare tali programmi con quest'opzione abilitata. Le stringhe dei messaggi sono installate nei file /usr/share/locale/<locale>/LC_MESSAGES/<package>.mo. La maggior parte dei programmi che utilizzano Native Language Support (NLS) richiedono inoltre la libreria gettext per estrarre ed usare messaggi localizzati. Certamente, Portage la installerà automaticamente quando richiesta.
Dopo aver abilitato l'opzione USE nls
, alcuni pacchetti potrebbero aver bisogno di essere ri-emersi:
root #
emerge --ask --changed-use --deep --with-bdeps=y @world
LINGUAS
LINGUAS porta i pacchetti ad implicitamente saltare le localizzazioni. Quando viene usato, il gestore dei pacchetti non può determinare quali localizzazioni vanno omesse. Non usate LINGUAS se intendete redistribuire pacchetti binari.
C'è inoltre l'addizionale variabile LINGUAS che viene usata da alcuni sistemi di costruzione basati su gettext per controllare quali file di localizzazioni vanno costruiti ed installati. La variabile prende liste di codici di lingue separate da spazi, ed un luogo suggerito per impostarla è /etc/portage/make.conf:
root #
nano -w /etc/portage/make.conf
## (Aggiunge la variabile LINGUAS. Ad esempio, per il tedesco, il finlandese e l'inglese:) LINGUAS="de fi en"
Notare che c'è una grande differenza tra lasciare non impostato LINGUAS ed impostarlo ad un valore vuoto: LINGUAS non impostato significa installare tutte le lingue disponibili. DI contro, con LINGUAS=""
, la maggior parte delle ebuild installerebbero solo la lingua predefinita del pacchetto senza alcun file LC_MESSAGES
.
Un'impostazione scorretta di LINGUAS può portare a traduzioni incomplete di alcune applicazioni, come KDE Plasma ed i suoi programmi. Provate a rimuovere LINGUAS e ricompilare i relativi pacchetti se incontrate questo problema.
L10N
Una variabile USE_EXPAND chiamata L10N decide quali localizzazioni aggiuntive verranno installate. Questo a è comunemente usata per lo scaricamento di pacchetti di lingua addizionali. Come LINGUAS, la variabile prende liste di codici di lingue separati da spazi, e può essere impostata in /etc/portage/make.conf:
root #
nano -w /etc/portage/make.conf
## (Aggiunge la variabile L10N. Ad esempio, per tedesco e portoghese brasiliano:) L10N="de pt-BR"
Per impostarla per pacchetti individuali, modificare /etc/portage/package.use ed aggiungere i richiesti pacchetti di lingue con "l10n_", come mostrato nell'esempio seguente:
app-text/aspell l10n_de l10n_pt-BR
Notare che mentre i comuni codici di lingue a due lettere (come de
o fr
) sono identici in LINGUAS e L10N, entrate più complesse hanno una sintassi differente poiché L10N usa etichette linguistiche IETF (anche conosciute come BCP 47). Ad esempio, pt_BR
e sr@latin
in LINGUAS diventano pt-BR
e sr-Latn
in L10N, rispettivamente.
Una lista dei valori L10N che possono essere usati è fornita in /var/db/repos/gentoo/profiles/desc/l10n.desc:
user $
grep -i portuguese /var/db/repos/gentoo/profiles/desc/l10n.desc
pt - Portuguese pt-BR - Portuguese (Brazil) pt-PT - Portuguese (Portugal)
Dopo l'impostazione della variabile L10N USE_EXPAND potrebbe essere necessario ri-emergere alcuni pacchetti:
root #
emerge --ask --changed-use --deep --with-bdeps=y @world
Vedi anche
- Configurare le localizzazioni (Gentoo Handbook)
- Impostazione della tastier nell'articolo su Evdev
- X resources
- Localization/Guide/The Euro symbol — how to display the Euro symbol (€) for the console and in X.
Risorse esterne
- Locales and Internationalization (gnu.org)
- L10N USE_EXPAND variable replacing LINGUAS
- Michał Górny: How LINGUAS are thrice wrong!
- [gentoo-dev] [RFC] How to deal with LINGUAS mess?
- [gentoo-dev] [RFC] Masterplan for solving LINGUAS problems
Riferimenti
This page is based on a document formerly found on our main website gentoo.org.
The following people contributed to the original document: Alexander Holler, Steven Lucy, Benny Chuang, Lars Weiler, Tobias Scherbaum, Flammie Pirinen, , Francisco Blas Izquierdo Riera (klondike)
They are listed here because wiki history does not allow for any external attribution. If you edit the wiki article, please do not add yourself here; your contributions are recorded on each article's associated history page.