AutorÃa | Ultima modificación | Ver Log |
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 itfunction 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 languagewhile (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 subtagif (index >= 2 && language.charAt(index - 2) === '-') {language = language.substring(0, index - 2);}} else {// nothing available for this languagebreak;}}}}return '';}});}, '3.18.1', {"requires": ["yui-base"]});