Откат i18next-xhr-backend для загрузки локальных ресурсов после сетевой ошибки в приложении реакции - PullRequest
0 голосов
/ 23 января 2020

Я использую i18n для перевода в своем приложении реагирования. Я хотел бы вызвать перевод с моего сервера, и если я не могу загрузить их из-за ошибки (500, 404 ..), мне нужно перенаправить вызов на мои локальные ресурсы с помощью переводы.

файл i18n.ts

import i18n from 'i18next';
import { initReactI18next } from 'react-i18next';
import LanguageDetector from 'i18next-browser-languagedetector';
import XHR from 'i18next-xhr-backend';
import axios from 'axios';

const languages = ['de', 'en'];
const translationsURL = 'http://server.resources.eu';
const translationsLocals = '/translations/{{lng}}.json';

const loadCurrent = (url: string, options: any, callback: any, data: any) => {
  axios
    .get(url)
    .then((res: any) => {
      callback(res.data, { status: res.status });
    });
};

i18n
  .use(XHR)
  .use(LanguageDetector)
  .use(initReactI18next)
  .init({
    backend: {
      loadPath: translationsURL,
      parse(data: any) {
        return data;
      },
      ajax: loadCurrent,
    },
    debug: false,
    whitelist: languages,
  });

export default i18n;

Как вы можете видеть, я хочу изменить translationsURL на translationsLocals, когда возникнет ошибка.

...