code: function normalize(sLocale) {
  		var m;
  		if ( typeof sLocale === 'string' && (m = rLocale.exec(sLocale.replace(/_/g, '-'))) ) {
  			var sLanguage = m[1].toLowerCase();
  			sLanguage = M_ISO639_NEW_TO_OLD[sLanguage] || sLanguage;
  			var sScript = m[2] ? m[2].toLowerCase() : undefined;
  			var sRegion = m[3] ? m[3].toUpperCase() : undefined;
  			var sVariants = m[4] ? m[4].slice(1) : undefined;
  			var sPrivate = m[6];
  			// recognize and convert special SAP supportability locales (overwrites m[]!)
  			if ( (sPrivate && (m = rSAPSupportabilityLocales.exec(sPrivate)))
  				|| (sVariants && (m = rSAPSupportabilityLocales.exec(sVariants))) ) {
  				return "en_US_" + m[1].toLowerCase(); // for now enforce en_US (agreed with SAP SLS)
  			}
  			// Chinese: when no region but a script is specified, use default region for each script
  			if ( sLanguage === "zh" && !sRegion ) {
  				if ( sScript === "hans" ) {
  					sRegion = "CN";
  				} else if ( sScript === "hant" ) {
  					sRegion = "TW";
  				}
  			}
  			return sLanguage + (sRegion ? "_" + sRegion + (sVariants ? "_" + sVariants.replace("-","_") : "") : "");
  		}
  	}
docs: Helper to normalize the given locale (in BCP-47 syntax) to the java.util.Locale format.
  @param {string} sLocale locale to normalize
  @returns {string} Normalized locale or undefined if the locale can't be normalized