Foros del Web » Programando para Internet » PHP »

Script detecta idioma no funciona más!

Estas en el tema de Script detecta idioma no funciona más! en el foro de PHP en Foros del Web. Hola a todos... Tengo el siguiente script que detecta la preferencia de idioma del navegador del usuario. Funcionaba sin problemas pero repentinamente lo dejó de ...
  #1 (permalink)  
Antiguo 04/03/2010, 11:17
 
Fecha de Ingreso: octubre-2004
Mensajes: 768
Antigüedad: 19 años, 6 meses
Puntos: 3
Script detecta idioma no funciona más!

Hola a todos...

Tengo el siguiente script que detecta la preferencia de idioma del navegador del usuario. Funcionaba sin problemas pero repentinamente lo dejó de hacer, aunque en Local me sigue funcionando como siempre.

Es como si al script no le llega el valor de la variable "$idioma". Evidentemente algo cambió en el Servidor, verdad?

No encuentro cual es el motivo, por favor alguien me puede orientar?

Código PHP:
<?php
/* Este código detecta el idioma por defecto del visitante.
Sin embargo, si el visitante indica un idioma mediante la URL (siguiendo un enlace) toma preferencia */

// Miramos si el usuario ha definido un idioma por defecto en su navegador
if ($HTTP_ACCEPT_LANGUAGE != ''){
 
// Si es así, miramos que idiomas ha definido:
    
$idiomas explode(","$HTTP_ACCEPT_LANGUAGE); # Convertimos HTTP_ACCEPT_LANGUAGE en array

 /* Recorremos el array hasta que encontramos un idioma del visitante que coincida con los idiomas en que está disponible nuestra web */
    
for ($i=0$i<count($idiomas); $i++){
  
// Si aún no hemos definido la variable $idioma...
        
if (!isset($idioma)){
   
/* Miramos si tiene algún idioma de los disponibles entre sus favoritos.
   Empezando por su primer favorito y acabando por su último favorito */
            
if (substr($idiomas[$i], 02) == "es"){$idioma "es";}
            if (
substr($idiomas[$i], 02) == "de"){$idioma "de";}
            if (
substr($idiomas[$i], 02) == "en"){$idioma "en";}
        }
    }
}

// Si aún no hemos encontrado ningún idioma que nos convenga, mostramos la web en el idioma por defecto
if (!isset($idioma)){$idioma "es";}

// Ahora incluimos la plantilla de idioma correspondiente al idioma que pertoque:
include("lang/$idioma.php");
?>
  #2 (permalink)  
Antiguo 04/03/2010, 11:23
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Script detecta idioma no funciona más!

¿Primero de donde sale la variable $HTTP_ACCEPT_LANGUAGE? Si no tienes en tu php.ini activado register_global (lo aconsejable es que no este activado, ya que se dejará de usar en PHP6). Para ello vas a tener que usar la variable $_SERVER para poder ver la información.
Código PHP:
Ver original
  1. $_SERVER["HTTP_ACCEPT_LANGUAGE"]
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 04/03/2010, 11:44
 
Fecha de Ingreso: octubre-2004
Mensajes: 768
Antigüedad: 19 años, 6 meses
Puntos: 3
Respuesta: Script detecta idioma no funciona más!

Hola abimaelrc, muchas gracias por ayudarme...!

Sí, cambié a "$_SERVER["HTTP_ACCEPT_LANGUAGE"]" y así funciona!

Ahora el problema relacionado está en que dentro de las páginas tenía los enlaces para elegir idioma, por ejemplo de esta manera:

<a href="lenguaje.php?idioma=en">Inglés</a>

y resulta que también dejaron de funcionar!
  #4 (permalink)  
Antiguo 04/03/2010, 11:57
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Script detecta idioma no funciona más!

Por lo mismo que te indique, para leer las variables debes usar las variables $_GET o $_POST, en tu caso es $_GET.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #5 (permalink)  
Antiguo 04/03/2010, 12:07
 
Fecha de Ingreso: octubre-2004
Mensajes: 768
Antigüedad: 19 años, 6 meses
Puntos: 3
Respuesta: Script detecta idioma no funciona más!

Nuevamente gracias abimaelrc...

Pero evidentemente algo cambiaron en el Servidor, por que hasta ayer todo funcionaba... y si es así no avisaron nada!!!

Saludos!
  #6 (permalink)  
Antiguo 04/03/2010, 12:56
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Script detecta idioma no funciona más!

Lee el comentario que te deje en el #2. Cambiaron la parte de register_globals
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #7 (permalink)  
Antiguo 04/03/2010, 15:10
 
Fecha de Ingreso: octubre-2004
Mensajes: 768
Antigüedad: 19 años, 6 meses
Puntos: 3
Respuesta: Script detecta idioma no funciona más!

Sí abimaelrc... fue eso!

Gracias por la enseñanza!

Saludos.-

Etiquetas: detecta, 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 12:26.