76 lines
2.3 KiB
JavaScript
76 lines
2.3 KiB
JavaScript
import { Engine } from '../common/engine.js';
|
|
import { Variables } from '../common/variables.js';
|
|
import { Grammar } from '../rule_engine/grammar.js';
|
|
import { af } from './locales/locale_af.js';
|
|
import { ca } from './locales/locale_ca.js';
|
|
import { da } from './locales/locale_da.js';
|
|
import { de } from './locales/locale_de.js';
|
|
import { en } from './locales/locale_en.js';
|
|
import { es } from './locales/locale_es.js';
|
|
import { euro } from './locales/locale_euro.js';
|
|
import { fr } from './locales/locale_fr.js';
|
|
import { hi } from './locales/locale_hi.js';
|
|
import { ko } from './locales/locale_ko.js';
|
|
import { it } from './locales/locale_it.js';
|
|
import { nb } from './locales/locale_nb.js';
|
|
import { nemeth } from './locales/locale_nemeth.js';
|
|
import { nn } from './locales/locale_nn.js';
|
|
import { sv } from './locales/locale_sv.js';
|
|
import { LOCALE } from './locale.js';
|
|
export const locales = {
|
|
af: af,
|
|
ca: ca,
|
|
da: da,
|
|
de: de,
|
|
en: en,
|
|
es: es,
|
|
euro: euro,
|
|
fr: fr,
|
|
hi: hi,
|
|
it: it,
|
|
ko: ko,
|
|
nb: nb,
|
|
nn: nn,
|
|
sv: sv,
|
|
nemeth: nemeth
|
|
};
|
|
export function setLocale() {
|
|
const msgs = getLocale();
|
|
setSubiso(msgs);
|
|
if (msgs) {
|
|
for (const key of Object.getOwnPropertyNames(msgs)) {
|
|
LOCALE[key] = msgs[key];
|
|
}
|
|
for (const [key, func] of Object.entries(msgs.CORRECTIONS)) {
|
|
Grammar.getInstance().setCorrection(key, func);
|
|
}
|
|
}
|
|
}
|
|
function setSubiso(msg) {
|
|
const subiso = Engine.getInstance().subiso;
|
|
if (msg.SUBISO.all.indexOf(subiso) === -1) {
|
|
Engine.getInstance().subiso = msg.SUBISO.default;
|
|
}
|
|
msg.SUBISO.current = Engine.getInstance().subiso;
|
|
}
|
|
function getLocale() {
|
|
const locale = Variables.ensureLocale(Engine.getInstance().locale, Engine.getInstance().defaultLocale);
|
|
Engine.getInstance().locale = locale;
|
|
return locales[locale]();
|
|
}
|
|
export function completeLocale(json) {
|
|
const locale = locales[json.locale];
|
|
if (!locale) {
|
|
console.error('Locale ' + json.locale + ' does not exist!');
|
|
return;
|
|
}
|
|
const kind = json.kind.toUpperCase();
|
|
const messages = json.messages;
|
|
if (!messages)
|
|
return;
|
|
const loc = locale();
|
|
for (const [key, value] of Object.entries(messages)) {
|
|
loc[kind][key] = value;
|
|
}
|
|
}
|