我正在研究i18next本地化库的可能性。
现在我有以下代码(完整的小提琴在这里):
HTML
<div data-i18n="title"></div>
<input placeholder="Hello" value="name">
<div class="holder"></div>
<button class="lang" data-lang="en">Eng</button>
<button class="lang" data-lang="ch">Chi</button>
JS
$(document).ready(function () {
i18n.init({
"lng": 'en',
"resStore": resources,
"fallbackLng" : 'en'
}, function (t) {
$(document).i18n();
});
$('.lang').click(function () {
var lang = $(this).attr('data-lang');
i18n.init({
lng: lang
}, function (t) {
$(document).i18n();
});
});
});
它翻译所有text
元素,但问题是我无法翻译custom attributes
。例如,div 内的文本已翻译,但我不明白如何翻译自定义属性,如placeholder
和value
。
另一个问题是我的翻译方式。每当单击按钮Chi
时Eng
,我都会初始化翻译(但我不确定这是正确的方法)。编辑我想我找到了解决这个问题的方法(我需要使用 setLng):i18n.setLng(lang, function(t) { ... })