У меня есть статический веб-сайт html5 и css3, который я хочу перевести. Основной язык - немецкий, и я хочу перевести его на английский и русский.
Я нашел плагин jQuery (translate.js), который делает именно то, что мне нужно, но у меня есть одна проблема с этим плагином.
Все отлично работает, когда использую например
HTML
<p class = "trn">Herzlich Willkommen</p>
jQuery:
$(function() {
var t = {
"Herzlich Willkommen": {
en: "Welcome",
ru: "Добро пожаловать"
}
};
var _t = $('body').translate({
lang: "de",
t: t
});
var str = _t.g("translate");
console.info(str);
$(".lang_selector").click(function(ev) {
var lang = $(this).attr("data-value");
_t.lang(lang);
console.info(lang);
ev.preventDefault();
});
});
но когда я хочу использовать вложенный класс trn внутри родительского класса trn, к сожалению, я не могу его перевести.
Например:
<h2 class = "trn">Ihr <span class = "trn">Bauunternehmen</span> in <span class = "trn">Wien</span></h2>
Не могли бы вы мне помочь?
jQuery.translate.js
(function($) {
$.fn.translate = function(options) {
var that = this; //a reference to ourselves
var settings = {
css: "trn",
lang: "en"
/*,
t: {
"translate": {
pt: "tradução",
br: "tradução"
}
}
*/
};
settings = $.extend(settings, options || {});
if (settings.css.lastIndexOf(".", 0) !== 0) //doesn't start with '.'
settings.css = "." + settings.css;
var t = settings.t;
//public methods
this.lang = function(l) {
if (l) {
settings.lang = l;
this.translate(settings); //translate everything
}
return settings.lang;
};
this.get = function(index) {
var res = index;
try {
res = t[index][settings.lang];
} catch (err) {
//not found, return index
return index;
}
if (res)
return res;
else
return index;
};
this.g = this.get;
//main
this.find(settings.css).each(function(i) {
var $this = $(this);
var trn_key = $this.attr("data-trn-key");
if (!trn_key) {
trn_key = $this.html();
$this.attr("data-trn-key", trn_key); //store key for next time
}
$this.html(that.get(trn_key));
});
return this;
};
})(jQuery);Спасибо за ваше предложение



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Плагин вроде бы не поддерживает вложенные классы перевода ... И, честно говоря, это логично. Просто избегайте гнездования.