Puedes hacerlo de una manera mucho más sencilla.
Yo te sugiero utilizar la variable $_SERVER["HTTP_ACCEPT_LANGUAGE"].
Por ejemplo:
Código PHP:
function detectarIdioma(){
//revisamos cabecera HTTP_ACCEPT_LANGUAGE
$idiomas = explode(";", $_SERVER['HTTP_ACCEPT_LANGUAGE']);
if(strpos($idiomas[0], "es") !== FALSE){
$idioma = "es";
}
elseif(strpos($idiomas[0], "en") !== FALSE){
$idioma = "en";
}
//Ante cualquier otro idioma devolvemos "es"
if($idioma <> "es" && $idioma <> "en"){
$idioma = "es";
}
return $idioma;
}
Te recomiendo que revises la página de referencia de $_SERVER, ya que vienen algunos ejemplos de cómo utilizar este índice en concreto, ya que dependiendo del navegador que se utilice se envían cabeceras distintas.