W3docs

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) ou Hant (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, um lang errado 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 hreflang em 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:

IdiomaCódigo ISO
Abkhazianab
Afaraa
Afrikaansaf
Albanêssq
Amáricoam
Árabear
Aragonêsan
Armêniohy
Assamêsas
Aimaráay
Azerbaijanoaz
Bashkirba
Bascoeu
Bengali (Bangla)bn
Dzongkhadz
Biharibh
Bislamabi
Bósniobs
Bretãobr
Búlgarobg
Birmanêsmy
Bielorrussobe
Cambojanokm
Catalãoca
Cherokee- (639-2/3: chr)
Chewa (Chichewa)ny
Chinêszh
Corsoco
Croatahr
Tchecocs
Dinamarquêsda
Divehi (Dhivehi)dv
Holandêsnl
Edo- (639-2/3: bin)
Inglêsen
Esperantoeo
Estonianoet
Feroêsfo
Persafa
Fijifj
Finlandêsfi
Flamengo (Holandês, Bélgica)nl (região: nl-BE)
Francêsfr
Frísio (Ocidental)fy
Fula (Fulfulde)ff
Galegogl
Gaélico (Escocês)gd
Gaélico (Manx)gv
Georgianoka
Alemãode
Gregoel
Groenlandêskl
Guaranign
Gujaratigu
Crioulo Haitianoht
Hauçáha
Havaiano- (639-2/3: haw)
Hebraicohe
Hindihi
Húngarohu
Ibibio- (639-2/3: ibb)
Islandêsis
Idoio
Igboig
Indonésioid
Interlínguaia
Interlingueie
Inuktitutiu
Inupiakik
Irlandêsga
Italianoit
Japonêsja
Javanêsjv
Canarêskn
Kanurikr
Caxemiraks
Cazaquekk
Kinyarwanda (Ruanda)rw
Quirguizky
Kirundi (Rundi)rn
Konkani- (639-2/3: kok)
Coreanoko
Curdoku
Laosianolo
Latimla
Letão (Letish)lv
Limburguês (Limburger)li
Lingalaln
Lituanolt
Macedôniomk
Malgaxemg
Malaioms
Malaialaml
Maltêsmt
Maorimi
Maratamr
Mongolmn
Nauruanona
Nepalêsne
Norueguêsno
Occitânicooc
Oriáor
Oromo (Afaan Oromo)om
Papiamento- (639-2/3: pap)
Pashto (Pushto)ps
Polonêspl
Portuguêspt
Punjabipa
Quíchuaqu
Reto-Romancerm
Romenoro
Russoru
Sami (do Norte)se
Samoanosm
Sangosg
Sânscritosa
Sérviosr
Servo-Croatash (obsoleto; use sr, hr ou bs)
Sesoto (Sotho Meridional)st
Setswanatn
Shonasn
Yi de Sichuanii
Sindhisd
Cingalêssi
Suáziss
Eslovacosk
Eslovenosl
Somaliso
Espanholes
Sundanêssu
Suaíli (Kiswahili)sw
Suecosv
Siríaco- (639-2/3: syr)
Tagalotl
Tadjiquetg
Tamazight (Atlas Central)- (639-3: tzm)
Tâmilta
Tártarott
Telugute
Tailandêsth
Tibetanobo
Tigríniati
Tonganêsto
Tsongats
Turcotr
Turcomenotk
Twitw
Uigurug
Ucranianouk
Urduur
Uzbequeuz
Vendave
Vietnamitavi
Volapükvo
Valãowa
Galêscy
Uolofwo
Xhosaxh
Iídicheyi
Iorubáyo
Zuluzu

Prática

Prática
Qual valor é uma tag de idioma BCP 47 corretamente formada para o atributo lang?
Qual valor é uma tag de idioma BCP 47 corretamente formada para o atributo lang?
Was this page helpful?