Da Wikipedia:
Na computação, uma localidade é um conjunto de parâmetros que define o idioma do usuário, o país e qualquer preferência de variante especial que o usuário deseja ver em sua interface do usuário. Normalmente, um identificador de localidade consiste em pelo menos um identificador de idioma e um identificador de região.
Os programas locale
geram um conjunto de variáveis de shell e seus valores. Estas são as variáveis que alteram o comportamento de alguns comandos em relação à linguagem, o 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:~$
Isto diz a esses comandos, que escutam, usar o inglês americano e a codificação UTF8 para os caracteres especiais. Se eu alterar o valor de LANG e colocar fr_FR.UTF-8, os comandos que o suportam escreverão a saída em francês em vez de inglês. Claro, apenas, se a tradução francesa estiver instalada.
Para o comando locale-gen
, acho que o primeiro parágrafo da página man é auto-explicativo:
Arquivos de localidade compilados ocupam cerca de 50 MB de espaço em disco e a maioria dos usuários só precisa de alguns locais. Para economizar espaço em disco, locale compilado arquivos não são distribuídos no pacote locales, mas localidades selecionadas são gerados automaticamente quando este pacote é instalado executando o programa de locale-gen.
Quando você executa locale-gen
ou locale-gen <locale code>
, compila os arquivos de localidade necessários, permitindo que os comandos usem a localidade especificada nas variáveis de ambientes exibidas por locale
.
Exemplo: locale-gen en_US.UTF8
Você pode obter os códigos de localidade disponíveis usando o comando locale -a
.