代码之家  ›  专栏  ›  技术社区  ›  xtp

react-i18next无法解析密钥

  •  0
  • xtp  · 技术社区  · 7 年前

    我遇到了react-i18next无法解析密钥的问题,因此作为输出的所有内容都是密钥本身。

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

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

    我的i18n。配置如下所示:

    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;
                }
            }
        });
    

    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)
    

    在我以前的项目中,在解决方案中,网页包输出是与src处于同一级别的“/dist/”/out/prgFiles/html’。

    管理用户,json现在根本不包含键。json包含的键与您期望的一样:

    {
        "KEY_CONSTANT": "Actual string value"
    }
    

    如前所述,我尝试了一些路径更改,检查了翻译,发现了i18next和i18next提供者,一切都很好。它只是无法将KEY_常数解析为实际值。

    你知道问题出在哪里吗?

    1 回复  |  直到 7 年前
        1
  •  1
  •   jamuhl    7 年前

    在i18next init中将debug option设置为true->我敢打赌,您会收到一个错误,说明backendConnector未能加载命名空间用户。。。

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