par anonyme 05-Mars-2020

Comment puis-je détecter la langue du navigateur en PHP ?

2 Réponses

par Blaise 05-Mars-2020

Vous pouvez détecter la langue du navigateur à l'aide de la variable globale PHP $_SERVER et de la clé HTTP_ACCEPT_LANGUAGE.

Exemple de code PHP pour détecter la langue du navigateur :

<?php 
echo "La langue du navigateur est : ".substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2)."";
?>
par Antoine 18-Janvier-2022

Dans certains cas vous pouvez avoir l'erreur PHP Warning: Undefined array key "HTTP_ACCEPT_LANGUAGE" car le navigateur de l'internaute renvoie une en-tête HTTP erronée.

Dans ce cas mieux vaut tester l'en-tête HTTP_ACCEPT_LANGUAGE comme ceci :

<?php
if (!empty($_SERVER['HTTP_ACCEPT_LANGUAGE']))
{
  if ((substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2)) == "fr")
  {
    echo "navigateur en français";
  }
}
?>
par Nico 05-Avril-2020

Si vous voulez détecter la langue du navigateur selon le RFC 2616, c'est à dire au format fr_FR, vous devez utiliser la locale PHP locale_accept_from_http() :

<?php 
echo locale_accept_from_http($_SERVER['HTTP_ACCEPT_LANGUAGE']);
?> 
Bienvenue sur 1FORMATIK, où vous pouvez poser des questions en lien avec l'informatique et internet, et recevoir des réponses de l'équipe et d'autres internautes.

2.6k questions

3k réponses

...