Blog de Gonzalo

PHP DETERMINAR IDIOMA DEL VISITANTE

Hace unos días me sugirieron hacer una versión de mi página en Ingles. Después de estar pensando como hacerlo busqué la manera de saber el idioma de quien visita la web. Viene especificado en el array $_SERVER.
En internet encontré la siguiente solución:


foreach (explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']) as $lang) {
$pattern = '/^(?P[a-zA-Z]{2,8})'. '(?:-(?P[a-zA-Z]{2,8}))?(?:(?:;q=)'. '(?Pd.d))?$/';
$splits = array();
if (preg_match($pattern, $lang, $splits)) {
if ($splits['primarytag'] != 'en' and $splits['primarytag'] != 'es'){
return 'en';
}
else{
return $splits['primarytag'];
}
} else {
return 'es';
}

Tengo que decir que el contenido de mi página web lo tengo en xml. Quise hacerlo así para no tener una base de datos con los textos y quería algo más complejo que un fichero de textos. Así que tengo todo en xml con la versión en español y con la versión en inglés.
El idioma lo guardo en sesión y a la hora de cargar los contenidos se hace automáticamente.

Compartir en twitter