Merge pull request #988 from kim-company/translate-qualities
Translate quality badges and quality names
This commit is contained in:
		
							
								
								
									
										31
									
								
								src/js/controls.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										31
									
								
								src/js/controls.js
									
									
									
									
										vendored
									
									
								
							@ -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);
 | 
			
		||||
 | 
			
		||||
@ -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
 | 
			
		||||
 | 
			
		||||
@ -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,
 | 
			
		||||
 | 
			
		||||
@ -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');
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -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) {
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user