我正在使用i18next jquery版本来本地化我的framework7代码中的文本。如果我单击按钮更改语言(使用localstorage保存语言选项),它适用于每个文件。但是,如果我在视图中加载另一个文件,例如关于页面,则它不起作用。
我是javascript的新手,我使用教程和其他帮助完成了这项工作。
如何将翻译应用到视图中加载的每个页面,而无需按下按钮来更改它?
这是我的带翻译的i18next函数(language.js):
var itemslang = {
"en": {
"translation": {
/* MENU */
"About-Framework7": "About-Framework7",
"Welcome-to-Framework7": "Welcome-to-Framework7",
}
},
"br": {
"translation": {
/* MENU */
"About-Framework7": "Sobre o Framework7",
"Welcome-to-Framework7": "Bem Vindo ao Framework7",
}
}
};
$(document).ready(function() {
var language = "en";
if (localStorage.getItem("language") != null)
language = localStorage.getItem("language");
i18n.init({
lng: language,
resStore: itemslang,
fallbackLng: "en"
}, function(o) {
$(document).i18n()
}), $(".lang").click(function() {
var o = $(this).attr("data-lang");
localStorage.setItem("language", o);
i18n.init({
lng: o
}, function(o) {
$(document).i18n()
})
})
});
这里有改变语言的按钮:
<button class="lang en" data-lang="en">EN</button>
<button class="lang br" data-lang="br">BR</button>
答案 0 :(得分:0)
找到了答案!
我忘了在index.html中加载文件my-app.js
其中包含翻译工作的代码:
$$(document).on('pageInit', function (e) {
$(document).i18n();
});
这将在每个加载的视图中应用翻译。