aboutsummaryrefslogtreecommitdiff
path: root/ext/js/background/backend.js
diff options
context:
space:
mode:
Diffstat (limited to 'ext/js/background/backend.js')
-rw-r--r--ext/js/background/backend.js25
1 files changed, 22 insertions, 3 deletions
diff --git a/ext/js/background/backend.js b/ext/js/background/backend.js
index f04006bc..484473c7 100644
--- a/ext/js/background/backend.js
+++ b/ext/js/background/backend.js
@@ -1872,10 +1872,29 @@ class Backend {
}
_getTranslatorEnabledDictionaryMap(options) {
+ const dictionaries = [];
+ const {dictionaries: optionsDictionaries} = options;
+ for (const title in optionsDictionaries) {
+ if (!Object.prototype.hasOwnProperty.call(optionsDictionaries, title)) { continue; }
+ const dictionary = optionsDictionaries[title];
+ if (!dictionary.enabled) { continue; }
+ dictionaries.push({
+ title,
+ index: dictionaries.length,
+ priority: dictionary.priority,
+ allowSecondarySearches: dictionary.allowSecondarySearches
+ });
+ }
+
+ dictionaries.sort((v1, v2) => {
+ const i = v2.priority - v1.priority;
+ return i !== 0 ? i : v1.index - v2.index;
+ });
+
const enabledDictionaryMap = new Map();
- for (const [title, {enabled, priority, allowSecondarySearches}] of Object.entries(options.dictionaries)) {
- if (!enabled) { continue; }
- enabledDictionaryMap.set(title, {priority, allowSecondarySearches});
+ for (let i = 0, ii = dictionaries.length; i < ii; ++i) {
+ const {title, allowSecondarySearches} = dictionaries[i];
+ enabledDictionaryMap.set(title, {order: i, allowSecondarySearches});
}
return enabledDictionaryMap;
}