old-www/HOWTO/Portuguese-HOWTO-2.html

157 lines
10 KiB
HTML

<!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&ccedil;&otilde;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&ccedil;&otilde;es gerais</A></H2>
<H2><A NAME="ss2.1">2.1 Conjuntos de caracteres</A>
</H2>
<P>Um conjunto de caracteres &eacute; definido de acordo com os s&iacute;mbolos constantes no
alfabeto utilizado para escrita em uma ou mais l&iacute;nguas. A Organiza&ccedil;&atilde;o
Internacional de Normas (<EM>International Standards Organization</EM> - ISO)
padronizou atrav&eacute;s da norma ISO-8859 v&aacute;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&oacute;digos zero a 127 correspondem ao conjunto ASCII (<EM>American Standard Code
for Information Interchange</EM>) e os c&oacute;digos 160 a 255 s&atilde;o usados para
caracteres nacionais.
<P>Para a l&iacute;ngua portuguesa, recomenda-se o uso do conjunto ISO-8859-1, que
compreende o alfabeto latino e letras acentuadas usadas pelas l&iacute;nguas do
oeste da Europa e Am&eacute;rica. Este conjunto de caracteres tamb&eacute;m &eacute; frequentemente
chamado de Latin-1 ou ISO Latin-1.
<P>Um padr&atilde;o mais recente &eacute; o Unicode, definido pela norma ISO-10646, que permite
definir caracteres cuja representa&ccedil;&atilde;o interna no computador utiliza mais de um
byte (ou <EM>octeto</EM> na nomenclatura ISO). Todas as vers&otilde;es mais recentes de
sistemas Unix suportam Unicode (ou pelo menos seus fabricantes alegam
suportar).
<P>Al&eacute;m dos caracteres alfanum&eacute;ricos e sinais de acentua&ccedil;&atilde;o, &eacute; poss&iacute;vel tamb&eacute;m
gerar sinais <EM>semigr&aacute;ficos</EM> para desenho de linhas e bordas.
Esses sinais podem aproveitar c&oacute;digos n&atilde;o utilizados pelo conjunto oficial,
tornando-os n&atilde;o port&aacute;veis.
<P>O <B>Linux</B> foi desenhado internamente de modo a facilitar a sua f&aacute;cil
configura&ccedil;&atilde;o e extens&atilde;o em tempo de execu&ccedil;&atilde;o, n&atilde;o constituindo o tratamento do
teclado e fontes de caracteres excep&ccedil;&atilde;o. Ele possui uma implementa&ccedil;&atilde;o ``n&iacute;vel
1'' do padr&atilde;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&aacute; configurado corretamente,
conforme mostrado na se&ccedil;&atilde;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&aacute;ficas pr&oacute;prias. No Linux, assim como na maioria dos
sistemas compat&iacute;veis com Unix, &eacute; de uso corrente um ambiente gr&aacute;fico criado
para ser ``multiplataforma'': o X Window System, que tamb&eacute;m foi projetado para
suportar diversos conjuntos de caracteres, idiomas e formatos de teclado, mas
ainda <B>n&atilde;o</B> suporta totalmente o padr&atilde;o Unicode e sim uma extens&atilde;o do
ISO-8859.
<P>
<BLOCKQUOTE>
A rigor o X Window System <B>n&atilde;o</B> &eacute; uma interface gr&aacute;fica com o usu&aacute;rio, mas
a combina&ccedil;&atilde;o de um protocolo de comunica&ccedil;&atilde;o com uma interface com programas
aplicativos (API) <EM>sobre a qual</EM> se constru&iacute;ram v&aacute;rias interfaces gr&aacute;ficas.
Tanto o protocolo quanto o Sistema de Janelas definem um conjunto de
<EM>mecanismos</EM> e n&atilde;o <EM>pol&iacute;ticas</EM> (elementos caracter&iacute;sticos da pol&iacute;tica de
uma Interface Gr&aacute;fica com o Usu&aacute;rio s&atilde;o menus, bot&otilde;es e caixas de di&aacute;logo).
O uso do termo ``XWindows'' &eacute; incorreto e deve ser evitado, dando-se
prefer&ecirc;ncia ao nome gen&eacute;rico ``X''.
</BLOCKQUOTE>
<P>Existem muitas semelhan&ccedil;as entre os dois ambientes. Ambos se baseiam em
padr&otilde;es internacionais para defini&ccedil;&atilde;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&aacute; o caracter correspondente.
Assim sendo, o pressionamento da seq&uuml;&ecirc;ncia <B>compose-,-c</B> gerar&aacute; um c
cedilhado.
<P>O tratamento do console &eacute; feito diretamente pelo sistema operativo e
aplica&ccedil;&otilde;es comuns n&atilde;o se envolvem com o processamento dos c&oacute;digos de varredura
do teclado, recebendo um caracter ou uma seq&uuml;&ecirc;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&atilde;o controlados por uma aplica&ccedil;&atilde;o
especial chamada <EM>servidor X</EM>. O pressionamento de uma tecla gera uma
mensagem (chamada de <EM>evento</EM>) que &eacute; passada pelo servidor X &agrave; aplica&ccedil;&atilde;o
<EM>cliente</EM>. H&aacute; um programa muito &uacute;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&aacute;quinas diferentes. A m&aacute;quina onde roda o servidor &eacute; chamada <EM>esta&ccedil;&atilde;o de
trabalho</EM> ou <EM>terminal X</EM> e a m&aacute;quina onde roda a aplica&ccedil;&atilde;o (programa
cliente) tamb&eacute;m &eacute; chamada de <EM>cliente</EM>.
<P>Foge ao escopo deste texto a discuss&atilde;o mais profunda do tratamento de eventos
no X. Para maiores informa&ccedil;&otilde;es, sugere-se a consulta aos documentos
mencionados na se&ccedil;&atilde;o
<A HREF="Portuguese-HOWTO-10.html#SEC:BIBLIOGRAFIA">Leituras recomendadas</A>, mas
&eacute; importante esclarecer que o evento enviado pelo servidor ao cliente n&atilde;o
cont&eacute;m o c&oacute;digo num&eacute;rico da tecla, chamado <EM>keycode</EM> na terminologia do X.
Ao inv&eacute;s disso, &eacute; enviado um s&iacute;mbolo, chamado <EM>keysymbol</EM> ou <EM>keysym</EM>,
obtido pela consulta a uma tabela de convers&atilde;o mantida na mem&oacute;ria do servidor.
Esta tabela pode ser modificada total ou parcialmente a qualquer momento por
meio de requisi&ccedil;&otilde;es definidas no protocolo X.
<P>Existe um programa chamado <EM>xmodmap</EM> capaz de ler um arquivo contendo uma
tabela de convers&atilde;o <EM>keycode</EM>--&gt;<EM>keysym</EM> e envi&aacute;-la, tamb&eacute;m na forma
de mensagens no protocolo X, ao servidor. &Eacute; responsabilidade do cliente e
n&atilde;o do servidor interpretar o <EM>keysym</EM>, o que significa que a
aplica&ccedil;&atilde;o deve saber esperar mais um caracter ao receber uma ``tecla
morta'' para compor uma letra acentuada.
<P>Desde a revis&atilde;o 5 do X existe na bibliotaca de fun&ccedil;&otilde;es (<EM>Xlib</EM>) um
mecanismo sofisticado de suporte &agrave; gera&ccedil;&atilde;o de caracteres em diversos c&oacute;digos.
A fun&ccedil;&atilde;o de tratamento de entrada de texto que j&aacute; existia nas vers&otilde;es
anteriores, chamada <B>XLookupString</B>, entretanto, n&atilde;o processa as
seq&uuml;&ecirc;ncias de acentos e letras de modo transparente &agrave;s aplica&ccedil;&otilde;es. Ao inv&eacute;s
disso foi inclu&iacute;do um m&eacute;todo de composi&ccedil;&atilde;o usando <EM>contextos de entrada</EM>
(<EM>input contexts</EM>) por meio das fun&ccedil;&otilde;es <B>XmbLookupString</B> e
<B>XwcLookupString</B>, cujo uso &eacute; responsabilidade da aplica&ccedil;&atilde;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 &agrave; conclus&atilde;o de que o
sistema de mapeamento de teclas n&atilde;o tratava de forma satisfat&oacute;ria toda a
imensa variedade de l&iacute;nguas escritas nas v&aacute;rias partes do mundo. Deste modo,
decidiu-se que o ``peso'' relativo &agrave; gest&atilde;o do teclado fosse transferido para
as aplica&ccedil;&otilde;es X, o que cria uma dificuldade quando usamos aquelas mais
antigas, que n&atilde;o usam o novo m&eacute;todo de tratar a entrada.
<P>Por essas raz&otilde;es &eacute; normalmente mais dif&iacute;cil conseguir acrescentar suporte &agrave;
gera&ccedil;&atilde;o de caracteres acentuados em aplicativos que rodam sob o X,
principalmente quando n&atilde;o se possui o c&oacute;digo fonte. Aplicativos feitos para
rodar apenas em modo texto, tais como <B>vi</B> e <B>minicom</B> depender&atilde;o
totalmente dos recursos do emulador de terminal em uso quando rodando em uma
janela do X. Se for usada uma vers&atilde;o atual do <EM>xterm</EM> ou <EM>rxvt</EM> o
emulador far&aacute; o tratamento correto dos acentos.
<P>O franc&ecirc;s Thomas Quinot, cansado de esperar uma solu&ccedil;&atilde;o melhor para o problema
da acentua&ccedil;&atilde;o no X, resolveu implementar uma modifica&ccedil;&atilde;o para a Xlib proposta
por Andr&eacute; D. Balsa, que adiciona suporte &agrave; acentua&ccedil;&atilde;o direta conforme mostrado
na se&ccedil;&atilde;o&nbsp;
<A HREF="Portuguese-HOWTO-5.html#SEC:CONTOR-X">Contornando os limites do X</A>. Isso
permite usar aplica&ccedil;&otilde;es como <EM>xfig</EM> ou <EM>xedit</EM> sem que seja necess&aacute;rio
alter&aacute;-las. O truque parece funcionar apenas para caracteres do c&oacute;digo
ISO-8859-1 mas &eacute; suficiente para o Portugu&ecirc;s e outras l&iacute;nguas. Como bem
observa Balsa, a longo prazo todos os programas dever&atilde;o ser modificados para
usar os novos recursos do X, mas como a longo prazo estaremos todos mortos a
solu&ccedil;&atilde;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>