LANG y variable de entorno LANGUAGE en sistemas basados ​​en Debian

22

Parece que algunos programas utilizan la variable de entorno LANG y LANGUAGE para determinar su idioma de interfaz de usuario.

¿Cuáles son las semánticas exactas de estas variables y dónde puedo leer sobre su uso correcto? La página de manual para locale (1) solo menciona la familia LC_ * de variables de entorno. Además, también hay una variable LC_ALL comúnmente en su lugar que tampoco se describe allí.

aef
fuente

Respuestas:

23

LANGcontiene la configuración para todas las categorías que no están establecidas directamente por una LC_*variable.

LC_ALLse usa para anular cada LC_*y LANGy LANGUAGE. No debe establecerse en un entorno de usuario normal, pero puede ser útil cuando está escribiendo un script que depende de la salida precisa de un comando internacionalizado.

LANGUAGEse usa para configurar los idiomas de los mensajes (as LC_MESSAGES) en un valor de valores múltiples, por ejemplo, si se configura fr:de:enusará mensajes en francés donde existan; de lo contrario, usará mensajes en alemán y volverá al inglés si no hay mensajes en alemán ni en francés disponibles.

Rémi
fuente
¿Dónde puedo encontrar documentación sobre IDIOMA? ¿Es mutuamente exclusivo de LC_MESSAGES?
aef
1
@ Rémi, ¿puedes explicar por qué LC_ALLno se debe usar?
Édouard Lopez
1
No hay mucho que decir. Tiene más flexibilidad si configura LANG que si configura LC_ALL: puede configurar LANG en algo y LC_COLLATE en otra cosa. Si establece LC_ALL, todas las demás configuraciones están ocultas.
Rémi
2
No creo que LC_ALLanule LANGUAGE: 1. tienen diferentes significados (orden [por ejemplo: fr: de: en] vs. características [por ejemplo: fr_FR])
Murmel
66
Capítulo 2. La documentación de GNU getText Especificación de una lista de prioridades de Idiomas establece: gettext gives preference to LANGUAGE over LC_ALL and LANG. Además, el capítulo Locale Environment Variables establece:1. LANGUAGE 2. LC_ALL [...]
Murmel
10

Eche un vistazo a la página de manual locale(7): describe que LANGes una configuración alternativa, mientras que LC_ALLanula todas las LC_*configuraciones separadas .

Jaap Eldering
fuente
3
man 7 locale es el comando
Smile4ever
2

Como referencia, el sistema local es GNU GetText, que tiene su documentación completa disponible en el paquete gettext-doc (Debian / Ubuntu).

Alternativamente, hay un manual en línea con documentación autorizada y elaborada de las variables de entorno LANG y LANGUAGE .

mikini
fuente