[英]i18next Displayed key instead of value, TVOs, js
我有與此類似的問題,但我做了他們寫的所有內容,但仍然出問題了i18next顯示的鍵而不是值
我在/ locales / en /中有translation.json文件
{
"Ustawienia" : "Settings",
"O aplikacji" : "About Application"
}
在application.js中
function launchApp(options) {
var javascriptFiles = [
`${options.BASEURL}js/i18next.min.js`,
`${options.BASEURL}js/i18next-xhr-backend.min.js`,
`${options.BASEURL}templates/MainTemplate.js`,
];
evaluateScripts(javascriptFiles, function(success) {
if(success) {
i18next.use(i18nextXHRBackend);
i18next.init({
lng: userLanguage,
debug: true,
fallbackLng: false,
keySeparator: false,
nsSeparator: false,
useLocalStorage: true ,
useDataAttrOptions:true,
//resGetPath : '/locales/{{lng}}/{{ns}}.json',
backend: {
loadPath: options.BASEURL + '/locales/{{lng}}/{{ns}}.json'
},
}, (err, t) => {
// initialized and ready to go!
});
var doc = new MainTemplate().getTemplate();
doc.addEventListener("select", handleMainNavigationClick);
mainDocument = doc;
navigationDocument.pushDocument(doc);
setTimeout(dismissModalView, 2000);
}
當我想在模板中使用i18next.t時
<title>${i18next.t("Ustawienia")}</title>
它顯示鍵(Ustawienia)而不是值(設置),您對我有什么提示嗎?
我相信您的問題可能是初始化mainDocument
的地方。 從回調i18next.init()
不使用,但是這是你在哪里,確保它實際上被初始化。 您的代碼應如下所示
if(success) {
i18next.use(i18nextXHRBackend);
i18next.init({
lng: userLanguage,
debug: true,
fallbackLng: false,
keySeparator: false,
nsSeparator: false,
useLocalStorage: true ,
useDataAttrOptions:true,
backend: {
loadPath: options.BASEURL + '/locales/{{lng}}/{{ns}}.json'
},
}, (err, t) => {
// initialized and ready to go!
// this is where initialisation-dependent code should go
// additionally check if there was an error initialising i18next
if (err === undefined) {
var doc = new MainTemplate().getTemplate();
doc.addEventListener("select", handleMainNavigationClick);
mainDocument = doc;
navigationDocument.pushDocument(doc);
setTimeout(dismissModalView, 2000);
} else {
// there was an error, handle it
}
});
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.