Language Tags

Language tags (também conhecidas como language code) são atributos de XHTML, XML e HTML com o objetivo de indicar a linguagem (idioma) utilizada em um texto/documento ou até mesmo em um trecho de documento. Language tags é um assunto da W3C Internationalization (i18n) Activity, uma força tarefa da W3C específica para assegurar a implementação de tecnologias da web em diferentes linguagens. Existem várias dicas sobre isto entretanto este texto vai tratar especificamente sobre as language tags. Se você pretende trabalhar ou desenvolver aplicações e web sites multilíngua, em mais de um idioma ao mesmo tempo, este texto pode te ajudar.

Language tags, bem como feeds e microformats, enfrentou e/ou enfrentam a mesma situação que nos remete a questão do ovo e da galinha. Quem deve vir primeiro, a implementação por parte dos desenvolvedores ou os dispositivos específicos, implementações, adaptações etc, fabricados pela indústria? Não estou dizendo que language tags seja algo novo, mas é um recurso que ainda não foi explorado em todas as suas possibilidades mesmo que já exista algumas aplicações muito úteis.

Language tags é útil como meta-informação utilizada por mecanismos de buscas ou qualquer outro tipo de usar agent, sistemas de classificação, spelling checkers (corretores ortográficos) sistemas multi-língua, acessibilidade etc. Leitores de tela para deficientes visuais como o Jaws já tem implementado nativamente uma detecção automática de language tags que escolhe um sintetizador de voz adequado para a leitura de um documento.

Não confunda

Antes de mais detalhes é importante ressaltar que language tags não está relacionado com codificação de caracteres (character encodings) que eu já escrevi a respeito aqui em uma série de 5 artigos. Por mais que character encodings também seja um assunto do i18n, encodings trata-se da representação de caracteres usada em um documento e language tags trata-se da meta-informação sobre a linguagem humana (idioma) utilizada em um documento.

Abordagem

Há algumas abordagens diferente para se declarar language tags, entretanto a W3C recomenda uma abordagem simples e fácil de ser implementada. Nada mais é do que declarar atributos específicos na tag HTML (que serve para o documento como um todo) e em trechos específicos quando você compartilha trechos em um idioma diferente.

Boas práticas

Abaixo segue algumas boas práticas simples de serem implementadas e fáceis de serem seguidas. Existem outras além dessas, por isso eu aconselho a leitura deste documento.

Utilize o atributo lang e/ou xml:lang na tag HTML

Trata-se de uma forma simples de declarar qual é o idioma do seu site.

Em HTML:


<html  lang="pt-br">

Em XHTML sendo enviado como text/html:


<html  xml:lang="pt-br" lang="pt-br">

Em XML e XHTML enviado como application/xhtml+xml:


<html xml:lang="pt-br" >

Informe alterações de idiomas em trechos específicos com o atributo lang.

O atributo lang pode ser usado em todos os elementos de HTML com exceção dos elementos applet, base, basefont, br, frame, frameset, iframe, param e script. Se não encontrar um elemento mais apropriado para usar este atributo, você pode utilizar a tag <span>. O objetivo é usá-lo onde você for citar trechos em idioma diferente daquele presente no restante do documento.

Os valores destes atributos, ou seja, as language tags, podem ser consultadas no IANA Language Subtag Registry.

Utilize hreflang com CSS

Trata-se de indicar ao usuário e ao user agent qual o idioma do link que você está referenciando. Como pode ver neste texto, os links que páginas onde o conteúdo é em inglês possui um [en] logo a frente. Veja abaixo como fazer:


<p>There is also a page describing <a href="swedish-doc.html" hreflang="sv">
why a DOCTYPE is useful</a>.</p>

a[hreflang]:after { content: " [" attr(hreflang) "] "; }
  • http://www.fazedordesite.com Rodrigo Fante

    Isso é algo que uso muito no trabalho, fazemos muitos sites multi-línguas e isso é realmente necessário.

  • http://project47.viscountbox.com/ Carlos Eduardo

    Excelente artigo.

    Já utilizo há um bom tempo o "xml:lang" na tag HTML, mas ainda tenho que implementar o "hreflang" em meus links… É só questão de costume!

  • http://administrando.net Eder L. Marques

    Henrique,

    Obrigado pela dica.

    Costumo encontrar muita interessante em seu blog. Parabéns. Está adicionado ao meu leitor de feeds.

    P.S – A tirada no slogan do site com o livro do Hawking ganhou pontos. ;)

    Abraços,

    Eder L. Marques
    http://administrando.net/ http://blog.edermarques.net/

  • http://www.renanandrade.com.br Renan Andrade

    Muito legal mesmo esse artigo, parabéns, vou precisar fazer um site multi-língua e não tinha idéia de como começar a inserir o conteúdo, obrigado pelo ponta pé inicial.

  • http://www.bengalalegal.com MAQ

    Parabéns Henrique. Estou ficando fã de seu blog! Fiquei entusiasmado com seu texto, pois são poucas as pessoas, mesmo que fazem acessibilidade, que dão bola para as language tags. Talvez seja interessante explicar para seu público que se colocamos uma marcação com troca de idioma em um texto, nós, pessoas que utilizam leitores de tela, escutaremos sáite e não site, por exemplo. Existe o problema reverso: tem gente que utiliza a language tags erradamente e acabo escutando em sutaque inglês textos em português. Parece um americano há pouco tempo no Brasil lendo um texto para mim! É só o sujeito colocar no elemento html ao invés de lang="pt-br", lang="en" e pronto, tô ferrado! Quando dou cursos de acessibilidade por aí, mostro todos os idiomas possíveis para o Jaws e ponho todo mundo para escutar! Só o último detalhe: você mandou muito bem sobre marcações para mudança de idioma, language tags, só esqueceu de aplicá-las no texto!!! Ainda está a tempo (risos). Amigos como eu você quer ver longe, não?

    Abração cego e acessível do MAQ.

  • http://revolucao.etc.br/ Henrique Costa Perei

    MAQ, muito muito obrigado por me mostrar isso agora! Já está corrigido e eu sei que ainda tenho correções a serem feitas em outros textos, aos poucos vou corrigindo.

    E é um prazer imenso saber que está ficando fã do meu blog, porque já sou fã do seu site a muito tempo! E agora como amigo!

    Grande abraço!

  • Pingback: DicasWP()

  • http://dubaiescortzone.com/ dubai escort hotel

    Tenho surfado on-line mais de 3 horas nos dias de hoje , mas eu nunca descobriu qualquer artigo fascinante como o seu. É bonita valor suficiente para mim. Na minha opinião, se todos os proprietários de sites e blogueiros fizeram material de conteúdo apenas para a direita como você provavelmente fez , a rede provavelmente será muito mais útil do que nunca. relação