Я использую 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, когда возникнет ошибка.