react-i18next 无法解析密钥
react-i18next cannot resolve key
我遇到 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 输出与 src 处于同一级别的 '/dist/',在解决方案中,'../out/prgFiles/html'.
admin.json 现在根本不包含密钥,user.json 包含您期望的密钥:
{
"KEY_CONSTANT": "Actual string value"
}
如前所述,我尝试了一些路径更改,检查了翻译,找到了 i18next 和 i18next-Provider,一切正常。它只是无法将 KEY_CONSTANT 解析为实际值。
您知道问题出在哪里吗?
在 i18next init 中将调试选项设置为 true -> 我打赌你会收到一条错误消息,指出类似 backendConnector 无法加载命名空间用户...
确保客户端能够加载翻译(webpack-dev 服务器在这方面做得很好——但在生产中你需要自己提供这些文件)
我遇到 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 输出与 src 处于同一级别的 '/dist/',在解决方案中,'../out/prgFiles/html'.
admin.json 现在根本不包含密钥,user.json 包含您期望的密钥:
{
"KEY_CONSTANT": "Actual string value"
}
如前所述,我尝试了一些路径更改,检查了翻译,找到了 i18next 和 i18next-Provider,一切正常。它只是无法将 KEY_CONSTANT 解析为实际值。
您知道问题出在哪里吗?
在 i18next init 中将调试选项设置为 true -> 我打赌你会收到一条错误消息,指出类似 backendConnector 无法加载命名空间用户...
确保客户端能够加载翻译(webpack-dev 服务器在这方面做得很好——但在生产中你需要自己提供这些文件)