i18next从json文件加载翻译

时间:2018-09-27 13:58:12

标签: javascript jquery translation i18next

我在路径中有英文json转换文件:translation / en.json

我这样初始化i18next:

i18next
        .init({
            lng: navigator.language,
            fallbackLng : "en",
            backend: {
                loadPath: '/translation/{{lng}}.json',
            }
    });

运行后

i18next.t(KEY);

将打印“ KEY”而不是其在翻译文件中的值

当翻译在i18next对象的'resource'参数中时,它运行良好。如下所示:

i18next
            .init({
            lng: navigator.language,
            fallbackLng : "en",
            resources: {
                en: {
                    translation: {
                        "KEY": "keyValue"
                    }
                 }
            }
            });

我使用i18next框架

1 个答案:

答案 0 :(得分:0)

我使用了initImmediate:false,它将等待翻译被加载。

i18next
        .use(i18nextXHRBackend)
        .init({
            //debug:true,
            initImmediate: false, // set initImmediate false -> init method finished only when all resources/translation finish loading (async behaviour)
            lng: "en",
            fallbackLng : "en",
            backend:{
                loadPath: chrome.runtime.getURL('translation/{{lng}}.json')
            }
    });

我使用了chrome.runtime.getURL,因为我在chrome扩展程序中使用了i18next,翻译文件应加载到此文件夹“ translation”中