Saber el idioma del navegador y redireccionar con PHP
Os traigo un código muy fácil de implementar, de hecho es una pequeña función para devolver el idioma del navegador del visitante o usuario, devolverá los dos primeros caracteres para utilizarse luego por ejemplo en una condicional que redireccione al subdominio o carpeta para tal idioma.
En las webs multiidioma se hace necesario en muchas ocasiones separar el contenido en diferentes subdominios o carpetas, cada una por su idioma, esto facilita en muchas ocasiones el mantenimiento de la web, ya que no se tiene que estar actualizando sobre una plataforma completa, sino que cada lenguaje tiene su propio despliegue y por tanto, pueden llevar caminos independientes, esto se puede dar por varios motivos, entre ellos destacaría que el perfil de un visitante español es diferente de un alemán o un inglés, por lo que adaptarlo al público puede ser una estrategia más que a tener en cuenta para conseguir unos buenos resultados.
Después de esta explicación, vamos al código, es muy sencillo, como siempre os lo muestro y luego lo comento:
<?php
//Creamos una función que detecte el idioma del navegador del cliente.
function traeLenguage() {
$idioma =substr($_SERVER["HTTP_ACCEPT_LANGUAGE"],0,2);
return $idioma;
}
//Llamamos a la función y guardamos el idioma en una variable
$idiomaUsuario = traeLenguage();
//De acuerdo al idioma hacemos las redirecciones según el lenguaje del navegador
if($idiomaUsuario=='es'){
header( 'Location: http://es.apartamentosembrujodeazahar.es' );
}
elseif($idiomaUsuario=='de'){
header( 'Location: http://de.apartamentosembrujodeazahar.es' );
}
else {
header( 'Location: http://en.apartamentosembrujodeazahar.es' );
}
?>
Creo que está bien comentado, pero aún así os dejo alguna aclaración.
La función traeLenguaje es la que es llamada y devuelve los dos primeros dígitos de la variable HTTP_ACCEPT_LANGUAGE que es en si misma la que devuelve el idioma del navegador utilizado por el usuario, esta variable luego la guardamos en idiomaUsuario y a continuación simplemente redireccionamos según este. El último condicional es abierto, por si no es ni español ni alemán, que directamente entre en inglés que entendemos es más utilizado.
Espero que os sirva! Recordad compartir y comentar!
eso está bien pero que tal si un usuario es de idioma español y su navegador esta en ingles, es decir que por error lo puede mandar para la web en inglés.
No es en sí el navegador, sino la configuración de su User-Agent, aunque tengas instalado el navegador en inglés, lo que prima es el idioma «preferido» de su sistema operativo, del idioma configurado del visitante.
Es decir, la información de idioma que tengas como configuración en tu sistema y no el idioma del browser en sí. Aunque también está claro que puedes tener varios idiomas instalados en tu sistema, el idioma que envía el user-agent a nuestro servidor es el idioma preferido. Hay maneras de rescatar los diferentes idiomas instalados, pero no es el cometido de este artículo.
Espero haberte aclarado algo.
Viendo tu frase descriptiva ‘Apasionado por la enseñanza y el SEO’, me hace dudar mucho sobre tus capacidades de SEO.
Este codigo es de todo menos SEO yo no me considero un profesional del SEO pero cada linea de codigo que creo esta pensada para el SEO y no me publicito como profesor de nada.
Con unas pocas lineas mas habrias creado algo interesante para los menos ‘capacitados’ pero tal como esta es un peligro para el SEO ya que redireccionas sin ver si el visitante es un buscador o es un simple usuario.
Si un buscador entra en tudominio.com y le mandas siempre a en.tudominio.com tendras solo una web visible para el buscador y la decena de idiomas extras que tengas no existiran, espero que no elimines este comentario y que otros usuarios puedan ver el problema y solucionarlo por sus medios ya que tal como lo dejaste es un peligro.
Buenas David,
No borro comentarios siempre que se hagan con respeto.
Te respondo sobre tu comentario: Y es que creo que confundes términos. El código es «para saber el idioma del navegador y redireccionar con PHP» nada más.
Te añado: El sistema de indexación de un buscador, no es linea, aunque las arañas puedan realizar el trabajo de esa manera, conocerás los sitemaps. Aparte con Linkbuilding también pueden saltarse a cualquier otra página e indexar igualmente. De hecho, te invito a buscar información del archivo robots, muchas webs han tenido problemas de exponer información, que en principio no debía de estar indexada 😉
Conste, no digo que el código no se pueda mejorar. Pero el código hace su función, y a nivel SEO, sinceramente, tampoco lo veo un condicionante.
La indexación se realizará igualmente 😉