react-i18next无法解析密钥

时间:2017-10-23 12:20:05

标签: internationalization i18next react-i18next

我遇到了react-i18next无法解析我的密钥的问题,所以我得到的所有内容都是他们自己的密钥。

我不得不将我的项目作为gui项目嵌入到VisualStudio解决方案中。运行我的原始项目工作得很好,相反,解决方案项目无法解决我的翻译函数调用的关键部分。

t('user:KEY_CONSTANT') //output: KEY_CONSTANT

我的i18n.config看起来像这样:

i18n
    .use(XHR)
    .init({
        lng: i18nHelper.languageDetector(),
        load: 'currentOnly',
        fallbackLng: 'en-US',
        backend: {
            loadPath: 'i18n/{{lng}}/{{ns}}.json'
        },

        ns: ['admin', 'user'],
        defaultNS: 'admin',
        debug: false,

        interpolation: {
            escapeValue: false,
            formatSeparator: ',',
            format: function (vale, format, lng) {
                if (format === 'uppercase') return value.toUpperCase();
                return value;
            }
        }
    });

在解决方案中嵌入项目时,我不得不更改webpacks输出文件夹,我认为这是发生故障的实际原因,但我无法找到问题发生的确切位置。我尝试更改loadPath,但如果这是失败的根源,我只是没有以正确的方式尝试:S

我的项目树看起来像:

Solution
|-gui
|  |-src
|    |-i18n
|      |-de-DE(containing the german admin.json and user.json files)
|      |-en-US(containing the english admin.json and user.json files) 
|    |-utils
|      |-i18n.js
|-out
|  |-prgFiles
|    |-html
|      |-i18n(contains same items as i18n under src)

在我的旧项目中,webpack输出是' / dist /'与src在同一级别,在解决方案中,' ../ out / prgFiles / html'。

admin.json现在根本不包含任何键,user.json包含与您一样的键:

{
    "KEY_CONSTANT": "Actual string value"
}

如上所述,我尝试了一些路径更改,检查翻译,i18next和i18next-Provider beeing发现并且一切都很好。它只是无法将KEY_CONSTANT解析为实际值。

你知道问题可能是什么吗?

1 个答案:

答案 0 :(得分:1)

在i18next init中将debug选项设置为true - >我打赌你会得到一个错误,说明backendConnector无法加载命名空间用户......

确保客户端能够加载翻译(webpack-dev服务器在这方面做得很好 - 但在生产中你需要自己提供这些文件)