Foros del Web » Programando para Internet » PHP »

cambiar idioma de página

Estas en el tema de cambiar idioma de página en el foro de PHP en Foros del Web. Hola, Estoy haciendo una pagina que sea multi-idioma, cogí código del FAQ para cargar el idioma del explorador con: Código PHP: <?php /* COGEMOS EL IDIOMA */ if(empty( $sitelang ...
  #1 (permalink)  
Antiguo 02/12/2007, 13:17
 
Fecha de Ingreso: junio-2002
Ubicación: España
Mensajes: 348
Antigüedad: 21 años, 10 meses
Puntos: 8
cambiar idioma de página

Hola,
Estoy haciendo una pagina que sea multi-idioma, cogí código del FAQ para cargar el idioma del explorador con:
Código PHP:
<?php
/* COGEMOS EL IDIOMA */
if(empty($sitelang)){ //primero preguntamos si la variable que va a contener el lenguage del visitante esta vacia
      
$sitelang getenv("HTTP_ACCEPT_LANGUAGE"); // si esta vacia sacamos el lenguage del visitante y lo ponemos en la variable $sitelang
      
}
switch(
$sitelang){ //ahora cargamos el archivo que contiene el idioma segun la varible que sacamos antes
          
case "es" //es = español 
             
include("lenguaje/lang-esp.php"); //ahora cargamos el archivo que contiene las variables y sus palabras
             
break;
          case 
"en" //en = ingles 
             
include("lenguaje/lang-eng.php");
             break;
          default :
             include(
"lenguaje/lang-esp.php"); //cargamos un idioma por defecto si no se encontro algun idioma 
             
break;
       }
?>
Pero además quiero que si se hace click en una bandera también me cambie de idioma. y estoy utilizando esto:

Código PHP:
<?php
echo("<script>
function idioma(){
dir=window.location.href + '&sitelang=en';
alert (dir);
window.location.href=dir;


}
</script>"
); 

 
?>
y para ejecutarlo:

Código PHP:
<a href="" onClick="idioma()">
              <
img src........ 
La página se recarga bien pero no cambia de idioma, alguien me puede echar una mano?

Saludos
__________________
Bicis nuevas y de segunda mano: Bicibid
  #2 (permalink)  
Antiguo 02/12/2007, 13:25
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Re: cambiar idioma de página

Hola ZeroZ

Prueba cambiando esta línea:

Código:
dir=window.location.href + '?sitelang=en';
Saludos,
  #3 (permalink)  
Antiguo 03/12/2007, 10:29
 
Fecha de Ingreso: junio-2002
Ubicación: España
Mensajes: 348
Antigüedad: 21 años, 10 meses
Puntos: 8
Re: cambiar idioma de página

dir ya tiene algo asi: ?option=com_content&view=frontpage
y quiero que sea: ?option=com_content&view=frontpage&sitelang=en'
eso lo hace bien, pero luego no me coge la variable sitelang como 'en' sino como 'es'
no se si es porque se aplasta el valor cuando hago getenv("HTTP_ACCEPT_LANGUAGE");
no se os ocurre nada?
__________________
Bicis nuevas y de segunda mano: Bicibid
  #4 (permalink)  
Antiguo 03/12/2007, 11:47
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: cambiar idioma de página

Prueba cambiando tu función por esta:
Código PHP:
$sitelang $_SERVER["HTTP_ACCEPT_LANGUAGE"]; 
Saludos.
  #5 (permalink)  
Antiguo 03/12/2007, 15:53
 
Fecha de Ingreso: junio-2002
Ubicación: España
Mensajes: 348
Antigüedad: 21 años, 10 meses
Puntos: 8
Re: cambiar idioma de página

Ok gracias, ese problema lo he arreglado con
Código PHP:
$sitelang=$_GET[sitelang];
if(empty(
$sitelang)){
  
$sitelanggetenv("HTTP_ACCEPT_LANGUAGE"); 

supongo que no recogia el idioma en ningun lado, pero ahora sale otro problema, al hacer click en el link que ahora es:

<img src="1.jpg" onclick="document.location='<?=$_SERVER['PHP_SELF'] ."?".$_SERVER["QUERY_STRING"]."&idioma=es"?>'" />

me coge bien el idioma pero me concatena pagina.php?idioma=es&idioma=es&idioma=es cada vez que le doy a la imagen, como puedo hacer para que solo se concatene &idioma=es una vez?
__________________
Bicis nuevas y de segunda mano: Bicibid
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 16:01.