Da Wikipedia:
Na computação, um código de idioma é um conjunto de parâmetros que define o idioma, o país e quaisquer preferências de variantes especiais que o usuário deseja ver em sua interface com o usuário. Normalmente, um identificador de localidade consiste em pelo menos um identificador de idioma e um identificador de região.
Os locale
programas produzirão um conjunto de variáveis de shell e seus valores. Essas são as variáveis que alteram o comportamento de alguns comandos em relação ao idioma, uso de conjuntos de caracteres e assim por diante. Do meu sistema:
benoit@thorgal:~s locale
LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
benoit@thorgal:~$
Isso diz aos comandos que ouvem usar o inglês americano e a codificação UTF8 para caracteres especiais. Se eu alterar o valor de LANG e colocar fr_FR.UTF-8, os comandos que o suportam escreverão sua saída em francês, em vez de inglês. Obviamente, apenas se a tradução em francês estiver instalada.
Para o locale-gen
comando, acho que o primeiro parágrafo de sua página de manual é autoexplicativo:
Os arquivos de código de idioma compilados ocupam cerca de 50 MB de espaço em disco, e a maioria dos usuários precisa apenas de alguns códigos de idioma. Para economizar espaço em disco, os arquivos de localidade compilados não são distribuídos no pacote de localidades, mas as localidades selecionadas são geradas automaticamente quando esse pacote é instalado executando o programa locale-gen.
Ao executar locale-gen
ou locale-gen <locale code>
compilar o (s) arquivo (s) de código de idioma necessário, permitindo que os comandos usem o código de idioma especificado nas variáveis de ambiente exibidas por locale
.
Exemplo: locale-gen en_US.UTF8
Você pode obter os códigos locais disponíveis usando o comando locale -a
.