i18next 显示键而不是值,TVOs,js
i18next Displayed key instead of value, TVOs, js
我遇到了和这个类似的问题,但是我做了所有他们写的,但仍然有问题 i18next Displayed key instead of value
我在 /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()
的回调未被使用,但是 that 是您确定它实际上 is 初始化的地方。您的代码应如下所示
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
}
});
}
我遇到了和这个类似的问题,但是我做了所有他们写的,但仍然有问题 i18next Displayed key instead of value
我在 /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()
的回调未被使用,但是 that 是您确定它实际上 is 初始化的地方。您的代码应如下所示
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
}
});
}