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é).

1
2
3
4
5
6
7
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');

¿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:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
//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');
Ein Kommentar zu “Idioma del cliente
  1. commen sagt:

    ah, qué bien, quiero implementar algo así para el blog que Sebo y yo vamos a escribir. que reconozca alemán, español y para el resto de los idiomas va a estar en inglés

1 Pings/Trackbacks für "Idioma del cliente"
  1. […] from: Lenguaje del cliente Related ArticlesBookmarksTags Компания Mitsubishi выпустила Delica в […]

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

*