Em sistemas UNIX / Linux, esta configuração é chamada de locales POSIX [7] e padronizada como IEEE Std 1003.1-2017 [3]. Essa localidade pode variar para o sistema como um todo e as contas de usuário único, pois cada usuário pode individualizar seu ambiente de trabalho. Neste artigo iremos explicar a você como descobrir a configuração local atual no Debian GNU / Linux, para entender seus parafusos de ajuste simples e como adaptar o sistema às suas necessidades.
Note que este artigo foi feito para o Debian GNU / Linux Release 10 “Buster”. Salvo indicação em contrário, as técnicas descritas aqui também funcionam para seus derivados, como Ubuntu ou Linux Mint [8].
O que é um local?
De um modo geral, um local é um conjunto de valores que refletem a natureza e as convenções de um país ou cultura. Entre outros, esses valores são armazenados como variáveis de ambiente que representam o idioma, a codificação de caracteres, a formatação de data e hora, o tamanho padrão do papel, a moeda do país, bem como o primeiro dia da semana.
Conforme mencionado antes, há uma configuração geral conhecida como 'localidade padrão' e uma configuração definida pelo usuário. A localidade padrão funciona em todo o sistema e é armazenada no arquivo / etc / default / locale. A Listagem 1 exibe a localidade padrão em um Debian GNU / Linux usando alemão como idioma principal e unicode de 8 bits (UTF-8) como conjunto de caracteres [11].
Listagem 1: O local padrão em um Debian GNU / Linux alemão
$ cat / etc / default / locale # Arquivo gerado por update-locale LANG = “de_DE.UTF-8 ”$ --Observe que, em contraste com o Debian GNU / Linux, em algumas versões anteriores do Ubuntu, a configuração local do sistema é armazenada em / etc / locale.conf.
As configurações definidas pelo usuário são armazenadas como um arquivo oculto em seu diretório inicial, e os arquivos reais que são avaliados dependem do shell de login que você usa [6]. O shell Bourne tradicional (/ bin / sh) [4] lê os dois arquivos / etc / profile e ~ /.perfil, enquanto o shell Bourne-Again (Bash) (/ bin / bash) [5] lê / etc / profile e ~ /.bash_profile. Se o seu shell de login for Z shell (/ bin / zsh) [9], os dois arquivos ~ /.zprofile e ~ /.zlogin são lidos, mas não ~ /.perfil, a menos que seja invocado no modo de emulação de shell Bourne [10].
Iniciar um shell em um terminal em uma sessão existente resulta em um shell interativo sem login. Isso pode resultar na leitura dos seguintes arquivos - ~ /.bashrc para Bash e / etc / zshrc, bem como ~ /.zshrc para Z shell [6].
Nomeando uma localidade
Conforme explicado aqui [12], o nome de uma localidade segue um padrão específico. O padrão consiste em códigos de idioma, codificação de caracteres e a descrição de uma variante selecionada.
Um nome começa com um código de idioma de duas letras ISO 639-1 [13] ou um código de idioma de três letras ISO 639-2 [14] se o idioma não tiver um código de duas letras. Por exemplo, é de para alemão, fr para francês e cel para celta. O código é seguido para muitos, mas não todos os idiomas, por um sublinhado _ e por um código de país de duas letras maiúsculas ISO 3166 [15]. Por exemplo, isso leva a de_CH para suíço-alemão e fr_CA para um sistema de língua francesa para um usuário canadense provavelmente localizado em Quebec.
Opcionalmente, um ponto . segue o nome da codificação de caracteres, como UTF-8 ou ISO-8859-1, e o sinal @ seguido pelo nome de uma variante. Por exemplo, o nome [e-mail protegido] descreve a configuração de um sistema em inglês para a Irlanda com codificação de caracteres UTF-8 e o euro como o símbolo da moeda.
Comandos e Ferramentas
O número de comandos relacionados a localidades é relativamente baixo. A lista contém localidade que exibe puramente as configurações de localidade atuais. O segundo é o localectl que pode ser usado para consultar e alterar a localidade do sistema e as configurações de layout do teclado. Para ativar um locale as ferramentas dpkg-reconfigure e locale-gen entram em jogo - veja o exemplo abaixo.
Mostra o local que está em uso
A primeira etapa é descobrir a localidade atual em seu sistema usando o comando locale da seguinte maneira:
Listagem 2: mostra o local atual
$ locale LANG = de_DE.UTF-8 LANGUAGE = LC_CTYPE = “de_DE.UTF-8 ”LC_NUMERIC =“ de_DE.UTF-8 ”LC_TIME = “de_DE.UTF-8 ”LC_COLLATE =“ de_DE.UTF-8 ”LC_MONETARY =“ de_DE.UTF-8 ”
LC_MESSAGES = “de_DE.UTF-8 ”LC_PAPER =“ de_DE.UTF-8 ”LC_NAME =“ de_DE.UTF-8 ”
LC_ADDRESS = “de_DE.UTF-8 ”LC_TELEPHONE =“ de_DE.UTF-8 ”LC_MEASUREMENT =“ de_DE.UTF-8 ”
LC_IDENTIFICATION = “de_DE.UTF-8 ”LC_ALL = $ --
Por favor, note que outras distribuições Linux além do Debian GNU / Linux podem usar variáveis de ambiente adicionais não listadas acima. As variáveis individuais têm o seguinte significado:
- LANG: Determina a localidade padrão na ausência de outras variáveis de ambiente relacionadas à localidade
- LANGUAGE: Lista de idiomas de tradução de mensagens substitutas
- LC_CTYPE: Classificação de caracteres e conversão de caso
- LC_NUMERIC: formatação numérica
- LC_TIME: formatos de data e hora
- LC_COLLATE: Ordem de agrupamento (classificação)
- LC_MONETARY: formatação monetária
- LC_MESSAGES: formato de palavras e respostas interativas
- LC_PAPER: Tamanho de papel padrão para a região
- LC_NAME: formatos de nome
- LC_ADDRESS: Convenção usada para formatação de ruas ou endereços postais
- LC_TELEPHONE: Convenções usadas para representação de números de telefone
- LC_MEASUREMENT: Sistema de medição padrão usado na região
- LC_IDENTIFICATION: Metadados sobre as informações de localidade
- LC_RESPONSE: determina como as respostas (como Sim e Não) aparecem no idioma local (não em uso pelo Debian GNU / Linux, mas Ubuntu)
- LC_ALL: Substitui todas as outras variáveis de local (exceto LANGUAGE)
Listar localidades disponíveis
Em seguida, você pode listar as localidades disponíveis em seu sistema usando o comando locale acompanhado por sua opção -a. -a é a abreviação de -all-locales:
Listagem 3: Mostrar localidades disponíveis
$ locale -a C C.UTF-8 de_DE @ euro de_DE.utf8 en_US.utf8 POSIX $ --A Listagem 3 contém duas configurações de localidade para alemão (Alemanha) e inglês (EUA). As três entradas C, C.UTF-8 e POSIX são sinônimos e representam as configurações padrão apropriadas para dados que são analisados por um programa de computador. A saída na Listagem 3 é baseada na lista de localidades com suporte armazenadas em / usr / share / i18n / SUPPORTED.
Além disso, adicionar a opção -v (abreviação de -verbose) à chamada leva a uma saída muito mais extensa que inclui os metadados LC_IDENTIFICATION sobre cada local. A Figura 1 mostra isso para a chamada da Listagem 3.
Para ver quais localidades já existem e quais precisam de mais ajuda para serem concluídas, você também pode dar uma olhada no mapa do Locale Helper Project [20]. Os marcadores vermelhos mostram claramente quais locais estão inacabados. A Figura 2 mostra as localidades da África do Sul que parecem bastante completas.
Mostrar mapas de personagens disponíveis
O comando locale vem com a opção -m que é abreviação de -charmaps. A saída mostra os mapas de caracteres disponíveis ou arquivos de descrição do conjunto de caracteres [16]. Tal arquivo se destina a "definir características para o conjunto de caracteres codificados e a codificação para os caracteres especificados no Conjunto de caracteres portáteis, e pode definir a codificação para caracteres adicionais suportados pela implementação" [16]. A Listagem 4 ilustra isso com um extrato de toda a lista.
Listagem 4: Arquivos de descrição do conjunto de caracteres
$ locale -m ANSI_X3.110-1983 ANSI_X3.4-1968 ARMSCII-8 ASMO_449 BIG5 BIG5-HKSCS… $ --Mostra as definições das variáveis locais
Cada variável usada para uma localidade vem com sua própria definição. Usando a opção -k (abreviação de -keyword-name), o comando locale exibe esta configuração em detalhes. A Listagem 5 ilustra isso para a variável LC_TELEPHONE conforme é definida em um ambiente alemão - o formato do número do telefone, o formato do telefone doméstico, o código de seleção internacional, bem como o código do país (prefixo internacional) e o conjunto de códigos. Veja o Locale Helper Project [20] para uma descrição detalhada dos valores.
Listagem 5: Os detalhes de LC_TELEPHONE
$ locale -k LC_TELEPHONE tel_int_fmt = “+% c% a% l” tel_dom_fmt = “% A% l”int_select = “00” int_prefix = “49” phone-codeset = “UTF-8” $ --
Alterando o local atual
O conhecimento sobre a localidade torna-se necessário assim que você executa um sistema que vem com uma localidade diferente da que está acostumado - por exemplo, em um sistema Linux live. A alteração da localidade pode ser feita de duas maneiras - reconfigurando o pacote Debian locales [19], e adicionando a localidade necessária usando o comando locale-gen. Para a opção um, executar o seguinte comando abre uma caixa de diálogo de configuração baseada em texto mostrada na Figura 3:
# dpkg-reconfigure locales
Pressione a barra de espaço para escolher o (s) local (is) desejado (s) na lista mostrada na caixa de diálogo e escolha “OK” para confirmar sua seleção. A próxima janela de diálogo oferece uma lista de localidades que estão disponíveis para a localidade padrão. Selecione o desejado e escolha “OK”. Agora, os arquivos de localidade de acordo são gerados, e a localidade previamente selecionada é definida para o seu sistema.
Para a opção dois, a geração do local desejado é feita com a ajuda do comando locale-gen. A Listagem 6 ilustra isso para uma configuração em francês:
Listagem 6: Gerando uma localidade francesa
locale-gen fr_FR.UTF-8Gerando localidades… fr_FR.UTF-8 ... concluído Geração concluída. # --
Para usar a localidade gerada anteriormente como padrão, execute o comando na Listagem 7 para configurá-la corretamente:
Listagem 7: Configurando manualmente a localidade
# update-locale LANG = fr_FR.UTF-8Assim que você abre uma nova sessão de terminal, ou re-login em seu sistema, as mudanças são ativadas.
Compilar um arquivo de definição de localidade
O comando localectl ajuda a compilar manualmente um arquivo de definição de localidade. Para criar uma configuração em francês, execute o seguinte comando:
Listagem 8: Compile uma definição de localidade
# localedef -i fr_FR -f UTF-8 fr_FR.UTF-8Conclusão
Compreender as localidades pode demorar um pouco, pois é uma configuração que é influenciada por vários fatores. Explicamos como descobrir sua localidade atual e como alterá-la adequadamente. Adaptar o sistema Linux às suas necessidades deve ser muito mais fácil para você de agora em diante.
Links e referências
- [1] Local, Debian Wiki
- [2] ChangeLanguage, como mudar o idioma do seu sistema Debian
- [3] Local POSIX, Especificações de base do grupo aberto, edição 7, edição 2018
- [4] Bourne shell, Wikipedia
- [5] Shell Bourne-Again, Wikipedia
- [6] Diferença entre shell de login e shell sem login?, StackExchange
- [7] Interface de sistema operacional portátil (POSIX), Wikipedia
- [8] Linux Mint
- [9] shell Z, Wikipedia
- [10] Comandos internos Zsh Shell
- [11] UTF-8, Wikipedia
- [12] Como devo definir minha localidade e quais são as implicações de fazer isso?
- [13] ISO 639-1, Wikipedia
- [14] ISO 639-2, Wikipedia
- [15] ISO 3166, Wikipedia
- [16] Arquivos de descrição do conjunto de caracteres
- [17] Local, Ubuntu Wiki
- [19] pacote Debian locales
- [20] Projeto Locale Helper