Détection de la langue des visiteurs avec l’entête HTTP Accept-Language

Détecter automatiquement la langue d’un visiteur n’est pas chose aisée. Généralement, on utilise un système de géo-localisation pour déterminer le pays depuis lequel l’internaute navigue afin d’en déduire la langue.

Mais comment fait-on pour les pays avec plusieurs langues officielles comme la Belgique, le Canada ou la Suisse ? Comment distinguer également une personne située dans un pays dont elle ne parle pas la langue (touristes, travailleurs en déplacements, immigrés, etc.) ?

L’équipe de Flickr a résolu le problème en basant sa détection sur l’entête HTTP Accept-Language qu’envoient la plupart des navigateurs. Celle-ci indique au serveur les langues acceptées par l’internaute dans l’ordre de préférence. Il est donc ainsi aisé de servir le contenu du site dans la langue la plus appropriée sans devoir passer par des déductions plus ou moins approximatives.

Attention cependant à ne pas imposer vos déductions à vos visiteurs. Comme toute méthode, celle-ci a ses limites. Il est donc important de proposer un mécanisme aux visiteurs pour changer manuellement de langue.

Ce contenu a été publié dans Développement Web. Vous pouvez le mettre en favoris avec ce permalien.

7 réponses à Détection de la langue des visiteurs avec l’entête HTTP Accept-Language

  1. Joris dit :

    Oui !

    Mais c’est pas tout nouveau il me semble… On peut aussi le faire lorsque que tu rediriges un visiteur sur un sous-domaine linguistique… Il y a des règles de réécriture qui permettent de créer des conditions avec les en-têtes du navigateur 🙂

    De la même manière que la détection de type de navigateur pour les sites possédant une version mobile.

  2. pocky dit :

    HTTP Accept-Language est aussi utilisé par Symfony pour la détection i18n 🙂

  3. @Joris : En effet, cela n’a rien de nouveau. Les gens un peu avertis la connaissent déjà et je l’ai moi-même souvent utilisée.

    Mon but était surtout de montrer les limites de la géo-localisation pour cet usage et de donner plus de visibilité à cette technique grâce à son usage par un grand nom comme Flickr.

  4. franek dit :

    Bonjour,

    Je crois me souvenir que Stéphanie Booth lors de Paris Web 2007 avait bien expliqué les limites de la géolocalisation lors de sa présentation :
    "Multilinguisme web et problématiques associées" – http://www.paris-web.fr/2007/Ven...

    Les slides : http://www.paris-web.fr/2007/Pre...

    Et la vidéo :
    http://www.dailymotion.com/video...

  5. YoGi dit :

    Je pense que la géo-localisation & la langue préférée sont 2 choses très différentes à ne pas mélanger.

    En outre, je peux être en déplacement voire expatrié dans un pays étranger, et pour autant garder comme langue préférée le français (dans ma boite cette dernière situation est extrêmement fréquente, les employés étant très mobiles).

    Je reste donc sur l’idée que l’Accept-Language est le moyen le plus efficace de déterminer la langue (comme l’ont toujours fait bon nombre de systèmes ; SAP Entreprise Portal, Websphere portal, Lotus Domino, etc), et la géo-localisation le meilleur moyen de savoir où je me situe physiquement.

  6. YoGi dit :

    (et en plus mon gravatar il déboite)

  7. niemand dit :

    Je suis expat, et la géolocalisation a pour seul effet de donner envie de sortir ma barre a mine, pour aller discuter avec les personnes qui ont choisis son usage a la place d’Accept-Language, qui est l’endroit ou aller chercher la langue de l’utilisateur !!!

    Donc jeune dev, si tu ne veux pas te retrouver éclopé, convainc ton chef de projet que la geoloc est une mauvaise idée.

Les commentaires sont fermés.