From 952fdacb6a62ae8014f15278ae8010b87331e307 Mon Sep 17 00:00:00 2001 From: Maksim Eltyshev Date: Thu, 21 Apr 2022 04:42:02 +0500 Subject: [PATCH] feat: Fallback to English if translation is missing Closes #175 --- client/src/i18n.js | 9 +++++++-- client/src/locales/index.js | 4 +++- client/src/sagas/core/services/core.js | 2 +- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/client/src/i18n.js b/client/src/i18n.js index 7d52644c..a47977dc 100644 --- a/client/src/i18n.js +++ b/client/src/i18n.js @@ -58,7 +58,7 @@ i18n .use(initReactI18next) .init({ resources: embedLocales, - fallbackLng: false, + fallbackLng: 'en', supportedLngs: languages, load: 'languageOnly', interpolation: { @@ -79,7 +79,11 @@ i18n debug: process.env.NODE_ENV !== 'production', }); -i18n.loadCoreLocale = (language) => +i18n.loadCoreLocale = (language = i18n.resolvedLanguage) => { + if (language === 'en') { + return; + } + import(`./locales/${language}/core`).then((module) => { const locale = module.default; @@ -91,5 +95,6 @@ i18n.loadCoreLocale = (language) => } }); }); +}; export default i18n; diff --git a/client/src/locales/index.js b/client/src/locales/index.js index 4c60d602..484a94da 100644 --- a/client/src/locales/index.js +++ b/client/src/locales/index.js @@ -1,9 +1,11 @@ +import merge from 'lodash/merge'; import fromPairs from 'lodash/fromPairs'; import csLogin from './cs/login'; import daLogin from './da/login'; import deLogin from './de/login'; import enLogin from './en/login'; +import enCore from './en/core'; import esLogin from './es/login'; import frLogin from './fr/login'; import jaLogin from './ja/login'; @@ -16,7 +18,7 @@ const localePairs = [ ['cs', csLogin], ['da', daLogin], ['de', deLogin], - ['en', enLogin], + ['en', merge(enLogin, enCore)], ['es', esLogin], ['fr', frLogin], ['ja', jaLogin], diff --git a/client/src/sagas/core/services/core.js b/client/src/sagas/core/services/core.js index 2e603b23..563dfa41 100644 --- a/client/src/sagas/core/services/core.js +++ b/client/src/sagas/core/services/core.js @@ -25,7 +25,7 @@ export function* initializeCoreService() { notifications, } = yield call(fetchCoreRequest); // TODO: handle error - yield call(i18n.loadCoreLocale, i18n.resolvedLanguage); + yield call(i18n.loadCoreLocale); yield put( initializeCore(