From 83f5bd24dfeb60637141ddc7cd0b99513ac74eec Mon Sep 17 00:00:00 2001 From: Alex Yatskov Date: Fri, 21 Oct 2016 20:43:09 -0700 Subject: [PATCH] Enable katakana soft search (resolves #14) --- ext/bg/js/translator.js | 21 +++++++++++++++++---- ext/bg/js/yomichan.js | 2 +- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/ext/bg/js/translator.js b/ext/bg/js/translator.js index 8f895800..44f37e31 100644 --- a/ext/bg/js/translator.js +++ b/ext/bg/js/translator.js @@ -105,11 +105,24 @@ class Translator { return Promise.all(deinflectPromises).then(() => deinflectGroups); } - findTerm(text) { - return this.findTermGroups(text).then(deinflectGroups => { + findTerm(text, enableSoftKatakanaSearch) { + return this.findTermGroups(text).then(groups => { + const textHiragana = wanakana._katakanaToHiragana(text); + if (text !== textHiragana && enableSoftKatakanaSearch) { + return this.findTermGroups(textHiragana).then(groupsHiragana => { + for (const key in groupsHiragana) { + groups[key] = groups[key] || groupsHiragana[key]; + } + + return groups; + }); + } else { + return groups; + } + }).then(groups => { const definitions = []; - for (const key in deinflectGroups) { - definitions.push(deinflectGroups[key]); + for (const key in groups) { + definitions.push(groups[key]); } let length = 0; diff --git a/ext/bg/js/yomichan.js b/ext/bg/js/yomichan.js index 3091e503..7bca579d 100644 --- a/ext/bg/js/yomichan.js +++ b/ext/bg/js/yomichan.js @@ -243,7 +243,7 @@ class Yomichan { } api_findTerm({text, callback}) { - promiseCallback(this.translator.findTerm(text), callback); + promiseCallback(this.translator.findTerm(text, this.options.enableSoftKatakanaSearch), callback); } api_renderText({template, data, callback}) {