Variabile d'ambiente LANG e LANGUAGE nei sistemi basati su Debian


22

Sembra che la variabile d'ambiente LANG e LANGUAGE sia utilizzata da alcuni programmi per determinare la lingua dell'interfaccia utente.

Quali sono la semantica esatta di queste variabili e dove posso leggere sul loro corretto utilizzo? La manpage per locale (1) menziona solo la famiglia di variabili d'ambiente LC_ *. Inoltre c'è anche una variabile LC_ALL comunemente in atto che non è nemmeno descritta lì.

Risposte:


23

LANGcontiene l'impostazione per tutte le categorie che non sono impostate direttamente da una LC_*variabile.

LC_ALLviene utilizzato per ignorare ogni LC_*e LANGe LANGUAGE. Non deve essere impostato in un normale ambiente utente, ma può essere utile quando si scrive uno script che dipende dall'output preciso di un comando internazionalizzato.

LANGUAGEè usato per impostare le lingue dei messaggi (as LC_MESSAGES) su un valore multivalore, ad es. impostandolo su fr:de:enuserà i messaggi francesi dove esistono; in caso contrario, utilizzerà i messaggi tedeschi e tornerà in inglese se non sono disponibili né messaggi tedeschi né francesi.


Dove posso trovare la documentazione su LANGUAGE? Si escludono a vicenda con LC_MESSAGES?
aef

1
@ Rémi puoi approfondire perché LC_ALLnon dovrebbe essere usato?
Édouard Lopez,

1
Non c'è molto da dire. Hai più flessibilità se imposti LANG che se imposti LC_ALL: puoi impostare LANG su qualcosa e LC_COLLATE su un'altra cosa. Se si imposta LC_ALL, ogni altra configurazione viene nascosta.
Rémi,

2
Non credo che LC_ALLle sostituzioni LANGUAGE: 1. hanno diversi significati (ordine [ad es: fr: de: en] vs. caratteristiche [es] fr_FR)
Murmel

6
Capitolo 2. di documentazione GNU getText Specificando un Priority List of Languages afferma: gettext gives preference to LANGUAGE over LC_ALL and LANG. Inoltre, il capitolo Variabili di ambiente locale afferma:1. LANGUAGE 2. LC_ALL [...]
Murmel,

10

Dai un'occhiata alla manpage locale(7): descrive che LANGè un'impostazione di fallback, mentre LC_ALLsostituisce tutte le LC_*impostazioni separate .


3
man 7 locale è il comando
Smile4ever

2

Per riferimento, il sistema locale è GNU GetText, che ha la sua documentazione completa disponibile nel pacchetto gettext-doc (Debian / Ubuntu).

In alternativa, esiste un manuale online con documentazione autorevole ed elaborata delle variabili di ambiente LANG e LANGUAGE .

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.