diff options
author | Albin Larsson <mail@albinlarsson.com> | 2018-05-28 04:38:08 +0200 |
---|---|---|
committer | Albin Larsson <mail@albinlarsson.com> | 2018-05-28 06:08:03 +0200 |
commit | 0109454a34d58d5fc0b2828c5106486de6a334db (patch) | |
tree | f5712277825c6ac36bdf89c394ef889eaec9e03d /src | |
parent | 813f703211230024b99f4de95e433e4d33119f9a (diff) | |
download | plyr-0109454a34d58d5fc0b2828c5106486de6a334db.tar.lz plyr-0109454a34d58d5fc0b2828c5106486de6a334db.tar.xz plyr-0109454a34d58d5fc0b2828c5106486de6a334db.zip |
Ensure language is set in case the track is added after initialization, and trigger languagechange event when language is initially set
Diffstat (limited to 'src')
-rw-r--r-- | src/js/captions.js | 21 | ||||
-rw-r--r-- | src/js/controls.js | 5 |
2 files changed, 9 insertions, 17 deletions
diff --git a/src/js/captions.js b/src/js/captions.js index 5941ebda..f62b2d4f 100644 --- a/src/js/captions.js +++ b/src/js/captions.js @@ -16,17 +16,6 @@ const captions = { return; } - // Set default language if not set - const stored = this.storage.get('language'); - - if (!utils.is.empty(stored)) { - this.captions.language = stored; - } - - if (utils.is.empty(this.captions.language)) { - this.captions.language = this.config.captions.language.toLowerCase(); - } - // Only Vimeo and HTML5 video supported at this point if (!this.isVideo || this.isYouTube || (this.isHTML5 && !support.textTracks)) { // Clear menu and hide @@ -93,8 +82,14 @@ const captions = { }, update() { - // Set language - captions.setLanguage.call(this); + // Update tracks + const tracks = captions.getTracks.call(this); + this.options.captions = tracks.map(({language}) => language); + + // Set language if it hasn't been set already + if (!this.language) { + this.language = this.storage.get('language') || (this.config.captions.language || '').toLowerCase(); + } // Toggle the class hooks utils.toggleClass(this.elements.container, this.config.classNames.captions.enabled, !utils.is.empty(captions.getTracks.call(this))); diff --git a/src/js/controls.js b/src/js/controls.js index c76bd66b..32e82f78 100644 --- a/src/js/controls.js +++ b/src/js/controls.js @@ -883,13 +883,10 @@ const controls = { 'language', track.label, track.language !== 'enabled' ? controls.createBadge.call(this, track.language.toUpperCase()) : null, - track.language.toLowerCase() === this.captions.language.toLowerCase(), + track.language.toLowerCase() === this.language, ); }); - // Store reference - this.options.captions = tracks.map(track => track.language); - controls.updateSetting.call(this, type, list); }, |