Hola a todos...
Tengo el siguiente script que detecta la preferencia de idioma del navegador del usuario. Funcionaba sin problemas pero repentinamente lo dejó de hacer, aunque en Local me sigue funcionando como siempre.
Es como si al script no le llega el valor de la variable "$idioma". Evidentemente algo cambió en el Servidor, verdad?
No encuentro cual es el motivo, por favor alguien me puede orientar?
Código PHP:
<?php
/* Este código detecta el idioma por defecto del visitante.
Sin embargo, si el visitante indica un idioma mediante la URL (siguiendo un enlace) toma preferencia */
// Miramos si el usuario ha definido un idioma por defecto en su navegador
if ($HTTP_ACCEPT_LANGUAGE != ''){
// Si es así, miramos que idiomas ha definido:
$idiomas = explode(",", $HTTP_ACCEPT_LANGUAGE); # Convertimos HTTP_ACCEPT_LANGUAGE en array
/* Recorremos el array hasta que encontramos un idioma del visitante que coincida con los idiomas en que está disponible nuestra web */
for ($i=0; $i<count($idiomas); $i++){
// Si aún no hemos definido la variable $idioma...
if (!isset($idioma)){
/* Miramos si tiene algún idioma de los disponibles entre sus favoritos.
Empezando por su primer favorito y acabando por su último favorito */
if (substr($idiomas[$i], 0, 2) == "es"){$idioma = "es";}
if (substr($idiomas[$i], 0, 2) == "de"){$idioma = "de";}
if (substr($idiomas[$i], 0, 2) == "en"){$idioma = "en";}
}
}
}
// Si aún no hemos encontrado ningún idioma que nos convenga, mostramos la web en el idioma por defecto
if (!isset($idioma)){$idioma = "es";}
// Ahora incluimos la plantilla de idioma correspondiente al idioma que pertoque:
include("lang/$idioma.php");
?>