Détection automatique de la langue du navigateur

Rechercher

Détection automatique de la langue du navigateur

  • Par Emacs
  • 0 commentaire
  • 7 845 lectures
  • De Hugo HAMON
  • RSS -  Atom

La source qui suit permet de détecter automatiquement la langue du navigateur du client et ainsi déterminer dans quelle langue afficher le site. Il suffit de fournir à la fonction en premier paramètre un tableau des langues utilisée sur le site ainsi que la langue par défaut. La fonction se charge ainsi de découvrir si l'utilisateur possède une langue par défaut répertoriée dans le tableau de référence. Dans le cas contraire, elle retourne la langue par défaut.

Portion de code

<?php
/**
 * Détection automatique de la langue du navigateur
 *
 * Les codes langues du tableau $aLanguages doivent obligatoirement être sur 2 caractères
 *
 * Utilisation : $langue = autoSelectLanguage(array('fr','en','es','it','de','cn'), 'en')
 *
 * @param array $aLanguages Tableau 1D des langues du site disponibles (ex: array('fr','en','es','it','de','cn')).
 * @param string $sDefault Langue à choisir par défaut si aucune n'est trouvée
 * @return string La langue du navigateur ou bien la langue par défaut
 * @author Hugo Hamon
 * @version 0.1
 */
function autoSelectLanguage($aLanguages, $sDefault = 'fr') {
  if(!empty($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
    $aBrowserLanguages = explode(',',$_SERVER['HTTP_ACCEPT_LANGUAGE']);
    foreach($aBrowserLanguages as $sBrowserLanguage) {
      $sLang = strtolower(substr($sBrowserLanguage,0,2));
      if(in_array($sLang, $aLanguages)) {
        return $sLang;
      }
    }
  }
  return $sDefault;
}
?>

Les commentaires

Soyez le premier à réagir !