From fef568b89db1517481f76b0acfcd6796da693d20 Mon Sep 17 00:00:00 2001 From: marv Date: Mon, 18 Dec 2023 01:57:14 -0800 Subject: Fix Non JP Scanning Option for Kanji Dictionaries (#372) * Fix non JP scanning option for kanji dictionaries * Fix trailing comma * Add removeNonJapaneseCharacters to test inputs --- ext/js/background/backend.js | 5 ++++- ext/js/language/translator.js | 3 +++ test/data/translator-test-inputs.json | 3 ++- types/ext/translation.d.ts | 4 ++++ 4 files changed, 13 insertions(+), 2 deletions(-) diff --git a/ext/js/background/backend.js b/ext/js/background/backend.js index 749c81a6..20c7a189 100644 --- a/ext/js/background/backend.js +++ b/ext/js/background/backend.js @@ -2635,7 +2635,10 @@ export class Backend { */ _getTranslatorFindKanjiOptions(options) { const enabledDictionaryMap = this._getTranslatorEnabledDictionaryMap(options); - return {enabledDictionaryMap}; + return { + enabledDictionaryMap, + removeNonJapaneseCharacters: !options.scanning.alphanumeric + }; } /** diff --git a/ext/js/language/translator.js b/ext/js/language/translator.js index aa1b71dd..e33ea4d4 100644 --- a/ext/js/language/translator.js +++ b/ext/js/language/translator.js @@ -125,6 +125,9 @@ export class Translator { * @returns {Promise} An array of definitions. See the _createKanjiDefinition() function for structure details. */ async findKanji(text, options) { + if (options.removeNonJapaneseCharacters) { + text = this._getJapaneseOnlyText(text); + } const {enabledDictionaryMap} = options; const kanjiUnique = new Set(); for (const c of text) { diff --git a/test/data/translator-test-inputs.json b/test/data/translator-test-inputs.json index f6b5ea67..cf4b8f6a 100644 --- a/test/data/translator-test-inputs.json +++ b/test/data/translator-test-inputs.json @@ -9,7 +9,8 @@ "priority": 0 } ] - ] + ], + "removeNonJapaneseCharacters": false }, "default": { "matchType": "exact", diff --git a/types/ext/translation.d.ts b/types/ext/translation.d.ts index 3c41c9f3..3adfc673 100644 --- a/types/ext/translation.d.ts +++ b/types/ext/translation.d.ts @@ -29,6 +29,10 @@ export type FindKanjiOptions = { * The key is the dictionary name. */ enabledDictionaryMap: Map; + /** + * Whether or not non-Japanese characters should be searched. + */ + removeNonJapaneseCharacters: boolean; }; /** -- cgit v1.2.3