From 21da6bd0470e8055dacc0ed11f909f8ae138a79f Mon Sep 17 00:00:00 2001 From: Aya Morisawa Date: Sat, 1 Sep 2018 16:05:10 +0900 Subject: [PATCH 1/2] Refactor languages loader --- locales/index.js | 27 ++++++++------------------- 1 file changed, 8 insertions(+), 19 deletions(-) diff --git a/locales/index.js b/locales/index.js index b1bc78216..7072d5a69 100644 --- a/locales/index.js +++ b/locales/index.js @@ -5,24 +5,13 @@ const fs = require('fs'); const yaml = require('js-yaml'); -const loadLang = lang => yaml.safeLoad( - fs.readFileSync(`${__dirname}/${lang}.yml`, 'utf-8')); +const langs = ['de-DE', 'en-US', 'fr-FR', 'ja-JP', 'ja-KS', 'pl-PL', 'es-ES']; +const nativeLang = 'ja-JP'; -const native = loadLang('ja-JP'); +const loadLocale = lang => yaml.safeLoad(fs.readFileSync(`${__dirname}/${lang}.yml`, 'utf-8')); +const nativeLocale = loadLocale(nativeLang); +const fallbackToNativeLocale = locale => Object.assign({}, nativeLocale, locale); +const makeLocale = lang => lang == nativeLang ? nativeLocale : fallbackToNativeLocale(loadLocale(lang)); +const locales = langs.map(lang => ({ [lang]: makeLocale(lang) })); -const langs = { - 'de-DE': loadLang('de-DE'), - 'en-US': loadLang('en-US'), - 'fr-FR': loadLang('fr-FR'), - 'ja-JP': native, - 'ja-KS': loadLang('ja-KS'), - 'pl-PL': loadLang('pl-PL'), - 'es-ES': loadLang('es-ES') -}; - -Object.values(langs).forEach(locale => { - // Extend native language (Japanese) - locale = Object.assign({}, native, locale); -}); - -module.exports = langs; +module.exports = locales.reduce((a, b) => ({ ...a, ...b })); From 2c135fa2f6980ab9550c8c50d0615b28fff558ca Mon Sep 17 00:00:00 2001 From: Aya Morisawa Date: Sat, 1 Sep 2018 16:12:50 +0900 Subject: [PATCH 2/2] Not fallback to native locale --- locales/index.js | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/locales/index.js b/locales/index.js index 7072d5a69..1f28d3ff0 100644 --- a/locales/index.js +++ b/locales/index.js @@ -6,12 +6,8 @@ const fs = require('fs'); const yaml = require('js-yaml'); const langs = ['de-DE', 'en-US', 'fr-FR', 'ja-JP', 'ja-KS', 'pl-PL', 'es-ES']; -const nativeLang = 'ja-JP'; const loadLocale = lang => yaml.safeLoad(fs.readFileSync(`${__dirname}/${lang}.yml`, 'utf-8')); -const nativeLocale = loadLocale(nativeLang); -const fallbackToNativeLocale = locale => Object.assign({}, nativeLocale, locale); -const makeLocale = lang => lang == nativeLang ? nativeLocale : fallbackToNativeLocale(loadLocale(lang)); -const locales = langs.map(lang => ({ [lang]: makeLocale(lang) })); +const locales = langs.map(lang => ({ [lang]: loadLocale(lang) })); module.exports = locales.reduce((a, b) => ({ ...a, ...b }));