Compreendendo os locais no Debian GNU/Linux

Compreendendo os locais no Debian GNU/Linux
Cada sistema de computador vem com sua configuração específica em relação à linguagem do sistema e à codificação de caracteres que está em uso. Com base nesta configuração, as mensagens de erro, o sistema de ajuda e o feedback do programa são exibidos na tela.

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].

Nomeando um local

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.

Comandos e ferramentas

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.

Mostre o local que está em uso

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:

  • Lang: determina a localidade padrão na ausência de outras variáveis ​​de ambiente relacionadas ao local
  • Idioma: Lista de linguagens de tradução de mensagens de fallback
  • LC_CTYPE: classificação de caracteres e conversão de casos
  • Lc_numeric: formatação numérica
  • LC_TIME: Formatos de data e hora
  • LC_COLLATE: Ordem de agressão (Classificação)
  • LC_MONETARY: Formatação monetária
  • Lc_messages: formato de palavras e respostas interativas
  • LC_PAPER: Tamanho padrão do papel para a região
  • Lc_name: formatos de nome
  • LC_ADDRESS: Convenção usada para formatação de endereços de rua ou postais
  • LC_TELEPONE: Convenções usadas para representação de números de telefone
  • LC_MEAUSCURNO: Sistema de medição padrão usado na região
  • LC_IDENTIFICAÇÃO: Metadados sobre as informações do local
  • LC_RESPONSE: determina como as respostas (como sim e não) aparecem no idioma local (não em uso por Debian Gnu/Linux, mas Ubuntu)
  • Lc_all: substitui todas as outras variáveis ​​de localidade (exceto idioma)

Liste os locais disponíveis

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.

Mostrar mapas de personagens disponíveis

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… $ --

Mostre as definições de variáveis ​​de localidade

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” $ --

Alterando o local atual

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.

Compilar um arquivo de definição de localidade

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

Conclusão

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.

Links e referências
  • [1] Locale, Debian Wiki
  • [2] Changelanguage, como mudar o idioma do seu sistema Debian
  • [3] Posix Locale, The Open Group Base Especificações Edição 7, 2018 Edição
  • [4] Bourne Shell, Wikipedia
  • [5] Shell de Bourne-de novo, Wikipedia
  • [6] Diferença entre Shell de login e concha não de Login?, Stackexchange
  • [7] Interface do sistema operacional portátil (POSIX), Wikipedia
  • [8] Linux Mint
  • [9] Z Shell, Wikipedia
  • [10] Comandos de Shell Zsh
  • [11] UTF-8, Wikipedia
  • [12] Para que devo definir meu local 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] Definir arquivos de descrição do conjunto de caracteres
  • [17] Locale, Ubuntu Wiki
  • [19] Locais Pacote Debian
  • [20] Projeto Helper Locale