W3docs

Codes de langue HTML

Codes de langue HTML : l'attribut lang, les balises BCP 47 avec sous-balises de région et de script, leur utilité, et la liste complète ISO 639-1.

Codes de langue HTML

Cette page explique les codes de langue que vous utilisez avec l'attribut HTML lang (et l'attribut hreflang associé) : le standard dont ils proviennent, comment combiner une langue avec une région ou un script, et où trouver le code correspondant à une langue donnée.

Quel standard les valeurs de lang utilisent-elles réellement ?

La valeur de lang n'est pas un simple code ISO — c'est une balise de langue BCP 47. Une balise BCP 47 est construite à partir de sous-balises dans un ordre fixe :

language[-script][-region]
  • langue — un code ISO 639-1 à deux lettres tel que en, fr, zh. Lorsqu'une langue n'a pas de code 639-1, le code ISO 639-2/639-3 à trois lettres est utilisé à la place.
  • script — un code ISO 15924 optionnel à quatre lettres tel que Hans (Han simplifié) ou Hant (Han traditionnel).
  • région — un code pays ISO 3166-1 optionnel à deux lettres tel que US, BR, GB.

Ainsi, en est une balise valide, tout comme en-US, pt-BR et zh-Hans. La sous-balise de langue est écrite en minuscules, le script en casse titre, et la région en majuscules — mais les balises sont comparées sans tenir compte de la casse.

Pourquoi déclarer la langue est important

Définir correctement lang a un effet concret, pas seulement documentaire :

  • Les lecteurs d'écran sélectionnent la bonne voix de synthèse vocale et les règles de prononciation à partir de lang. Les mêmes lettres sont lues très différemment en anglais et en français, donc un lang incorrect ou absent produit une synthèse incompréhensible.
  • Les langues écrites de droite à gauche nécessitent toujours l'attribut dir (dir="rtl") — lang="ar" seul ne retourne pas le sens du texte.
  • Les moteurs de recherche utilisent la langue (et hreflang sur les pages en langues alternatives) pour servir la bonne version de votre site au bon public.
  • Les navigateurs l'utilisent pour la vérification orthographique, le choix de la police/typographie correcte, et l'application de CSS spécifiques à la langue comme :lang() et la césure.

Déclarer la langue de la page

Le W3C recommande de déclarer la langue principale de chaque page avec un attribut lang sur la balise racine <html> :

<!DOCTYPE html>
<html lang="en">
  <head>
    <title>My page</title>
  </head>
  <body>
    ...
  </body>
</html>

En XHTML, vous définissez à la fois lang et xml:lang :

<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
...
</html>

Ajouter une sous-balise de région ou de script

Utilisez une sous-balise de région ou de script lorsque la variante est importante — pour l'orthographe, la prononciation, ou la forme écrite à afficher :

<!-- 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">

Préférez la balise la plus courte qui exprime la distinction nécessaire : utilisez simplement en sauf si l'orthographe britannique ou américaine est réellement importante, auquel cas utilisez en-GB ou en-US.

Marquer un passage dans une autre langue

Vous n'êtes pas limité à la page entière. Placez lang sur n'importe quel élément pour marquer un passage de texte dans une autre langue, ce qui permet aux lecteurs d'écran de changer de voix en milieu de phrase :

<p>
  She greeted us with a cheerful
  <span lang="fr">bonjour</span>
  before sitting down.
</p>

Ici, la page environnante peut avoir lang="en", tandis que bonjour est annoncé avec une voix française.

Codes de langue ISO 639-1

Le tableau ci-dessous liste les codes à deux lettres ISO 639-1 — la sous-balise de langue que vous placez en premier dans une balise BCP 47. Les langues qui n'ont pas de code ISO 639-1 sont indiquées par - ; pour celles-ci, utilisez le code à trois lettres ISO 639-2/639-3 indiqué dans la note après le tiret.

Voir la liste des codes de langue ISO 639-1 :

LangueCode ISO
Abkhazeab
Afaraa
Afrikaansaf
Albanaissq
Amhariqueam
Arabear
Aragonaisan
Arménienhy
Assamaisas
Aymaraay
Azerbaïdjanaisaz
Bachkirba
Basqueeu
Bengali (Bangla)bn
Dzongkhadz
Biharibh
Bichlamarbi
Bosnienbs
Bretonbr
Bulgarebg
Birmanmy
Biélorussebe
Khmer (Cambodgien)km
Catalanca
Cherokee- (639-2/3: chr)
Chewa (Chichewa)ny
Chinoiszh
Corseco
Croatehr
Tchèquecs
Danoisda
Divehi (Dhivehi)dv
Néerlandaisnl
Edo- (639-2/3: bin)
Anglaisen
Espérantoeo
Estonienet
Féroïenfo
Persan (Farsi)fa
Fidjienfj
Finnoisfi
Flamand (Néerlandais, Belgique)nl (région : nl-BE)
Françaisfr
Frison (occidental)fy
Peul (Fulfulde)ff
Galiciengl
Gaélique (Écossais)gd
Gaélique (Mannois)gv
Géorgienka
Allemandde
Grecel
Groenlandaiskl
Guaranign
Gujaratigu
Créole haïtienht
Haoussaha
Hawaïen- (639-2/3: haw)
Hébreuhe
Hindihi
Hongroishu
Ibibio- (639-2/3: ibb)
Islandaisis
Idoio
Igboig
Indonésienid
Interlinguaia
Interlingueie
Inuktitutiu
Inupiaqik
Irlandaisga
Italienit
Japonaisja
Javanaisjv
Kannadakn
Kanourikr
Cachemiriks
Kazakhkk
Kinyarwanda (Rwanda)rw
Kirghizky
Kirundi (Rundi)rn
Konkani- (639-2/3: kok)
Coréenko
Kurdeku
Laotienlo
Latinla
Letton (Lettish)lv
Limbourgeoisli
Lingalaln
Lituanienlt
Macédonienmk
Malgachemg
Malaisms
Malayalamml
Maltaismt
Maorimi
Marathimr
Mongolmn
Nauruanna
Népalaisne
Norvégienno
Occitanoc
Oriyaor
Oromo (Afaan Oromo)om
Papiamento- (639-2/3: pap)
Pachto (Pushto)ps
Polonaispl
Portugaispt
Pendjabipa
Quechuaqu
Rhéto-romanrm
Roumainro
Russeru
Same (du Nord)se
Samoansm
Sangosg
Sanskritsa
Serbesr
Serbo-croatesh (déprécié ; utiliser sr, hr ou bs)
Sesotho (Sotho du Sud)st
Setswanatn
Shonasn
Yi du Sichuanii
Sindhisd
Cingalaissi
Swatiss
Slovaquesk
Slovènesl
Somaliso
Espagnoles
Soundanaissu
Swahili (Kiswahili)sw
Suédoissv
Syriaque- (639-2/3: syr)
Tagalogtl
Tadjiktg
Tamazight (Atlas central)- (639-3: tzm)
Tamoulta
Tatartt
Télougoute
Thaïth
Tibétainbo
Tigrignati
Tongiento
Tsongats
Turctr
Turkmènetk
Twitw
Ouïghourug
Ukrainienuk
Ourdouur
Ouzbekuz
Vendave
Vietnamienvi
Volapükvo
Wallonwa
Galloiscy
Wolofwo
Xhosaxh
Yiddishyi
Yorubayo
Zoulouzu

Pratique

Pratique
Quelle valeur est une balise de langue BCP 47 correctement formée pour l'attribut lang ?
Quelle valeur est une balise de langue BCP 47 correctement formée pour l'attribut lang ?
Was this page helpful?