Variable d'environnement LANG et LANGUAGE dans les systèmes basés sur Debian

22

Il semble que les variables d'environnement LANG et LANGUAGE soient utilisées par certains programmes pour déterminer leur langue d'interface utilisateur.

Quelle est la sémantique exacte de ces variables et où puis-je lire leur utilisation correcte? La page de manuel de locale (1) ne mentionne que la famille LC_ * de variables d'environnement. De plus, il existe également une variable LC_ALL couramment en place qui n'est pas décrite non plus.

aef
la source

Réponses:

23

LANGcontiennent le paramètre pour toutes les catégories qui ne sont pas directement définies par une LC_*variable.

LC_ALLest utilisé pour remplacer chaque LC_*et LANGet LANGUAGE. Il ne doit pas être défini dans un environnement utilisateur normal, mais peut être utile lorsque vous écrivez un script qui dépend de la sortie précise d'une commande internationalisée.

LANGUAGEest utilisé pour définir les langues des messages (as LC_MESSAGES) sur une valeur à valeurs multiples, par exemple, le paramétrer pour fr:de:enutiliser les messages français là où ils existent; sinon, il utilisera des messages allemands et retombera en anglais si aucun message allemand ou français n'est disponible.

Rémi
la source
Où puis-je trouver de la documentation sur LANGUAGE? Est-il mutuellement exclusif à LC_MESSAGES?
aef
1
@ Rémi pouvez-vous expliquer pourquoi LC_ALLne devrait pas être utilisé?
Édouard Lopez
1
Pas grand chose à dire. Vous avez plus de flexibilité si vous définissez LANG que si vous définissez LC_ALL: vous pouvez définir LANG sur quelque chose et LC_COLLATE sur autre chose. Si vous définissez LC_ALL, toutes les autres configurations sont masquées.
Rémi
2
Je ne pense pas que les LC_ALLremplacements LANGUAGE: 1. ils ont des significations différentes (ordre [par exemple: fr: de: en] vs caractéristiques [par exemple: fr_FR])
Murmel
6
2. Le chapitre de la documentation GNU getText Spécification d' une liste de priorité des langues stipule: gettext gives preference to LANGUAGE over LC_ALL and LANG. De plus, le chapitre Variables d'environnement1. LANGUAGE 2. LC_ALL [...]
locales
10

Jetez un œil à la page de manuel locale(7): elle décrit qu'il LANGs'agit d'un paramètre de secours, tout en LC_ALLremplaçant tous les LC_*paramètres distincts .

Jaap Eldering
la source
3
man 7 locale est la commande
Smile4ever
2

Pour référence, le système de paramètres régionaux est GNU GetText, qui a sa documentation complète disponible dans le paquet gettext-doc (Debian / Ubuntu).

Alternativement, il existe un manuel en ligne avec une documentation fiable et élaborée des variables d'environnement LANG et LANGUAGE .

bikini
la source