Existem três conjuntos de configurações de localidade¹:
-
LANG, a configuração de fallback, se você não tiver especificado um valor para uma categoria. É induzido pelos usuários para indicar sua localidade de uma maneira simples. -
LC_xxxpara cada categoria (xxxpode serMESSAGES,TIME, etc.). -
LC_ALLsubstitui todas as configurações. É uma maneira de os aplicativos substituírem todas as configurações para trabalhar em uma localidade conhecida (geralmenteC, a localidade padrão), normalmente para que vários comandos produzam saída em um formato conhecido.
Assim, você pode definir LANG=de_AT.UTF-8 e LC_MESSAGES=C ( C é a localidade padrão e significa não traduzido; en_US é geralmente idêntico a C para mensagens).
No entanto, existem duas categorias em que não recomendo alterar o padrão, porque ele quebra muitos programas:
-
LC_COLLATEé o caractere pedido de agrupamento . Não é muito útil porque indica apenas como classificar os caracteres, não como ordenar as strings. Ferramentas que sabem classificar strings não usamLC_COLLATE. Além disso, muitas ferramentas esperam coisas como “[a-z]corresponde a todas as 26 letras minúsculas ASCII e nenhum outro caractere ASCII”, mas isso não é verdade na maioria das localidades não padrão (tenteecho B | LC_COLLATE=en_US grep '[a-z]'). -
LC_NUMERICindica como exibir números. Em particular, em muitos idiomas, os números de ponto flutuante usam,em vez de.como ponto decimal. Mas a maioria dos programas que analisam números esperam um.e tratam um,como um separador de campos.
Então, eu recomendo para
- seja explicitamente
LC_COLLATE=C LC_NUMERIC=_C, - ou deixe
LANGnão definido e defina apenas um valor para as categorias úteis (LC_MESSAGES,LC_TIME,LC_PAPER, maisLC_CTYPE(cujo valor pode variar dependendo do seu terminal)).
Mais LANGUAGE com o GNU libc. Se você não ouviu falar sobre isso, você não está perdendo muito.