Códigos de Idioma HTML
Cómo funcionan los códigos de idioma HTML: el atributo lang, etiquetas BCP 47 con subetiquetas de región y script, su importancia y la lista completa ISO 639-1.
Códigos de Idioma HTML
Esta página explica los códigos de idioma que se usan con el atributo HTML lang (y el atributo relacionado hreflang): de qué estándar provienen, cómo combinar un idioma con una región o script, y dónde encontrar el código para un idioma concreto.
¿Qué estándar usan realmente los valores de lang?
El valor de lang no es un código ISO simple — es una etiqueta de idioma BCP 47. Una etiqueta BCP 47 se construye con subetiquetas en un orden fijo:
language[-script][-region]- language — un código de dos letras de ISO 639-1 como
en,fr,zh. Cuando un idioma no tiene código 639-1, se usa en su lugar el código ISO 639-2/639-3 de tres letras. - script — un código opcional de cuatro letras de ISO 15924 como
Hans(Han simplificado) oHant(Han tradicional). - region — un código de país opcional de dos letras de ISO 3166-1 como
US,BR,GB.
Por tanto, en es una etiqueta válida, y también lo son en-US, pt-BR y zh-Hans. La subetiqueta de idioma se escribe en minúsculas, el script en mayúscula inicial y la región en mayúsculas, aunque las etiquetas se comparan sin distinguir mayúsculas de minúsculas.
Por qué es importante declarar el idioma
Configurar lang correctamente hace un trabajo real, no es solo documentación:
- Los lectores de pantalla eligen la voz de síntesis de voz y las reglas de pronunciación correctas a partir de
lang. Las mismas letras se leen de forma muy diferente en inglés y en francés, por lo que unlangincorrecto o ausente produce un habla ininteligible. - Los idiomas de derecha a izquierda siguen necesitando el atributo
dir(dir="rtl") —lang="ar"por sí solo no invierte la dirección del texto. - Los motores de búsqueda usan el idioma (y
hreflangen páginas en otros idiomas) para mostrar la versión correcta de tu sitio a la audiencia adecuada. - Los navegadores lo usan para la corrección ortográfica, la elección de la fuente/tipografía correcta y la aplicación de CSS específico del idioma como
:lang()y la separación silábica.
Declarar el idioma de la página
El W3C recomienda declarar el idioma principal de cada página con un atributo lang en la etiqueta raíz <html>:
<!DOCTYPE html>
<html lang="en">
<head>
<title>My page</title>
</head>
<body>
...
</body>
</html>En XHTML se establecen tanto lang como xml:lang:
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
...
</html>Añadir una subetiqueta de región o script
Usa una subetiqueta de región o script cuando la variante sea relevante — para la ortografía, la pronunciación o la forma escrita que se va a mostrar:
<!-- Brazilian Portuguese, distinct from European Portuguese (pt-PT) -->
<html lang="pt-BR">
<!-- Plain Portuguese, no region preference -->
<html lang="pt">
<!-- Chinese written in Simplified characters -->
<html lang="zh-Hans">
<!-- Chinese written in Traditional characters, as used in Taiwan -->
<html lang="zh-Hant-TW">Prefiere la etiqueta más corta que exprese la distinción necesaria: usa en simple a menos que la ortografía británica frente a la americana sea realmente relevante, en cuyo caso usa en-GB o en-US.
Marcar una frase en un idioma diferente
No estás limitado a toda la página. Coloca lang en cualquier elemento para marcar un fragmento de texto en otro idioma, lo que permite a los lectores de pantalla cambiar de voz a mitad de la oración:
<p>
She greeted us with a cheerful
<span lang="fr">bonjour</span>
before sitting down.
</p>Aquí la página circundante podría tener lang="en", mientras que bonjour se anuncia con una voz francesa.
Códigos de Idioma ISO 639-1
La tabla a continuación lista los códigos de dos letras de ISO 639-1 — la subetiqueta de idioma que se coloca en primer lugar en una etiqueta BCP 47. Los idiomas que no tienen código ISO 639-1 están marcados con -; para esos, usa el código de tres letras ISO 639-2/639-3 que se indica en la nota tras el guion.
Consulta la lista de códigos de idioma ISO 639-1:
| Idioma | Código ISO |
|---|---|
| Abkhazo | ab |
| Afar | aa |
| Afrikáans | af |
| Albanés | sq |
| Amhárico | am |
| Árabe | ar |
| Aragonés | an |
| Armenio | hy |
| Asamés | as |
| Aimara | ay |
| Azerbaiyano | az |
| Baskir | ba |
| Vasco | eu |
| Bengalí (Bangla) | bn |
| Dzongkha | dz |
| Bihari | bh |
| Bislama | bi |
| Bosnio | bs |
| Bretón | br |
| Búlgaro | bg |
| Birmano | my |
| Bielorruso | be |
| Camboyano | km |
| Catalán | ca |
| Cherokee | - (639-2/3: chr) |
| Chewa (Chichewa) | ny |
| Chino | zh |
| Corso | co |
| Croata | hr |
| Checo | cs |
| Danés | da |
| Divehi (Dhivehi) | dv |
| Neerlandés | nl |
| Edo | - (639-2/3: bin) |
| Inglés | en |
| Esperanto | eo |
| Estonio | et |
| Feroés | fo |
| Persa (Farsi) | fa |
| Fiyiano | fj |
| Finés | fi |
| Flamenco (Neerlandés, Bélgica) | nl (región: nl-BE) |
| Francés | fr |
| Frisio (occidental) | fy |
| Fula (Fulfulde) | ff |
| Gallego | gl |
| Gaélico (escocés) | gd |
| Gaélico (manés) | gv |
| Georgiano | ka |
| Alemán | de |
| Griego | el |
| Groenlandés | kl |
| Guaraní | gn |
| Gujarati | gu |
| Criollo haitiano | ht |
| Hausa | ha |
| Hawaiano | - (639-2/3: haw) |
| Hebreo | he |
| Hindi | hi |
| Húngaro | hu |
| Ibibio | - (639-2/3: ibb) |
| Islandés | is |
| Ido | io |
| Igbo | ig |
| Indonesio | id |
| Interlingua | ia |
| Interlingue | ie |
| Inuktitut | iu |
| Inupiaq | ik |
| Irlandés | ga |
| Italiano | it |
| Japonés | ja |
| Javanés | jv |
| Canarés | kn |
| Kanuri | kr |
| Cachemiro | ks |
| Kazajo | kk |
| Kinyarwanda (Ruanda) | rw |
| Kirguís | ky |
| Kirundi (Rundi) | rn |
| Konkani | - (639-2/3: kok) |
| Coreano | ko |
| Kurdo | ku |
| Laosiano | lo |
| Latín | la |
| Letón | lv |
| Limburgués | li |
| Lingala | ln |
| Lituano | lt |
| Macedonio | mk |
| Malgache | mg |
| Malayo | ms |
| Malayalam | ml |
| Maltés | mt |
| Maorí | mi |
| Marathi | mr |
| Mongol | mn |
| Nauruano | na |
| Nepalés | ne |
| Noruego | no |
| Occitano | oc |
| Odia (Oriya) | or |
| Oromo (Afaan Oromo) | om |
| Papiamento | - (639-2/3: pap) |
| Pastún (Pushto) | ps |
| Polaco | pl |
| Portugués | pt |
| Panyabí | pa |
| Quechua | qu |
| Romanche | rm |
| Rumano | ro |
| Ruso | ru |
| Sami (septentrional) | se |
| Samoano | sm |
| Sango | sg |
| Sánscrito | sa |
| Serbio | sr |
| Serbocroata | sh (obsoleto; usar sr, hr o bs) |
| Sesotho (sotho meridional) | st |
| Setsuana | tn |
| Shona | sn |
| Yi de Sichuan | ii |
| Sindhi | sd |
| Cingalés | si |
| Suazi | ss |
| Eslovaco | sk |
| Esloveno | sl |
| Somalí | so |
| Español | es |
| Sundanés | su |
| Suajili (Kiswahili) | sw |
| Sueco | sv |
| Siríaco | - (639-2/3: syr) |
| Tagalo | tl |
| Tayiko | tg |
| Tamazight (Atlas central) | - (639-3: tzm) |
| Tamil | ta |
| Tártaro | tt |
| Telugu | te |
| Tailandés | th |
| Tibetano | bo |
| Tigriña | ti |
| Tongano | to |
| Tsonga | ts |
| Turco | tr |
| Turcomano | tk |
| Twi | tw |
| Uigur | ug |
| Ucraniano | uk |
| Urdu | ur |
| Uzbeko | uz |
| Venda | ve |
| Vietnamita | vi |
| Volapük | vo |
| Valón | wa |
| Galés | cy |
| Wolof | wo |
| Xhosa | xh |
| Yídish | yi |
| Yoruba | yo |
| Zulú | zu |