22.2. Usando Localização
Anterior | Capítulo 22. Localização - Uso e Configuração do i18n/L10n | Próxima

## 22.2. Usando Localização

As configurações de localização são baseadas em três componentes: o código do idioma, o código do país e a codificação. Nomes de localidade são construídos a partir dessas partes da seguinte maneira:

    LanguageCode_CountryCode.Encoding

O `LanguageCode` e o `CountryCode` são usados para determinar o país e a variação de linguagem específica. A Tabela 22.1, “Idiomas Comum e Códigos de País” apresenta alguns exemplos de `LanguageCode`_`CountryCode`:

Tabela 22.1. Idiomas Comum e Códigos de País

LanguageCode_Country Code | Descrição
--- | ---
en_US | Inglês, Estados Unidos
ru_RU | Russo, Rússia
zh_TW | Chinês Tradicional, Taiwan

Uma lista completa de localidades disponíveis pode ser encontrada digitando:

    % locale -a | more

Para determinar a configuração atual de localidade:

    % locale

Conjuntos de caracteres específicos de idioma, como ISO8859-1, ISO8859-15, KOI8-R e CP437, são descritos em multibyte(3). A lista ativa de conjuntos de caracteres pode ser encontrada no IANA Registry.

Alguns idiomas, como Chinês ou Japonês, não podem ser representados usando caracteres ASCII e requerem uma codificação de idioma estendida usando caracteres wide ou multibyte. Exemplos de codificações de wide ou multibyte incluem EUC e Big5. Aplicativos mais antigos podem confundir essas codificações com caracteres de controle, enquanto aplicativos mais novos geralmente reconhecem esses caracteres. Dependendo da implementação, os usuários podem ser obrigados a compilar um aplicativo com suporte a caracteres wide ou multibyte, ou configurá-lo corretamente.

### Nota:

O FreeBSD usa codificações de locale compatíveis com o Xorg.

O restante desta seção descreve os vários métodos para configurar a localidade em um sistema FreeBSD. A próxima seção discutirá as considerações para encontrar e compilar aplicativos com suporte a i18n.

### 22.2.1. Definindo a Localidade para o Login Shell

As configurações de localidade são configuradas no `~/.login_conf` do usuário ou no arquivo de inicialização do shell do usuário: `~/.profile`, `~/.bashrc`, or `~/.cshrc`.

Duas variáveis ​​de ambiente devem ser definidas:

- `LANG`, que define o idioma

- `MM_CHARSET`, que define o conjunto de caracteres MIME usado pelos aplicativos

Além da configuração do shell do usuário, essas variáveis ​​também devem ser definidas para configurações específicas de aplicativos e configurações do Xorg.

Dois métodos estão disponíveis para fazer as atribuições de variáveis ​​necessárias: o método classes de login, que é o método recomendado, e o método arquivo de inicialização. As próximas duas seções demonstram como usar os dois métodos.

#### 22.2.1.1. Método de Classes de Login

Este primeiro método é o método recomendado, pois atribui as variáveis ​​de ambiente necessárias para o nome da localidade e os conjuntos de caracteres MIME para todos os shell possíveis. Essa configuração pode ser executada para cada usuário ou pode ser configurada para todos os usuários pelo superusuário.

Esse exemplo mínimo define as duas variáveis ​​para a codificação Latin-1 no `.login_conf` do diretório inicial de um usuário individual:

    me:\
    	:charset=ISO-8859-1:\
    	:lang=de_DE.ISO8859-1:

Aqui está um exemplo de `~/.login_conf` de um usuário que define as variáveis ​​para o Chinês Tradicional na codificação BIG-5. Mais variáveis ​​são necessárias porque alguns aplicativos não respeitam corretamente variáveis ​​de idioma para o Chinês, Japonês e Coreano:

    #Users who do not wish to use monetary units or time formats
    #of Taiwan can manually change each variable
    me:\
    	:lang=zh_TW.Big5:\
    	:setenv=LC_ALL=zh_TW.Big5,LC_COLLATE=zh_TW.Big5,LC_CTYPE=zh_TW.Big5,LC_MESSAGES=zh_TW.Big5,LC_MONETARY=zh_TW.Big5,LC_NUMERIC=zh_TW.Big5,LC_TIME=zh_TW.Big5:\
    	:charset=big5:\
    	:xmodifiers="@im=gcin": #Set gcin as the XIM Input Server

Como alternativa, o superusuário pode configurar a localização para todos os usuários do sistema. As seguintes variáveis no `/etc/login.conf` são usadas para definir a localidade e o conjunto de caracteres MIME:

    language_name|Account Type Description:\
    	:charset=MIME_charset:\
    	:lang=locale_name:\
    	:tc=default:

Então, o exemplo anterior do Latin-1 ficaria assim:

    german|German Users Accounts:\
    	:charset=ISO-8859-1:\
    	:lang=de_DE.ISO8859-1:\
    	:tc=default:

Veja o login.conf(5) para mais detalhes sobre estas variáveis.

Sempre que `/etc/login.conf` for editado, lembre-se de executar o seguinte comando para atualizar o banco de dados de recursos:

    # cap_mkdb /etc/login.conf

##### 22.2.1.1.1. Utilitários que Alteram as Classes de Login

Além de editar manualmente o `/etc/login.conf`, vários utilitários estão disponíveis para definir a localidade de usuários recém-criados.

Ao usar o `vipw` para adicionar novos usuários, especifique o `idioma` para definir a localidade:

    user:password:1111:11:language:0:0:User Name:/home/user:/bin/sh

Ao usar o `adduser` para adicionar novos usuários, o idioma padrão pode ser pré-configurado para todos os novos usuários ou especificado para um usuário individual.

Se todos os novos usuários usarem o mesmo idioma, configure `defaultclass=`language`` em `/etc/adduser.conf`.

Para substituir essa configuração ao criar um usuário, insira a localidade necessária neste prompt:

    Enter login class: default []:

ou especifique a localidade ao executar o `adduser`:

    # adduser -class language

Se o `pw` for usado para adicionar novos usuários, especifique a localidade da seguinte forma:

    # pw useradd user_name -L language

#### 22.2.1.2. Método de Arquivo de Inicialização do Shell

Esse segundo método não é recomendado, pois cada shell usado requer configuração manual, e cada shell tem um arquivo de configuração diferente e uma sintaxe diferente. Como exemplo, para definir o idioma Alemão para o shell `sh`, essas linhas podem ser adicionadas ao `~/.profile` para definir o shell apenas para esse usuário. Essas linhas também podem ser adicionadas ao `/etc/profile` ou `/usr/share/skel/dot.profile` para definir esse shell para todos os usuários:

    LANG=de_DE.ISO8859-1; export LANG
    MM_CHARSET=ISO-8859-1; export MM_CHARSET

No entanto, o nome do arquivo de configuração e a sintaxe usada são diferentes para o shell `csh`. Estas são as configurações equivalentes para o `~/.csh.login`, `/etc/csh.login`, ou `/usr/share/skel/dot.login`:

    setenv LANG de_DE.ISO8859-1
    setenv MM_CHARSET ISO-8859-1

Para complicar, a sintaxe necessária para configurar o Xorg no `~/.xinitrc` também depende do shell. O primeiro exemplo é para o shell `sh` e o segundo é para o shell `csh`:

    LANG=de_DE.ISO8859-1; export LANG

    setenv LANG de_DE.ISO8859-1

### 22.2.2. Configuração do Console

Várias fontes de localização estão disponíveis para o console. Para ver uma lista de fontes disponíveis, digite `ls /usr/share/syscons/fonts`. Para configurar a fonte do console, especifique o `font_name`, sem o sufixo `.fnt`, em `/etc/rc.conf`:

    font8x16=font_name
    font8x14=font_name
    font8x8=font_name

O keymap e o screenmap podem ser definidos adicionando o seguinte ao `/etc/rc.conf`:

    scrnmap=screenmap_name
    keymap=keymap_name
    keychange="fkey_number sequence"

Para ver a lista de screenmaps disponíveis, digite `ls /usr/share/syscons/scrnmaps`. Não inclua o sufixo `.scm` ao especificar `screenmap_name`. Um screenmap com uma fonte mapeada correspondente geralmente é necessário como uma solução alternativa para expandir o bit 8 para o 9 na matriz de caracteres de fonte de um adaptador VGA para que as letras sejam movidas para fora da área de pseudo-grafia se a fonte da tela usar uma coluna de 8 bits.

Para ver a lista de mapas de teclado disponíveis, digite `ls /usr/share/syscons/keymaps`. Ao especificar o `keymap_name`, não inclua o sufixo `.kbd`. Para testar os mapas de teclado sem reinicializar o sistema, use kbdmap(1).

A entrada `keychange` geralmente é necessária para programar as teclas de função para corresponder ao tipo de terminal selecionado, porque as sequências de teclas de função não podem ser definidas no mapa de teclas.

Em seguida, defina o tipo de terminal do console correto em `/etc/ttys` para todas as entradas do terminal virtual. Tabela 22.2, “Tipos de Terminal Definidos para Conjuntos de Caracteres” resume os tipos de terminais disponíveis:

Tabela 22.2. Tipos de Terminal Definidos para Conjuntos de Caracteres

Conjunto de Caracteres | Tipo de Terminal
--- | ---
ISO8859-1 ou ISO8859-15 | `cons25l1`
ISO8859-2 | `cons25l2`
ISO8859-7 | `cons25l7`
KOI8-R | `cons25r`
KOI8-U | `cons25u`
CP437 (VGA padrão) | `cons25`
US-ASCII | `cons25w`

Para idiomas com caracteres wide ou multibyte, instale um console para esse idioma a partir da Coleção de Ports do FreeBSD. Os ports disponíveis estão resumidos em Tabela 22.3, “Consoles Disponíveis pela Coleção de Ports”. Uma vez instalado, consulte o `pkg-message` dos ports ou as páginas de manual para instruções de configuração e uso.

Tabela 22.3. Consoles Disponíveis pela Coleção de Ports

Idioma | Localização do Port
--- | ---
Chinês Tradicional (BIG-5) | chinese/big5con
Chinês/Japonês/Coreano | chinese/cce
Chinês/Japonês/Coreano | chinese/zhcon
Japonês | chinese/kon2
Japonês | japanese/kon2-14dot
Japonês | japanese/kon2-16dot

Se o moused estiver ativado no `/etc/rc.conf`, uma configuração adicional pode ser necessária. Por padrão, o cursor do mouse do driver syscons(4) ocupa o intervalo `0xd0`-`0xd3` no conjunto de caracteres. Se o idioma usar esse intervalo, mova o intervalo do cursor adicionando a seguinte linha ao `/etc/rc.conf`:

    mousechar_start=3

### 22.2.3. Configuração do Xorg

O Capítulo 5, O sistema X Window descreve como instalar e configurar o Xorg. Ao configurar localizações no Xorg, fontes adicionais e métodos de entrada estão disponíveis na Coleção de Ports do FreeBSD. Configurações específicas de i18n para aplicações como fontes e menus podem ser tunadas em `~/.Xresources` e devem permitir que os usuários visualizem o idioma selecionado nos menus das aplicações gráficas.

O protocolo X Input Method (XIM) é um padrão Xorg para inserir caracteres não Ingleses. Tabela 22.4, “Métodos de Entrada Disponíveis” resume os métodos de entrada de aplicações que estão disponíveis na Coleção de Ports do FreeBSD. Aplicativos adicionais Fcitx e Uim também estão disponíveis.

Tabela 22.4. Métodos de Entrada Disponíveis

Idioma | Método de Entrada
--- | ---
Chinês | chinese/gcin
Chinês | chinese/ibus-chewing
Chinês | chinese/ibus-pinyin
Chinês | chinese/oxim
Chinês | chinese/scim-fcitx
Chinês | chinese/scim-pinyin
Chinês | chinese/scim-tables
Japonês | japanese/ibus-anthy
Japonês | japanese/ibus-mozc
Japonês | japanese/ibus-skk
Japonês | japanese/im-ja
Japonês | japanese/kinput2
Japonês | japanese/scim-anthy
Japonês | japanese/scim-canna
Japonês | japanese/scim-honoka
Japonês | japanese/scim-honoka-plugin-romkan
Japonês | japanese/scim-honoka-plugin-wnn
Japonês | japanese/scim-prime
Japonês | japanese/scim-skk
Japonês | japanese/scim-tables
Japonês | japanese/scim-tomoe
Japonês | japanese/scim-uim
Japonês | japanese/skkinput
Japonês | japanese/skkinput3
Japonês | japanese/uim-anthy
Coreano | korean/ibus-hangul
Coreano | korean/imhangul
Coreano | korean/nabi
Coreano | korean/scim-hangul
Coreano | korean/scim-tables
Vietnamita | vietnamese/xvnkb
Vietnamita | vietnamese/x-unikey

Anterior | Acima | Próxima
Capítulo 22. Localização - Uso e Configuração do i18n/L10n | Principal | 22.3. Encontrando Aplicações i18n

All FreeBSD documents are available for download at https://download.freebsd.org/ftp/doc/

Questions that are not answered by the documentation may be sent to <freebsd-questions@FreeBSD.org>.
Send questions about this document to <freebsd-doc@FreeBSD.org>.