lingua + valore della regione dell'attributo lang HTML5


11

Sto lavorando a un sito Web che offrirà contenuti localizzati seguendo l' language+regionapproccio descritto in questa pagina di W3.org (ad es. fr-CAPer il contenuto in francese canadese e fr-FRper il contenuto "francese francese"). Poiché consideriamo i contenuti per ognuno language+regiondi essi unici, per noi è fondamentale che i motori di ricerca identificino e servano adeguatamente i contenuti di conseguenza.

Cercando su Internet (ad esempio questa domanda ), sembra che la maggior parte delle persone raccomandino l'uso di un codice ISO639 nella lingua nell'attributo HTML langper descrivere la lingua del contenuto. Seguendo questa raccomandazione, utilizzeremmo <html lang="fr">che non consentirebbe la differenziazione tra le language+regioncombinazioni di cui sopra .

Quando si rivede la specifica HTML4 , sembra che l'utilizzo language+regioncome codice di lingua sia perfettamente OK, poiché l' en-USesempio è dato come un possibile valore. Tuttavia non sono riuscito a trovare alcuna conferma di ciò nella specifica HTML5 che non sembra fornire alcun esempio in merito ai possibili valori consentiti.

Da lì ho cercato di ottenere una risposta di fatto osservando cosa stanno facendo i giganti del web. Ho osservato cosa stanno facendo Facebook: offrono versioni candian francesi e francesi francesi dei loro siti Web con contenuti (leggermente) diversi, mentre il langvalore HTML rimane lo stesso:


URL fr-CA : http://fr-ca.facebook.com
Attributo lang HTML: <html lang="fr">
traduzione della parola "email":courriel


URL fr-FR : http://fr-fr.facebook.com/
Attributo lang HTML: <html lang="fr">
traduzione della parola "email":Adresse électronique

Qual è il modo raccomandato / standard per descrivere il contenuto che è stato localizzato usando l' language+regionapproccio in HTML5?

Risposte:


5

Il W3C fornisce questa lunghissima guida sulla scelta dei tag / tag secondari della lingua.

I bit importanti:

La sintassi dei tag di lingua è definita dal BCP 47 di IETF . In passato era necessario consultare elenchi di codici in vari standard ISO per trovare i tag secondari giusti, ma ora è sufficiente cercare nel registro dei sottotag in lingua IANA . Descriveremo il nuovo registro di seguito.

Questo articolo fornisce consigli su come scegliere i componenti di un tag di lingua. Per una panoramica dei concetti definiti in BCP 47, vedere Tag di lingua in HTML e XML .

...

Ci sono strumenti disponibili che forniscono ulteriore aiuto durante la ricerca nel registro, come lo strumento di ricerca dei sottotag in lingua di Richard Ishida .

...

Assicurati di avere la lingua giusta. A volte, vale la pena controllare alcune alternative. Mark Davis, coautore di BCP47, scrive "Spesso non è chiaro quale identificatore di lingua utilizzare. Ad esempio, ciò che la maggior parte della gente chiama Punjabi in Pakistan ha in realtà il codice" lah "e il nome formale" Lahnda ". Ci sono molti altri casi in cui lo stesso nome viene utilizzato per lingue diverse o in cui il nome cercato dagli utenti non è elencato nel registro IANA. "

È possibile cercare informazioni sulla lingua nell'etnologo SIL e fare riferimento a tali informazioni con Wikipedia . Ethnologue utilizza gli stessi codici di tre lettere di BCP47, ma dovrai cercare i codici di 2 lettere BCP47 nella loro controparte ISO 639-3 per cercare una lingua per codice. ( Lo strumento di Richard Ishida fa questo per te.)

Esistono pochi casi in cui sono disponibili codici di lingua diversi per quella che molte persone considererebbero la stessa lingua, ad es. Filippino e Tagalog, o Twi e Akan. Non ci sono indicazioni nel registro su quale utilizzare, ma si dovrebbe cercare di garantire la coerenza all'interno di una singola applicazione o contesto.

(Enfasi mia.)

Va notato che il registro dei sottotag in lingua IANA è un po 'difficile da usare. Con l'eccezione dei tag nonni (come en-GB-oed), devi cercare i tag della famiglia di lingue e i tag secondari regione / variante separatamente. E i tag / tag secondari sono organizzati per tipo anziché per gerarchia. Quindi risparmia tempo e fatica e usa il fantastico strumento di ricerca di Richard Ishida .


2

Utilizzando <html lang="fr-FR">e <html lang="fr-CA">va bene, se corrispondono al contenuto effettivo. Ma sono ignorati dai motori di ricerca, così come <html lang="fr">sono.

HTML5 non significa cambiare l'uso dei codici di lingua. Il sistema dei codici come definito in BCP 47 e le estensioni ad esso è molto elaborato e consente di specificare una variante del linguaggio con precisione accurata. Lo stato dell'arte è a livelli molto, molto più semplici e fr-FR e fr-CA rappresentano la migliore granularità che si può ottenere in questi giorni nel software; abbastanza spesso, conta solo il codice principale (qui, fr).

Non ci sono prove che i motori di ricerca prestino effettivamente attenzione a dichiarazioni di codice di lingua, come gli langattributi. Altri software, come i trattini, i correttori ortografici, i sintetizzatori vocali e gli algoritmi di selezione dei caratteri predefiniti possono tenere langconto degli attributi. Ma i motori di ricerca eseguono le loro analisi euristiche in base al contenuto reale.

È difficile biasimarli per questo, poiché ciò produce risultati migliori rispetto alla fiducia negli langattributi. Ad esempio, molti strumenti di creazione generano automaticamente lang="en"indipendentemente dal contenuto effettivo, senza dirlo all'autore.


2

[Questa non è la mia area più forte, quindi sto solo citando la documentazione qui, ma sembra che tu abbia trascurato qualcosa.]

Le specifiche HTML5 richiedono che il langvalore sia un tag BCP 47 valido . In quel documento, il bit rilevante sembra essere nella sezione 3.4:

Ad esempio, un'implementazione potrebbe associare gli intervalli di lingua estesi agli intervalli di base. Un'altra possibilità sarebbe che un'implementazione restituisca il tag corrispondente che è il primo in ordine ASCII. Se l'intervallo di lingue era "* -CH" ("CH" rappresenta la Svizzera) e il set di tag includeva "de-CH" (tedesco usato in Svizzera), "fr-CH" (francese, Svizzera) e "esso -CH "(italiano, Svizzera), verrà restituito il tag" de-CH ".

... che quando lo guardi è fondamentalmente quello che hai ottenuto dalle specifiche HTML 4 che citano RFC1766, solo in maggior dettaglio.


Sto riscontrando difficoltà nel trovare il paragrafo che hai citato (ho cercato alcune delle sue parole chiave nel link che ho fornito e nella sezione 3.4 e non sono riuscito a trovare nulla). Potete fornirmi un link per favore? (idealmente con tag hash se possibile).
Max

Le specifiche HTML 5 si riferiscono solo al formato richiesto. Il bit citato proviene dal collegamento BCP 47, in cui quel formato è stato effettivamente definito.
Su '
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.