所以我基本上试图将我之前硬编码的一些单词翻译成Mustache.js模板。
模板:
... <button type="button" class="btn" data-id="{{id}}">Delete</button> ...
问题:
网站的其他各个方面都可以即时翻译成多种语言,但“删除”,“创建”,“编辑”等关键字已经在模板中进行了硬编码,并且从未进行过翻译。 / p>
问题:
你如何翻译这些单词,而不是硬编码?
我尝试过:
在我调用Mustache.render之前,我一直在模板上的javascript中使用字符串替换函数,如下所示:
// Simulate array of translations coming from server (in the current users locale)
this.i18n = new Array();
this.i18n['delete'] = '[en_GB] Delete';
this.i18n['create'] = '[en_GB] Create';
this.i18n['edit'] = '[en_GB] Update';
$.get(template, function (template, textStatus, jqXhr) {
var html = $(template).filter('#artist_collection').html();
// ...
html = html.replace('Delete', this.i18n['delete']); // <- There may be several of these depending on the page/template
// ...
var template = Mustache.render(html, data);
index.artist_container.append(template);
console.log(html);
});
这有效,但这是一个好方法吗?有更好的解决方案吗?