簡體   English   中英

i18next顯示的鍵而不是值,TVO,js

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM