Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/01/2012, 18:04
starlightphp
Invitado
 
Mensajes: n/a
Puntos:
Problema con Javascript y PHP

Buenas tardes, estoy intentando hacer que mi página esté traducida a 4 idiomas. Tengo en mi fichero principal los iconos con las banderitas. Aquí los muestro:


Código HTML:
Ver original
  1. <div id="Login_Languajes">
  2.             <img id="Languaje1" type="submit" src="/css/Images/england_flag.gif" width=30px; height=20px;>
  3.             <img id="Languaje2" type="submit" src="/css/Images/spanish_flag.gif" width=30px; height=20px;>
  4.             <img id="Languaje3" type="submit" src="/css/Images/french_flag.gif" width=30px; height=20px;>
  5.             <img id="Languaje4" type="submit" src="/css/Images/german_flag.gif" width=30px; height=20px;>
  6. </div>

Hasta aquí todo genial. Ahora lo que hago es que con Jquery, cuando clickeo en la banderita, me cambie el valor de la variable localStorage['languaje'] al número correspondiente a cada idioma

Código Javascript:
Ver original
  1. $(document).ready(function(){
  2.             $("#Languaje1").click(function(){
  3.                 localStorage['Languaje']=1;
  4.                 window.location.href = sURL;
  5.             });
  6.             $("#Languaje2").click(function(){
  7.                 localStorage['Languaje']=2;
  8.                 window.location.href = sURL;
  9.             });
  10.             $("#Languaje3").click(function(){
  11.                 localStorage['Languaje']=3;
  12.                 window.location.href = sURL;
  13.             });
  14.             $("#Languaje4").click(function(){
  15.                 localStorage['Languaje']=4;
  16.                 window.location.href = sURL;
  17.             });
  18. });

El problema viene ahora. Cuando hago un reload de la página, según la bandera que haya pinchado, mi valor de esa variable cambia, luego como tengo 4 archivos de idiomas con constantes, pues lo que intento es cargar esos archivos, el problema es que siempre me carga el mismo, el primero, el localStorage['languaje']=1.

Código Javascript:
Ver original
  1. if (localStorage['Languaje'] == undefined){ //checking languaje file (1-English, 2-Spanish, 3-French, 4-German
  2.             localStorage['Languaje']=1;
  3.         }else{
  4.             console.log(localStorage['Languaje']);
  5.             if (localStorage['Languaje']==1){
  6.                 <?php require_once('/framework/classes/LanguajeSpanish.php'); ?>
  7.             }else if (localStorage['Languaje']==2){
  8.                 <?php require_once('/framework/classes/LanguajeEnglish.php'); ?>
  9.             }else if (localStorage['Languaje']==3){
  10.                 <?php require_once('/framework/classes/LanguajeFrench.php'); ?>
  11.             }else if (localStorage['Languaje']==4){
  12.                 <?php require_once('/framework/classes/LanguajeGerman.php'); ?>
  13.             }
  14.         }

El porqué? pues porque debe ser que carga el primer require_once. He probado a cambiar el orden, por ejemplo

Código Javascript:
Ver original
  1. if (localStorage['Languaje']==1){
  2. <?php require_once('/framework/classes/LanguajeEnglish.php'); ?>
  3.             }else if (localStorage['Languaje']==2){
  4. <?php require_once('/framework/classes/LanguajeSpanish.php'); ?>

y que pasa? siempre se carga el de inglés en vez de como antes el de español.
Alguna idea para evitar que se cuele dentro del if si la variable no tiene ese valor?