aboutsummaryrefslogtreecommitdiff
path: root/ext/js/language
diff options
context:
space:
mode:
Diffstat (limited to 'ext/js/language')
-rw-r--r--ext/js/language/translator.js28
1 files changed, 10 insertions, 18 deletions
diff --git a/ext/js/language/translator.js b/ext/js/language/translator.js
index dd7d54a0..31a3b7ed 100644
--- a/ext/js/language/translator.js
+++ b/ext/js/language/translator.js
@@ -234,12 +234,7 @@ class Translator {
return {dictionaryEntries: [], originalTextLength: 0};
}
- const {matchType} = options;
- const deinflections = await (
- matchType && matchType !== 'exact' ?
- this._findTermsWildcard(text, enabledDictionaryMap, matchType) :
- this._findTermDeinflections(text, enabledDictionaryMap, options)
- );
+ const deinflections = await this._findTermsInternal2(text, enabledDictionaryMap, options);
let originalTextLength = 0;
const dictionaryEntries = [];
@@ -259,17 +254,13 @@ class Translator {
return {dictionaryEntries, originalTextLength};
}
- async _findTermsWildcard(text, enabledDictionaryMap, matchType) {
- const databaseEntries = await this._database.findTermsBulk([text], enabledDictionaryMap, matchType);
- return databaseEntries.length > 0 ? [this._createDeinflection(text, text, text, 0, [], databaseEntries)] : [];
- }
-
- async _findTermDeinflections(text, enabledDictionaryMap, options) {
- const deinflections = this._getAllDeinflections(text, options);
-
- if (deinflections.length === 0) {
- return [];
- }
+ async _findTermsInternal2(text, enabledDictionaryMap, options) {
+ const deinflections = (
+ options.deinflect ?
+ this._getAllDeinflections(text, options) :
+ [this._createDeinflection(text, text, text, 0, [], [])]
+ );
+ if (deinflections.length === 0) { return []; }
const uniqueDeinflectionTerms = [];
const uniqueDeinflectionArrays = [];
@@ -286,7 +277,8 @@ class Translator {
deinflectionArray.push(deinflection);
}
- const databaseEntries = await this._database.findTermsBulk(uniqueDeinflectionTerms, enabledDictionaryMap, null);
+ const {matchType} = options;
+ const databaseEntries = await this._database.findTermsBulk(uniqueDeinflectionTerms, enabledDictionaryMap, matchType);
for (const databaseEntry of databaseEntries) {
const definitionRules = Deinflector.rulesToRuleFlags(databaseEntry.rules);