Не следует ли i18next ждать результата определения языка перед загрузкой резервного языка
Я использую React-i18следующий пример в качестве базы. Я заменил 'i18next-browser-languagedetector' на собственный детектор языка:
class MyLanguageDetector {
constructor(services, options = {}) {
this.async = true;
this.init(services, options);
}
init(services, options = {}, i18nOptions = {}) { }
detect(callback) {
setTimeout(() => {
callback('de')
}, 5000);
}
cacheUserLanguage(lng, caches) { }
}
MyLanguageDetector.type = 'languageDetector';
Config:
i18n
.use(MyLanguageDetector)
.use(Backend)
.use(reactI18nextModule)
.init({
fallbackLng: 'en',
debug: true,
interpolation: { escapeValue: false },
react: { wait: true }
});
Что я вижу это:
i18next::backendConnector: loaded namespace translation for language en
и через ~5 секунд:
i18next::backendConnector: loaded namespace translation for language de
Я ожидал, что en не будет загружен, так как обнаруженный язык - de
1 ответ
Решение
fallbackLng
всегда загружается, чтобы его можно было использовать, если в текущем файле перевода языка отсутствует конкретный ключ / ресурс
Смотрите связанную проблему