我正在使用i18next-http-backend获取翻译。
翻译文件:
en.json
pt.json
pt-BR.json这是我的配置:
.init({
fallbackLng: 'en',
supportedLngs: ['en', 'pt', 'pt-BR'],
nonExplicitSupportedLngs: true,
backend: {
backends: [
LocalStorageBackend, // primary
HttpBackend, // fallback
],
backendOptions: [
{
prefix: 'i18next_res_',
defaultVersion: version,
},
{
loadPath: '${some-path}/{{ns}}/{{lng}}.json',
addPath: '${some-path}/{{ns}}/{{lng}}',
queryStringParams: { v: version },
},
],
},
})如果浏览器语言是英语(美国) en-US,我会得到404 Not Found错误,然后加载en。
当我将load: 'languageOnly'添加到配置中时,没有404,但在这种情况下,无法加载pt-BR语言。而是加载pt。
我查看了文档,但没有找到修复此行为的选项。
发布于 2021-11-09 12:19:18
"i18next“库开发者的评论:
“因此,如果没有en-US,但有en,并且您使用load:'all‘或no load选项,en资源将被加载。但在此之前,i18next尝试获取en-US,如果没有en-US资源,您将看到404...
如果您不想“看到”这404个请求,则需要在supportedLngs选项中列出所有语言,并且不要设置nonExplicitSupportedLngs: true
换句话说:如果你使用nonExplicitSupportedLngs: true,你不能阻止所有的404“
https://stackoverflow.com/questions/69860069
复制相似问题