2017-05-16 15:00:56 +00:00
|
|
|
/**
|
|
|
|
* Languages Loader
|
|
|
|
*/
|
|
|
|
|
|
|
|
import * as fs from 'fs';
|
|
|
|
import * as yaml from 'js-yaml';
|
|
|
|
|
2018-06-23 12:48:36 +00:00
|
|
|
export type LangKey = 'de' | 'en' | 'fr' | 'ja' | 'pl' | 'es';
|
2018-06-18 00:54:53 +00:00
|
|
|
export type LocaleObject = { [key: string]: any };
|
2018-06-17 10:09:24 +00:00
|
|
|
|
|
|
|
const loadLang = (lang: LangKey) => yaml.safeLoad(
|
|
|
|
fs.readFileSync(`./locales/${lang}.yml`, 'utf-8')) as LocaleObject;
|
2017-05-16 15:00:56 +00:00
|
|
|
|
|
|
|
const native = loadLang('ja');
|
|
|
|
|
2018-06-18 00:54:53 +00:00
|
|
|
const langs: { [key: string]: LocaleObject } = {
|
2018-05-17 06:41:07 +00:00
|
|
|
'de': loadLang('de'),
|
2018-04-14 20:57:30 +00:00
|
|
|
'en': loadLang('en'),
|
2018-04-15 20:59:21 +00:00
|
|
|
'fr': loadLang('fr'),
|
2018-05-03 22:28:07 +00:00
|
|
|
'ja': native,
|
2018-06-23 10:57:23 +00:00
|
|
|
'pl': loadLang('pl'),
|
|
|
|
'es': loadLang('es')
|
2017-12-16 19:02:30 +00:00
|
|
|
};
|
2017-05-16 15:00:56 +00:00
|
|
|
|
2017-12-16 19:02:30 +00:00
|
|
|
Object.entries(langs).map(([, locale]) => {
|
2017-05-16 15:00:56 +00:00
|
|
|
// Extend native language (Japanese)
|
|
|
|
locale = Object.assign({}, native, locale);
|
|
|
|
});
|
|
|
|
|
2018-06-17 10:09:24 +00:00
|
|
|
export function isAvailableLanguage(lang: string): lang is LangKey {
|
|
|
|
return lang in langs;
|
|
|
|
}
|
|
|
|
|
2017-05-16 15:00:56 +00:00
|
|
|
export default langs;
|