From b70c35c2af07816f602ada20d7332d479696061c Mon Sep 17 00:00:00 2001 From: Igor Dykhta Date: Mon, 12 Sep 2022 16:17:53 +0300 Subject: [PATCH] [Chore] refactor dynamic require (#1971) --- src/localization/src/messages.ts | 39 +++++++++++++++++++++----------- 1 file changed, 26 insertions(+), 13 deletions(-) diff --git a/src/localization/src/messages.ts b/src/localization/src/messages.ts index a47f731713..e86943379e 100644 --- a/src/localization/src/messages.ts +++ b/src/localization/src/messages.ts @@ -19,11 +19,22 @@ // THE SOFTWARE. import en from './translations/en'; -import {LOCALE_CODES} from './locales'; +import fi from './translations/fi'; +import pt from './translations/pt'; +import es from './translations/es'; +import ca from './translations/ca'; +import cn from './translations/cn'; +import ja from './translations/ja'; +import ru from './translations/ru'; // Flat messages since react-intl does not seem to support nested structures // Adapted from https://medium.com/siren-apparel-press/internationalization-and-localization-of-sirenapparel-eu-sirenapparel-us-and-sirenapparel-asia-ddee266066a2 -export const flattenMessages = (nestedMessages, prefix = '') => { +export const flattenMessages = ( + nestedMessages, + prefix = '' +): { + [key: string]: string; +} => { return Object.keys(nestedMessages).reduce((messages, key) => { const value = nestedMessages[key]; const prefixedKey = prefix ? `${prefix}.${key}` : key; @@ -39,16 +50,18 @@ export const flattenMessages = (nestedMessages, prefix = '') => { const enFlat = flattenMessages(en); export const messages: { - [key: string]: string; -} = Object.keys(LOCALE_CODES).reduce( - (acc, key) => ({ - ...acc, - [key]: - key === 'en' - ? enFlat - : {...enFlat, ...flattenMessages(require(`./translations/${key}`).default)} - }), - {} -); + [key: string]: { + [key: string]: string; + }; +} = {}; + +messages['en'] = enFlat; +messages['fi'] = {...enFlat, ...flattenMessages(fi)}; +messages['pt'] = {...enFlat, ...flattenMessages(pt)}; +messages['es'] = {...enFlat, ...flattenMessages(es)}; +messages['ca'] = {...enFlat, ...flattenMessages(ca)}; +messages['cn'] = {...enFlat, ...flattenMessages(cn)}; +messages['ja'] = {...enFlat, ...flattenMessages(ja)}; +messages['ru'] = {...enFlat, ...flattenMessages(ru)}; export default messages;