Localizzazione/Guida

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Localization/Guide and the translation is 100% complete.

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.
Nota
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.
Attenzione
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.

CODE Aggiungere localizzazioni su /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
Nota
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.

FILE /etc/env.d/02localeImpostare il sistema di localizzazione predefinito in /etc/env.d/02locale
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:

FILE ~/.bashrcImpostare la localizzazione dell'utente
export LANG="de_DE.UTF-8"
export LC_COLLATE="C.UTF-8"
FILE ~/.profileImpostare la localizzazione dell'utente per applicazioni X
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:

CODE Utilizzare la localizzazione tradizionale C specificando UTF-8
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.

FILE /etc/conf.d/keymapsImpostazione della mappa della tastiera
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

Attenzione
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.

Nota
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:

FILE /etc/portage/package.use
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

Risorse esterne

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.