summaryrefslogtreecommitdiff
path: root/ext/bg/js/translator.js
diff options
context:
space:
mode:
Diffstat (limited to 'ext/bg/js/translator.js')
-rw-r--r--ext/bg/js/translator.js22
1 files changed, 21 insertions, 1 deletions
diff --git a/ext/bg/js/translator.js b/ext/bg/js/translator.js
index 84a6e1d7..dfe54623 100644
--- a/ext/bg/js/translator.js
+++ b/ext/bg/js/translator.js
@@ -30,7 +30,8 @@ class Translator {
}
if (!this.deinflector) {
- const reasons = await jsonLoadInt('/bg/lang/deinflect.json');
+ const url = chrome.extension.getURL('/bg/lang/deinflect.json');
+ const reasons = await Translator.loadRules(url);
this.deinflector = new Deinflector(reasons);
}
}
@@ -127,4 +128,23 @@ class Translator {
return definitions;
}
+
+
+ static loadRules(url) {
+ return new Promise((resolve, reject) => {
+ const xhr = new XMLHttpRequest();
+ xhr.overrideMimeType('application/json');
+ xhr.addEventListener('load', () => resolve(xhr.responseText));
+ xhr.addEventListener('error', () => reject('failed to execute network request'));
+ xhr.open('GET', url);
+ xhr.send();
+ }).then(responseText => {
+ try {
+ return JSON.parse(responseText);
+ }
+ catch (e) {
+ return Promise.reject('invalid JSON response');
+ }
+ });
+ }
}