Códigos de Idioma HTML
Como funcionam os códigos de idioma HTML: o atributo lang, tags BCP 47 com subetiquetas de região e script, por que são importantes, e a lista ISO 639-1.
Códigos de Idioma HTML
Esta página explica os códigos de idioma usados com o atributo HTML lang (e o atributo relacionado hreflang): de qual padrão eles provêm, como combinar um idioma com uma região ou script, e onde encontrar o código de um determinado idioma.
Qual padrão os valores de lang realmente utilizam?
O valor de lang não é um código ISO simples — é uma tag de idioma BCP 47. Uma tag BCP 47 é construída a partir de subetiquetas em uma ordem fixa:
language[-script][-region]- idioma — um código de duas letras ISO 639-1 como
en,fr,zh. Quando um idioma não tem código 639-1, é utilizado o código ISO 639-2/639-3 de três letras. - script — um código opcional de quatro letras ISO 15924 como
Hans(Han Simplificado) ouHant(Han Tradicional). - região — um código de país opcional de duas letras ISO 3166-1 como
US,BR,GB.
Portanto, en é uma tag válida, assim como en-US, pt-BR e zh-Hans. A subetiqueta de idioma é escrita em minúsculas, o script em title-case e a região em maiúsculas — mas as tags são comparadas sem distinção de maiúsculas e minúsculas.
Por que declarar o idioma é importante
Definir lang corretamente realiza um trabalho real, não apenas documentação:
- Leitores de tela escolhem a voz de texto para fala correta e as regras de pronúncia a partir do
lang. As mesmas letras são lidas de forma muito diferente em inglês e francês, portanto, umlangerrado ou ausente produz fala ininteligível. - Idiomas da direita para a esquerda ainda precisam do atributo
dir(dir="rtl") —lang="ar"sozinho não inverte a direção do texto. - Mecanismos de busca usam o idioma (e
hreflangem páginas com idiomas alternativos) para exibir a versão correta do seu site ao público certo. - Navegadores usam para verificação ortográfica, escolha da fonte/tipografia correta e aplicação de CSS específico de idioma como
:lang()e hifenização.
Declarando o idioma da página
O W3C recomenda declarar o idioma principal de cada página com um atributo lang na tag raiz <html>:
<!DOCTYPE html>
<html lang="en">
<head>
<title>My page</title>
</head>
<body>
...
</body>
</html>Em XHTML, defina tanto lang quanto xml:lang:
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
...
</html>Adicionando uma subetiqueta de região ou script
Use uma subetiqueta de região ou script quando a variante for importante — para ortografia, pronúncia ou qual forma escrita exibir:
<!-- 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">Prefira a tag mais curta que transmite a distinção necessária: use simplesmente en a menos que a diferença entre ortografia britânica e americana realmente importe, caso em que use en-GB ou en-US.
Marcando um trecho em um idioma diferente
Você não está limitado à página inteira. Coloque lang em qualquer elemento para marcar um trecho de texto em outro idioma, o que permite que os leitores de tela troquem de voz no meio de uma frase:
<p>
She greeted us with a cheerful
<span lang="fr">bonjour</span>
before sitting down.
</p>Aqui, a página ao redor pode ser lang="en", enquanto bonjour é anunciado com uma voz francesa.
Códigos de Idioma ISO 639-1
A tabela abaixo lista os códigos de duas letras do ISO 639-1 — a subetiqueta de idioma colocada em primeiro lugar em uma tag BCP 47. Idiomas que não têm código ISO 639-1 são marcados com -; para esses, use o código de três letras ISO 639-2/639-3 mostrado na nota após o traço.
Veja a lista de códigos de idioma ISO 639-1:
| Idioma | Código ISO |
|---|---|
| Abkhazian | ab |
| Afar | aa |
| Afrikaans | af |
| Albanês | sq |
| Amárico | am |
| Árabe | ar |
| Aragonês | an |
| Armênio | hy |
| Assamês | as |
| Aimará | ay |
| Azerbaijano | az |
| Bashkir | ba |
| Basco | eu |
| Bengali (Bangla) | bn |
| Dzongkha | dz |
| Bihari | bh |
| Bislama | bi |
| Bósnio | bs |
| Bretão | br |
| Búlgaro | bg |
| Birmanês | my |
| Bielorrusso | be |
| Cambojano | km |
| Catalão | ca |
| Cherokee | - (639-2/3: chr) |
| Chewa (Chichewa) | ny |
| Chinês | zh |
| Corso | co |
| Croata | hr |
| Tcheco | cs |
| Dinamarquês | da |
| Divehi (Dhivehi) | dv |
| Holandês | nl |
| Edo | - (639-2/3: bin) |
| Inglês | en |
| Esperanto | eo |
| Estoniano | et |
| Feroês | fo |
| Persa | fa |
| Fiji | fj |
| Finlandês | fi |
| Flamengo (Holandês, Bélgica) | nl (região: nl-BE) |
| Francês | fr |
| Frísio (Ocidental) | fy |
| Fula (Fulfulde) | ff |
| Galego | gl |
| Gaélico (Escocês) | gd |
| Gaélico (Manx) | gv |
| Georgiano | ka |
| Alemão | de |
| Grego | el |
| Groenlandês | kl |
| Guarani | gn |
| Gujarati | gu |
| Crioulo Haitiano | ht |
| Hauçá | ha |
| Havaiano | - (639-2/3: haw) |
| Hebraico | he |
| Hindi | hi |
| Húngaro | hu |
| Ibibio | - (639-2/3: ibb) |
| Islandês | is |
| Ido | io |
| Igbo | ig |
| Indonésio | id |
| Interlíngua | ia |
| Interlingue | ie |
| Inuktitut | iu |
| Inupiak | ik |
| Irlandês | ga |
| Italiano | it |
| Japonês | ja |
| Javanês | jv |
| Canarês | kn |
| Kanuri | kr |
| Caxemira | ks |
| Cazaque | kk |
| Kinyarwanda (Ruanda) | rw |
| Quirguiz | ky |
| Kirundi (Rundi) | rn |
| Konkani | - (639-2/3: kok) |
| Coreano | ko |
| Curdo | ku |
| Laosiano | lo |
| Latim | la |
| Letão (Letish) | lv |
| Limburguês (Limburger) | li |
| Lingala | ln |
| Lituano | lt |
| Macedônio | mk |
| Malgaxe | mg |
| Malaio | ms |
| Malaiala | ml |
| Maltês | mt |
| Maori | mi |
| Marata | mr |
| Mongol | mn |
| Nauruano | na |
| Nepalês | ne |
| Norueguês | no |
| Occitânico | oc |
| Oriá | or |
| Oromo (Afaan Oromo) | om |
| Papiamento | - (639-2/3: pap) |
| Pashto (Pushto) | ps |
| Polonês | pl |
| Português | pt |
| Punjabi | pa |
| Quíchua | qu |
| Reto-Romance | rm |
| Romeno | ro |
| Russo | ru |
| Sami (do Norte) | se |
| Samoano | sm |
| Sango | sg |
| Sânscrito | sa |
| Sérvio | sr |
| Servo-Croata | sh (obsoleto; use sr, hr ou bs) |
| Sesoto (Sotho Meridional) | st |
| Setswana | tn |
| Shona | sn |
| Yi de Sichuan | ii |
| Sindhi | sd |
| Cingalês | si |
| Suázi | ss |
| Eslovaco | sk |
| Esloveno | sl |
| Somali | so |
| Espanhol | es |
| Sundanês | su |
| Suaíli (Kiswahili) | sw |
| Sueco | sv |
| Siríaco | - (639-2/3: syr) |
| Tagalo | tl |
| Tadjique | tg |
| Tamazight (Atlas Central) | - (639-3: tzm) |
| Tâmil | ta |
| Tártaro | tt |
| Telugu | te |
| Tailandês | th |
| Tibetano | bo |
| Tigrínia | ti |
| Tonganês | to |
| Tsonga | ts |
| Turco | tr |
| Turcomeno | tk |
| Twi | tw |
| Uigur | ug |
| Ucraniano | uk |
| Urdu | ur |
| Uzbeque | uz |
| Venda | ve |
| Vietnamita | vi |
| Volapük | vo |
| Valão | wa |
| Galês | cy |
| Uolof | wo |
| Xhosa | xh |
| Iídiche | yi |
| Iorubá | yo |
| Zulu | zu |