Idioma del cliente

Pues estaba haciendo un trabajito por ahí y tenía que sacar el idioma del cliente. Lo más fácil sería preguntarle a el hahaha, pero lamentablemente no es viable. Así que la siguiente aproximación fue usar algún sistema por medio de ip’s. Pero era mucho rollo, así que lo más fácil era sacar el lenguaje del cliente a través de la variable $_SERVER. He aquí el Script (no es difícil, pero seguramente algún dia se lo preguntaron o preguntarán yo sé).

[cc lang=“php“]
list(, , , $Idioma) = explode(„; „, $_SERVER[‚HTTP_USER_AGENT‘]);
$Idioma = substr($Idioma, 0, 2);

if(file_exists(‚Idiomas/Idioma_‘.$Idioma.‘.php‘))
require_once(‚Idiomas/Idioma_‘.$Idioma.‘.php‘);
else
require_once(‚Idiomas/Idioma_es.php‘);
[/cc]

¿Qué sencilla es la vida no? Espero algún dia les sirva

Saludos

—-Edit—-

Naturalmente no todo funciona como debe. Resulta que hacia unas pruebas, y Firefox si funciona como tal, obviamente explorer no. Así que lo más sencillo fué otra aproximación similar:

[cc lang=“php“]
//Leerá las variables que recibe del cliente y la guarda como un array separado
//por el delimitador coma
$Idiomas = explode(„,“, $_SERVER[‚HTTP_ACCEPT_LANGUAGE‘]);

//Para cada elemento $Idioma del arreglo $Idiomas
foreach($Idiomas as $Idioma){
//Corta todo y deja solo las dos primeros caracteres
$Idioma = substr($Idioma, 0, 2);

//Checa si el idioma existe, de ser así sale, sino sigue leyendo
if(file_exists(‚Idiomas/Idioma_‘.$Idioma.‘.php‘))
break;
}

//Si salió del foreach es porque terminó o encontró una concordancia. Pude haber
//puesto una flag, pero de todos modos necesitaba un if, así que mejor lo dejé así
if(file_exists(‚Idiomas/Idioma_‘.$Idioma.‘.php‘))
require_once(‚Idiomas/Idioma_‘.$Idioma.‘.php‘);
else
require_once(‚Idiomas/Idioma_es.php‘);
[/cc]