Import stubs
This commit is contained in:
parent
96c6c4ad1a
commit
67f906ab24
@ -21,20 +21,32 @@ class Dictionary {
|
||||
constructor() {
|
||||
this.termDicts = {};
|
||||
this.kanjiDicts = {};
|
||||
this.db = new Dexie('dict');
|
||||
this.dbVer = 1;
|
||||
}
|
||||
|
||||
addTermDict(name, dict) {
|
||||
loadDb() {
|
||||
return this.db.open().then((db) => {
|
||||
if (db.verno !== this.dbVer) {
|
||||
Promise.reject('db version mismatch');
|
||||
}
|
||||
|
||||
return db.verno;
|
||||
});
|
||||
}
|
||||
|
||||
importTermDict(name, dict) {
|
||||
this.termDicts[name] = dict;
|
||||
}
|
||||
|
||||
addKanjiDict(name, dict) {
|
||||
importKanjiDict(name, dict) {
|
||||
this.kanjiDicts[name] = dict;
|
||||
}
|
||||
|
||||
findTerm(term) {
|
||||
let results = [];
|
||||
|
||||
for (let name in this.termDicts) {
|
||||
for (const name in this.termDicts) {
|
||||
const dict = this.termDicts[name];
|
||||
if (!(term in dict.i)) {
|
||||
continue;
|
||||
@ -62,7 +74,7 @@ class Dictionary {
|
||||
findKanji(kanji) {
|
||||
const results = [];
|
||||
|
||||
for (let name in this.kanjiDicts) {
|
||||
for (const name in this.kanjiDicts) {
|
||||
const def = this.kanjiDicts[name].c[kanji];
|
||||
if (def) {
|
||||
const [k, o, t, ...g] = def;
|
||||
|
@ -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) {
|
||||
|
Loading…
Reference in New Issue
Block a user