diff options
Diffstat (limited to 'ext/js/display/display-audio.js')
-rw-r--r-- | ext/js/display/display-audio.js | 30 |
1 files changed, 23 insertions, 7 deletions
diff --git a/ext/js/display/display-audio.js b/ext/js/display/display-audio.js index bb30c944..4fcabf06 100644 --- a/ext/js/display/display-audio.js +++ b/ext/js/display/display-audio.js @@ -166,16 +166,15 @@ export class DisplayAudio { * @param {import('display').EventArgument<'optionsUpdated'>} details */ _onOptionsUpdated({options}) { - const {enabled, autoPlay, volume, sources} = options.audio; + const { + general: {language}, + audio: {enabled, autoPlay, volume, sources}, + } = options; this._autoPlay = enabled && autoPlay; this._playbackVolume = Number.isFinite(volume) ? Math.max(0, Math.min(1, volume / 100)) : 1; /** @type {Set<import('settings').AudioSourceType>} */ - const requiredAudioSources = new Set([ - 'jpod101', - 'jpod101-alternate', - 'jisho', - ]); + const requiredAudioSources = this._getRequiredAudioSources(language); /** @type {Map<string, import('display-audio').AudioSource[]>} */ const nameMap = new Map(); this._audioSources.length = 0; @@ -188,11 +187,28 @@ export class DisplayAudio { } const data = document.documentElement.dataset; - data.audioEnabled = `${enabled && sources.length > 0}`; + data.audioEnabled = enabled.toString(); this._cache.clear(); } + /** + * @param {string} language + * @returns {Set<import('settings').AudioSourceType>} + */ + _getRequiredAudioSources(language) { + return language === 'ja' ? + new Set([ + 'jpod101', + 'jpod101-alternate', + 'jisho', + ]) : + new Set([ + 'lingua-libre', + 'wiktionary', + ]); + } + /** */ _onContentClear() { this._entriesToken = {}; |