aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorSam Potts <sam@potts.es>2018-05-31 22:43:31 +1000
committerGitHub <noreply@github.com>2018-05-31 22:43:31 +1000
commit5a445ae647c0189f00dd4115eb3b9b92cac0d333 (patch)
tree6a102c2242909ee8fdb20f7052f2f91a45007cea /src
parenteec96e58793b0627efbe020f4efb8193cc49b8db (diff)
parent56668f58b6284e63f2874120cf7e1747b868d2b0 (diff)
downloadplyr-5a445ae647c0189f00dd4115eb3b9b92cac0d333.tar.lz
plyr-5a445ae647c0189f00dd4115eb3b9b92cac0d333.tar.xz
plyr-5a445ae647c0189f00dd4115eb3b9b92cac0d333.zip
Merge pull request #988 from kim-company/translate-qualities
Translate quality badges and quality names
Diffstat (limited to 'src')
-rw-r--r--src/js/controls.js31
-rw-r--r--src/js/defaults.js8
-rw-r--r--src/js/i18n.js8
-rw-r--r--src/js/plyr.js2
-rw-r--r--src/js/utils.js5
5 files changed, 28 insertions, 26 deletions
diff --git a/src/js/controls.js b/src/js/controls.js
index 32e82f78..20518f9c 100644
--- a/src/js/controls.js
+++ b/src/js/controls.js
@@ -664,27 +664,7 @@ const controls = {
// Get the badge HTML for HD, 4K etc
const getBadge = quality => {
- let label = '';
-
- switch (quality) {
- case 2160:
- label = '4K';
- break;
-
- case 1440:
- case 1080:
- case 720:
- label = 'HD';
- break;
-
- case 576:
- case 480:
- label = 'SD';
- break;
-
- default:
- break;
- }
+ const label = i18n.get(`qualityBadge.${quality}`, this.config);
if (!label.length) {
return null;
@@ -708,7 +688,6 @@ const controls = {
},
// Translate a value into a nice label
- // TODO: Localisation
getLabel(setting, value) {
switch (setting) {
case 'speed':
@@ -716,7 +695,13 @@ const controls = {
case 'quality':
if (utils.is.number(value)) {
- return `${value}p`;
+ const label = i18n.get(`qualityLabel.${value}`, this.config);
+
+ if (!label.length) {
+ return `${value}p`;
+ }
+
+ return label;
}
return utils.toTitleCase(value);
diff --git a/src/js/defaults.js b/src/js/defaults.js
index 6a88e73f..a6b83f1f 100644
--- a/src/js/defaults.js
+++ b/src/js/defaults.js
@@ -190,6 +190,14 @@ const defaults = {
disabled: 'Disabled',
enabled: 'Enabled',
advertisement: 'Ad',
+ qualityBadge: {
+ 2160: '4K',
+ 1440: 'HD',
+ 1080: 'HD',
+ 720: 'HD',
+ 576: 'SD',
+ 480: 'SD',
+ },
},
// URLs
diff --git a/src/js/i18n.js b/src/js/i18n.js
index 58c3e7cf..62e5bdb0 100644
--- a/src/js/i18n.js
+++ b/src/js/i18n.js
@@ -6,11 +6,15 @@ import utils from './utils';
const i18n = {
get(key = '', config = {}) {
- if (utils.is.empty(key) || utils.is.empty(config) || !Object.keys(config.i18n).includes(key)) {
+ if (utils.is.empty(key) || utils.is.empty(config)) {
return '';
}
- let string = config.i18n[key];
+ let string = utils.getDeep(config.i18n, key);
+
+ if (utils.is.empty(string)) {
+ return '';
+ }
const replace = {
'{seektime}': config.seekTime,
diff --git a/src/js/plyr.js b/src/js/plyr.js
index 557291d9..cfce37c9 100644
--- a/src/js/plyr.js
+++ b/src/js/plyr.js
@@ -675,7 +675,7 @@ class Plyr {
quality = Number(input);
}
- if (!utils.is.number(quality) || quality === 0) {
+ if (!utils.is.number(quality)) {
quality = this.storage.get('quality');
}
diff --git a/src/js/utils.js b/src/js/utils.js
index 0334879d..b6ba0941 100644
--- a/src/js/utils.js
+++ b/src/js/utils.js
@@ -728,6 +728,11 @@ const utils = {
return JSON.parse(JSON.stringify(object));
},
+ // Get a nested value in an object
+ getDeep(object, path) {
+ return path.split('.').reduce((obj, key) => obj && obj[key], object);
+ },
+
// Get the closest value in an array
closest(array, value) {
if (!utils.is.array(array) || !array.length) {