Para esto, usando algo similar al script para detectar el navegador usando PHP podemos generar una sencilla función en que redirija al usuario a la ubicación deseada de acuerdo a su idioma. El script puede ser algo como lo siguiente:
1
<?php
2 //Creamos una función que detecte el idioma del navegador del cliente.
3 function getUserLanguage() {
4 $idioma =substr($_SERVER["HTTP_ACCEPT_LANGUAGE"],0,2);
5 return $idioma;
6 }
7
8 //Almacenamos dicho idioma en una variable
9 $user_language=getUserLanguage();
10
11 //De acuerdo al idioma hacemos una o varias redirecciones.
12 if($user_language=='en'){
13 header( 'Location: http://www.ejemplo.travel/en' );
14 }
15 elseif($user_language=='de'){
16 header( 'Location: http://www.ejemplo.com/de' );
17 }
18 ?>
Sencillo y bastante ùtil. ¿Conoces otra formas de hacerlo?
Hola realizado ese código de la siguiente manera y no me funciona, me puedes ayudar?
ResponderEliminarA mi me paso igual, pero no me di cuenta de un fallo que habia. Cuando copias y pegas, fijate bien que se quedan los numeros 1, 2, 3, 4, ...
EliminarDebes borrarlos y ya esta. Te debe funcionar
Muy bueno, pero que hago en caso de que el idioma no este en la lista???????? gracias de antemano
ResponderEliminarLo redireccionas a otro idioma que creas que sea universal como por ejemplo el Etrusco. Saludos.
EliminarGracias, es un gran aporte, para quien preguntó que pasa cuando el idioma no está en la lista, pues yo cambiaría el if por :
ResponderEliminarswitch ($user_language){
case 'es': header( 'Location: http://tudominio.com/es' );
break;
case 'en': header( 'Location: http://tudominio.com/en' );
break;
default: header( 'Location: http://tudominio.com/donde_quieras' );
}
También puedes dejar el if así:
ResponderEliminarif($user_language=='en'){
header( 'Location: http://www.ejemplo.travel/en' );
}
elseif($user_language=='de'){
header( 'Location: http://www.ejemplo.com/de' );
}
else{
header('Location: http://www.ejemplo.com/sinidioma')
}
muy buenos aportes , te tengo una pregunta referente al if
ResponderEliminartengo una tabla la cual debo consultar si el usuario existe solo hace un update a un campo , si no debe llenar determinados campos mi codigo es este
mysql_select_db($database_conexion, $conexionredsocial);
$query_usuario = sprintf("SELECT * FROM users WHERE users.idContador=%s", GetSQLValueString($chat_usuario, "int"));
$usuario = mysql_query($query_usuario, $conexion) or die(mysql_error());
$row_usuario = mysql_fetch_assoc($usuario);
$totalRows_usuario = mysql_num_rows($usuario);
mysql_free_result($usuario);
if ($usuario !=" ")
{ $updateSQL = sprintf("update users
inner join tblusuario on users.idContador = tblusuario.idContador
set pass = strPassword WHERE tblusuario.idContador=%s", GetSQLValueString($usuario, "int"));
mysql_select_db($database_conexion, $conexionredsocial);
$Result1 = mysql_query($updateSQL, $conexion) or die(mysql_error());
}
else //if ($varchat_chat =="")
{$insertSQL = sprintf ("INSERT INTO users (idContador, iduser, name, pass) select idContador, strEmail, strNombre, strPassword from tblusuario WHERE tblusuario.idContador=%s", GetSQLValueString($varchat_chat, "int"));
mysql_select_db($database_conexion, $conexion);
$Result1 = mysql_query($insertSQL, $conexion) or die(mysql_error());
}
?>
Este comentario ha sido eliminado por el autor.
ResponderEliminarJejeje, aqui un poco mejorado asi solo tienes que poner igual a en los nuevos if y ya está sin escribir tanto:
ResponderEliminar$autoidioma = substr($_SERVER["HTTP_ACCEPT_LANGUAGE"],0,5);
if($autoidioma == 'es-ES'){
header("Location:".$autoidioma);
}elseif($autoidioma == 'en-US'){
header("Location:".$autoidioma);
}else{
header("Location:en-US");
}
grácias, hyper sencillo y funcionando a la primera!
ResponderEliminarLo mismo digo facil y funciona.
ResponderEliminar¡¡¡Enhorabuena!!!
Los navegadores de hoy en dia permiten configurar varios idiomes por orden de preferencia, si el usuario tiene configurado el idioma holandés como preferente, i el alemán como secundario y tu web no tiene idioma holandés, será redirigido al web en inglés. esto seria un error en tu código pues en realidad debes coprobar todos los idiomas del usuario y no solo el principal.
ResponderEliminarSi usas por ejemplo la función getUserLanguages() de la libreraia Bootils (http://oriolet.github.io/Bootils/features/#getUserLanguages) te devolverá todos los idiomas del usuario por orden de preferencia y podras recorrer ese array para comprobas si tu web dispone de alguno antes de enviarlo a la version por defecto.
tengo problemas, la funcion en php me funciona muy bien mientras tengo la web corrieno en wamp pero al subirla a un hosting no funciona que sera?
ResponderEliminarsera que en la condición no esta el "es" de español y no ves nada por eso?
ResponderEliminarviva cristo rey
ResponderEliminar