如果 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`,
        }]
      },
    });