Variável de ambiente LANG e LANGUAGE em sistemas baseados no Debian

22

Parece que as variáveis ​​de ambiente LANG e LANGUAGE são usadas por alguns programas para determinar o idioma da interface do usuário.

Quais são as semânticas exatas dessas variáveis ​​e onde posso ler sobre o uso correto delas? A página de manual do código de idioma (1) menciona apenas a família LC_ * de variáveis ​​de ambiente. Além disso, há também uma variável LC_ALL normalmente instalada que também não é descrita.

aef
fonte

Respostas:

23

LANGcontém a configuração para todas as categorias que não são definidas diretamente por uma LC_*variável.

LC_ALLé usado para substituir every LC_*e LANGand LANGUAGE. Ele não deve ser definido em um ambiente de usuário normal, mas pode ser útil quando você estiver escrevendo um script que depende da saída precisa de um comando internacionalizado.

LANGUAGEé usado para definir o idioma das mensagens (as LC_MESSAGES) para um valor com vários valores, por exemplo, defini-lo para fr:de:enusar as mensagens em francês onde elas existem; caso contrário, ele usará mensagens em alemão e voltará para o inglês se não houver mensagens em alemão nem em francês.

Rémi
fonte
Onde posso encontrar documentação sobre LANGUAGE? É mutuamente exclusivo para LC_MESSAGES?
aef
1
@ Rémi, você pode explicar por LC_ALLque não deve ser usado?
Édouard Lopez
1
Não há muito a dizer. Você tem mais flexibilidade se definir LANG do que LC_ALL: você pode definir LANG para algo e LC_COLLATE para outra coisa. Se você definir LC_ALL, todas as outras configurações serão ocultadas.
Rémi
2
Eu não acho que LC_ALLas substituições LANGUAGE: 1. eles têm significados diferentes (ordem [por exemplo: fr: de: en] características vs. [por exemplo: fr_FR])
Murmel
6
Capítulo 2. da documentação O GNU getText Especificando uma lista prioritária de Línguas afirma: gettext gives preference to LANGUAGE over LC_ALL and LANG. Além disso, o capítulo Variáveis ​​de ambiente local indica:1. LANGUAGE 2. LC_ALL [...]
Murmel
10

Dê uma olhada na página de manual locale(7): descreve que LANGé uma configuração de fallback, enquanto LC_ALLsubstitui todas as LC_*configurações separadas .

Jaap Eldering
fonte
3
man 7 locale é o comando
Smile4ever 08/01
2

Para referência, o sistema de localidade é o GNU GetText, que possui toda a documentação disponível no pacote gettext-doc (Debian / Ubuntu).

Como alternativa, existe um manual on-line com documentação autorizada e elaborada das variáveis ​​de ambiente LANG e LANGUAGE .

biquíni
fonte