Aller au contenu

Attribut hreflang


Hells_Dark

Sujets conseillés

Tout à fait, je vais te donner l'exemple mis sur le site de Karl Dubost :

a[hreflang^="fr"] {
background: url(fr.gif) right center no-repeat;
padding-right: 12px;}

a[hreflang^="fr-qc"] {
background: url(fr-qc.gif) right center no-repeat;
padding-right: 12px;}

a[hreflang^="fr-ch"] {
background: url(fr-ch.gif) right center no-repeat;
padding-right: 12px;}

a[hreflang^="en-us"] {
background: url(en-us.gif) right center no-repeat;
padding-right: 12px;}
}

a[hreflang]:after {
content: url(/2002/09/03-fr-qc.gif);
}

Donc la premiere version permettra d'ajouter un petit drapeau à droite du lien, en image de fond, donc fonctionnera sur tous les navigateurs (a priori, enfin tous les modernes au moins, >v4), la seconde solution, que je trouve plus élégante, fera la même chose, mais en ajoutant l'image apres le lien, (:after).

Tu peux aussi ajouter du texte, content: "[EN]" ;

Mais avec :after (et :before) ca ne fonctionnera pas sous IE.

Donc pour ton exemple, avec du texte, ca ne fonctionnera pas sous IE a moins de faire une image de fond représentant l'écriture [EN], je trouve ca un peu bordelique pour si peu. Donc a mon avis contente toi de faire pour les non IE et tant pis pour les autres.

Donc un code de ce style irait :

a[hreflang="en"]:after, a[hreflang="en-us"]:after
{
  content: "["attr(hreflang)"]";
}

Et zou ! le tour est joué, ca ajoute [en] ou [en-us] apres tes liens.

Tu peux faire aussi :

a[hreflang="en"]:after, a[hreflang="en-us"]:after
{
   content: "[EN]";
}

Ce qui rajoutera [EN] apres les liens en et en-us.

Sinon autre solution, tu n'indique les hreflang QUE des liens en, en-us, ... et tu fais ceci via css :

a[hreflang]:after
{
  content: "["attr(hreflang)"]";
}

ou bien sûr comme tout à l'heure

a[hreflang]:after
{
  content: "[EN]";
}

Je suis en train de me dire aussi que tu dois pouvoir gérer la casse (majuscule ou minuscule) du content via text-transform: uppercase; ou lowercase. A tester !

Voilà !

@++

Modifié par ElMoustiko
Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines plus tard...

Bonjour,

A lire absolument, le dernier billet (qui est d'ailleurs un véritable article :up: ) de Laurent :

Spécifier la ou les langues d'un document Web

Une remarque à propos de l'attribut hreflang :

D'une part Laurent cite un passage (traduit) d'un document (en anglais) du W3C

Les drapeaux représentent des pays, et non des langages. De nombreux pays partagent la même langue, et de nombreux autres pays ont plus d'une langue officielle.

d'autre part, dans cette discussion, ElMoustiko fait allusion à un exemple proposé par Karl Dubost, utilisant ces drapeaux...

dans cet exemple, les drapeaux sont uniquement "un plus" visuel, la langue utilisée est bien renseignée par un texte.

Lien vers le commentaire
Partager sur d’autres sites

Je te promets, je te jure, solennellement, devant témoins, ElMoustiko... que mon article n'avait rien à voir avec une quelconque "boulette" de ta part :hypocrite:

Cela dit, s'il est complet, c'est simplement que le W3C et particulièrement sa branche Internationalisation (i18n) fontt depuis peu un effort particulièrement percutant d'explication à travers une série d'articles qu'il suffit de lire... ou de faire connaître.

Enfin, pour en revenir au sujet de ce fil, j'ai été en fait assez surpris par cette remarque de détail sur les drapeaux et hreflang dans ce document du W3C : hreflang pose en fait d'autres problèmes bien plus importants dans le contexte d'un site "internationalisé", et l'employer dans un lien vers un tel site n'est pas si évident:

- il suppose que vous vérifiez régulièrement le site en question, pour vous assurer qu'il ne se met pas à pratiquer le content-negociation sur la langue de préférence de ses visiteurs... auquel cas, un site avec un hreflang="en" pourra très bien se retrouver du jour au lendemain à adresser une page en français à ses visiteurs.

- Quid d'une page dont la langue primaire est en français, mais dont le contenu est essentiellement composé de citations dans l'autres langues ?

- Inversement, comment faire l'hreflang d'un site ayant plusieurs langues primaires ?

Pas si simple, cet attribut ;) Tiens, il me semble avoir vu un autre article de l'i18n qui abordait ces questions... Mais où, déjà ? :P

Modifié par LaurentDenis
Lien vers le commentaire
Partager sur d’autres sites

Moi il faudrait tout simplement que je me mette à spécifier les hreflang ;)

Tiens j'ai une question :

Mon site est à 99.9% en français, je fait référence le plus souvent possible à des sites francophones (parceque 1- je suis nul en anglais et je comprend rien aux sites anglophones, 2- vu que je fait quelues tutoriels, j'ai quelques ressources à donner, et je me dit que si en plus je dois apprendre l'anglais aux visiteurs, je suis pas rendu, ils ont bien assez à me déchiffrer ;) ), est-il tout de même recommandé de préciser le hreflang d'une part dans le code HTML, d'autre part visiblement (sur les navigateurs supportant :before; :after;).

Aussi, si la réponse la question précédente est "non pas olbigatoire", si je met un lien anglophone (ou autre langue, cela va de soit) je suis quasiement obligé de le préciser non ?

Quid de toutes ces problématiques pour l'utilisateur d'IE (entre autre) avec lesquels il est partculierement difficile de retranscrire dans le corps de la page affichée la langue du lien...

[EDIT]Ahhh bah pour une fois que j'avais pas sous-entendu une Nieme correction de ta part ;) (n commence à se rapprocher dangereusement de l'infini, la limite de mon incompétence quand n tend vers +infini = Une foultitude de connaissances ;))

Modifié par ElMoustiko
Lien vers le commentaire
Partager sur d’autres sites

Un navigateur vraiment intelligent (comme nous en aurons dans quelques années, je crois), ajoutera lui-même au survol d'un lien (ou lors d'une autre fonction sur un lien tel que la carte des liens externe d'une page / d'un site) le signalement de la langue, sous la forme choisie par l'utilisateur selon ses préférences (un p'tit drapeau, un code ISO langue, un nom de langue explicite, etc).

De même, un moteur de recherche intelligent (si, si, il y en aura un jour ;) ) pourra exploiter l'attribut hereflang des liens en rapport avec la pertinence d'un lien dans une requête faite à partir d'une langue donnée vers une autre langue donnée.

Une machine traductrice pourra anticiper l'éventuelle demande de l'utilisateur de consulter la cible d'un lien dans une version traduite, dès lors que l'attribut hreflang du lien sera explicité. Et à la manière de la navigation rapide dans Opera, il aura préparé cette traduction avant que l'utilisateur ne clique.

Mais encore faut-il pour cela que l'attribut en question soit spécifié, lorsque c'est possible. Donc, oui, hreflang doit figurer dans le code.

Peut-on s'en abstenir pour les liens dans la langue de la page elle-même ? Par paresse, oui. Mais rien n'obligerait un des outils ci-dessous à extrapoler la langue cible d'un lien à partir de la langue primaire de la page d'origine... Disons que c'est un pas de plus à franchir aujourd'hui, si on le souhaite.

Expliciter via CSS cet attribut pour renseigner immédiatement l'utilisateur sur la langue du document-cible ? C'est actuellement la seule application pratique de cet attribut. Pourquoi s'en priver ? :P

J'oubliais l'utilisateur d'IE: lorsque je surfe avec Lynx (ce que je fais souvent, ayant des goûts un peu pervers), je ne m'attends pas à trouver sur les pages que je consulte autre-chose que ce que Lynx (un navigateur texte) peut m'apporter...

Lien vers le commentaire
Partager sur d’autres sites

Laurent, tu es un grand malade :hypocrite:

Je comprend pourquoi certains élèves prennent leur professeurs pour des extra-terrestres (cf MIB entre autre), c'est parceque leurs enseignant sont strange !!!!

Je te comprend pas toujours...

Pourquoi se priver de la belle gueule de beaucoup de site (tout en ayant un bon code fonctionnel et utilisable par le plus grand nombre), pourquoi se priver même d'une structure un peu plus agrémentée, genre mettre le menu sur le coté, encadrer un peu les choses (un peu à la maniere d'openweb par exemple), pourquoi supprimer le JS, c certe pas forcément utile mais ca permet de trucs sympa pas forcément inutilisables, pourquoi tu n'utilises pas toutes les fonctionnalités de ton navigateur (utilisation des css, du javascript, ...)

J'avoue que tout ceci me dépasse un peu... le web est fait pour faire des trucs sympa en plus du texte, autant s'amuser à les creer et a les observer chez les autres ;)

'comprend pas !

Lien vers le commentaire
Partager sur d’autres sites

Laurent, tu es un grand malade  :hypocrite:

Je comprend pourquoi certains élèves prennent leur professeurs pour des extra-terrestres (cf MIB entre autre), c'est parceque leurs enseignant sont strange !!!!

Je te rassure : c'est un aspect de ma personnalité que je réfrène avec succès dans l'exercice de mon métier civil ;)

Je te comprend pas toujours...

désolé si mon message n'était pas clair. Je reprends:

- hreflang est encore quasiment inexploité par les applications liées au Web, en dehors de l'affichage de la langue de la cible via CSS dans un navigateur graphique. Mais cet attribut recèle des perspectives d'exploitation importantes pour l'avenir : donc, oui, il faut l'utiliser.

- l'exploitation de l'hreflang via CSS utilise un sélecteur d'attribut... ce qui fait que cela ne donne rien dans IE. Ce n'est pas un souci : celui qui utilise un navigateur, quel qu'il soit, doit faire avec les limites de capacités de celui-ci, dès lors que de son côté, l'auteur du site ne conditionne pas l'accès au contenu à l'utilisattion d'un navigateur doté de fonctionnalités précises. Ici, ne pas voir le rendu CSS de l'attribut hreflang n'empêche pas les utilisateurs d'IE d'accéder pleinement au contenu. Donc, il n'y aucun état d'âme à avoir à ce sujet.

Lien vers le commentaire
Partager sur d’autres sites

Je te rassure : c'est un aspect de ma personnalité que je réfrène avec succès dans l'exercice de mon métier civil ;)

Heureux pour tes élèves de le lire :P

désolé si mon message n'était pas clair. Je reprends:

Si si le message était tout à fait clair, sûrement par déformation professionnel, tu explicites bien ton point de vue, et sauf quand c'est trop technique, j'arrive à te suivre :wacko: C'est ton comportement d'utilisation du web que je ne comprenais pas, d'où mes questions !

Pour en revenir au hreflang, je trouve ça dommage qu'il ne serve (dans des cas pas si rare, => IE, navigateurs non graphiques, on se rapproche des 90% d'utilisateurs) que très peu aux humains, c'est à dire pour donner une indication Visuelle, que ça puisse servir aux navigateurs ou aux moteurs de recherche maintenant ou plus tard, c'est très bien, mais je pense qu'il serait encore plus interessant de fournir cette information à l'utilisateur...

Donc, je vais m'employer à définir l'hrefllang des liens non francophones dans un premier temps, et de tous mes liens externes dans un second temps si j'ai le courage de les retrouver ! Mais la question du feignant (feignant mais aussi celui qui veut utiliser les capacités des langages qu'il utilise), n'y a t il pas une solution pour définir automatiquement l'attribut hreflang des liens en analysant les meta du site d'arrivée par exemple ou les meta Dublin Core, ou les entetes ...

Parceque pour 2 ou 3 liens ça va, c'est pas ce qu'il y a de plus pénible mais dès qu'on fait souvent appel à des liens externe ca devient vite plus long ...

@++

Lien vers le commentaire
Partager sur d’autres sites

Le href lang me paraît très compliqué :( J'ai une page de nombreux liens vers des sites en trois ou quatre langues !!

Je me suis contentée de mettre des petits drapeaux avec le code du pays dans la balise alt.

Lien vers le commentaire
Partager sur d’autres sites

Mais la question du feignant (feignant mais aussi celui qui veut utiliser les capacités des langages qu'il utilise), n'y a t il pas une solution pour définir automatiquement l'attribut hreflang des liens en analysant les meta du site d'arrivée par exemple ou les meta Dublin Core, ou les entetes ...

L'outil reste à créer ;) Il serait surtout intéressant pour avoir une idée du nombre de sites qui emploient correctement les indications de langue.

Evidemment, dans un Web idéalement bien codé, le test de l'en-tête HTTP content-language (qui devrait être systématiquement présent) serait des plus économiques...

Lien vers le commentaire
Partager sur d’autres sites

Oui mais peut on tester cet élément à partir du lien ?

genre 'HTTP content-language(http://......)' ou un truc plus vraisemblable ?

Et si aucune info on s'occupe des meta et meta DC et si encore aucune info on s'occupe de la langue xml:lang et lang du <html> (ou avant les meta meme) et si apres ca rien, on met pas de hreflang.

Une idée ?

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...