summaryrefslogtreecommitdiffstats
path: root/front/odiparpack/app/i18n.js
diff options
context:
space:
mode:
Diffstat (limited to 'front/odiparpack/app/i18n.js')
-rw-r--r--front/odiparpack/app/i18n.js46
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;