diff -r 322d0feea350 -r 89ef5ed3c48b src/cm/media/js/lib/yui/yui_3.10.3/build/intl-base/intl-base-debug.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/cm/media/js/lib/yui/yui_3.10.3/build/intl-base/intl-base-debug.js Tue Jul 16 14:29:46 2013 +0200 @@ -0,0 +1,95 @@ +/* +YUI 3.10.3 (build 2fb5187) +Copyright 2013 Yahoo! Inc. All rights reserved. +Licensed under the BSD License. +http://yuilibrary.com/license/ +*/ + +YUI.add('intl-base', function (Y, NAME) { + +/** + * The Intl utility provides a central location for managing sets of + * localized resources (strings and formatting patterns). + * + * @class Intl + * @uses EventTarget + * @static + */ + +var SPLIT_REGEX = /[, ]/; + +Y.mix(Y.namespace('Intl'), { + + /** + * Returns the language among those available that + * best matches the preferred language list, using the Lookup + * algorithm of BCP 47. + * If none of the available languages meets the user's preferences, + * then "" is returned. + * Extended language ranges are not supported. + * + * @method lookupBestLang + * @param {String[] | String} preferredLanguages The list of preferred + * languages in descending preference order, represented as BCP 47 + * language tags. A string array or a comma-separated list. + * @param {String[]} availableLanguages The list of languages + * that the application supports, represented as BCP 47 language + * tags. + * + * @return {String} The available language that best matches the + * preferred language list, or "". + * @since 3.1.0 + */ + lookupBestLang: function(preferredLanguages, availableLanguages) { + + var i, language, result, index; + + // check whether the list of available languages contains language; + // if so return it + function scan(language) { + var i; + for (i = 0; i < availableLanguages.length; i += 1) { + if (language.toLowerCase() === + availableLanguages[i].toLowerCase()) { + return availableLanguages[i]; + } + } + } + + if (Y.Lang.isString(preferredLanguages)) { + preferredLanguages = preferredLanguages.split(SPLIT_REGEX); + } + + for (i = 0; i < preferredLanguages.length; i += 1) { + language = preferredLanguages[i]; + if (!language || language === '*') { + continue; + } + // check the fallback sequence for one language + while (language.length > 0) { + result = scan(language); + if (result) { + return result; + } else { + index = language.lastIndexOf('-'); + if (index >= 0) { + language = language.substring(0, index); + // one-character subtags get cut along with the + // following subtag + if (index >= 2 && language.charAt(index - 2) === '-') { + language = language.substring(0, index - 2); + } + } else { + // nothing available for this language + break; + } + } + } + } + + return ''; + } +}); + + +}, '3.10.3', {"requires": ["yui-base"]});