diff -r 322d0feea350 -r 89ef5ed3c48b src/cm/media/js/lib/yui/yui_3.10.3/build/intl/intl-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/intl-debug.js Tue Jul 16 14:29:46 2013 +0200 @@ -0,0 +1,157 @@ +/* +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', function (Y, NAME) { + +var _mods = {}, + + ROOT_LANG = "yuiRootLang", + ACTIVE_LANG = "yuiActiveLang", + NONE = []; + +/** + * Provides utilities to support the management of localized resources (strings and formatting patterns). + * + * @module intl + */ + +/** + * The Intl utility provides a central location for managing sets of localized resources (strings and formatting patterns). + * + * @class Intl + * @uses EventTarget + * @static + */ +Y.mix(Y.namespace("Intl"), { + + /** + * Private method to retrieve the language hash for a given module. + * + * @method _mod + * @private + * + * @param {String} module The name of the module + * @return {Object} The hash of localized resources for the module, keyed by BCP language tag + */ + _mod : function(module) { + if (!_mods[module]) { + _mods[module] = {}; + } + return _mods[module]; + }, + + /** + * Sets the active language for the given module. + * + * Returns false on failure, which would happen if the language had not been registered through the add() method. + * + * @method setLang + * + * @param {String} module The module name. + * @param {String} lang The BCP 47 language tag. + * @return boolean true if successful, false if not. + */ + setLang : function(module, lang) { + var langs = this._mod(module), + currLang = langs[ACTIVE_LANG], + exists = !!langs[lang]; + + if (exists && lang !== currLang) { + langs[ACTIVE_LANG] = lang; + this.fire("intl:langChange", {module: module, prevVal: currLang, newVal: (lang === ROOT_LANG) ? "" : lang}); + } + + return exists; + }, + + /** + * Get the currently active language for the given module. + * + * @method getLang + * + * @param {String} module The module name. + * @return {String} The BCP 47 language tag. + */ + getLang : function(module) { + var lang = this._mod(module)[ACTIVE_LANG]; + return (lang === ROOT_LANG) ? "" : lang; + }, + + /** + * Register a hash of localized resources for the given module and language + * + * @method add + * + * @param {String} module The module name. + * @param {String} lang The BCP 47 language tag. + * @param {Object} strings The hash of localized values, keyed by the string name. + */ + add : function(module, lang, strings) { + lang = lang || ROOT_LANG; + this._mod(module)[lang] = strings; + this.setLang(module, lang); + }, + + /** + * Gets the module's localized resources for the currently active language (as provided by the getLang method). + *
+ * Optionally, the localized resources for alternate languages which have been added to Intl (see the add method) can + * be retrieved by providing the BCP 47 language tag as the lang parameter. + *
+ * @method get + * + * @param {String} module The module name. + * @param {String} key Optional. A single resource key. If not provided, returns a copy (shallow clone) of all resources. + * @param {String} lang Optional. The BCP 47 language tag. If not provided, the module's currently active language is used. + * @return String | Object A copy of the module's localized resources, or a single value if key is provided. + */ + get : function(module, key, lang) { + var mod = this._mod(module), + strs; + + lang = lang || mod[ACTIVE_LANG]; + strs = mod[lang] || {}; + + return (key) ? strs[key] : Y.merge(strs); + }, + + /** + * Gets the list of languages for which localized resources are available for a given module, based on the module + * meta-data (part of loader). If loader is not on the page, returns an empty array. + * + * @method getAvailableLangs + * @param {String} module The name of the module + * @return {Array} The array of languages available. + */ + getAvailableLangs : function(module) { + var loader = Y.Env._loader, + mod = loader && loader.moduleInfo[module], + langs = mod && mod.lang; + return (langs) ? langs.concat() : NONE; + + } +}); + +Y.augment(Y.Intl, Y.EventTarget); + +/** + * Notification event to indicate when the lang for a module has changed. There is no default behavior associated with this event, + * so the on and after moments are equivalent. + * + * @event intl:langChange + * @param {EventFacade} e The event facade + *The event facade contains:
+ *