Índice
O Multilingualization (M17N) ou Suporte de Linguagem Nativa para um software de aplicação é feito em 2 passos.
Internationalization (I18N): Para fazer com que o software lide potencialmente com múltiplos locales.
Localization (L10N): Tornar o software útil num locale específico.
![]() |
Dica |
---|---|
Existem 17, 18 ou 10 letras entre "m" e "n", "i" e "n", ou "l" e "n" na multi-linguagem, internacionalização e localização, que correspondem a M17N, I18N e L10N. Consulte Internacionalização e localização para obter detalhes. |
O comportamento dos programas que suportam a internacionalização é
configurado pela variável de ambiente "$LANG
" para
suportar a localização. O suporte de funcionalidades dependentes da
configuração regional pela biblioteca libc
requer a
instalação dos pacotes locales
ou
locales-all
. O pacote locales
necessita de ser inicializado corretamente.
Se nem o pacote locales
nem o pacote
locales-all
estiverem instalados, o suporte a
funcionalidades regionais perde-se e o sistema utiliza mensagens em inglês
dos EUA e trata os dados como ASCII.
Este comportamento é o mesmo que "$LANG
" é definido por
"LANG=
", "LANG=C
", ou
"LANG=POSIX
".
O software moderno como o GNOME e o KDE são multilingue. Eles são
internacionalizados ao fazê-los lidar com dados UTF-8 e localizados ao disponibilizar as suas mensagens
traduzidas através da infraestrutura gettext
(1). As
mensagens traduzidas podem ser disponibilizadas em pacotes de configuração
local independentes.
O atual sistema GUI de área de trabalho Debian normalmente define a
configuração regional sob o ambiente GUI como
"LANG=xx_YY.UTF-8
". Aqui, "xx
" são
códigos de idioma ISO 639 e
"YY
" são códigos de
país ISO 3166. Estes valores são definidos pela caixa de diálogo
GUI de configuração do ambiente de trabalho e alteram o comportamento do
programa. Veja Secção 1.5.2, “A variável "$LANG
"”
A representação mais simples dos dados de texto é o ASCII, que é suficiente para o inglês e utiliza menos de 127 caracteres (representáveis com 7 bits).
Mesmo o Inglês simples pode conter caracteres não-ASCII, ex. as marcas de citação esquerda e direita ligeiramente curvas não estão disponíveis em ASCII.
“double quoted text” is not "double quoted ASCII" ‘single quoted text’ is not 'single quoted ASCII'
A fim de suportar mais caracteres, foram utilizados muitos conjuntos de caracteres e sistemas de codificação para suportar muitas línguas (ver Tabela 11.2, “Lista de valores de codificação e a utilização deles”).
O conjunto de caracteres Unicode pode representar praticamente todos os caracteres conhecidos pelo ser humano com uma gama de pontos de código de 21 bits (ou seja, de 0 a 10FFFF em notação hexadecimal).
O sistema de codificação de texto UTF-8 adapta os pontos de código Unicode a um fluxo de dados de 8 bits sensato, compatível sobretudo com o sistema de processamento de dados ASCII. Este facto torna o UTF-8 a escolha mais moderna e preferida. UTF significa Unicode Transformation Format (Formato de Transformação Unicode). Quando os dados de texto simples ASCII são convertidos para UTF-8, têm exatamente o mesmo conteúdo e tamanho que o ASCII original. Por isso, não perde nada ao implementar a configuração regional UTF-8.
Sob a configurações regionais UTF-8 com programa
de aplicação compatível, pode apresentar e editar dados de texto em qualquer
língua estrangeira desde que as fontes e os métodos de introdução
necessários estejam instalados e ativados. Por exemplo, sob a configuração
regional "LANG=fr_FR.UTF-8
", o
gedit
(1) (editor de texto para o ambiente de trabalho
GNOME) pode mostrar e editar dados de texto em caracteres chineses enquanto
apresenta menus em francês.
![]() |
Dica |
---|---|
Tanto a nova configuração regional padrão " |
![]() |
Nota |
---|---|
Alguns programas consomem mais memória após suportarem I18N. Isto é porque estão codificados para usar UTF-32(UCS4) internamente para suportar Unicode para optimização de velocidade e consomem 4 bytes por cada caractere ASCII independentemente do locale selcionado. Mais uma vez, não perde nada ao implantar o locale UTF-8. |
Para que o sistema aceda a uma determinada configuração regional, os dados dessa localização devem ser compilados a partir da base de dados das configurações regionais.
O pacote locales
não
vem com dados de localidade pré-compilados. É necessário configurá-lo como:
# dpkg-reconfigure locales
Este processo involve 2 passos.
Selecione todas as configurações regionais necessárias para serem compiladas no formato binário. (Certifique-se de que inclui pelo menos uma configuração UTF-8)
Definir a configuração regional predefinida de todo o sistema em
"/etc/default/locale
" para usar com o PAM (veja Secção 4.5, “PAM e NSS”).
O valor da configuração regional por defeito do sistema definido em
"/etc/default/locale
" pode ser substituído pela
configuração GUI para aplicações GUI.
![]() |
Nota |
---|---|
O sistema de codificação tradicional atual pode ser identificado por
" |
O pacote locales-all
vem com dados de regionais
pré-compilados para todos os dados de região. Uma vez que não cria o
ficheiro "/etc/default/locale
", poderá ter de instalar
também o pacote locales
.
![]() |
Dica |
---|---|
O pacote |
Para troca de dados entre plataformas (veja Secção 10.1.7, “Aparelho de armazenamento amovível”), pode precisar de montar algum
sistema de ficheiros com codificações particulares. por exemplo, o
mount
(8) para sistema de
ficheiros vfat assume CP437 se usado
sem opção. Precisa de fornecer uma opção explícita de montagem para usar
UTF-8 ou CP932 para
os nomes dos ficheiros.
![]() |
Nota |
---|---|
Quando se monta automaticamente uma caneta de memória USB sob ambientes de trabalho modernos como o GNOME, pode fornecer tal opção de montagem ao clicar com o botão direito no ícone no ambiente de trabalho, clique no separador "Drive", clique para expandir "Definições" e insira "utf8" nas "Opções de montagem:". Não próxima vez que esta caneta de memória for montada, está activa a montagem com UTF-8. |
![]() |
Nota |
---|---|
Se está a atualizar o sistema ou a mover os discos de um sistema antigo não-UTF-8, os nomes de ficheiros com caracteres não-ASCII podem ser codificados com as codificações históricas e obsoletas como a ISO-8859-1 ou eucJP. por favor procure a ajuda de ferramentas de conversão de texto para convertê-los para UTF-8. Veja Secção 11.1, “Ferramentas de conversão de dados em texto”. |
O Samba usa Unicode para os clientes mais
recentes (Windows NT, 200x, XP) mas usa CP850
para os clientes mais antigos (DOS e Windows 9x/Me) por predefinição. Esta
predefinição para os clientes mais antigos pode ser alterada a usar
"dos charset
" no ficheiro
"/etc/samba/smb.conf
" por exemplo para CP932 para Japonês.
Existem traduções para muitas das mensagens de texto e documentos que são mostrados no sistema Debian, tais como as mensagens de erro, as saídas normais dos programas, os menus e os manuais. A cadeia de ferramentas de comandos gettext(1) do GNU é usada como a ferramenta backend para a maioria das atividades de tradução.
Sob "Tarefas" → "Localização" o aptitude
(8) disponibiliza
uma lista extensa de pacotes binários úteis que adicionam mensagens
localizadas às aplicações e fornecem documentação traduzida.
Por exemplo, pode obter as mensagens localizadas para os manuais ao instalar
o pacote manpages-LANG
. Para ler o
manual em linguagem Italiana para o nome_do_programa a
partir de "/usr/share/man/it/
", execute o seguinte.
LANG=it_IT.UTF-8 man programname
O GNU gettext pode acomodar uma lista prioritária de idiomas de tradução com
a variável de ambiente $LANGUAGE
. Por exemplo:
$ export LANGUAGE="pt:pt_BR:es:it:fr"
Para mais informações, consulte info gettext
e leia a
secção "A variável LANGUAGE".
A ordem de ordenação dos caracteres com sort
(1) e
ls
(1) é afetada pelas configurações regionais. Exportando
LANG=en_US.UTF-8
ordena pelo dicionário
A->a->B->b...->Z->z
, enquanto a exportação
de LANG=C.UTF-8
ordena na ordem binária
A->B->...->Z->a->b...
do dicionário.
O formato de data de ls
(1) é afetado pela configuração
regional (ver Secção 9.3.4, “Amostragem personalizada de hora e data”).
O formato de data de date
(1) é afetado pela configuração
regional. Por exemplo:
$ unset LC_ALL $ LANG=en_US.UTF-8 date Thu Dec 24 08:30:00 PM JST 2023 $ LANG=en_GB.UTF-8 date Thu 24 Dec 20:30:10 JST 2023 $ LANG=es_ES.UTF-8 date jue 24 dic 2023 20:30:20 JST $ LC_TIME=en_DK.UTF-8 date 2023-12-24T20:30:30 JST
As pontuações numéricas são diferentes consoante as configurações
locais. Por exemplo, na configuração regional Inglês, mil virgula um é
mostrado como "1,000.1
" enquanto na configuração regional
Alemão é mostrado como 1.000,1
". Pode ver esta diferença
num programa de folha de cálculo.
Cada caraterística pormenorizada da variável de ambiente
"$LANG
" pode ser substituída pela definição das variáveis
"$LC_*
". Estas variáveis de ambiente podem ser
substituídas novamente pela definição da variável
"$LC_ALL
". Veja a página de manual do
locale
(7) para mais detalhes. A não ser que tenha uma
razão forte para criar configurações complicadas, por favor mantenha-se
afastado delas e use apenas a variável "$LANG
" definida
para uma das configurações regionais UTF-8.
O sistema Debian pode ser configurado para funcionar com muitas disposições
internacionais de teclado a usar os pacotes
keyboard-configuration
e
console-setup
.
# dpkg-reconfigure keyboard-configuration # dpkg-reconfigure console-setup
Para a consola Linux e o sistema X Window, isto atualiza os parâmetros de
configuração em "/etc/default/keyboard
" e
"/etc/default/console-setup
". Isto também configura a
fonte da consola Linux. Muitos caracteres não-ASCII incluindo caracteres
acentuados usados por muitas línguas europeias podem ser disponibilizados
com a tecla dead, a tecla AltGr, e a tecla
compose.
Para o GNOME no sistema de ambiente de trabalho Wayland, o Secção 8.2.1, “A entrada de teclado para a consola Linux e o X Window” não suporta
idiomas europeus que não sejam ingleses. O IBus
foi criado para suportar não apenas idiomas asiáticos, mas também idiomas
europeus. A dependência de pacotes do Ambiente de Trabalho GNOME recomenda
o "ibus
" através do "gnome-shell
". O
código do "ibus
" foi atualizado para integrar as
funcionalidades das opções setxkbmap
e XKB. É necessário
configurar o ibus
em "Configurações do GNOME" ou "Ajustes
do GNOME" para a entrada de teclado multilíngua.
![]() |
Nota |
---|---|
Se o ibus estiver ativo, a sua configuração clássica do teclado X através do
|
Uma vez que o ambiente de trabalho GNOME recomenda "ibus
"
através de "gnome-shell
", "ibus
" é a
melhor escolha para o método de entrada.
Entrada multilingue para a aplicação é processada como:
Keyboard Application | ^ | | +-> Linux kernel -> Input method (ibus) -> Gtk, Qt, X, Wayland +-- Engine--+
A lista do IBus e dos seus pacotes de motores é a seguinte.
Tabela 8.1. Lista do IBus e dos seus pacotes de motores
pacote | popcon | tamanho | locale suportado |
---|---|---|---|
ibus | V:198, I:245 | 1723 | estrutura de método de entrada que usa dbus |
ibus-mozc | V:1, I:3 | 944 | Japonês |
ibus-anthy | V:0, I:1 | 8856 | , , |
ibus-skk | V:0, I:0 | 242 | , , |
ibus-kkc | V:0, I:0 | 210 | , , |
ibus-libpinyin | V:1, I:3 | 2761 | Chinês (para zh_CN) |
ibus-chewing | V:0, I:0 | 247 | , , (para zh_TW) |
ibus-libzhuyin | V:0, I:0 | 40995 | , , (para zh_TW) |
ibus-rime | V:0, I:0 | 73 | , , (for zh_CN/zh_TW) |
ibus-cangjie | V:0, I:0 | 119 | , , (for zh_HK) |
ibus-hangul | V:0, I:2 | 264 | Coreano |
ibus-libthai | I:0 | 90 | Thai |
ibus-table-thai | I:0 | 58 | Thai |
ibus-unikey | V:0, I:0 | 318 | Vietnamita |
ibus-keyman | V:0, I:0 | 161 | Multilingue: motor Keyman para mais de 2000 idiomas |
ibus-table | V:0, I:1 | 2176 | motor de tabela para IBus |
ibus-m17n | V:0, I:1 | 395 | Multilingue: Indiano, Árabe e outros |
plasma-widgets-addons | V:50, I:100 | 1992 | widgets adicionais para o Plasma 5 que contêm o indicador de teclado |
![]() |
Nota |
---|---|
Para os chineses, " |
Acho muito útil o método de entrada de Japonês começado sob ambiente Inglês
"en_US.UTF-8
"). Aqui está como fiz isto com o IBus para
GNOME em Wayland:
Instale o pacote de ferramentas de entrada em japonês
ibus-mozc
(ou ibus-anthy
) com os seus
pacotes recomendados, como o im-config
.
Selecione "Definições" → "Teclado" → "Fontes de Introdução" → clique em
"+
" em "..." → "Outro" → "Japonês" e clique "Adicionar".
Pode escolher tantas fontes de entrada quantas desejar.
Voltar a fazer login na conta do utilizador.
Configure cada fonte de entrada clicando com o botão direito do rato no ícone da barra de ferramentas GUI.
Alterne entre as fontes de entrada instaladas com SUPER-ESPAÇO. (SUPER é normalmente a Tecla Windows.)
![]() |
Dica |
---|---|
Se pretender aceder ao ambiente de teclado só com o alfabeto com o teclado
físico japonês no qual o |
A entrada do menu GUI para im-config
(8) é "Input method"
(Método de entrada).
Em alternativa, execute ""im-config
" a partir da shell do
utilizador.
O im-config
(8) comporta-se de modo diferente se o comando
for executado pelo root ou não.
im-config
(8) activa o melhor método de entrada do sistema
e é predefinido sem qualquer acção do utilizador.
A consola do Linux apenas pode mostrar caracteres limitados. (Precisa usar
programas de terminal especiais como o jfbterm
(1) para
mostrar linguagens não-Europeias numa consola não GUI.)
O ambiente GUI (Capítulo 7, Sistema GUI (interface gráfica de utilizador)) pode apresentar quaisquer caracteres em UTF-8, desde que as fontes necessárias estejam instaladas e ativadas. (A codificação dos dados originais do tipo de letra é tratada e transparente para o utilizador.)
Em localizações ao leste da Asia, o desenhar de caixa, os caracteres Gregos e Cirílicos podem aparecer mais largos que o desejado e causarem o desalinhamento da saída do terminal (veja Unicode Standard Annex #11).
Pode contornar este problema:
gnome-terminal
: Preferências → Perfis → nome do
perfil → Compatibilidade → Caracteres de Largura Ambígua →
Estreito
ncurses
: Define ambiente export
NCURSES_NO_UTF8_ACS=0
.