Stop a locize call from reaching the browser when a locize namespace throws an empty json response with x-cache: Error from cloud front in headers

I'm using a i18next-chained-backend to use multiple backend to use local translations by default and override with locize translations if a name space exists.

So my local translations file loads up and then the locize call goes to fetch a particular namespace, even though the particular namespace doesn't exist on locize, locize gives a 200 response code with a x-cache: Error from cloud front and not a 404 not found as a response.

Я пытаюсь остановить этот вызов locize, если пространство имен не существует. Я попытался добавить failLoadingOnEmptyJSON: true в свой бэкэнд, но это тоже не помогает моему делу.

Пожалуйста, дайте мне знать, есть ли способ, которым я могу остановить этот вызов locize в любом случае, используя заголовки x-cache в ответе или failLoadingOnEmptyJSON или любой другой способ также приветствуется. Вызов locize имеет динамическое пространство имен, и я использую его для переопределения моих локальных переводов, когда пространство имен существует в locize, и пытаюсь остановить вызов в случае, если пространство имен не существует в locize. Также дайте мне знать, если вы считаете, что это невозможно. Благодарю.

Это мой код, и я использую следующий импорт

i18next from 'i18next';
 Backend from 'i18next-chained-backend'; 
 Locize from 'i18next-locize-backend';
 HttpApi from 'i18next-http-backend';

i18next
    .use(Backend)
    .init({
      fallbackLng:
    {
      'default': ['en-US']
    },
      load: 'currentOnly',
      ns: ['translations', `domain-${window.location.hostname}`],
      defaultNS: `domain-${window.location.hostname}`,
      fallbackNS: [`domain-${window.location.hostname}`, 'translations'],
      order: ['localStorage', 'querystring', 'navigator'],
      lookupQuerystring: 'lng',
      allowMultiLoading: true,
      backend: {
        backends: [
          HttpApi,
          Locize
        ],
        backendOptions: [
          {
            loadPath: config.webPaths.assets + 'locales/{{lng}}/{{ns}}.json' // xhr load path for my own fallback
          },
          {
            failLoadingOnEmptyJSON: true,
            projectId: '',
            referenceLng: 'en-US',
          }
        ]
      },
      debug: true,
      detection: {
        caches: []
      },
      keySeparator: false, // we use content as keys

      interpolation: {
        formatSeparator: ','
      },

      react: {
        wait: true
      }
    }, (err, t) => {
      if (err) return console.log('Something went wrong while loading.', err);
    }) ```

0 ответов

Другие вопросы по тегам