按需加载翻译文件

时间:2019-12-11 20:16:43

标签: reactjs i18next

使用i18next进行翻译的标准方法通常是在加载Web应用程序后立即加载所有翻译文件。

i18n
    .use(XHR)
    .use(LanguageDetector)
    .init({
        fallbackLng: 'en',
        debug: false,

        keySeparator: false,

        interpolation: {
            escapeValue: false,
            formatSeparator: ','
        },

        resources: {
            en: {
                translations: en
            },
            ru: {
                translations: ru
            },
            es: {
                translations: es
            }
        },

        ns: ['translations'],
        defaultNS: 'translations',

        react: {
            wait: true
        }
});

我发现这种方法效率很低,并且想根据需要从服务器请求翻译文件(即,当客户端切换语言时)。不幸的是,我在官方文档中没有找到任何引用,但是肯定应该有一种方法可以实现。

我要实现的方案:

1)随同默认翻译文件(例如english.json)一起加载Web应用

2)如果用户切换了语言(例如西班牙语),则spanish.json正在从服务器加载,并且整个翻译都已调整。

1 个答案:

答案 0 :(得分:3)

API documentation中获取.init()方法的配置选项:

  

partialBundledLanguages —允许在初始化时设置一些资源,而其他资源则可以使用后端连接器加载

因此,将选项设置为true将实现您的目标。