1
0
mirror of https://github.com/hotomoe/hotomoe synced 2024-12-02 00:38:14 +09:00
hotomoe/locales/index.ts

35 lines
845 B
TypeScript
Raw Normal View History

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