2013-08-22 2 views
0

Я пытаюсь сделать простую интернационализацию путем замены строк текста и я разработал следующий код для него:интернационализация с JQuery

//INTERNACIONALIZACIÓN 
$(function(){ 
    arrayCadenas = $(".texts").text(); // make an array of strings to translate 

    var es_ES = ["Federación de reinserción1", "NOSOTROS", "QUIENES SOMOS", "QUE HACEMOS",  "PROYECTOS", "SGU-UPD SARTU II", "RED INCORPORA", "APRENDIZAJE", "CONTACTO"]; 
    var eu_EU = ["Federación de reinserción2", "GUK", "NORK GARA", "ZER EGIN", "PROIEKTUAK", "SGU-UPD SARTU II", "RED INCORPORA", "APRENDIZAJE", "KONTAKTUA"]; 
    var en_EN = ["Federación de reinserción3", "NOSOTROS", "QUIENES SOMOS", "QUE HACEMOS", "PROYECTOS", "SGU-UPD SARTU II", "RED INCORPORA", "APRENDIZAJE", "CONTACTO"]; 
    languages = [es_ES, eu_EU, en_EN]; 

    $(".lang").each(function(i, lis){ 
     $(this).on("click", function(e){ 
      e.stopPropagation; 
     select = languages[i]; 
     console.log(arrayCadenas); 
     console.log(languages[i]); 

     arrayCadenas.each(function(j, cadena){ 
      cadena.text(languages[i][j]); 
     }); 
     }); 
    }); 
}); 

Когда я нажимаю на флаге, в консоли я получил это:

[17: 53: 04.223] TypeError: arrayCadenas.each не является функцией @ file: ///var/www/TRABAJOS/SARTUWEB/%2806-08-2013%29%20sartutheme7/index.html: 253 [17: 53: 04.222] Федеральная резервная система НОСОТРОСКИЕНЫ SOMOSQUE HACEMOSPROYECTOSSGU-UPD SARTU IIRED INCORPORAAPRENDIZAJECONTACTO [17: 53: 04.222] ["Federaci \ xF3n de reinserci \ xF3 n3" , "NOSOTROS", "QUIENES SOMOS", "QUE HACEMOS", "PROYECTOS", "SGU-UPD сарту II", "RED INCORPORA", "APRENDIZAJE", "Contacto"]

Спасибо за вашу помощь

ответ

0
//... 
arrayCadenas = $(".texts"); 
//... 
console.log(arrayCadenas.text()); 
//... 

Вы читаете внутренний текст, который не имеет каждой функции. Прочитайте объекты вместо этого.

+0

ОК, я решил. –

+0

Я рад, что ваша проблема решена. Если бы мой ответ был полезен для вас, тогда, пожалуйста, примите его. –

0

Спасибо за ваш ответ Lajos Arpad. Я думал об этом и, наконец, решил. Во второй каждый, где он говорит:

arrayCadenas.each(function(j, cadena){ 
     cadena.text(languages[i][j]); 
    }); 

я заменить «Cadena» на «$ (это)», поэтому окончательный код выглядит следующим образом:

arrayCadenas.each(function(j, cadena){ 
     $(this).text(languages[i][j]); 
    }); 

В качестве последнего комментария, вы можете заменить «$ (this)» на «$ (cadena)», при этом оба из них ссылаются на текущий элемент. Еще раз спасибо.