W3docs

Codici lingua HTML

Come funzionano i codici lingua HTML: l'attributo lang, i tag BCP 47 con sottotag di regione e script, la loro importanza e l'elenco completo dei codici ISO 639-1.

Codici lingua HTML

Questa pagina spiega i codici lingua da utilizzare con l'attributo HTML lang (e il correlato attributo hreflang): da quale standard derivano, come combinare una lingua con una regione o uno script, e dove trovare il codice per una determinata lingua.

Quale standard usano effettivamente i valori di lang?

Il valore di lang non è un semplice codice ISO — è un tag lingua BCP 47. Un tag BCP 47 è costruito da sottotag in un ordine fisso:

language[-script][-region]
  • language — un codice a due lettere ISO 639-1 come en, fr, zh. Quando una lingua non ha un codice 639-1, viene utilizzato il codice a tre lettere ISO 639-2/639-3.
  • script — un codice opzionale a quattro lettere ISO 15924 come Hans (Han semplificato) o Hant (Han tradizionale).
  • region — un codice paese opzionale a due lettere ISO 3166-1 come US, BR, GB.

Quindi en è un tag valido, così come lo sono en-US, pt-BR e zh-Hans. Il sottotag della lingua è scritto in minuscolo, lo script in title-case e la regione in maiuscolo — ma i tag vengono confrontati senza distinzione tra maiuscole e minuscole.

Perché dichiarare la lingua è importante

Impostare lang correttamente ha effetti concreti, non è solo documentazione:

  • I lettori di schermo scelgono la voce text-to-speech corretta e le regole di pronuncia grazie a lang. Le stesse lettere vengono lette in modo molto diverso in inglese rispetto al francese, quindi un lang errato o mancante produce un parlato incomprensibile.
  • Le lingue da destra a sinistra richiedono comunque l'attributo dir (dir="rtl") — lang="ar" da solo non inverte la direzione del testo.
  • I motori di ricerca utilizzano la lingua (e hreflang nelle pagine in lingue alternative) per mostrare la versione corretta del tuo sito al pubblico giusto.
  • I browser la usano per il controllo ortografico, la scelta del carattere/tipografia corretto e l'applicazione di CSS specifici per la lingua come :lang() e la sillabazione.

Dichiarare la lingua della pagina

Il W3C raccomanda di dichiarare la lingua principale di ogni pagina con un attributo lang sul tag radice <html>:

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

In XHTML si impostano sia lang che xml:lang:

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

Aggiungere un sottotag di regione o script

Usa un sottotag di regione o script quando la variante è rilevante — per l'ortografia, la pronuncia o la forma scritta da mostrare:

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

Preferisci il tag più breve che esprima la distinzione necessaria: usa il semplice en a meno che l'ortografia britannica rispetto a quella americana sia effettivamente rilevante, nel qual caso usa en-GB o en-US.

Contrassegnare una frase in un'altra lingua

Non sei limitato all'intera pagina. Inserisci lang su qualsiasi elemento per contrassegnare un testo in un'altra lingua, permettendo ai lettori di schermo di cambiare voce a metà frase:

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

Qui la pagina circostante potrebbe avere lang="en", mentre bonjour viene annunciato con una voce francese.

Codici lingua ISO 639-1

La tabella seguente elenca i codici a due lettere ISO 639-1 — il sottotag della lingua che si inserisce per primo in un tag BCP 47. Le lingue che non hanno un codice ISO 639-1 sono contrassegnate con -; per quelle, usa il codice a tre lettere ISO 639-2/639-3 indicato nella nota dopo il trattino.

Vedi l'elenco dei codici lingua ISO 639-1:

LinguaCodice ISO
Abcasoab
Afaraa
Afrikaansaf
Albanesesq
Amaricoam
Araboar
Aragonesean
Armenohy
Assameseas
Aymaraay
Azerbaigianoaz
Baschiroba
Bascoeu
Bengalese (Bangla)bn
Dzongkhadz
Biharibh
Bislamabi
Bosniacobs
Bretonebr
Bulgarobg
Birmanomy
Bielorussobe
Cambogianokm
Catalanoca
Cherokee- (639-2/3: chr)
Chewa (Chichewa)ny
Cinesezh
Corsoco
Croatohr
Cecocs
Daneseda
Divehi (Dhivehi)dv
Olandesenl
Edo- (639-2/3: bin)
Ingleseen
Esperantoeo
Estoneet
Faroesefo
Persiano (Farsi)fa
Figianofj
Finlandesefi
Fiammingo (Olandese, Belgio)nl (regione: nl-BE)
Francesefr
Frisone (occidentale)fy
Fulah (Fulfulde)ff
Galizianogl
Gaelico (scozzese)gd
Gaelico (Manx)gv
Georgianoka
Tedescode
Grecoel
Groenlandesekl
Guaranígn
Gujaratigu
Creolo haitianoht
Hausaha
Hawaiiano- (639-2/3: haw)
Ebraicohe
Hindihi
Ungheresehu
Ibibio- (639-2/3: ibb)
Islandeseis
Idoio
Igboig
Indonesianoid
Interlinguaia
Interlingueie
Inuktitutiu
Inupiakik
Irlandesega
Italianoit
Giapponeseja
Giavanesejv
Kannadakn
Kanurikr
Kashmiriks
Kazakokk
Kinyarwanda (Ruanda)rw
Kirghisoky
Kirundi (Rundi)rn
Konkani- (639-2/3: kok)
Coreanoko
Curdoku
Laotianolo
Latinola
Lettone (Lettish)lv
Limburghese (Limburger)li
Lingalaln
Lituanolt
Macedonemk
Malgasciomg
Malesems
Malayalamml
Maltesemt
Maorimi
Marathimr
Mongolomn
Nauruanona
Nepalesene
Norvegeseno
Occitanooc
Oriyaor
Oromo (Afaan Oromo)om
Papiamento- (639-2/3: pap)
Pashto (Pushto)ps
Polaccopl
Portoghesept
Punjabipa
Quechuaqu
Reto-romanciorm
Rumenoro
Russoru
Sami (settentrionale)se
Samoanosm
Sangosg
Sanscritosa
Serbosr
Serbocroatosh (obsoleto; usare sr, hr o bs)
Sesotho (Sotho meridionale)st
Setswanatn
Shonasn
Yi del Sichuanii
Sindhisd
Singalesesi
Siswatiss
Slovaccosk
Slovenosl
Somaloso
Spagnoloes
Sundanesesu
Swahili (Kiswahili)sw
Svedesesv
Siriaco- (639-2/3: syr)
Tagalogtl
Tagicotg
Tamazight (Atlante centrale)- (639-3: tzm)
Tamilta
Tartarott
Telugute
Tailandeseth
Tibetanobo
Tigrinyati
Tonganoto
Tsongats
Turcotr
Turkmenotk
Twitw
Uiguroug
Ucrainouk
Urduur
Uzbekouz
Vendave
Vietnamitavi
Volapükvo
Vallonewa
Gallesecy
Wolofwo
Xhosaxh
Yiddishyi
Yorubayo
Zuluzu

Practice

Pratica
Quale valore è un tag lingua BCP 47 correttamente formato per l'attributo lang?
Quale valore è un tag lingua BCP 47 correttamente formato per l'attributo lang?
Was this page helpful?