diff options
Diffstat (limited to 'front/odiparpack/app/i18n.js')
| -rw-r--r-- | front/odiparpack/app/i18n.js | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/front/odiparpack/app/i18n.js b/front/odiparpack/app/i18n.js new file mode 100644 index 0000000..cac434f --- /dev/null +++ b/front/odiparpack/app/i18n.js @@ -0,0 +1,46 @@ +/** + * i18n.js + * + * This will setup the i18n language files and locale data for your app. + * + * IMPORTANT: This file is used by the internal build + * script `extract-intl`, and must use CommonJS module syntax + * You CANNOT use import/export in this file. + */ +const addLocaleData = require('react-intl').addLocaleData; //eslint-disable-line +const enLocaleData = require('react-intl/locale-data/en'); + +const enTranslationMessages = require('./translations/en.json'); + +addLocaleData(enLocaleData); + +const DEFAULT_LOCALE = 'en'; + +// prettier-ignore +const appLocales = [ + 'en', +]; + +const formatTranslationMessages = (locale, messages) => { + const defaultFormattedMessages = + locale !== DEFAULT_LOCALE + ? formatTranslationMessages(DEFAULT_LOCALE, enTranslationMessages) + : {}; + const flattenFormattedMessages = (formattedMessages, key) => { + const formattedMessage = + !messages[key] && locale !== DEFAULT_LOCALE + ? defaultFormattedMessages[key] + : messages[key]; + return Object.assign(formattedMessages, { [key]: formattedMessage }); + }; + return Object.keys(messages).reduce(flattenFormattedMessages, {}); +}; + +const translationMessages = { + en: formatTranslationMessages('en', enTranslationMessages), +}; + +exports.appLocales = appLocales; +exports.formatTranslationMessages = formatTranslationMessages; +exports.translationMessages = translationMessages; +exports.DEFAULT_LOCALE = DEFAULT_LOCALE; |
