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_xxx
para cada categoria (xxx
pode serMESSAGES
,TIME
, etc.). -
LC_ALL
substitui 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_NUMERIC
indica 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
LANG
nã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.