From 0792954e345925b3e3b2ebb733367e138375978e Mon Sep 17 00:00:00 2001 From: StefanVukovic99 Date: Tue, 27 Feb 2024 13:16:21 +0100 Subject: make deinflections language-specific (#720) * abstract deinflections * undo redundant changes * remove cast * MultiLanguageTransformer * comments * comments --- ext/js/background/backend.js | 13 ++++++++++--- ext/js/background/offscreen-proxy.js | 6 +++--- ext/js/background/offscreen.js | 4 ++-- 3 files changed, 15 insertions(+), 8 deletions(-) (limited to 'ext/js/background') diff --git a/ext/js/background/backend.js b/ext/js/background/backend.js index 6340d021..dbcbdd62 100644 --- a/ext/js/background/backend.js +++ b/ext/js/background/backend.js @@ -274,9 +274,16 @@ export class Backend { log.error(e); } - /** @type {import('language-transformer').LanguageTransformDescriptor} */ - const descriptor = await fetchJson('/data/language/japanese-transforms.json'); - void this._translator.prepare(descriptor); + /** @type {import('language-transformer').LanguageTransformDescriptor[]} */ + const descriptors = []; + const languageSummaries = getLanguageSummaries(); + for (const {languageTransformsFile} of languageSummaries) { + if (!languageTransformsFile) { continue; } + /** @type {import('language-transformer').LanguageTransformDescriptor} */ + const descriptor = await fetchJson(languageTransformsFile); + descriptors.push(descriptor); + } + void this._translator.prepare(descriptors); await this._optionsUtil.prepare(); this._defaultAnkiFieldTemplates = (await fetchText('/data/templates/default-anki-field-templates.handlebars')).trim(); diff --git a/ext/js/background/offscreen-proxy.js b/ext/js/background/offscreen-proxy.js index c888fe29..102a9eed 100644 --- a/ext/js/background/offscreen-proxy.js +++ b/ext/js/background/offscreen-proxy.js @@ -184,10 +184,10 @@ export class TranslatorProxy { } /** - * @param {import('language-transformer').LanguageTransformDescriptor} descriptor + * @param {import('language-transformer').LanguageTransformDescriptor[]} descriptors */ - async prepare(descriptor) { - await this._offscreen.sendMessagePromise({action: 'translatorPrepareOffscreen', params: {descriptor}}); + async prepare(descriptors) { + await this._offscreen.sendMessagePromise({action: 'translatorPrepareOffscreen', params: {descriptors}}); } /** diff --git a/ext/js/background/offscreen.js b/ext/js/background/offscreen.js index 3b8b6a3e..e38d4ba3 100644 --- a/ext/js/background/offscreen.js +++ b/ext/js/background/offscreen.js @@ -111,8 +111,8 @@ export class Offscreen { } /** @type {import('offscreen').ApiHandler<'translatorPrepareOffscreen'>} */ - _prepareTranslatorHandler({descriptor}) { - this._translator.prepare(descriptor); + _prepareTranslatorHandler({descriptors}) { + this._translator.prepare(descriptors); } /** @type {import('offscreen').ApiHandler<'findKanjiOffscreen'>} */ -- cgit v1.2.3