Foros del Web » Programando para Internet » PHP »

Como filtrar usuarios por idioma??

Estas en el tema de Como filtrar usuarios por idioma?? en el foro de PHP en Foros del Web. Hola, necesito hacer lo siguiente: estoy construyendo un sitio que esta en 3 idiomas (ingles, frances español), los textos están listos...pero necesito hacer que el ...
  #1 (permalink)  
Antiguo 27/03/2011, 15:13
Avatar de ras_chalo  
Fecha de Ingreso: junio-2010
Mensajes: 369
Antigüedad: 13 años, 10 meses
Puntos: 6
Pregunta Como filtrar usuarios por idioma??

Hola, necesito hacer lo siguiente:

estoy construyendo un sitio que esta en 3 idiomas (ingles, frances español), los textos están listos...pero necesito hacer que el usuario, según sea su idioma, se muestre en el que corresponde...

de todas maneras, lo lógico apunta a la IP, por lo que necesito la IP de todos los países que hablan español, ingles y francés. y que por cada país que no caiga dentro de los idiomas anteriores, se redireccione a la de inglés...la español sera por defecto...

de donde puedo sacar las bases de datos para poder hacer lo que necesito?
alguien a hecho algo parecido antes, cosa que me pueda facilitar algún código?

Saludos y espero sus respuestas!
  #2 (permalink)  
Antiguo 27/03/2011, 17:14
Avatar de Parzival  
Fecha de Ingreso: junio-2004
Ubicación: Vive en el foro
Mensajes: 190
Antigüedad: 19 años, 10 meses
Puntos: 2
Respuesta: Como filtrar usuarios por idioma??

Puedes hacerlo de una manera mucho más sencilla.

Yo te sugiero utilizar la variable $_SERVER["HTTP_ACCEPT_LANGUAGE"].

Por ejemplo:

Código PHP:
function detectarIdioma(){

//revisamos cabecera HTTP_ACCEPT_LANGUAGE

$idiomas explode(";"$_SERVER['HTTP_ACCEPT_LANGUAGE']);
if(
strpos($idiomas[0], "es") !== FALSE){
$idioma "es";
}
elseif(
strpos($idiomas[0], "en") !== FALSE){ 
$idioma "en"
}

//Ante cualquier otro idioma devolvemos "es" 
if($idioma <> "es" && $idioma <> "en"){
$idioma "es";
}
return 
$idioma;

Te recomiendo que revises la página de referencia de $_SERVER, ya que vienen algunos ejemplos de cómo utilizar este índice en concreto, ya que dependiendo del navegador que se utilice se envían cabeceras distintas.
  #3 (permalink)  
Antiguo 27/03/2011, 17:49
Avatar de humbero12  
Fecha de Ingreso: abril-2009
Ubicación: Cereté, Colombia
Mensajes: 53
Antigüedad: 15 años
Puntos: 4
Respuesta: Como filtrar usuarios por idioma??

Se puede hacer guardando los idiomas en la base de datos y generando las funciones con un eval dependiendo del registro que tenga en la base de datos pero te muestro como se hace con archivos mira el siguiente codigo:

Código PHP:
Ver original
  1. <?php
  2. function getIdioma(){
  3. $leng = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
  4. $exp = explode(";",$leng);
  5. $leng = $exp[0];
  6. switch($leng){
  7.     case strpos($leng,"es"):
  8.     $leng = "es";
  9.     break;
  10.     case strpos($leng,"en"):
  11.     $leng = "en";
  12.     break;
  13.     case strpos($leng,"fr"):
  14.     $leng = "fr";
  15.     break;
  16.     default: //Si no es ninguno de los anterior el idioma por defecto es ingles
  17.     $leng = "en";
  18. }
  19.    
  20.     return $leng;
  21. }
  22.  
  23. function encabezado(){
  24.     $texto_es = "Encabezado en español";
  25.     $texto_en = "Header English";
  26.     $texto_fr = "Français-tête";   
  27.     return  ${'texto_'.getIdioma()};
  28. }
  29.  
  30. function cuerpo(){
  31.     $texto_es = "Texto del documento todo en español, aquí todo la información";
  32.     $texto_en = "Text of the document all in English, here all the information";
  33.     $texto_fr = "Le texte du document tout en français, ici toutes les informations";  
  34.     return  ${'texto_'.getIdioma()};
  35. }
  36. ?>
  37. <html>
  38. <head>
  39. <meta content="text/html; charset=UTF-8" http-equiv="content-type">
  40. <title></title>
  41. </head>
  42. <body>
  43.     <h1><? echo encabezado(); ?></h1>
  44.     <? echo cuerpo();?>
  45. </body>
  46. </html>

Espero que te sirva

__________________
Sigueme en twitter @humbero12
Blog #cazacontenidos
  #4 (permalink)  
Antiguo 28/03/2011, 11:44
Avatar de ras_chalo  
Fecha de Ingreso: junio-2010
Mensajes: 369
Antigüedad: 13 años, 10 meses
Puntos: 6
Respuesta: Como filtrar usuarios por idioma??

Wow muchas gracias!!
es mas fácil de lo que creía!..

saludos y muchas gracias!!!

Etiquetas: filtrar, usuarios, idiomas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:16.