У меня есть репо с компонентами и репо с основным приложением. Я реализовал i18next в репо с компонентами, и он отлично работает, когда у меня есть файл конфигурации i18n в этом репо (или когда я передаю его реквизитом из репозитория приложений). Но у меня проблема, когда я пытаюсь отправить из основного приложения только «ресурсную» часть и заменить ее в конфигурационном файле компонентов. Я попытался клонировать экземпляр i18n и установить ресурсы, но это не сработало. Это мой файл конфигурации: i18n.js
import i18n from 'i18next';
import LngDetector from 'i18next-browser-languagedetector';
import { reactI18nextModule } from 'react-i18next';
i18n
.use(LngDetector)
.use(reactI18nextModule)
.init({
detection: {
order: ['cookie', 'localStorage'],
lookupLocalStorage: 'i18n_lang',
lookupCookie: 'i18n_lang',
caches: ['localStorage'],
},
load: 'current',
fallbackLng: 'en',
ns: ['components'],
defaultNS: 'components',
keySeparator: false,
interpolation: {
escapeValue: false,
formatSeparator: ',',
},
react: {
wait: true,
},
});
export default i18n;
resources.js (вначале я пробовал использовать ключ ресурсов, но он все еще не работает):
import * as en from './en.json';
import * as de from './de.json';
export default {
en: {
components: en,
},
de: {
components: de,
},
};
Сейчас пробовал примерно так:
import * as langs from './resources';
const newI18 = i18n.cloneInstance({ resources: langs });
const i18ProviderDecorator = (storyFn) => (
<I18nextProvider i18n={newI18}>
{ storyFn() }
</I18nextProvider>
Когда я передаю i18n.js реквизитами с ресурсами, он работает отлично, но я хочу удалить i18next из основного приложения и оставить его только в компонентах. Привет