Locale (Português)

Locales, por vezes chamados em português de localidades, são usados pelo glibc e outros programas ou bibliotecas conscientes de locales para renderizar texto, exibindo corretamente valores monetários regionais, formatos de hora e data, idiossincrasias alfabéticas e outros padrões específicas para locales.

Status de tradução: Esse artigo é uma tradução de Locale. Data da última tradução: 2020-07-12. Você pode ajudar a sincronizar a tradução, se houver alterações na versão em inglês.

Gerando locales

Nomes de locales geralmente possuem a forma idioma[território][.código][@modificador], sendo idioma um código de idiomas da ISO 639, território um código de países da ISO 3166 e .código uma codificação de caracteres ou identificador de codificação como ISO-8859-1 ou UTF-8. Veja setlocale(3).

Para uma lista de locales habilitados, execute:

$ locale -a

Antes que um locale possa ser habilitado no sistema, ele deve ser gerado. Isso pode ser alcançado descomentando as entradas corretas em /etc/locale.gen e executando locale-gen. Da mesma forma, comentar entradas desabilita seus respectivos locales. Ao fazer alterações, considere quaisquer localizações necessárias para outros usuários no sistema, bem como #Variáveis específicas.

Por exemplo, descomente pt_BR.UTF-8 UTF-8 para português brasileiro:

Salve o arquivo e gere o locale:

# locale-gen

Configurando o locale

Para exibir o locale atualmente configurado e suas configurações ambientais relacionadas, digite:

$ locale

O locale a ser usado, escolhido dentre os previamente gerados, é configurado em arquivos . Cada um desses arquivos deve conter uma lista, separada por nova linha, de atribuições de variáveis de ambiente, tendo o mesmo formato que a saída de locale.

Para listar os locales disponíveis que foram gerados previamente, execute:

$ localedef --list-archive

Alternativamente, use :

$ localectl list-locales

Configurando o locale do sistema

Para configurar o locale do sistema, escreva variável no /etc/locale.conf, sendo que pt_BR.UTF-8 pertence à primeira coluna de uma entrada não comentada em /etc/locale.gen:

Alternativamente, execute:

# localectl set-locale LANG=pt_BR.UTF-8

Veja #Variáveis e para detalhes.

Sobrepondo locale do sistema por sessão de usuário

O locale para todo sistema pode ser sobrescrito em cada sessão de usuário criando ou editando (normalmente, ).

A precedência desses arquivos é configurada em .

Fazer alterações de locale imediatas

Uma vez que os arquivos de sistema e de usuários terem sido criados ou editados, seus novos valores terão efeito para novas sessões na autenticação. Para fazer o ambiente atual usar as novas configurações, desconfigure e carregue :

$ unset LANG
$ source /etc/profile.d/locale.sh

Outros usos

As variáveis de locale também podem ser definidas com os métodos padrão como explicado em Variáveis de ambiente.

Por exemplo, para testar ou depurar um aplicativo em particular durante o desenvolvimento, ele poderia ser iniciado com alguma coisa como:

$ LANG=C ./meu_aplicativo.sh

Da mesma forma, para definir o locale para todos os processo executados pela shell atual (por exemplo, durante a instalação do sistema):

$ export LANG=C

Variáveis

Os arquivos oferecem suporte às seguintes variáveis de ambiente:

O significado completo das variáveis acima pode ser localizado na página man locale(7), enquanto os detalhes de suas definições estão descritas em .

LANG: locale padrão

O locale configurado para essa variável será usado para todas as variáveis que não forem configuradas explicitamente.

LANGUAGE: locales reservas

Os programas que usam gettext para traduções respeitam a opção além das variáveis usuais. Isso permite que usuários para especificar uma lista de locales que serão usados naquela ordem. Se uma tradução para o locale preferido não está disponível, outro de um locale similar será usado em vez do padrão. Por exemplo, um usuário australiano pode querer usar a ortografia britânica em vez da americana:

LC_TIME: formato de data e hora

Se estiver configurado para , por exemplo, o formato de data será "MM/DD/AAAA". Caso prefira usar o formato de data da ISO 8601 de "AAAA-MM-DD", use:

2.29 corrigiu um erro,  começou a mostrar no formato de 12 horas, como era a intenção. Se você quiser usar o formato de 24 horas, use .

LC_COLLATE: colação

Essa variável governa as regras de colação usadas para ordenação e expressões regulares.

Configurar o valor para C pode, por exemplo, fazer o comando ls ordenar arquivos iniciados com ponto primeiro, seguidos por nomes de arquivos em maiúsculo e minúsculo:

Veja também .

Para evitar problemas potenciais, o Arch costumava definir em , mas esse método está agora obsoleto.

LC_ALL: solução de problemas

O locale configurado para essa variável sempre sobrescreverá e todas outras variáveis , independentemente de estarem definidas ou não.

é a única variável  que não pode ser definida em arquivos : ela é feita para ser usada apenas para propósito de testar ou solucionar problemas, por exemplo, em .

Solução de problemas

Meu terminal não possui suporte a UTF-8

A lista a seguir mostra alguns (não todos) terminais que oferecem suporte a UTF-8:

Gnome-terminal ou rxvt-unicode

Você precisa iniciar esses aplicativos a partir de um locale UTF-8 ou eles não terão suporte a UTF-8. Habilite o locale (ou sua alternativa UTF-8 local) com as instruções acima e configure-o como o locale padrão, então reinicie.

Meu sistema ainda está usando o idioma errado

É possível que as variáveis de ambiente sejam redefinidas em outros arquivos além de . Veja Variáveis de ambiente#Definindo variáveis para detalhes.

Se você está usando um ambiente gráfico, como o GNOME, suas configurações de idioma podem estar sobrescrevendo as configurações em .

KDE Plasma também permite alterar o idioma da interface de usuário por meio de configurações do sistema. Se o ambiente gráfico ainda está usando o idioma padrão após a modificação, excluir o arquivo em (anteriormente: ) deve resolver o problema.

Veja também

gollark: I mean, postgres has very good caching, so it gets fairly fast if I search for bees multiple times, but whyyyy?
gollark: Yes.
gollark: ```sqlnonlocality=# EXPLAIN ANALYZE SELECT url, ts_rank(fts, query) AS rank, ts_headline(fts::text, query, 'MaxWords=60') FROM pages, websearch_to_tsquery('bee') query WHERE fts @@ query ORDER BY rank LIMIT 1; QUERY PLAN -------------------------------------------------------------------------------------------------------------------------------------------------- Limit (cost=860.79..861.06 rows=1 width=96) (actual time=35935.590..35935.594 rows=1 loops=1) -> Result (cost=860.79..874.83 rows=52 width=96) (actual time=35935.587..35935.589 rows=1 loops=1) -> Sort (cost=860.79..860.92 rows=52 width=178) (actual time=35934.109..35934.111 rows=1 loops=1) Sort Key: (ts_rank(pages.fts, query.query)) Sort Method: top-N heapsort Memory: 25kB -> Nested Loop (cost=0.25..860.53 rows=52 width=178) (actual time=444.148..35932.932 rows=349 loops=1) Join Filter: (pages.fts @@ query.query) Rows Removed by Join Filter: 10272 -> Function Scan on websearch_to_tsquery query (cost=0.25..0.26 rows=1 width=32) (actual time=0.038..0.041 rows=1 loops=1) -> Seq Scan on pages (cost=0.00..728.95 rows=10495 width=142) (actual time=10.189..289.581 rows=10621 loops=1) Planning Time: 0.184 ms Execution Time: 35935.637 ms(12 rows)```
gollark: What? Why does it say it's doing a sequential scan now? Æ all is bee.
gollark: Slower, even.
This article is issued from Archlinux. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.