从服务器上加载i18next翻译文件

时间:2019-12-18 21:56:16

标签: reactjs axios i18next react-i18next

是否可以从网站后端获取翻译,而不是将其存储在.json文件中的客户端上?

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

        keySeparator: false,

        partialBundledLanguages: true,

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

        resources: {
            en: {
                translations: loadEn().then(response => {
                    response = JSON.stringify(response);
                    return response
                })
            },
            ru: {
                translations: loadRu().then(response => {
                    response = JSON.stringify(response);
                    return response;
                })
            },
            es: {
                translations: loadEn().then(response => {
                    response = JSON.stringify(response);
                    return response;
                })
            }
        },

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

        react: {
            useSuspense: false
        }
});

这是我到目前为止尝试过的,但是,似乎没有用。

说明:

loadEn,loadRu,loadEs 返回带有服务器响应的promise。在对响应进行字符串化之后,它变成通常的“键”:“值”格式,通常用于i18next转换。再次,这显然还不够。

我也在使用axios来处理服务器请求。

0 个答案:

没有答案