Savoir en quelle langue est rédigé le contenu : l'exemple des sites multilingues
Par Victor Brito, le samedi 6 septembre 2008, à 18h34 - Catégorie Accessibilité - Lien permanent
Le blog officiel pour webmasters de Google a publié le mois dernier un billet sur la manière de commencer un site multilingue. Ce billet prodigue des conseils pratiques du point de vue du référencement. Toutefois, il y a un conseil supplémentaire à ajouter et qui rend bien service non seulement aux moteurs de recherche dans leurs tris, mais aussi à certaines aides techniques, comme les synthèses vocales, afin d'éviter que ces dernières ne lisent le contenu comme une vache espagnole) : déclarer dans le code source (qu'il soit généré ou en dur) la langue de chaque page du site.
Pour cela, en HTML, il suffit de renseigner l'attribut lang dans l'élément racine html. Pour une page HTML rédigée en français, on aura :
<html lang="fr">
En XML, c'est l'attribut xml:lang qui joue ce rôle.
On peut égalemet envoyer une en-tête HTTP indiquant la langue de la page, ce qui, en HTML, est effectué comme suit :
<meta http-equiv="Content-Language" content="fr">
En XHTML, on n'oubliera pas, bien entendu, le principe de fermeture de tous les élements, y compris les éléments vides :
<meta http-equiv="Content-Language" content="fr" />
Il est également possible d'envoyer une telle en-tête au moyen d'un langage de programmation côté serveur, comme PHP :
<?php header ('Content-Language: fr'); ?>
Qui dit site multilingue dit site susceptible de fournir un même contenu (page, catégorie, article, billet, brève…) en plusieurs langues. Le HTML offre un balisage suffisamment riche pour signaler à l'agent utilisateur (dont les robots des moteurs de recherche) que la page actuellement consultée est disponible en d'autres langues. Pour le cas d'une URL comme http://fr.exemple.com/1, on peut fournir le code suivant :
<link rel="alternate" href="http://en.exemple.com/1" hreflang="en" lang="en" title="English version of the page" /> <link rel="alternate" href="http://es.exemple.com/1" hreflang="es" lang="es" title="Versión española de la página" />
Parallèlement, l'utilisateur humain doit être renseigné de ces équivalences :
<p><a href="http://en.exemple.com/1" hreflang="en" lang="en" title="English version of the page" >English</a> - <a href="http://es.exemple.com/1" hreflang="es" lang="es" title="Versión española de la página" >Español</a></p>
Comme le montrent les deux derniers exemples, en cas de changement de langue au sein d'une même page, il faut aussi renseigner la langue de la portion de contenu en langue étrangère (avec le même attribut lang, ou xml:lang dans le cas du XML), sous peine qu'un synthèse vocale ne la lise comme si elle était rédigée dans la langue principale du contenu, autrement dit comme une vache espagnole.
Pour approfondir
Voici une suggestion de liens permettant d'approfondir les propos de ce billet :

