Es una práctica muy recomendable
usar el atributo lang para indicar el idioma en el que se encuentran nuestras páginas web, así como para indicar los cambios de idioma que puede haber dentro de un documento. Esta práctica facilita la vida de los "agentes de usuario", siendo una de las más interesantes, que no la única, el facilitar la promunciación correcta por parte de sintetizadores de voz y lectores de pantalla.
Este atributo debe incluirse en la etiqueta
<html>, tal que
<html lang="es">, y también en cualquier punto de la página en que haya un cambio de idioma (por ejemplo: citas, títulos de libros, etc.), vía
div,
span,
q, o lo que proceda.
Y como es una práctica tan recomendable, hoy he pasado un ratito buscando los códigos que pueden usarse, y comparto aquí mis descubrimientos y así de paso tengo los enlaces a mano para otro día:
Los valores que tiene el atributo lang vienen definidos en el
RFC 3066, que actualiza el RFC 1766 y que básicamente viene a decir lo siguiente:
- - el cógigo del lenguaje es de la forma códigoprimario ("-" subcódigo).
- - no debe haber espacios en la definición del código.
- - cuando el código primario tiene 2 caracteres se corresponde con el código de idioma definido en la ISO-639.
- - cuando el código primario tiene 3 caracteres se corresponde con el código de idioma definido en la ISO-639-2.
- - si un lenguaje está definido tanto en la ISO-639 como en la ISO-369-2, debe usarse como código primario el de la 639 (el de 2 caracteres).
- - cuando el código secundario tiene 2 caracteres se corresponde con el código de país definido en la ISO-3166.
- - hay sólo dos códigos primarios de un carácter definidos, que deben llevar obligatoriamente un secundario: i, reservado para definiciones de código del IANA, y x, de uso "libre" y que se traduce como "experimental".
- - si el código secundario tiene más de 3 caracteres, debe corresponderse con una de las definiciones de código del IANA (a no ser que el primario sea x).
Por ejemplo:
- es
- es-MX
- en-US
- en-cockney
- i-navajo
Par de curiosidades:
- El código x más habitual, x-klingon, es incorrecto. La IANA lo definió en su momento, por lo que durante un tiempo el código correcto fue i-klingon. Sin embargo, resulta que el Klingon está incluido en la ISO-639-2 desde febrero de 2004, por lo que lo correcto es usar tlh.
- El último código de país incluido en la ISO-3166 es ps, que se corresponde a los Territorios Palestinos.