Foros del Web » Programando para Internet » PHP »

web multilenguaje duda al cambiar

Estas en el tema de web multilenguaje duda al cambiar en el foro de PHP en Foros del Web. Hola, la verdad es q me esta ayudando mucho este foro para ir aprendiendo a darle al PHP, basico muy basico pero bueno con el ...
  #1 (permalink)  
Antiguo 11/11/2011, 05:49
 
Fecha de Ingreso: mayo-2011
Ubicación: Santiago de Compostela
Mensajes: 126
Antigüedad: 12 años, 11 meses
Puntos: 0
web multilenguaje duda al cambiar

Hola,
la verdad es q me esta ayudando mucho este foro para ir aprendiendo a darle al PHP, basico muy basico pero bueno con el tiempo xD.
Tengo una duda respecto a web multilenguaje, me funciona perfectamente, aunque querria saber si habria forma de evitar la recarga/inicio de la pagina, me explico.
hice un web con varias paginas, uso ajax para cambiar de paginas, pero cuando selecciono un idioma distinto, me recarga el index de la pagina y no me hace el cambio de idioma en la pagina en la que estoy. estoy registrando la sesion con el idioma con lo q ¿no me deberia permitir cambiar solo el idioma sin cambiar la pagina? el script php q uso es el siguiente:
Código PHP:
session_start();
header('Cache-control: private'); // IE 6 FIX
if(isSet($_GET['lang']))
{
$lang $_GET['lang'];
// register the session and set the cookie
$_SESSION['lang'] = $lang;
setcookie("lang"$langtime() + (3600 24 30));
}
else if(isSet(
$_SESSION['lang']))
{
$lang $_SESSION['lang'];
}
else if(isSet(
$_COOKIE['lang']))
{
$lang $_COOKIE['lang'];
}
else
{
$lang 'en';
}
switch (
$lang) {
  case 
'en':
  
$lang_file 'lang.en.php';
  break;
  case 
'es':
  
$lang_file 'lang.es.php';
  break;
  case 
'pt':
  
$lang_file 'lang.pt.php';
  break;
  default:
  
$lang_file 'lang.en.php';
}
include_once 
'languages/'.$lang_file;
?> 
obviemos lo de los ficheros de lenguaje y pasemos directamente a la llamada de la pagina de lenguaje, la hago del modo:
Código HTML:
<div id="language">
	<div class="en"><a href="index.php?lang=en"><img src="images/en.gif" /></a></div>
	<div class="es"><a href="index.php?lang=es"><img src="images/es.gif" /></a></div>
	<div class="pt"><a href="index.php?lang=pt"><img src="images/pt.gif" /></a></div>
</div> 
esta mal la llamada a las paginas? de este modo me cambia el idioma pero, ya os digo, me recarga el index independientemente de la pagina en q este. ¿?
  #2 (permalink)  
Antiguo 11/11/2011, 08:06
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 2 meses
Puntos: 288
Respuesta: web multilenguaje duda al cambiar

mostranos como armas un link a otra seccion de tu pagina

x ej index.php?section=productos&lang=es
  #3 (permalink)  
Antiguo 14/11/2011, 04:12
 
Fecha de Ingreso: mayo-2011
Ubicación: Santiago de Compostela
Mensajes: 126
Antigüedad: 12 años, 11 meses
Puntos: 0
Respuesta: web multilenguaje duda al cambiar

ese es el problema, estoy haciendo link al index de cada idioma en el div que puse al principio, cada llamada que hago a cada una de las paginas es mediante un onclick -funcion js-
<a href="#" onclick="cargarContenido('contenidos/visor_entrada.php')">
Código:
function cargarContenido(pagina){
    var ajaxPag = new sack();
    ajaxPag.requestFile = pagina;
    ajaxPag.method = "GET";
    ajaxPag.runResponse = whenResponsePag;
    ajaxPag.execute = true;
    ajaxPag.runAJAX();
}
 
function whenResponsePag(){
    var mydiv = document.getElementById("destino");
    mydiv.innerHTML = this.response;
  #4 (permalink)  
Antiguo 14/11/2011, 07:24
 
Fecha de Ingreso: mayo-2011
Ubicación: Santiago de Compostela
Mensajes: 126
Antigüedad: 12 años, 11 meses
Puntos: 0
Respuesta: web multilenguaje duda al cambiar

me olvidaba de
Código PHP:
session_start();
header('Cache-control: private'); // IE 6 FIX
if(isSet($_GET['lang']))
{
$lang $_GET['lang'];
// register the session and set the cookie
$_SESSION['lang'] = $lang;
setcookie("lang"$langtime() + (3600 24 30));
}
else if(isSet(
$_SESSION['lang']))
{
$lang $_SESSION['lang'];
}
else if(isSet(
$_COOKIE['lang']))
{
$lang $_COOKIE['lang'];
}
else
{
$lang 'en';
}
switch (
$lang) {
  case 
'en':
  
$lang_file 'lang.en.php';
  break;
  case 
'es':
  
$lang_file 'lang.es.php';
  break;
  case 
'pt':
  
$lang_file 'lang.pt.php';
  break;
  default:
  
$lang_file 'lang.en.php';
}
include_once 
'languages/'.$lang_file

Etiquetas: multilenguaje
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 15:55.