如果 i18n 无法在后端指定加载路径,我该如何添加一个 translationFailSafe 对象?
how can I add a translationFailSafe object if i18n is unable to loadPath specified in backend?
我想在我的 i18n 实例中添加一个 failSafeLanguageMap
,以防找不到 backend.loadPath
。
我目前的初始化如下:
i18n
.use(I18NextBackend)
.use(initReactI18next)
.init({
lng: langs.selectedLanguage,
fallbackLng: 'en',
debug: process.env.NODE_ENV === 'development',
keySeparator: false,
interpolation: {
escapeValue: false,
},
react: {
useSuspense: false,
},
backend: {
loadPath: `some_path/locales/{{lng}}/{{ns}}.json`,
}
});
我想从一些 json 文件中加载 failSafeLanguageMap
,如下所示:
import failSafeLanguageMap from '/fail-safe.json';
并在找不到 backend.loadPath
的情况下将其用作故障保险图
所以有一个答案为我指明了正确的方向,但它似乎已经被删除了。所以基本上它需要使用chained backend。链后端初始化如下:
i18n
.use(I18NextBackend)
.use(initReactI18next)
.init({
lng: langs.selectedLanguage,
fallbackLng: 'en',
debug: process.env.NODE_ENV === 'development',
keySeparator: false,
interpolation: {
escapeValue: false,
},
react: {
useSuspense: false,
},
backend: {
backends: [
I18NextBackend,
resourcesToBackend((language, namespace, callback) => {
callback(null, failSafeLanguageMap);
})
],
backendOptions: [{
loadPath: `some_path/locales/{{lng}}/{{ns}}.json`,
}]
},
});
我想在我的 i18n 实例中添加一个 failSafeLanguageMap
,以防找不到 backend.loadPath
。
我目前的初始化如下:
i18n
.use(I18NextBackend)
.use(initReactI18next)
.init({
lng: langs.selectedLanguage,
fallbackLng: 'en',
debug: process.env.NODE_ENV === 'development',
keySeparator: false,
interpolation: {
escapeValue: false,
},
react: {
useSuspense: false,
},
backend: {
loadPath: `some_path/locales/{{lng}}/{{ns}}.json`,
}
});
我想从一些 json 文件中加载 failSafeLanguageMap
,如下所示:
import failSafeLanguageMap from '/fail-safe.json';
并在找不到 backend.loadPath
的情况下将其用作故障保险图
所以有一个答案为我指明了正确的方向,但它似乎已经被删除了。所以基本上它需要使用chained backend。链后端初始化如下:
i18n
.use(I18NextBackend)
.use(initReactI18next)
.init({
lng: langs.selectedLanguage,
fallbackLng: 'en',
debug: process.env.NODE_ENV === 'development',
keySeparator: false,
interpolation: {
escapeValue: false,
},
react: {
useSuspense: false,
},
backend: {
backends: [
I18NextBackend,
resourcesToBackend((language, namespace, callback) => {
callback(null, failSafeLanguageMap);
})
],
backendOptions: [{
loadPath: `some_path/locales/{{lng}}/{{ns}}.json`,
}]
},
});