Le impostazioni locali sono le preferenze dell'utente relative alla tua cultura.
Nomi locali
Su tutte le attuali varianti unix che conosco (ma non su alcuni pezzi d'antiquariato), i nomi delle impostazioni locali seguono lo stesso modello:
- Un codice di lingua a due lettere minuscolo ISO 639-1 o un codice di lingua a tre lettere ISO 639-2 se la lingua non ha un codice di due lettere. Ad esempio,
en
per l'inglese, de
per il tedesco, ja
per il giapponese, uk
per l'ucraino, ber
per il berbero, ...
- Per molte, ma non tutte le lingue, un carattere di sottolineatura
_
seguito da un codice paese ISO 3166 maiuscolo di due lettere. Pertanto: en_US
per l'inglese americano, en_UK
per l'inglese britannico, il fr_CA
canadese (Québec) francese, de_DE
per il tedesco di Germania, de_AT
per il tedesco d'Austria, ja_JP
per il giapponese (del Giappone), ecc.
- Opzionalmente, un punto
.
seguito dal nome di un personaggio di codifica , come UTF-8
, ISO-8859-1
, KOI8-U
, GB2312
, Big5
, ecc Con GNU libc almeno (non so quanto sia diffusa questa è), la cassa e la punteggiatura viene ignorato nella codifica nomi. Ad esempio, zh_CN.UTF-8
è il cinese mandarino (semplificato) codificato in UTF-8, mentre il zh_CN
cinese mandarino è codificato in GB2312 ed zh_TW
è cinese taiwanese (tradizionale) codificato in Big5.
- Facoltativamente, un segno at
@
seguito dal nome di una variante. Il significato delle varianti dipende dalla locale. Ad esempio, molti paesi europei hanno una @euro
variante di locale in cui il segno di valuta è € e dove la codifica è quella che include questo carattere (ISO 8859-15 o ISO 8859-16), al contrario della variante non adornata con il segno di valuta più vecchio. Ad esempio, en_IE
(inglese, Irlanda) utilizza la codifica latin1 (ISO 8859-1) e £ come simbolo della valuta mentre en_IE@euro
utilizza la codifica latin9 (ISO 8859-15) e € come simbolo della valuta.
Inoltre, esistono due nomi di localizzazione esistenti su tutti i sistemi unix-like: C
e POSIX
. Questi nomi sono sinonimi e significano computerese, ovvero impostazioni predefinite appropriate per i dati analizzati da un programma per computer.
Impostazioni locali
Le seguenti categorie locali sono definite da POSIX :
LC_CTYPE
: il set di caratteri utilizzato dalle applicazioni terminali: dati di classificazione (quali caratteri sono lettere, punteggiatura, spazi, non validi, ecc.) e conversione del caso. Le utilità di testo in genere prestano attenzione LC_CTYPE
a determinare i confini dei caratteri.
LC_COLLATE
: ordine di confronto (es. ordinamento). Questa impostazione è di uso molto limitato per diversi motivi:
- La maggior parte delle lingue ha regole complesse che dipendono da ciò che viene ordinato (ad es. Parole del dizionario e nomi propri potrebbero non utilizzare lo stesso ordine) e non possono essere espresse da
LC_COLLATE
.
- Esistono poche applicazioni in cui conta l'ordinamento corretto eseguite dal software che utilizza le impostazioni locali. Ad esempio, i word processor memorizzano la lingua e la codifica di un file nel file stesso (altrimenti il file non verrebbe elaborato correttamente su un sistema con impostazioni locali diverse) e non si preoccuperà delle impostazioni locali specificate dall'ambiente.
LC_COLLATE
può avere effetti collaterali negativi, in particolare perché provoca l'ordinamento A <a <B <…, che fa sì che “tra A e Z” includa le lettere minuscole da a a y. In particolare, espressioni regolari molto comuni come [A-Z]
rompere alcune applicazioni .
LC_MESSAGES
: la lingua dei messaggi informativi e di errore.
LC_NUMERIC
: formattazione numerica: decimale e separatore delle migliaia.
Molte applicazioni codificano .
come separatore decimale. Questo LC_NUMERIC
non è molto utile e potenzialmente pericoloso:
- Anche se lo imposti, vedrai comunque il formato predefinito abbastanza spesso.
- È probabile che si verifichi una situazione in cui un'applicazione produce output dipendenti dalla locale e un'altra applicazione prevede
.
il punto decimale o ,
un separatore di campo.
LC_MONETARY
: come LC_NUMERIC
, ma per importi in valuta locale.
Pochissime applicazioni lo usano.
LC_TIME
: formattazione di data e ora: nomi dei giorni della settimana e del mese, orologio a 12 o 24 ore, parti dell'ordine della data, punteggiatura, ecc.
GNU libc, che troverai su Linux non incorporato, definisce ulteriori categorie locali:
LC_PAPER
: il formato carta predefinito (definito da altezza e larghezza).
LC_NAME
, LC_ADDRESS
, LC_TELEPHONE
, LC_MEASUREMENT
, LC_IDENTIFICATION
: Non so di qualsiasi applicazione che utilizza questi.
Variabili ambientali
Le applicazioni che utilizzano le impostazioni locali le determinano dalle variabili di ambiente.
- Quindi
LANG
viene utilizzato il valore della variabile di ambiente a meno che non venga sovrascritto da un'altra impostazione. Se LANG
non è impostato, l'impostazione internazionale predefinita è C
.
- I
LC_xxx
nomi possono essere usati come variabili di ambiente.
- Se
LC_ALL
è impostato, tutti gli altri valori vengono ignorati; ciò è principalmente utile per impostare LC_ALL=C
applicazioni in esecuzione che devono produrre lo stesso output indipendentemente da dove vengono eseguite.
- Inoltre, GNU libc utilizza
LANGUAGE
per definire i fallback LC_MESSAGES
(ad es. LANGUAGE=fr_BE:fr_FR:en
Per preferire il francese belga, o se non disponibile Francia francese, o se non disponibile inglese).
Installazione locale
I dati delle impostazioni locali possono essere di grandi dimensioni, quindi alcune distribuzioni non li inviano in una forma utilizzabile e richiedono invece un passaggio di installazione aggiuntivo.
- Su Debian, per installare le localizzazioni, esegui
dpkg-reconfigure locales
e seleziona dall'elenco nella finestra di dialogo, oppure modifica /etc/locale.gen
ed esegui locale-gen
.
- Su Ubuntu, per installare le versioni locali, esegui
locale-gen
i nomi delle versioni locali come argomenti.
Puoi definire la tua locale .
Raccomandazione
Le impostazioni utili sono:
- Impostare
LC_CTYPE
la lingua e la codifica in cui si codificano i file di testo. Assicurarsi che i terminali utilizzino tale codifica.
Per la maggior parte delle lingue, conta solo la codifica. Ci sono alcune eccezioni; per esempio, un carattere maiuscolo i
è I
nella maggior parte delle lingue ma İ
in turco ( tr_TR
).
- Impostare
LC_MESSAGES
sulla lingua in cui si desidera visualizzare i messaggi.
- Impostare
LC_PAPER
su en_US
se si desidera che US Letter abbia il formato carta predefinito e qualsiasi altra cosa (ad esempio en_GB
) se si desidera A4.
- Facoltativamente, imposta
LC_TIME
il formato dell'ora preferito.
Come spiegato sopra, evitare l'impostazione LC_COLLATE
e LC_NUMERIC
. Se lo usi LANG
, sostituisci esplicitamente queste due categorie impostandole su C
.
LC_PAPER
. E posso aggiornare questo attraverso il sistema senza riavviare?