Localizzazione/Guida
Fuso orario
Per mantenere il tempo di sistema correttamente secondo la presente posizione, è necessario impostare il fuso orario. Le istruzioni su come fare questo per OpenRC based systems e systemd based systems può essere trovato nell'articolo system time.
Sistema locale
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 trovati 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 Wikipedia per leggere di più su località e articoli correlati.
Variabili d'ambiente per localizzazione
Le variabili controllano aspetti diversi di impostazioni locali sono riportati nella tabella sottostante. Tutti loro prendono un nome di una localizzazione nel formato seguente ab_CD
.
Nome variabile | Spiegazione |
---|---|
LANG | Definisce tutte le impostazioni locali in una sola volta, permettendo un'ulteriore personalizzazione individuale attraverso l'impostazione LC_* sottostante. |
LC_COLLATE | Definisce l'ordine alfabetico delle stringhe. Questo influenza, ad esempio, l'uscita di directory elencate ordinatamente. |
LC_CTYPE | Definisce le proprietà dei caratteri di gestione per il sistema. Questo determina quali caratteri sono visti come alfabetici, numerici, e così via. Ciò determina anche il set di caratteri utilizzato, se applicabile. |
LC_MESSAGES | Programmi di localizzazioni memorizzati in /usr/share/locale/ per le applicazioni che utilizzano un sistema di localizzazione basato su messaggi (la maggior parte dei programmi GNU, vedere i prossimi capitoli per ulteriori informazioni su quali programmi lo fanno, e come ottenere i programmi che non lo fanno). |
LC_MONETARY | Definisce l'unità monetaria e la formattazione della valuta di tipo valori numerici. |
LC_NUMERIC | Definisce la formattazione dei valori numerici che non sono monetari. Definisce cose come separatore delle migliaia e separatore decimale. |
LC_TIME | Definisce la formattazione di date e orari. |
LC_PAPER | Definisce il formato predefinito della carta. |
LC_ALL | Ignora tutte le altre impostazioni. |
Alcuni programmi sono scritti in modo tale che si aspettano 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 è influenzato). Ciò significa che le modifiche apportate da altri mezzi saranno nascoste fino a che LC_ALL è impostato su stringa null. Probabilmente è meglio non farlo in un file di avvio.
Più tipicamente, gli utenti impostano solo LANG variabile 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 un non UTF-8 localizzazione di base.Il passo successivo è quello di eseguire locale-gen. Esso genererà tutte le localizzazioni specificate nel file /etc/locale.gen e scriverà l'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 a livello di sistema) e nel file ~/.bashrc (per le impostazioni dell'utente specifico). 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 per il 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.
The command above lists the suffix in lower case without any hyphens, glibc understands both forms of the suffix, many other programs don't. The most common example of which is X. So it is best to always use UTF-8 in preference to utf8.
/etc/env.d/02locale
Impostare il sistema di localizzazione predefinito in /etc/env.d/02localeLANG="de_DE.UTF-8" LC_COLLATE="C"
In some cases users may notice glitchy non-English representation in some applications like Krusader (https://bugs.kde.org/show_bug.cgi?id=371582). Removing or commenting the LC_ALL=""
line from /etc/env.d/02locale should fix the problem.
E' 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 indicare la loro localizzazione preferita nel proprio file di shell RC:
~/.bashrc
Impostazione della localizzazione dell'utenteexport LANG="de_DE.UTF-8" export LC_COLLATE="C"
Un altro modo di configurare il sistema è quello di lasciarlo nella localizzazione di default C, ma permette la rappresentazione dei caratteri UTF-8 allo stesso tempo. 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 localizzazione giusta è impostata, assicurarsi di aggiornare le variabili d'ambiente per rendere il sistema a conoscenza del cambiamento.
Per una localizzazione di default a livello di sistema:
root #
env-update && source /etc/profile
Per la localizzazione di un utente specifico:
user $
source ~/.bashrc
Dopo ciò, chiudere il server X premendo Ctrl+Alt+Backspace, disconnettersi, quindi riconnettersi come utente.
Ora, verificare che le modifiche siano state applicate:
user $
locale
The values of locale environment variables that have been explicitly set e.g. in an export statement (if using bash) are listed without double quotes. Those whose value has been inherited from other locale environment variables have their values in double quotes.
systemd
Con systemd impostare la localizzazione con il comando localectl. Controllare l'elenco delle zone disponibili con:
root #
localectl list-locales
Quindi impostare la località desiderata:
root #
localectl set-locale LANG=de_DE.utf8
Infine verificare se il risultato è corretto:
root #
localectl | grep "System Locale"
System Locale: LANG=de_DE.utf8
Layout 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/YOUR_ARCH/. i386 ha ulteriori suddivisioni in layout (qwerty/, azerty/, etc.). Alcune lingue hanno più opzioni - provarne varie per decidere quale si adatta meglio alle esigenze.
/etc/conf.d/keymaps
Impostazione della mappa della tastierakeymap="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
Il layout della tastiera, per essere utilizzato dal server X, è specificato in /etc/X11/xorg.conf.d/30-keyboard.conf nell'opzione XkbLayout. Per dettagli visitare la Xorg guide e l'articolo Keyboard layout switching.
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
NLS
Per il messaggio basato su localizzazione di lavorare in programmi che la supportano e hanno la nls
(supporto per la lingua nativa) USE flag, compilare il programma con questa USE flag impostata. Stringhe di messaggi sono installate nei files /usr/share/locale/<locale>/LC_MESSAGES/<package>.mo. La maggior parte dei programmi che utilizzano nls hanno anche bisogno della libreria gettext per estrarre e utilizzare messaggi localizzati. Naturalmente, Portage la installerà automaticamente quando necessario.
Dopo aver abilitato la USE flag nls, alcuni pacchetti potrebbero aver bisogno di essere ri-emersi:
root #
emerge --ask --newuse --deep --with-bdeps=y @world
LINGUAS
LINGUAS causes packages to implicitly skip locales. When using it, the package manager cannot determine which locales were omitted. Do not use LINGUAS if you intend to redistribute binary packages.
There is also an additional LINGUAS variable that is used by some gettext-based build systems to control which localization files are built and installed. The variable takes in space-separated list of language codes, and a suggested place to set it is /etc/portage/make.conf:
root #
nano -w /etc/portage/make.conf
## (Add in the LINGUAS variable. For instance, for German, Finnish and English:) LINGUAS="de fi en"
Con LINGUAS=""
, la maggior parte degli ebuild installerebbero solo la lingua predefinita dei pacchetti ma nessuno dei files LC_MESSAGES
. Non scaricherebbero ed installerebbero neanche nessuno degli ulteriori pacchetti relativi alla lingua. Per esempio, l'attuale stabile pacchetto app-office/libreoffice riceve supporto per la lingua attraverso app-office/libreoffice-l10n che supporta il download e l'installazione dei pacchetti di lingua definiti in LINGUAS
. Dal momento che la lingua di origine del pacchetto LibreOffice è en_US
, non c'è la flag en_US
in app-office/libreoffice-l10n. Così con LINGUAS=""
, LibreOffice supporta en_US
.
Incorrect setting of LINGUAS may lead to incomplete translation of some applications, such as KDE Plasma and its apps. Try to remove LINGUAS and rebuild related packages if you encounter this problem.
L10N
A USE_EXPAND variable called L10N decides which extra localization support will be installed. This is commonly used for downloads of additional language packs by packages. Similar to LINGUAS, the variable takes a space separated list of language tags, and it can be set in /etc/portage/make.conf:
root #
nano -w /etc/portage/make.conf
## (Add in the L10N variable. For instance, for German and Brazilian Portuguese:) L10N="de pt-BR"
To set it per-package, edit /etc/portage/package.use and prefix the requested language packs with "l10n_", as shown in the next example:
/etc/portage/package.use
app-text/aspell l10n_de l10n_pt-BR
Note that while the common two letter language codes (like de
or fr
) are identical in LINGUAS and L10N, more complex entries have a different syntax because L10N uses IETF language tags (aka BCP 47). For example, pt_BR
and sr@latin
in LINGUAS become pt-BR
and sr-Latn
in L10N, respectively.
A list of L10N values that can be used is provided as /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)
After setting the L10N USE_EXPAND variable it may be necessary to re-emerge some packages:
root #
emerge --ask --changed-use --deep --with-bdeps=y @world
Vedi anche
- Configuring locales (Gentoo Handbooks)
- Keyboard layout dentro Evdev
- X resources
- The Euro symbol (€) per la console e in X
Risorse esterne
- Locales and Internationalization (gnu.org)
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.