summaryrefslogtreecommitdiff
path: root/ext/js/language/translator.js
diff options
context:
space:
mode:
authortoasted-nutbread <toasted-nutbread@users.noreply.github.com>2021-05-14 19:26:27 -0400
committerGitHub <noreply@github.com>2021-05-14 19:26:27 -0400
commitde6db32aa69be6c33d17ddb4f2dc4305e8771f59 (patch)
tree86d806d9fb92f56fb112fcfcf689c4ae90112623 /ext/js/language/translator.js
parentff9dafc6f7464ebf26bd44f6f52f1bb699f3e873 (diff)
Improve source term exact match count (#1674)
* Update sourceTermExactMatchCount to be based on headword count * Update tests
Diffstat (limited to 'ext/js/language/translator.js')
-rw-r--r--ext/js/language/translator.js16
1 files changed, 13 insertions, 3 deletions
diff --git a/ext/js/language/translator.js b/ext/js/language/translator.js
index 21ea9daf..d416d405 100644
--- a/ext/js/language/translator.js
+++ b/ext/js/language/translator.js
@@ -1007,7 +1007,6 @@ class Translator {
let dictionaryIndex = Number.MAX_SAFE_INTEGER;
let dictionaryPriority = Number.MIN_SAFE_INTEGER;
let maxTransformedTextLength = 0;
- let sourceTermExactMatchCount = 0;
let isPrimary = false;
const definitions = [];
const definitionsMap = checkDuplicateDefinitions ? new Map() : null;
@@ -1020,7 +1019,6 @@ class Translator {
if (dictionaryEntry.isPrimary) {
isPrimary = true;
maxTransformedTextLength = Math.max(maxTransformedTextLength, dictionaryEntry.maxTransformedTextLength);
- sourceTermExactMatchCount += dictionaryEntry.sourceTermExactMatchCount;
const dictionaryEntryInflections = dictionaryEntry.inflections;
if (inflections === null || dictionaryEntryInflections.length < inflections.length) {
inflections = dictionaryEntryInflections;
@@ -1033,6 +1031,18 @@ class Translator {
}
}
+ const headwordsArray = [...headwords.values()];
+
+ let sourceTermExactMatchCount = 0;
+ for (const {term, sources} of headwordsArray) {
+ for (const {deinflectedText, isPrimary: isPrimary2} of sources) {
+ if (isPrimary2 && deinflectedText === term) {
+ ++sourceTermExactMatchCount;
+ break;
+ }
+ }
+ }
+
return this._createTermDictionaryEntry(
-1,
isPrimary,
@@ -1042,7 +1052,7 @@ class Translator {
dictionaryPriority,
sourceTermExactMatchCount,
maxTransformedTextLength,
- [...headwords.values()],
+ headwordsArray,
definitions
);
}