diff --git src/wp-includes/js/mediaelement/mediaelement-and-player.js src/wp-includes/js/mediaelement/mediaelement-and-player.js
index be8e58e966..59869c4b31 100644
--- src/wp-includes/js/mediaelement/mediaelement-and-player.js
+++ src/wp-includes/js/mediaelement/mediaelement-and-player.js
@@ -56,7 +56,7 @@ module.exports = win;
   var setTimeoutFunc = setTimeout;
 
   function noop() {}
-  
+
   // Polyfill for Function.prototype.bind
   function bind(fn, thisArg) {
     return function () {
@@ -274,7 +274,7 @@ module.exports = win;
   Promise._setUnhandledRejectionFn = function _setUnhandledRejectionFn(fn) {
     Promise._unhandledRejectionFn = fn;
   };
-  
+
   if (typeof module !== 'undefined' && module.exports) {
     module.exports = Promise;
   } else if (!root.Promise) {
@@ -315,12 +315,18 @@ i18n.language = function () {
 			throw new TypeError('Language code must be a string value');
 		}
 
-		if (!/^[a-z]{2,3}((\-|_)[a-z]{2})?$/i.test(args[0])) {
+		if (!/^[a-z]{2,3}((\-|_)[a-z]{2})?/i.test(args[0])) {
 			throw new TypeError('Language code must have format 2-3 letters and. optionally, hyphen, underscore followed by 2 more letters');
 		}
 
 		i18n.lang = args[0];
 
+		// Catch non-conformant locales, e.g. de-de-formal.
+		if ((i18n[args[0]] === undefined) && !/^[a-z]{2,3}((\-|_)[a-z]{2})?$/i.test(args[0])) {
+			args[0] = args[0].replace(/^([a-z]{2,3}((\-|_)[a-z]{2})?).*/i, '$1');
+			i18n.lang = args[0];
+		}
+
 		if (i18n[args[0]] === undefined) {
 			args[1] = args[1] !== null && args[1] !== undefined && _typeof(args[1]) === 'object' ? args[1] : {};
 			i18n[args[0]] = !(0, _general.isObjectEmpty)(args[1]) ? args[1] : _en.EN;
@@ -4152,7 +4158,7 @@ var MediaElementPlayer = function () {
 								}
 							}, 20);
 						} catch (exp) {
-							
+
 						}
 					}
 
@@ -5836,7 +5842,7 @@ var PluginDetector = exports.PluginDetector = {
 					version = axDetect(ax);
 				}
 			} catch (e) {
-				
+
 			}
 		}
 		return version;
@@ -5907,7 +5913,7 @@ var FlashMediaElementRenderer = {
 					try {
 						flash.flashApi['set_' + propName](value);
 					} catch (e) {
-						
+
 					}
 				} else {
 					flash.flashApiStack.push({
@@ -5932,10 +5938,10 @@ var FlashMediaElementRenderer = {
 							try {
 								flash.flashApi['fire_' + methodName]();
 							} catch (e) {
-								
+
 							}
 						} else {
-							
+
 						}
 					} else {
 						flash.flashApiStack.push({
@@ -7150,7 +7156,7 @@ var YouTubeIframeRenderer = {
 							mediaElement.dispatchEvent(event);
 							break;
 						default:
-							
+
 							break;
 					}
 				} else {
