i18next显示键而不是值,TVO,js

时间:2016-11-23 10:48:41

标签: javascript tvos i18next

我和这个问题有类似的问题,但我做了他们所写的所有内容,但仍有错误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)而不是值(设置)你有什么提示,我缺少什么?

1 个答案:

答案 0 :(得分:0)

我相信您的问题可能是您初始化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
        }
    });

}