1

I'm using exactly this piece of code:

<?php
$lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
switch ($lang){
    case "fr":
        //echo "PAGE FR";
        include("index_fr.php");//include check session FR
        break;
    case "it":
        //echo "PAGE IT";
        include("index_it.php");
        break;
    case "en":
        //echo "PAGE EN";
        include("index_en.php");
        break;        
    default:
        //echo "PAGE EN - Setting Default";
        include("index_en.php");//include EN in all other cases of different lang detection
        break;
}
?>

to detect browser language as suggested in this question. But it's not properly detecting the right language. While javascript does things right with:

window.navigator.userLanguage || window.navigator.language;

php detects a different language. So let's say I'm running an italian browser, in Italy, then everything works fine BUT if I change my browser preferences and set it to english then js works properly but php still detects italian. I don't think I understand how this works and how to fix it.

I think it's because of the Accept-Language header which is still italian, but I don't really know how to deal with it or if my guess is right. Any help would be much appreciated!

Community
  • 1
  • 1
G4bri3l
  • 4,996
  • 4
  • 31
  • 53

0 Answers0