diff options
Diffstat (limited to 'ext/bg/js/translator.js')
-rw-r--r-- | ext/bg/js/translator.js | 47 |
1 files changed, 22 insertions, 25 deletions
diff --git a/ext/bg/js/translator.js b/ext/bg/js/translator.js index fd414847..f373fe83 100644 --- a/ext/bg/js/translator.js +++ b/ext/bg/js/translator.js @@ -31,31 +31,28 @@ class Translator { return; } - Translator.loadData('bg/data/rules.json') - .then((response) => { - this.deinflector.setRules(JSON.parse(response)); - return Translator.loadData('bg/data/tags.json'); - }) - .then((response) => { - this.tagMeta = JSON.parse(response); - return Translator.loadData('bg/data/edict.json'); - }) - .then((response) => { - this.dictionary.addTermDict('edict', JSON.parse(response)); - return Translator.loadData('bg/data/kanjidic.json'); - }) - .then((response) => { - this.dictionary.addKanjiDict('kanjidic', JSON.parse(response)); - return loadEnamDict ? Translator.loadData('bg/data/enamdict.json') : Promise.resolve(null); - }) - .then((response) => { - if (response !== null) { - this.dictionary.addTermDict('enamdict', JSON.parse(response)); - } - - this.loaded = true; - callback(); - }); + Translator.loadData('bg/data/rules.json').then((response) => { + this.deinflector.setRules(JSON.parse(response)); + return Translator.loadData('bg/data/tags.json'); + }).then((response) => { + this.tagMeta = JSON.parse(response); + return this.dictionary.loadDb(); + }).then(() => { + this.loaded = true; + callback(); + }).catch(() => { + return Translator.loadData('bg/data/edict.json'); + }).then((response) => { + this.dictionary.importTermDict('edict', JSON.parse(response)); + return Translator.loadData('bg/data/enamdict.json'); + }).then((response) => { + this.dictionary.importTermDict('enamdict', JSON.parse(response)); + return Translator.loadData('bg/data/kanjidic.json'); + }).then((response) => { + this.dictionary.importKanjiDict('kanjidic', JSON.parse(response)); + this.loaded = true; + callback(); + }); } findTerm(text) { |