summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Yatskov <alex@foosoft.net>2016-04-12 23:12:20 -0700
committerAlex Yatskov <alex@foosoft.net>2016-04-12 23:12:20 -0700
commit972b945b4cf37b421b53086ce592f385ebb83a35 (patch)
treef0a84a67f42d69534253b9e5d5060b6fb5015601
parentbf28dea2838619c6446367f240e240cdddef3586 (diff)
Work on new dictionary format
-rw-r--r--ext/bg/js/dictionary.js33
-rw-r--r--ext/bg/js/translator.js8
2 files changed, 29 insertions, 12 deletions
diff --git a/ext/bg/js/dictionary.js b/ext/bg/js/dictionary.js
index feb8c92b..185aaee2 100644
--- a/ext/bg/js/dictionary.js
+++ b/ext/bg/js/dictionary.js
@@ -33,16 +33,33 @@ class Dictionary {
findTerm(term) {
const results = [];
- return (this.termIndices[term] || []).map(index => {
- const [e, r, g, t] = this.terms[index];
- return {id: index, expression: e, reading: r, glossary: g, tags: t.split(' ')};
- });
+
+ for (const name in this.termDicts) {
+ const dict = this.termDicts[name];
+ const indices = dict.indices[term] || [];
+
+ results.push(
+ indices.map(index => {
+ const [e, r, t, ...g] = dict.defs[index];
+ return {id: index, expression: e, reading: r, glossary: g.join('; '), tags: t.split(' ')};
+ })
+ );
+ }
+
+ return results;
}
findKanji(kanji) {
- return (this.kanjiIndices[kanji] || []).map(index => {
- const [c, k, o, g] = def;
- return {id: index, character: c, kunyomi: k, onyomi: o, glossary: g};
- });
+ const results = [];
+
+ for (const name in this.termDicts) {
+ const def = this.termDicts[name][kanji];
+ if (def) {
+ const [c, k, o, g] = def;
+ results.push({id: index, character: c, kunyomi: k, onyomi: o, glossary: g});
+ }
+ }
+
+ return results;
}
}
diff --git a/ext/bg/js/translator.js b/ext/bg/js/translator.js
index 5414a553..101083e8 100644
--- a/ext/bg/js/translator.js
+++ b/ext/bg/js/translator.js
@@ -22,9 +22,9 @@ class Translator {
this.loaded = false;
this.paths = {
rules: 'bg/data/rules.json',
- edict: 'bg/data/edict.csv',
- enamdict: 'bg/data/enamdict.csv',
- kanjidic: 'bg/data/kanjidic.csv'
+ edict: 'bg/data/edict.json',
+ enamdict: 'bg/data/enamdict.json',
+ kanjidic: 'bg/data/kanjidic.json'
};
this.dictionary = new Dictionary();
@@ -46,7 +46,7 @@ class Translator {
this.deinflector.setRules(JSON.parse(response));
break;
case 'kanjidic':
- this.dictionary.addKanjiDict('kanjidic', JSON.parse(response));
+ this.dictionary.addKanjiDict(key, JSON.parse(response));
break;
case 'edict':
case 'enamdict':