Comment faire une redirection PHP selon la langue du navigateur ?

Réponses rédigées par Antoine
Dernière mise à jour : 2021-09-10 12:31:54
Question

Pour un site multilingue, comment peut-on faire une redirection vers la version anglaise ou française du site ?

Réponse

Pour faire une redirection vers la version anglaise ou française, d'un site web, selon la langue du navigateur de l'internaute, vous pouvez utiliser PHP pour détecter la langue, puis ensuite effectuer la redirection vers, à titre d'exemple, un répertoire /en ou /fr :

<?php
$langue = locale_accept_from_http($_SERVER['HTTP_ACCEPT_LANGUAGE']);

if(($langue == 'en')||(strpos($langue,'en'))){
  header('location: en/');
} 
else header('location: fr/');
?>

Il faut cependant, et préalablement, vérifier que que la variable HTTP_ACCEPT_LANGUAGE n'est pas vide.

if (!empty($_SERVER['HTTP_ACCEPT_LANGUAGE']))
{
   // ...
}

Référez vous à cette autre question pour d'avantage d'information sur les manières de détecter la langue du navigateur avec PHP.