Détection de la langue d’un site
Vous ne l’avez peut être pas remarqué, mais j’ai ajouté ces jours-ci un nouveau champs texte dans le formulaire des
commentaires pour ajouter l’adresse de son site. Toujours en quète de pages les plus parfaites possibles, l’absence
de hreflang
sur les liens vers les sites en question me chagrinait quelque peu. J’ai d’abord pensé
ajouter une liste déroulante pour indiquer la langue de son site mais je trouvais que ce n’était pas vraiment le
plus simple pour les utilisateurs du formulaire et il aurait fallu donner un choix conséquent de langues
sélectionnables, même si la plupart du temps, c’est anglais ou français.
Pour finir, je m’y suis pris autrement. Je lance à l’aide de la fonction fsockopen()
de
PHP une requète à destination du site
indiqué dans le formulaire et je récupère la valeur donnée par l’en-tête Content-Language que me renvoie
le serveur. Dans le cas où cet en-tête n’est pas fourni par le serveur, je m’attaque au contenu même qui m’est renvoyé
en cherchant les attributs xml:lang
et/ou lang
sur les éléments
html
ou body
puis le meta Content-Language.
Encore une preuve des bienfaits des pages codées proprement et des bons en-têtes envoyés par le serveur :)
PS : Une copie de la fonction que j’ai faite est disponible ici pour les curieux.