Quelle est la différence entre <html lang="en">
et <html lang="en-US">
? Quelles autres valeurs peuvent suivre le tiret?
Selon w3.org "Tout sous-code à deux lettres est considéré comme un code de pays [ISO3166]." cela signifie-t-il que toute valeur répertoriée sous le code alpha-2 est une valeur acceptée?
Réponses:
La première
lang
balise spécifie uniquement un code de langue. Le second spécifie un code de langue, suivi d'un code de pays.Oui, mais la valeur peut avoir ou non une signification réelle.
<html lang="en-US">
signifie essentiellement "cette page est dans le style américain de l'anglais." De la même manière,<html lang="en-GB">
cela signifierait «cette page est dans le style anglais britannique».Si vous vouliez vraiment spécifier une combinaison invalide, vous pourriez. Cela ne voudrait pas dire grand-chose, mais
<html lang="en-ES">
est valide selon la spécification, si je comprends bien. Cependant, cette combinaison langue / pays ne fera pas grand-chose car l'anglais n'est pas couramment parlé en Espagne.Cela n'aide pas le navigateur à afficher la page, mais il est utile pour les moteurs de recherche, les lecteurs d'écran et d'autres choses qui pourraient lire et essayer d'interpréter la page, en plus des êtres humains.
la source
hyphens: auto
), alors l'lang
attribut est requis pour permettre au navigateur de sélectionner un ensemble de règles approprié.Vous pouvez utiliser n'importe quel code de pays, oui, mais cela ne signifie pas qu'un navigateur ou un autre logiciel le reconnaîtra ou fera autre chose à cause de lui. Par exemple, un lecteur d'écran peut traiter de la même manière "en-US" et "en-GB" s'il ne prend en charge qu'un accent américain en anglais. Un autre logiciel qui a deux voix distinctes, cependant, pourrait s'adapter en fonction du code du pays.
la source
Cela devrait aider: http://www.w3.org/International/articles/language-tags/
la source
La RFC 3066 donne les détails des valeurs autorisées (accentuation et liens ajoutés):
J'interprète cela comme signifiant que tout code valide à 2 lettres (selon ISO 3166) est valide en tant que sous-étiquette. Le RFC poursuit en déclarant:
En passant, cela ressemble à une faute de frappe, puisque le chapitre 3 semble se rapporter au processus d'enregistrement, pas au chapitre 5.
Une recherche rapide du registre IANA révèle une très longue liste de toutes les sous-étiquettes de langues disponibles. Voici un exemple de la liste (qui serait utilisé comme
en-scouse
):Il existe toutes sortes de sous-étiquettes disponibles; un parchemin rapide a déjà été révélé
fr-1694acad
(17e siècle français).L'utilité de certaines de ces balises (je dirais la grande majorité de celles-ci), lorsqu'il s'agit de documents conçus pour être affichés dans le navigateur, est limitée. La spécification d'internationalisation du W3C indique simplement:
J'ai du mal à trouver des informations détaillées sur le comportement des navigateurs lorsqu'ils rencontrent différentes balises de langue, mais elles offriront probablement des avantages aux utilisateurs qui utilisent un lecteur d'écran, qui peuvent utiliser la balise pour déterminer la langue / le dialecte / l'accent dans lequel présenter le contenu.
la source
XML Schema nécessite que l'espace de noms xml soit déclaré et importé avant d'utiliser xml: lang (et d'autres valeurs d'espace de noms xml) RELAX NG prédéclare l'espace de noms xml, comme dans XML, donc aucune déclaration supplémentaire n'est nécessaire.
la source
Eh bien, la première question est facile. Il existe de nombreux
en
s (anglais) mais (principalement) un seul anglais américain. On pourrait deviner il y aen-CN
,en-GB
,en-AU
. Je suppose qu'il y a peut-être même de l'anglais autrichien, mais c'est plus oui que oui.la source