UNPKG

arch-wiki-md-repo

Version:

All arch-wiki articles in markdown format, updated every two days.

239 lines (152 loc) 12.2 kB
Artigos relacionados * [Variáveis de ambiente](/index.php/Vari%C3%A1veis_de_ambiente "Variáveis de ambiente") Locales, por vezes chamados em português de *localidades*, são usados pelo [glibc](https://www.archlinux.org/packages/?name=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. ## Contents * [1 Gerando locales](#Gerando_locales) * [2 Configurando o locale](#Configurando_o_locale) * [2.1 Configurando o locale do sistema](#Configurando_o_locale_do_sistema) * [2.2 Sobrepondo locale do sistema por sessão de usuário](#Sobrepondo_locale_do_sistema_por_sess.C3.A3o_de_usu.C3.A1rio) * [2.3 Fazer alterações de locale imediatas](#Fazer_altera.C3.A7.C3.B5es_de_locale_imediatas) * [2.4 Outros usos](#Outros_usos) * [3 Variáveis](#Vari.C3.A1veis) * [3.1 LANG: locale padrão](#LANG:_locale_padr.C3.A3o) * [3.2 LANGUAGE: locales reservas](#LANGUAGE:_locales_reservas) * [3.3 LC_TIME: formato de data e hora](#LC_TIME:_formato_de_data_e_hora) * [3.4 LC_COLLATE: colação](#LC_COLLATE:_cola.C3.A7.C3.A3o) * [3.5 LC_ALL: solução de problemas](#LC_ALL:_solu.C3.A7.C3.A3o_de_problemas) * [4 Solução de problemas](#Solu.C3.A7.C3.A3o_de_problemas) * [4.1 Meu terminal não possui suporte a UTF-8](#Meu_terminal_n.C3.A3o_possui_suporte_a_UTF-8) * [4.1.1 Gnome-terminal ou rxvt-unicode](#Gnome-terminal_ou_rxvt-unicode) * [4.2 Meu sistema ainda está usando o idioma errado](#Meu_sistema_ainda_est.C3.A1_usando_o_idioma_errado) * [5 Veja também](#Veja_tamb.C3.A9m) ## 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](https://en.wikipedia.org/wiki/pt:ISO_639 "w:pt:ISO 639"), *território* um [código de países da ISO 3166](https://en.wikipedia.org/wiki/pt:ISO_3166-1#Current_codes "w:pt:ISO 3166-1") e *.código* uma [codificação de caracteres](https://en.wikipedia.org/wiki/pt:Codifica%C3%A7%C3%A3o_de_caracteres "w:pt:Codificação de caracteres") ou identificador de codificação como [ISO-8859-1](https://en.wikipedia.org/wiki/pt:ISO/IEC_8859-1 "w:pt:ISO/IEC 8859-1") ou [UTF-8](https://en.wikipedia.org/wiki/pt:UTF-8 "w:pt:UTF-8"). Veja [setlocale(3)](https://jlk.fjfi.cvut.cz/arch/manpages/man/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](#Vari.C3.A1veis) específicas. Por exemplo, descomente `pt_BR.UTF-8 UTF-8` para português brasileiro: `/etc/locale.gen` ``` ... #ps_AF UTF-8 pt_BR.UTF-8 UTF-8 #pt_BR ISO-8859-1 ... ``` Salve o arquivo e gere o locale: ``` # locale-gen ``` **Nota:** * `locale-gen` também é executado em toda atualização de [glibc](https://www.archlinux.org/packages/?name=glibc). [[1]](https://projects.archlinux.org/svntogit/packages.git/tree/trunk/glibc.install?h=packages/glibc#n5) * `UTF-8` é recomendado sobre outras codificações de caracteres. [[2]](http://utf8everywhere.org/) ## 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 `locale.conf`. Cada um desses arquivos deve conter uma lista, separada por nova linha, de atribuições de [variáveis de ambiente](/index.php/Vari%C3%A1veis_de_ambiente "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(1)](https://jlk.fjfi.cvut.cz/arch/manpages/man/localectl.1): ``` $ localectl list-locales ``` ### Configurando o locale do sistema Para configurar o locale do sistema, escreva variável `LANG` no `/etc/locale.conf`, sendo que `*pt_BR.UTF-8*` pertence à **primeira coluna** de uma entrada não comentada em `/etc/locale.gen`: `/etc/locale.conf` `LANG=*pt_BR.UTF-8*` Alternativamente, execute: ``` # localectl set-locale LANG=*pt_BR.UTF-8* ``` Veja [#Variáveis](#Vari.C3.A1veis) e [locale.conf(5)](https://jlk.fjfi.cvut.cz/arch/manpages/man/locale.conf.5) 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 `~/.config/locale.conf` (ou, em geral, `$XDG_CONFIG_HOME/locale.conf` ou `$HOME/.config/locale.conf`). A precedência desses arquivos `locale.conf` é configurada em `/etc/profile.d/locale.sh`. **Dica:** * Isso também pode permitir manter os logs em `/var/log` em inglês enquanto usa o idioma local na variável do usuário. * Você pode criar um arquivo `/etc/skel/.config/locale.conf` para que qualquer novos usuários adicionados usando *useradd* e a opção `-m` vai ter `~/.config/locale.conf` gerado automaticamente. ### Fazer alterações de locale imediatas Uma vez que os arquivos `locale.conf` 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 `LANG` e carregue `/etc/profile.d/locale.sh`: ``` $ unset LANG $ source /etc/profile.d/locale.sh ``` **Nota:** A variável `LANG` tem que ser desconfigurada primeiro, do contrário `locale.sh` não vai atualizar os valores de `locale.conf`. Apenas variáveis novas e alteradas serão atualizadas; variáveis removidas de `locale.conf` ainda estão configuradas na sessão. ### 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](/index.php/Vari%C3%A1veis_de_ambiente "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 `locale.conf` oferecem suporte às seguintes variáveis de ambiente: * [LANG](#LANG:_locale_padr.C3.A3o) * [LANGUAGE](#LANGUAGE:_locales_reservas) * `LC_ADDRESS` * [LC_COLLATE](#LC_COLLATE:_cola.C3.A7.C3.A3o) * `LC_CTYPE` * `LC_IDENTIFICATION` * `LC_MEASUREMENT` * `LC_MESSAGES` * `LC_MONETARY` * `LC_NAME` * `LC_NUMERIC` * `LC_PAPER` * `LC_TELEPHONE` * [LC_TIME](#LC_TIME:_formato_de_data_e_hora) O significado completo das variáveis `LC_*` acima pode ser localizado na página man [locale(7)](https://jlk.fjfi.cvut.cz/arch/manpages/man/locale.7), enquanto os detalhes de suas definições estão descritas em [locale(5)](https://jlk.fjfi.cvut.cz/arch/manpages/man/locale.5). ### LANG: locale padrão O locale configurado para essa variável será usado para todas as variáveis `LC_*` que não forem configuradas explicitamente. ### LANGUAGE: locales reservas Os programas que usam [gettext](https://www.archlinux.org/packages/?name=gettext) para traduções respeitam a opção `LANGUAGE` além das variáveis usuais. Isso permite que usuários para especificar uma [lista](http://www.gnu.org/software/gettext/manual/gettext.html#The-LANGUAGE-variable) 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: `locale.conf` ``` LANG=en_AU.UTF-8 LANGUAGE=en_AU:en_GB:en ``` ### LC_TIME: formato de data e hora Se `LC_TIME` estiver configurado para `en_US.UTF-8`, 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: `locale.conf` `LC_TIME=en_DK.UTF-8` **Nota:** Os programas não necessariamente respeitam essa variável para formatar a data. Por exemplo, [date(1)](https://jlk.fjfi.cvut.cz/arch/manpages/man/date.1) usa seus próprios parâmetros para fazê-lo. ### 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: `locale.conf` `LC_COLLATE=C` Veja também [[3]](http://superuser.com/a/448294/175967). Para evitar problemas potenciais, o Arch costumava definir `LC_COLLATE=C` em `/etc/profile`, mas esse método está agora obsoleto. ### LC_ALL: solução de problemas O locale configurado para essa variável sempre sobrescreverá `LANG` e todas outras variáveis `LC_*`, independentemente de estarem definidas ou não. `LC_ALL` é a única variável `LC_*` que **não pode** ser definida em arquivos `locale.conf`: ela é feita para ser usada apenas para propósito de testar ou solucionar problemas, por exemplo, em `/etc/profile`. ## 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: * gnustep-terminal * konsole * [mlterm](/index.php/Mlterm "Mlterm") * [rxvt-unicode](/index.php/Rxvt-unicode "Rxvt-unicode") * [st](/index.php/St "St") * [termite](/index.php/Termite "Termite") * [VTE-based terminals](/index.php/List_of_applications/Utilities#VTE-based "List of applications/Utilities") * [xterm](/index.php/Xterm "Xterm") - Execute com o argumento `-u8` ou configure o recurso `xterm*utf8: 2`. #### 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 `pt_BR.UTF-8` (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 `locale.conf`, por exemplo `~/.pam_environment`. Veja [Variáveis de ambiente#Definindo variáveis](/index.php/Vari%C3%A1veis_de_ambiente#Definindo_vari.C3.A1veis "Variáveis de ambiente") para detalhes. Se você está usando um ambiente gráfico, como o [GNOME](/index.php/GNOME_(Portugu%C3%AAs) "GNOME (Português)"), suas configurações de idioma podem estar sobrescrevendo as configurações em `locale.conf`. [KDE](/index.php/KDE "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](https://bbs.archlinux.org/viewtopic.php?pid=1435219#p1435219) `~/.config/plasma-localerc` (anteriormente: `~/.config/plasma-locale-settings.sh`) deve resolver o problema. ## Veja também * [Gentoo:Localization/Guide](https://wiki.gentoo.org/wiki/Localization/Guide "gentoo:Localization/Guide") * [Gentoo Wiki Archives: Locales](https://web.archive.org/web/20151218174230/http://www.gentoo-wiki.info/Locales) * [Teste de colação interativa da ICU](http://demo.icu-project.org/icu-bin/locexp?_=en_US&x=col) * [Free Standards Group Open Internationalisation Initiative](http://www.openi18n.org/) * [*The Single UNIX Specification* definição de Locale](http://pubs.opengroup.org/onlinepubs/007908799/xbd/locale.html) por The Open Group * [Variáveis de ambiente de local](https://help.ubuntu.com/community/EnvironmentVariables#Locale_setting_variables)