diff options
Diffstat (limited to 'ext/bg/js')
| -rw-r--r-- | ext/bg/js/dictionary.js | 33 | ||||
| -rw-r--r-- | ext/bg/js/translator.js | 8 | 
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':  |