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,
enper l'inglese, deper il tedesco, japer il giapponese, ukper l'ucraino, berper 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_USper l'inglese americano, en_UKper l'inglese britannico, il fr_CAcanadese (Québec) francese, de_DEper il tedesco di Germania, de_ATper il tedesco d'Austria, ja_JPper 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_CNcinese 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 @eurovariante 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@euroutilizza la codifica latin9 (ISO 8859-15) e € come simbolo della valuta.
Inoltre, esistono due nomi di localizzazione esistenti su tutti i sistemi unix-like: Ce 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_CTYPEa 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_COLLATEpuò 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_NUMERICnon è 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
LANGviene utilizzato il valore della variabile di ambiente a meno che non venga sovrascritto da un'altra impostazione. Se LANGnon è impostato, l'impostazione internazionale predefinita è C.
- I
LC_xxxnomi possono essere usati come variabili di ambiente.
- Se
LC_ALLè impostato, tutti gli altri valori vengono ignorati; ciò è principalmente utile per impostare LC_ALL=Capplicazioni 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:enPer 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 localese seleziona dall'elenco nella finestra di dialogo, oppure modifica /etc/locale.gened esegui locale-gen.
- Su Ubuntu, per installare le versioni locali, esegui
locale-geni nomi delle versioni locali come argomenti.
Puoi definire la tua locale .
Raccomandazione
Le impostazioni utili sono:
- Impostare
LC_CTYPEla 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è Inella maggior parte delle lingue ma İin turco ( tr_TR).
- Impostare
LC_MESSAGESsulla lingua in cui si desidera visualizzare i messaggi.
- Impostare
LC_PAPERsu en_USse 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_TIMEil formato dell'ora preferito.
Come spiegato sopra, evitare l'impostazione LC_COLLATEe 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?