Qual è la differenza tra <html lang = "en"> e <html lang = "en-US">?


106

Qual'è la differenza tra <html lang="en">e <html lang="en-US">? Quali altri valori possono seguire il trattino?

Secondo w3.org "Qualsiasi sottocodice di due lettere è inteso come un codice paese [ISO3166]". quindi significa che qualsiasi valore elencato sotto il codice alfa-2 è un valore accettato?


Puoi trovare maggiori dettagli nella RFC collegata alle specifiche .
James Allardice

1
sei interessato alle differenze tra i browser o alla teoria (specifica)?
Aprile

@deathApril both. Voglio dire, questo in qualche modo aiuta ulteriormente il browser a visualizzare la pagina?
Celeritas

Risposte:


130

<html lang="en">
<html lang="en-US">

Il primo langtag specifica solo un codice lingua. Il secondo specifica un codice lingua, seguito da un codice paese.

Quali altri valori possono seguire il trattino? Secondo w3.org "Qualsiasi sottocodice di due lettere è inteso come un codice paese [ISO3166]". quindi significa che qualsiasi valore elencato sotto il codice alfa-2 è un valore accettato?

Sì, tuttavia il valore può o non può avere un significato reale.

<html lang="en-US">significa essenzialmente "questa pagina è nello stile inglese americano". In modo simile, <html lang="en-GB">significherebbe "questa pagina è nello stile inglese del Regno Unito".

Se davvero volessi specificare una combinazione non valida, potresti farlo. Non significherebbe molto, ma <html lang="en-ES">è valido secondo le specifiche, a quanto ho capito. Tuttavia, quella combinazione lingua / paese non farà molto poiché l'inglese non è comunemente parlato in Spagna.

Voglio dire, questo in qualche modo aiuta ulteriormente il browser a visualizzare la pagina?

Non aiuta il browser a visualizzare la pagina, ma è utile per motori di ricerca, screen reader e altre cose che potrebbero leggere e tentare di interpretare la pagina, oltre agli esseri umani.


31
FWIW, le lingue ufficiali dell'Uganda sono in realtà l'inglese e lo swahili.
Muhammad Alkarouri

34
Ah, buon punto. Quanto sono americano da parte mia. :( Ho aggiornato l'esempio alla Spagna e questa volta ho lavorato un po 'per assicurarmi che anche lì l'inglese non sia una lingua ufficiale. Grazie per il suggerimento.
Jeremy Wiggins

@ JeremyWiggins, sulle tue ultime 2 righe nella risposta, che iniziano con "non aiuta il browser ....". E se il sito web fosse internazionale (internazionalizzato), sarebbe comunque necessario impostare il tag della lingua?
Yustme

4
Per quanto riguarda le ultime due righe, se la pagina utilizza la sillabazione da CSS ( hyphens: auto), l' langattributo è richiesto per consentire al browser di selezionare il set di regole appropriato.
RobertT

1
Non solo le impostazioni della lingua per i motori di ricerca o gli screen reader sono aiutate con una corretta impostazione della lingua, ma c'è anche un effetto tipografico. Ad esempio, le virgolette semplici <q> </q> vengono interpretate correttamente solo con le impostazioni della lingua corrette che differiscono tra de-DE, de-CH, fr e fr-CH per esempio.
theking2

8

Puoi usare qualsiasi codice paese, sì, ma ciò non significa che un browser o un altro software lo riconoscerà o farà qualcosa di diverso a causa di esso. Ad esempio, uno screen reader potrebbe trattare allo stesso modo "en-US" e "en-GB" se supportano solo un accento americano in inglese. Un altro software che ha due voci distinte, tuttavia, potrebbe adattarsi in base al codice del paese.


Il collegamento è morto, se trovi un sostituto, segnalalo per ripristinarlo
Taryn

5

Questo dovrebbe aiutare: http://www.w3.org/International/articles/language-tags/

La regola d'oro quando si creano tag di lingua è mantenere il tag il più breve possibile. Evita regione, script o altri tag secondari tranne dove aggiungono utili informazioni distintive. Ad esempio, usa ja per il giapponese e non ja-JP, a meno che non ci sia una ragione particolare per cui devi dire che questo è il giapponese parlato in Giappone, piuttosto che altrove.

L'elenco seguente mostra i vari tipi di sottotag disponibili. Lavoreremo attraverso questi e come vengono utilizzati nelle sezioni che seguono.

lingua-extlang-script-regione-variante-extension-privateuse


1
Alcune applicazioni software utilizzano per impostazione predefinita l'ortografia e la localizzazione degli Stati Uniti quando vengono scelte le opzioni inglesi generiche, ad esempio Windows lo fa per il language pack inglese. technet.microsoft.com/en-us/library/cc766191(v=ws.10).aspx Windows (inutilmente) ha un solo language pack per alcuni paesi che parlano più lingue, come i Paesi Bassi (olandese, non francese) ancora quattro per la Spagna (catalano, galiziano, basco, spagnolo). Il Belgio ottiene zero, forse perché le più lingue nazionali sono entrambe le lingue maggioritarie in altri paesi.
Mousey

2

RFC 3066 fornisce i dettagli dei valori consentiti (enfasi e collegamenti aggiunti):

Tutti i sottotag di 2 lettere vengono interpretati come codici paese ISO 3166 alpha-2 da [ISO 3166] , o successivamente assegnati dall'agenzia di manutenzione ISO 3166 o dagli organismi di normalizzazione governativi, che denotano l'area a cui si riferisce questa variante linguistica.

Lo interpreto nel senso che qualsiasi codice di due lettere valido (secondo ISO 3166) è valido come sottotag. La RFC prosegue affermando:

I tag con secondi sottotag da 3 a 8 lettere possono essere registrati con IANA, secondo le regole nel capitolo 5 di questo documento.

A proposito, sembra un errore di battitura, dato che il capitolo 3 sembra riguardare il processo di registrazione, non il capitolo 5.

Una rapida ricerca nel registro IANA rivela un elenco molto lungo , di tutti i sottotag di lingua disponibili. Ecco un esempio dall'elenco (che verrebbe utilizzato come en-scouse):

Tipo: variante

Sottotag: scouse

Descrizione: Scouse

Aggiunto: 2006-09-18

Prefisso: en

Commenti: dialetto inglese Liverpudlian noto come 'Scouse'

Sono disponibili tutti i tipi di sottotag; ha già rivelato un rapido scorrimento fr-1694acad(francese del XVII secolo).


L'utilità di alcuni di questi (direi la stragrande maggioranza di questi) tag, quando si tratta di documenti progettati per la visualizzazione nel browser, è limitata. La specifica di internazionalizzazione del W3C afferma semplicemente:

I browser e altre applicazioni possono utilizzare le informazioni sulla lingua del contenuto per fornire agli utenti le informazioni più appropriate o per presentare le informazioni agli utenti nel modo più appropriato. Maggiore è il numero di contenuti contrassegnati e contrassegnati correttamente, più tali applicazioni diventeranno utili e pervasive.

Faccio fatica a trovare informazioni dettagliate su come si comportano i browser quando incontrano tag di lingua diversi, ma molto probabilmente offriranno qualche vantaggio a quegli utenti che utilizzano uno screen reader, che può utilizzare il tag per determinare la lingua / dialetto / accento in cui presentare il contenuto.


0

XML Schema richiede che lo spazio dei nomi xml sia dichiarato e importato prima di utilizzare xml: lang (e altri valori dello spazio dei nomi xml) RELAX NG dichiara lo spazio dei nomi xml, come in XML, quindi non è necessaria alcuna dichiarazione aggiuntiva.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.