Files
2025-07-16 16:30:56 +00:00

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;
}
}