我遇到了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_常数解析为实际值。
你知道问题出在哪里吗?