Internacionalização - Dicas rápidas para a Web

Codificação. Utilize Unicode sempre que possível para conteúdo, bases de dados, etc. Declare sempre a codificação do conteúdo.

Saídas. Utilize caracteres diferentes das saídas (p.ex.á á ou á) sempre que puder.

Idioma. Declare o idioma dos documentos e indique as alterações internas do idioma.

Apresentação vs. conteúdo. Utilize folhas de estilo para apresentação de informação. Restringir marcação a semânticas.

Imagens, animações & exemplos. Verifique se é traduzível e se tem um desvio cultural inapropriado.

Formulários. Utilize uma codificação apropriada em ambos os formulários e servidores. Suporta formatos locais de nomes/endereços, horas/datas, etc.

Autorização de textos. Utilize texto simples e conciso. Tenha cuidado quando escrever as frases de vários conjuntos de palavras.

Navegação. Em cada página inclua navegação claramente visível para páginas ou sítios localizados, com o idioma de destino.

Texto da direita para a esquerda. Para XHTML, adicione dir="etl" à etiqueta html. Utilize-o apenas para mudar a direcção base.

Verifique o seu trabalho. Valide! Utilize técnicas, tutoriais e artigos em http://www.w3.org/International/

As 'Dicas rápidas' seguintes resumem os conceitos chave do desenho Web internacional. Estas dicas não são guias completos, são apenas uma mão cheia de conceitos descritos no subsítio Actividade de internacionalização W3C's.

Esta página lista as dicas em frases bastante sintetizadas que também aparecem nos cartões de referência tipo cartões de visita, seguidas por texto que fornece mais detalhes e explicações. De seguida ligamos a informação no subsitio Internacionalização W3C, quando disponível, onde poderá ler mais.

Esta página será actualizada com alguma frequência.

Dicas rápidas

Codificação. Utilize Unicode sempre que possível para conteúdo, bases de dados, etc. Declare sempre a codificação do conteúdo.

A codificação de caracteres que escolhe determina quantos bytes são mapeados para caracteres no seu texto.

Normalmente as codificações de caracteres limitam-no a uma escrita particular ou conjunto de idiomas. O Unicode permite-lhe lidar simplesmente com a maior parte das escritas e idiomas em utilização à volta do mundo. Desta forma, o Unicode simplifica o manuseamento de conteúdo em vários idiomas, seja dentro de uma única página ou ao longo de um ou mais sítios. O Unicode é particularmente útil quando usado em formulários, escritas e bases de dados, onde necessita frequentemente suportar vários idiomas. O Unicode também torna muito directo adicionar novos idiomas ao seu conteúdo.

A menos que declare correctamente qual a codificação de caracteres que está a usar, os seus utilizadores não conseguem ler o seu conteúdo. Isto deve-se a suposições incorrectas que possam ser efectuadas pela aplicação ao interpretar o seu texto sobre quantos bytes mapear para os caracteres.

Dá-me mais informação
Codificações de caracteres para principiantes explica alguns dos conceitos básicos sobre codificações de caracteres, e porque se deverá preocupar. Introdução de conjuntos de caracteres e codificaçõesfornece uma introdução suave a vários aspectos do tópico.
Então, como é que faço isto?
Autores HTML & CSS Criadores de EspecificaçõesConfiguração do servidor
Saídas. Utilize caracteres diferentes das saídas (p.ex.á á ou á) sempre que puder.

Saídas tais como Referências de Caracteres Numéricos (NCRs) e entidades são formas de representação de qualquer caractere Unicode em markup com utilização de caracteres ASCII. Por exemplo, pode representar o caractere "á" em X/HTML como á or á or á.

Tais saídas são úteis para representar claramente caracteres invisíveis ou ambíguos, e para prevenção de problemas com caracteres da sintaxe como o & comercial ou sinais de maior e menor. Também podem ser úteis em ocasiões para representar caracteres não suportados pela sua codificação de caracteres ou indisponível a partir do seu teclado. De outra forma deve sempre usar caracteres em vez de saídas.

Dá-me mais informação
Utilização de entidades de caracteres NCRsfornece informação adicional sobre a utilização de saídas em línguagens markup. Em particular, observe que entidades (como á) deverão ser usadas com cuidado.
Então, como é que faço isto?
Autores HTML & CSS Criadores de EspecificaçõesAutores SVG
Idioma. Declare o idioma dos documentos e indique as alterações internas do idioma.

A informação sobre o idioma (humano) do conteúdo é também importante para acessibilidade, estilo, pesquisa, edição, e outros motivos. Quanto mais e mais conteúdo for etiquetado e etiquetado correctamente, as aplicações que possam detectar informação do idioma irão tornar-se cada vez mais úteis e dominantes.

Quando declarar o idioma, deverá necessitar de expressar informação sobre uma gama específica de conteúdo de uma forma diferente a partir da metadata sobre o documento como um todo. É importante entender esta distinção.

Dá-me mais informação
Idioma na Webfornece uma introdução suave a vários aspectos do tópico.
Então, como é que faço isto?
Autores HTML & CSSAutores SVGAutores XMLCriadores de EsquemasConfiguração de servidor
Apresentação vs. conteúdo. Utilize folhas de estilo para apresentação de informação. Restringir marcação a semânticas.

É um princípio importante do desenho da Web manter a forma como o conteúdo é formado ou apresentado para o separar do próprio texto. Isto faz com que seja simples aplicar estilos alternativos para o mesmo texto, por exemplo, de forma a exibir o mesmo conteúdo tanto num navegador convencional como num dispositivo pequeno de mão.

Este princípio é particularmente útil para a localização, porque as escritas diferentes têm necessidades tipográficas diferentes. Por exemplo, devido à complexidade de caracteres Japoneses, pode ser preferível evidenciar em páginas X/HTML Japonesas de outras formas que não negrito ou itálico. É muito mais fácil aplicar tais mudanças se a apresentação for descrita com CSS, e a markup é muito mais limpa e mais gerível se o texto for correcta e inequivocamente etiquetado como "evidenciado" em vez de apenas "negrito".

Poderá poupar tempo e esforço considerável durante a localização para trabalhar com ficheiros CSS em vez de ter de mudar a markup, porque quaisquer alterações necessárias podem ser efectuadas num local único para todas as páginas, e o tradutor pode-se focar no conteúdo em vez de na apresentação.

Dá-me mais informação
Leia as apresentações faladas da apresentação da conferência @media 2007 "Desenho para utilizadores internacionais: Dicas práticas".
Imagens, animações & exemplos. Verifique se é traduzível e se tem um desvio cultural inapropriado.

Se desejar que o seu conteúdo comunique realmente com pessoas, necessita falar o seu idioma, não apenas através do texto, mas também através de imagens locais, cores, objectos e preocupações. É fácil ignorar a natureza específica cultural do simbolismo, comportamento, conceitos, linguagem corporal, humor, etc. Deverá obter retorno na adequabilidade e relevância das suas imagens, clips de vídeo, e exemplos de utilizadores de dentro do país.

Deverá também ter cuidado quando incorporar texto em gráficos quando o conteúdo for traduzido. Texto em fundos complexos ou espaços restritos podem provocar problemas consideráveis para o tradutor. Deverá fornecer gráficos para o grupo de localização que tem o texto numa camada separada e deverá ter em mente que o texto em idiomas como o Inglês e o Chinês irá certamente expandir-se na tradução.

Dá-me mais informação
Leia as apresentações faladas da apresentação da conferência @media 2007 "Desenho para utilizadores internacionais: Dicas práticas".
Formulários. Utilize uma codificação apropriada em ambos os formulários e servidores. Suporta formatos locais de nomes/endereços, horas/datas, etc.

A codificação usada para uma página HTML que contém um formulário deverá suportar todos os caracteres necessários para introduzir dados nesse formulário. Isto é particularmente importante se o mais provável consistir no facto de os utilizadores introduzirem a informação em vários idiomas.

As bases de dados e escritas que recebem dados de formulários em páginas em vários idiomas devem também conseguir suportar os caracteres para todos aqueles idiomas em simultâneo.

A forma mais simples de activar isto é usar o Unicode para ambas as páginas que contenham formulários e todo o processamento por trás e armazenamento. Nesse cenário o utilizador pode preencher os dados em que língua e escrita necessitar.

Deverá também tentar evitar fazer suposições que coisas como o nome do utilizador e endereço seguirão as mesmas regras de formatação que o seu. Pergunte-se a si mesmo quanto detalhe necessita realmente de partir em campos separados para coisas como endereços. Tenha em mente que nalgumas culturas não há nomes de ruas, noutras o número da casa segue o nome da rua, algumas pessoas necessitam mais do que uma linha para a parte do endereço que precede o nome da vila ou cidade, etc. De facto, nalguns locais o endereço é de cima para baixo desde o mais geral para o mais específico, o que implica uma estratégia de layout muito diferente. Tenha cuidado quando efectuar rotinas de validação com suposições incorrectas sobre comprimentos de códigos de áreas ou de números de telefone. Reconheça que a etiquetagem cuidadosa é necessária para como introduzir datas numéricas, porque há convenções diferentes para a ordenação de dia, mês e ano.

Se estiver a reunir informação de pessoas em mais do que um país, é importante desenvolver uma estratégia para endereçamento dos formatos diferentes que as pessoas esperam poder usar. Não é apenas importante para o desenho de formulários que cria, mas também tem um impacto em como irá armazenar tal informação em bases de dados.

Então, como é que faço isto?
Autores HTML & CSSAutores HTML & CSSCriadores de Especificações
Autorização de textos. Utilize texto simples e conciso. Tenha cuidado quando escrever as frases de vários conjuntos de palavras.

Texto simples e conciso é mais fácil de traduzir. É também mais fácil para ler caso o texto não esteja no seu idioma principal.

Deverá ter um cuidado considerável ao compor mensagens de várias sub-conjuntos de palavras, ou quando inserir textos variáveis em conjuntos de palavras. Por exemplo, suponha que o seu site utiliza escrita JSP e que decide compor certas mensagens seguidas. Poderá criar mensagens juntando sub-conjuntos de palavras separados, como por exemplo "Apenas" ou "Não", "devolva resultados em ", e "qualquer formato" ou "HTML". Porque a ordem do texto nas frases de outros idiomas pode ser muito diferente, a sua tradução poderá apresentar grandes dificuldades.

De forma semelhante, é importante evitar fixar as posições de variáveis no texto como "Página 1 de 10". A sintaxe de outros idiomas poderá necessitar que os números sejam revertidos para fazer sentido. Se usar PHP, isto irá significar a utilização de um conjunto de palavras de formatação como "Página %1\$d de %2\$d.", em vez do mais simples "Página %d de %d.". Este último não é traduzível nalguns idiomas.

Então, como é que faço isto?
Autores HTML & CSS
Navegação. Inclua em cada página uma navegação claramente visível para páginas ou sites localizados, com o idioma de destino.

Onde tiver versões de uma página ou site num idioma diferente, ou para um país ou região diferente, deverá fornecer uma forma para o utilizador ver a versão que prefere. Isto deverá estar disponível a partir de qualquer página no seu site onde exista uma alternativa.

Quando fornecer ligações a páginas noutros idiomas, use o nome do idioma de destino no idioma e escrita nativos. Não assuma que o utilizador possa ler Inglês. Por exemplo, numa ligação a uma página Francesa, "Francês" seria escrito "français". Isto também se aplica se estiver a orientar o utilizador a uma página específica do país ou região ou site, ex. "Alemanha" deverá ser "Deutschland".

Então, como é que faço isto?
Autores HTML & CSS
Texto da direita para a esquerda. Para XHTML, adicione dir="etl" à etiqueta html. Utilize-o apenas para mudar a direcção base.

Texto em idiomas como o Árabe, Hebraico, Persa e Urdu é lido da direita para a esquerda. Esta ordem de leitura leva tipicamente ao texto alinhado à direita e a imagens de espelho de coisas como configuração de páginas e tabelas. Pode definir o alinhamento padrão e ordenação do conteúdo da página da direita para a esquerda incluindo simplesmente dir='rtl" numa etiqueta html.

A direcção definida na etiqueta html define a direcção base para o documento que alinha a descer através de todos os elementos da página. Não é necessário repetir o atributo nos elementos de nível inferiores a não ser que deseje mudar explicitamente o fluxo direccional.

Texto embebido em, por exemplo, escrita em Latim ainda corre da esquerda para a direita dentro do fluxo geral da direita para a esquerda. Tam como os números. Se estiver a trabalhar com idiomas da direita para a esquerda, deverá familiarizar-se com o básico do algoritmo bidireccional Unicode. Este algoritmo cuida de muito do texto bidireccional sem a necessidade de intervenção do autor. Existem algumas circunstâncias, porém, onde os caracteres de controlo Unicode ou markup são necessários para assegurar o efeito correcto.

Dá-me mais informação
Criação de páginas (X)HTML em Árabe & Hebraico fornece uma introdução suave ao básico do tratamento de texto direita-para-a-esquerda em HTML. Os princípios são semelhantes para outras linguagens markup.
O que necessita saber sobre o algoritmo bidi e markup alinhado fornece uma introdução suave ao básico do tratamento de texto direccional alinhado.
Então, como é que faço isto?
Autores HTML & CSSAutores SVGAutores XMLCriadores de Esquemas
Verifique o seu trabalho. Valide! Utilize técnicas, tutoriais e artigos em http://www.w3.org/International/
Try the W3C Internationalization Checker.

Outros materiais introdutórios

Publicámos recentemente uma página Guia rápido para o ajudar a encontrar informação do site. A página Guia rápido aponta para uma série de artigos que estão a ser elaborados e que fornecem aos recém-chegados uma introdução suave para tópicos de internacionalização chave e apontam para informação básica no site para o iniciar.