diff options
Diffstat (limited to 'ext')
| -rw-r--r-- | ext/js/display/display-audio.js | 8 | ||||
| -rw-r--r-- | ext/js/display/display.js | 33 | 
2 files changed, 23 insertions, 18 deletions
| diff --git a/ext/js/display/display-audio.js b/ext/js/display/display-audio.js index bb88c89e..03966390 100644 --- a/ext/js/display/display-audio.js +++ b/ext/js/display/display-audio.js @@ -405,11 +405,11 @@ class DisplayAudio {          const definition = definitions[definitionIndex];          if (definition.type === 'kanji') { return null; } -        const {expressions} = definition; -        if (expressionIndex < 0 || expressionIndex >= expressions.length) { return null; } +        const {headwords} = definition; +        if (expressionIndex < 0 || expressionIndex >= headwords.length) { return null; } -        const {expression, reading} = expressions[expressionIndex]; -        return {expression, reading}; +        const {term, reading} = headwords[expressionIndex]; +        return {expression: term, reading};      }      _getExpressionReadingKey(expression, reading) { diff --git a/ext/js/display/display.js b/ext/js/display/display.js index 1142f36f..7cc3b437 100644 --- a/ext/js/display/display.js +++ b/ext/js/display/display.js @@ -1505,7 +1505,7 @@ class Display extends EventDispatcher {          let audioDetails = null;          if (definitionDetails.type !== 'kanji' && AnkiUtil.fieldsObjectContainsMarker(fields, 'audio')) { -            const primaryCardAudio = this._displayAudio.getPrimaryCardAudio(definitionDetails.expression, definitionDetails.reading); +            const primaryCardAudio = this._displayAudio.getPrimaryCardAudio(definitionDetails.term, definitionDetails.reading);              let preferredAudioIndex = null;              let sources2 = sources;              if (primaryCardAudio !== null) { @@ -1531,26 +1531,31 @@ class Display extends EventDispatcher {          );      } -    _getDefinitionDetailsForNote(definition) { -        const {type} = definition; +    _getDefinitionDetailsForNote(dictionaryEntry) { +        const {type} = dictionaryEntry;          if (type === 'kanji') { -            const {character} = definition; +            const {character} = dictionaryEntry;              return {type, character};          } -        const termDetailsList = definition.expressions; +        const {headwords} = dictionaryEntry;          let bestIndex = -1; -        for (let i = 0, ii = termDetailsList.length; i < ii; ++i) { -            const {sourceTerm, expression, reading} = termDetailsList[i]; -            if (expression === sourceTerm) { -                bestIndex = i; -                break; -            } else if (reading === sourceTerm && bestIndex < 0) { -                bestIndex = i; +        for (let i = 0, ii = headwords.length; i < ii; ++i) { +            const {term, reading, sources} = headwords[i]; +            for (const {deinflectedText} of sources) { +                if (term === deinflectedText) { +                    bestIndex = i; +                    i = ii; +                    break; +                } else if (reading === deinflectedText && bestIndex < 0) { +                    bestIndex = i; +                    break; +                }              }          } -        const {expression, reading} = termDetailsList[Math.max(0, bestIndex)]; -        return {type, expression, reading}; + +        const {term, reading} = headwords[Math.max(0, bestIndex)]; +        return {type, term, reading};      }      async _setOptionsContextIfDifferent(optionsContext) { |