Refactor languages loader

This commit is contained in:
Aya Morisawa 2018-09-01 16:05:10 +09:00
parent 8ee771ca77
commit 21da6bd047
No known key found for this signature in database
GPG key ID: 3E64865D70D579F2

View file

@ -5,24 +5,13 @@
const fs = require('fs'); const fs = require('fs');
const yaml = require('js-yaml'); const yaml = require('js-yaml');
const loadLang = lang => yaml.safeLoad( const langs = ['de-DE', 'en-US', 'fr-FR', 'ja-JP', 'ja-KS', 'pl-PL', 'es-ES'];
fs.readFileSync(`${__dirname}/${lang}.yml`, 'utf-8')); 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 = { module.exports = locales.reduce((a, b) => ({ ...a, ...b }));
'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;