pkg://howto-html-en-10.1-4mdv2008.1.noarch.rpm:16697283/
usr/
share/
doc/
HOWTO/
HTML/
en/
Portuguese/Portuguese-HOWTO-2.html
info downloads
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
<TITLE>Linux Portuguese-HOWTO: Informações gerais</TITLE>
<LINK HREF="Portuguese-HOWTO-3.html" REL=next>
<LINK HREF="Portuguese-HOWTO-1.html" REL=previous>
<LINK HREF="Portuguese-HOWTO.html#toc2" REL=contents>
</HEAD>
<BODY>
<A HREF="Portuguese-HOWTO-3.html">Next</A>
<A HREF="Portuguese-HOWTO-1.html">Previous</A>
<A HREF="Portuguese-HOWTO.html#toc2">Contents</A>
<HR>
<H2><A NAME="s2">2. Informações gerais</A></H2>
<H2><A NAME="ss2.1">2.1 Conjuntos de caracteres</A>
</H2>
<P>Um conjunto de caracteres é definido de acordo com os símbolos constantes no
alfabeto utilizado para escrita em uma ou mais línguas. A Organização
Internacional de Normas (<EM>International Standards Organization</EM> - ISO)
padronizou através da norma ISO-8859 vários desses conjuntos, identificados
por ISO-8859-<EM>x</EM> onde o <EM>x</EM> corresponde a um determinado alfabeto. O
conjunto ISO-8859 utiliza 8 bits para representar cada caracter, o que permite
uma gama de 256 sinais (valores de zero a 255). Em cada um dos conjuntos, os
códigos zero a 127 correspondem ao conjunto ASCII (<EM>American Standard Code
for Information Interchange</EM>) e os códigos 160 a 255 são usados para
caracteres nacionais.
<P>Para a língua portuguesa, recomenda-se o uso do conjunto ISO-8859-1, que
compreende o alfabeto latino e letras acentuadas usadas pelas línguas do
oeste da Europa e América. Este conjunto de caracteres também é frequentemente
chamado de Latin-1 ou ISO Latin-1.
<P>Um padrão mais recente é o Unicode, definido pela norma ISO-10646, que permite
definir caracteres cuja representação interna no computador utiliza mais de um
byte (ou <EM>octeto</EM> na nomenclatura ISO). Todas as versões mais recentes de
sistemas Unix suportam Unicode (ou pelo menos seus fabricantes alegam
suportar).
<P>Além dos caracteres alfanuméricos e sinais de acentuação, é possível também
gerar sinais <EM>semigráficos</EM> para desenho de linhas e bordas.
Esses sinais podem aproveitar códigos não utilizados pelo conjunto oficial,
tornando-os não portáveis.
<P>O <B>Linux</B> foi desenhado internamente de modo a facilitar a sua fácil
configuração e extensão em tempo de execução, não constituindo o tratamento do
teclado e fontes de caracteres excepção. Ele possui uma implementação ``nível
1'' do padrão Unicode. Maiores detalhes podem ser encontrados nos manuais do
Linux, que podem ser lido com os comandos
<PRE>
man unicode
man utf-8
man iso_8859_1
man ascii
</PRE>
mas antes disso certifique-se de que o <EM>man</EM> está configurado corretamente,
conforme mostrado na seção
<A HREF="Portuguese-HOWTO-6.html#SEC:MAN">Man, groff, troff</A>.
<P>
<H2><A NAME="SEC:DIFXC"></A> <A NAME="ss2.2">2.2 Modo texto versus Sistema de Janelas X</A>
</H2>
<P>Alguns sistemas operativos, tais como MacOS, Microsoft Windows e NeXT, possuem
interfaces gráficas próprias. No Linux, assim como na maioria dos
sistemas compatíveis com Unix, é de uso corrente um ambiente gráfico criado
para ser ``multiplataforma'': o X Window System, que também foi projetado para
suportar diversos conjuntos de caracteres, idiomas e formatos de teclado, mas
ainda <B>não</B> suporta totalmente o padrão Unicode e sim uma extensão do
ISO-8859.
<P>
<BLOCKQUOTE>
A rigor o X Window System <B>não</B> é uma interface gráfica com o usuário, mas
a combinação de um protocolo de comunicação com uma interface com programas
aplicativos (API) <EM>sobre a qual</EM> se construíram várias interfaces gráficas.
Tanto o protocolo quanto o Sistema de Janelas definem um conjunto de
<EM>mecanismos</EM> e não <EM>políticas</EM> (elementos característicos da política de
uma Interface Gráfica com o Usuário são menus, botões e caixas de diálogo).
O uso do termo ``XWindows'' é incorreto e deve ser evitado, dando-se
preferência ao nome genérico ``X''.
</BLOCKQUOTE>
<P>Existem muitas semelhanças entre os dois ambientes. Ambos se baseiam em
padrões internacionais para definição de conjuntos de caracteres. Tanto no X
quanto no console do Linux pode-se definir uma tecla chamada <EM>Compose</EM>
cujo pressionamento seguido de duas outras gerará o caracter correspondente.
Assim sendo, o pressionamento da seqüência <B>compose-,-c</B> gerará um c
cedilhado.
<P>O tratamento do console é feito diretamente pelo sistema operativo e
aplicações comuns não se envolvem com o processamento dos códigos de varredura
do teclado, recebendo um caracter ou uma seqüência deles ao ser pressionada
cada tecla, de tal sorte que tendo sido corretamente configurados o
teclado e a fonte de caracteres pouco mais se tem a fazer.
<P>O X possui uma arquitetura muito diferente: tanto o teclado quanto a(s)
tela(s) -- pode haver mais de uma tela -- são controlados por uma aplicação
especial chamada <EM>servidor X</EM>. O pressionamento de uma tecla gera uma
mensagem (chamada de <EM>evento</EM>) que é passada pelo servidor X à aplicação
<EM>cliente</EM>. Há um programa muito útil chamado <EM>xev</EM> que permite observar
cada evento a ele transmitido. Cliente e servidor se comunicam via
rede usando um conjunto de regras chamado <EM>protocolo X</EM> e podem rodar em
máquinas diferentes. A máquina onde roda o servidor é chamada <EM>estação de
trabalho</EM> ou <EM>terminal X</EM> e a máquina onde roda a aplicação (programa
cliente) também é chamada de <EM>cliente</EM>.
<P>Foge ao escopo deste texto a discussão mais profunda do tratamento de eventos
no X. Para maiores informações, sugere-se a consulta aos documentos
mencionados na seção
<A HREF="Portuguese-HOWTO-10.html#SEC:BIBLIOGRAFIA">Leituras recomendadas</A>, mas
é importante esclarecer que o evento enviado pelo servidor ao cliente não
contém o código numérico da tecla, chamado <EM>keycode</EM> na terminologia do X.
Ao invés disso, é enviado um símbolo, chamado <EM>keysymbol</EM> ou <EM>keysym</EM>,
obtido pela consulta a uma tabela de conversão mantida na memória do servidor.
Esta tabela pode ser modificada total ou parcialmente a qualquer momento por
meio de requisições definidas no protocolo X.
<P>Existe um programa chamado <EM>xmodmap</EM> capaz de ler um arquivo contendo uma
tabela de conversão <EM>keycode</EM>--><EM>keysym</EM> e enviá-la, também na forma
de mensagens no protocolo X, ao servidor. É responsabilidade do cliente e
não do servidor interpretar o <EM>keysym</EM>, o que significa que a
aplicação deve saber esperar mais um caracter ao receber uma ``tecla
morta'' para compor uma letra acentuada.
<P>Desde a revisão 5 do X existe na bibliotaca de funções (<EM>Xlib</EM>) um
mecanismo sofisticado de suporte à geração de caracteres em diversos códigos.
A função de tratamento de entrada de texto que já existia nas versões
anteriores, chamada <B>XLookupString</B>, entretanto, não processa as
seqüências de acentos e letras de modo transparente às aplicações. Ao invés
disso foi incluído um método de composição usando <EM>contextos de entrada</EM>
(<EM>input contexts</EM>) por meio das funções <B>XmbLookupString</B> e
<B>XwcLookupString</B>, cujo uso é responsabilidade da aplicação -- ou do seu
programador, melhor dizendo -- mesmo no caso da tecla <EM>Compose</EM>. Isto
deve-se so fato de o <EM>X Consortium</EM> ter chegado à conclusão de que o
sistema de mapeamento de teclas não tratava de forma satisfatória toda a
imensa variedade de línguas escritas nas várias partes do mundo. Deste modo,
decidiu-se que o ``peso'' relativo à gestão do teclado fosse transferido para
as aplicações X, o que cria uma dificuldade quando usamos aquelas mais
antigas, que não usam o novo método de tratar a entrada.
<P>Por essas razões é normalmente mais difícil conseguir acrescentar suporte à
geração de caracteres acentuados em aplicativos que rodam sob o X,
principalmente quando não se possui o código fonte. Aplicativos feitos para
rodar apenas em modo texto, tais como <B>vi</B> e <B>minicom</B> dependerão
totalmente dos recursos do emulador de terminal em uso quando rodando em uma
janela do X. Se for usada uma versão atual do <EM>xterm</EM> ou <EM>rxvt</EM> o
emulador fará o tratamento correto dos acentos.
<P>O francês Thomas Quinot, cansado de esperar uma solução melhor para o problema
da acentuação no X, resolveu implementar uma modificação para a Xlib proposta
por André D. Balsa, que adiciona suporte à acentuação direta conforme mostrado
na seção
<A HREF="Portuguese-HOWTO-5.html#SEC:CONTOR-X">Contornando os limites do X</A>. Isso
permite usar aplicações como <EM>xfig</EM> ou <EM>xedit</EM> sem que seja necessário
alterá-las. O truque parece funcionar apenas para caracteres do código
ISO-8859-1 mas é suficiente para o Português e outras línguas. Como bem
observa Balsa, a longo prazo todos os programas deverão ser modificados para
usar os novos recursos do X, mas como a longo prazo estaremos todos mortos a
solução de curto prazo de Quinot torna-se bastante atraente...
<P>
<HR>
<A HREF="Portuguese-HOWTO-3.html">Next</A>
<A HREF="Portuguese-HOWTO-1.html">Previous</A>
<A HREF="Portuguese-HOWTO.html#toc2">Contents</A>
</BODY>
</HTML>