From e94446873429438b79a81542caf8f4f4f1882ce0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johan=20=C3=96brink?= Date: Mon, 26 Apr 2021 10:14:14 +0200 Subject: [PATCH] =?UTF-8?q?feat:=20=F0=9F=8E=B8=20Fallback=20language=20(#?= =?UTF-8?q?7)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit If language does not exist, it falls back top first language in list --- src/translations/index.ts | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/src/translations/index.ts b/src/translations/index.ts index feda1d0b1..76cdfd555 100644 --- a/src/translations/index.ts +++ b/src/translations/index.ts @@ -10,15 +10,20 @@ interface RawTranslation extends Translation { specialLanguages: Repo } -export type Language = 'sv' | 'en' +const languageList = ['sv', 'en'] +export type Language = typeof languageList[number] type Translations = Record -const translations: Translations = { - sv: require('./sv.json'), - en: require('./en.json'), -} +const translations: Translations = languageList.reduce( + (map, lang) => ({ + ...map, + [lang]: require(`./${lang}.json`), + }), + {} +) const translate = (lang: Language): Translation => { + const selectedLanguage = languageList.includes(lang) ? lang : languageList[0] const { subjects, traningsskolaSubjects, @@ -26,7 +31,7 @@ const translate = (lang: Language): Translation => { languages, categories, misc, - } = translations[lang] + } = translations[selectedLanguage] return { subjects,