Make WordPress Core

Ticket #42574: 42574.diff

File 42574.diff, 2.5 KB (added by blobfolio, 7 years ago)

Improve locale-handling

  • src/wp-includes/js/mediaelement/mediaelement-and-player.js

    diff --git src/wp-includes/js/mediaelement/mediaelement-and-player.js src/wp-includes/js/mediaelement/mediaelement-and-player.js
    index be8e58e966..59869c4b31 100644
    module.exports = win; 
    5656  var setTimeoutFunc = setTimeout;
    5757
    5858  function noop() {}
    59  
     59
    6060  // Polyfill for Function.prototype.bind
    6161  function bind(fn, thisArg) {
    6262    return function () {
    module.exports = win; 
    274274  Promise._setUnhandledRejectionFn = function _setUnhandledRejectionFn(fn) {
    275275    Promise._unhandledRejectionFn = fn;
    276276  };
    277  
     277
    278278  if (typeof module !== 'undefined' && module.exports) {
    279279    module.exports = Promise;
    280280  } else if (!root.Promise) {
    i18n.language = function () { 
    315315                        throw new TypeError('Language code must be a string value');
    316316                }
    317317
    318                 if (!/^[a-z]{2,3}((\-|_)[a-z]{2})?$/i.test(args[0])) {
     318                if (!/^[a-z]{2,3}((\-|_)[a-z]{2})?/i.test(args[0])) {
    319319                        throw new TypeError('Language code must have format 2-3 letters and. optionally, hyphen, underscore followed by 2 more letters');
    320320                }
    321321
    322322                i18n.lang = args[0];
    323323
     324                // Catch non-conformant locales, e.g. de-de-formal.
     325                if ((i18n[args[0]] === undefined) && !/^[a-z]{2,3}((\-|_)[a-z]{2})?$/i.test(args[0])) {
     326                        args[0] = args[0].replace(/^([a-z]{2,3}((\-|_)[a-z]{2})?).*/i, '$1');
     327                        i18n.lang = args[0];
     328                }
     329
    324330                if (i18n[args[0]] === undefined) {
    325331                        args[1] = args[1] !== null && args[1] !== undefined && _typeof(args[1]) === 'object' ? args[1] : {};
    326332                        i18n[args[0]] = !(0, _general.isObjectEmpty)(args[1]) ? args[1] : _en.EN;
    var MediaElementPlayer = function () { 
    41524158                                                                }
    41534159                                                        }, 20);
    41544160                                                } catch (exp) {
    4155                                                        
     4161
    41564162                                                }
    41574163                                        }
    41584164
    var PluginDetector = exports.PluginDetector = { 
    58365842                                        version = axDetect(ax);
    58375843                                }
    58385844                        } catch (e) {
    5839                                
     5845
    58405846                        }
    58415847                }
    58425848                return version;
    var FlashMediaElementRenderer = { 
    59075913                                        try {
    59085914                                                flash.flashApi['set_' + propName](value);
    59095915                                        } catch (e) {
    5910                                                
     5916
    59115917                                        }
    59125918                                } else {
    59135919                                        flash.flashApiStack.push({
    var FlashMediaElementRenderer = { 
    59325938                                                        try {
    59335939                                                                flash.flashApi['fire_' + methodName]();
    59345940                                                        } catch (e) {
    5935                                                                
     5941
    59365942                                                        }
    59375943                                                } else {
    5938                                                        
     5944
    59395945                                                }
    59405946                                        } else {
    59415947                                                flash.flashApiStack.push({
    var YouTubeIframeRenderer = { 
    71507156                                                        mediaElement.dispatchEvent(event);
    71517157                                                        break;
    71527158                                                default:
    7153                                                        
     7159
    71547160                                                        break;
    71557161                                        }
    71567162                                } else {