Nos sistemas UNIX/Linux, essa configuração é chamada Posix [7] Locales e padronizada como IEEE STD 1003.1-2017 [3]. Esse local 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, explicaremos como descobrir a configuração atual do local no Debian GNU/Linux, para entender seus parafusos de ajuste único e como adaptar o sistema às suas necessidades.
Observe que este artigo é adaptado ao 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 uma cultura. Entre outros, esses valores são armazenados como variáveis ambientais que representam o idioma, a codificação do caráter, a formatação de data e hora, o tamanho do papel padrão, a moeda do país e o primeiro dia da semana.
Como tocado antes, há uma configuração geral conhecida como 'localidade padrão' e uma configuração definida pelo usuário. O local padrão trabalha em todo o sistema e é armazenado no arquivo/etc/padrão/loce. A Listagem 1 exibe a localidade padrão em um Debian GNU/Linux usando o alemão como o idioma principal e o Unicode de 8 bits (UTF-8) como o conjunto de caracteres [11].
Listagem 1: O local padrão em um Debian GNU/Linux alemão
$ CAT/etc/padrão/arquivo # Locale Gerado por Lang de localização de atualização = “DE_DE.UTF-8 ”$ --
Observe que, em contraste com o Debian GNU/Linux, em algumas versões anteriores do Ubuntu, a configuração do local em todo o sistema é armazenada em/etc/loce.conf.
As configurações definidas pelo usuário são armazenadas como um arquivo oculto no seu diretório inicial e os arquivos reais avaliados dependem do shell de login que você usa [6]. O tradicional shell bourne (/bin/sh) [4] lê os dois arquivos/etc/perfil e ~//.Perfil, enquanto o shell de Bourne-de novo (Bash) (/bin/Bash) [5] Reads/etc/perfil e ~///.Bash_profile. Se o seu shell de login for z shell (/bin/zsh) [9], os dois arquivos ~//.zprofile e ~//.Zlogin é lido, 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 e não-login. Isso pode resultar na leitura dos seguintes arquivos - ~/.Bashrc for Bash e/etc/zshrc, bem como ~/.ZSHRC para Z Shell [6].
Conforme explicado aqui [12], o nome de um local segue um padrão específico. O padrão consiste em códigos de linguagem, codificação de caracteres e a descrição de uma variante selecionada.
Um nome começa com um código de idioma ISO 639-1 de duas letras [13] ou um código de idioma ISO 639-2 de três letras [14] se o idioma não tiver código de duas letras. Por exemplo, é de para alemão, FR para francês e celta para o celta. O código é seguido para muitos, mas nem todos os idiomas por um sublinhado _ e por um código de país de duas letras ISO 3166 [15]. Por exemplo, isso leva a DE_CH para suíços alemães e FR_CA para um sistema de língua francesa para um usuário canadense que provavelmente estará 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 en_ie.UTF-8@Euro descreve a configuração para um sistema inglês para a Irlanda com a codificação de caracteres UTF-8 e o euro como o símbolo da moeda.
O número de comandos relacionados aos locais é relativamente baixo. A lista contém localidade que exibe puramente as configurações atuais de localidade. O segundo é o localectl que pode ser usado para consultar e alterar as configurações de localidade e layout do teclado do sistema. Para ativar um local, as ferramentas DPKG-Reconfigure e Locale-Gen entram em jogo-veja o exemplo abaixo.
A etapa um é descobrir o local atual do seu sistema usando o comando da localidade da seguinte forma:
Listagem 2: mostre o local atual
$ loce lang = de_de.UTF-8 Idioma = 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_monetário =“ 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_IDENTIFICAÇÃO = “DE_DE.Utf-8 ”lc_all = $ --
Observe que outras distribuições Linux que não o Debian GNU/Linux podem usar variáveis de ambiente adicionais não listadas acima. As variáveis únicas têm o seguinte significado:
Em seguida, você pode listar os locais disponíveis em seu sistema usando o comando Locale acompanhado por sua opção -a. -A é abreviado para -verl -alocales:
Listagem 3: mostre locais disponíveis
$ loce -a c 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 que são apropriadas para dados que são analisados por um programa de computador. A saída na Listagem 3 é baseada na lista de locais suportados armazenados em/usr/share/i18n/suportado.
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 de LC_Identification sobre cada localidade. A Figura 1 mostra isso para a chamada da Listagem 3.
Para ver quais locais já existem e quais precisam de ajuda adicional para serem concluídas, você também pode dar uma olhada no mapa do projeto Helper Locale [20]. Marcadores vermelhos mostram claramente quais locais estão inacabados. A Figura 2 mostra os locais para a África do Sul que parecem bastante completos.
O comando da localidade vem com a opção -m que é curta para -Charmaps. A saída mostra os mapas de caracteres disponíveis ou os arquivos de descrição do conjunto de caracteres [16]. Esse arquivo destina -se a “definir características para o conjunto de caracteres codificado 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: Definir 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… $ --
Cada variável usada para um local vem com sua própria definição. Usando a opção -k (curta para -keyword -name), o comando Locale exibe esta configuração em detalhes. A Listagem 5 ilustra isso para a variável LC_TELEPHONE, conforme definido em um ambiente alemão - o formato do número de telefone, o formato de telefone doméstico, o código de seleção internacional e o código do país (prefixo internacional) e o conjunto de códigos. Veja o projeto Helper Locale [20] para uma descrição detalhada dos valores.
Listagem 5: Os detalhes de LC_Telephone
$ loce -k lc_telephone tel_int_fmt = “+ %c %a %l” tel_dom_fmt = “ %a %l”
int_select = “00” int_prefix = “49” Codéseto telefônico = “UTF-8” $ --
O conhecimento sobre o local se torna necessário assim que você executa um sistema que vem com um local diferente do que você está acostumado - por exemplo, em um sistema vivo Linux. Alterar o local pode ser feito de duas maneiras - reconfigurando o pacote de locais do Debian [19] e adicionando o local necessário usando o comando loce -general. Para a opção um, a execução do comando a seguir abre uma caixa de diálogo de configuração baseada em texto mostrada na Figura 3:
# Locais DPKG-Reconfigure
Pressione a barra de espaço para escolher o local (s) desejado (s) da 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 locais disponíveis para a localidade padrão. Selecione o desejado e escolha "OK". Agora, os arquivos da localidade são gerados e o local selecionado anteriormente está definido para o seu sistema.
Para a opção dois, gerar o local desejado é feito com a ajuda do comando local de localidade. A Listagem 6 ilustra isso para uma configuração francesa:
Listagem 6: Gerando um local francês
FR_FR LOCALE-GEN.UTF-8
Gerando locais… fr_fr.UTF-8… Geração concluída completa. # --
Para usar a localidade gerada anteriormente como padrão, execute o comando na Listagem 7 para configurá -lo corretamente:
Listagem 7: Configurando manualmente o local
# update locale lang = fr_fr.UTF-8
Assim que você abrir uma nova sessão de terminal ou re-login para o seu sistema, as alterações são ativadas.
O comando localectl ajuda você a compilar manualmente um arquivo de definição de localidade. Para criar uma configuração francesa, execute o comando da seguinte forma:
Listagem 8: Compilar uma definição de localidade
# localEdef -i fr_fr -f utf -8 fr_fr.UTF-8
Compreender os locais pode demorar um pouco, pois é uma configuração que é influenciada por vários fatores. Explicamos como descobrir seu local atual e como alterá -lo corretamente. Adpinar o sistema Linux às suas necessidades deve ser muito mais fácil para você a partir de agora.