Internationalization react-i18next无法解析密钥
我的react-i18next有一个问题,无法解析我的密钥,因此我得到的所有输出都是密钥本身 我不得不将我的项目作为gui项目嵌入到VisualStudio解决方案中。运行我的原始项目工作得很好,相反,解决方案项目无法解决我的translate函数调用的关键部分Internationalization react-i18next无法解析密钥,internationalization,i18next,react-i18next,Internationalization,I18next,React I18next,我的react-i18next有一个问题,无法解析我的密钥,因此我得到的所有输出都是密钥本身 我不得不将我的项目作为gui项目嵌入到VisualStudio解决方案中。运行我的原始项目工作得很好,相反,解决方案项目无法解决我的translate函数调用的关键部分 t('user:KEY_CONSTANT') //output: KEY_CONSTANT 我的i18n.config如下所示: i18n .use(XHR) .init({ lng: i18nHelp
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输出文件夹,我认为这是出现故障的实际原因,但我找不到问题发生的确切位置。我试着改变加载路径,但如果这是失败的原因,我只是没有用正确的方法: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/”,与解决方案“../out/prgFiles/html”中的src处于同一级别
admin.json现在根本不包含任何键,user.json包含的键与您预期的一样:
{
"KEY_CONSTANT": "Actual string value"
}
如前所述,我尝试了一些路径更改,检查了translate、i18next和i18next提供程序,一切都很好。它无法将KEY_常量解析为实际值
你知道问题可能是什么吗?在i18next init>中将debug option设置为true->我打赌你会得到一个错误,说明backendConnector无法加载命名空间用户
请确保客户端能够加载翻译,webpack dev server在这方面做得很好,但在生产中,您需要自己提供这些文件我尝试过这样做,但得到的错误是“i18next::translator:missingKey en US user”。我自己没有关于如何提供这些文件的ideo。有什么建议吗?远离.net端很长时间了…所以在那里帮不了你多少忙…所以没有计划如何在那里生成你的服务器-唯一的选择是我可以给你i18next的服务层-你可以在那里管理你的翻译并从那里加载它们。因此不需要自己的服务器。我必须围绕我的项目包装的解决方案已经生成,而且它似乎还提供了一种将字符串直接呈现到我的页面的方法。尽管我必须再次添加所有字符串,但这似乎是一条路要走。所以,即使这个答案不是我问题的完美解决方案,它对我帮助很大,所以我接受了这个答案。谢谢你的帮助!