src/cm/media/js/lib/yui/yui_3.10.3/build/intl/intl-debug.js
author gibus
Tue, 16 Jul 2013 14:29:46 +0200
changeset 525 89ef5ed3c48b
permissions -rw-r--r--
Upgrades to yui 3.10.3
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
525
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     1
/*
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     2
YUI 3.10.3 (build 2fb5187)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     3
Copyright 2013 Yahoo! Inc. All rights reserved.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     4
Licensed under the BSD License.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     5
http://yuilibrary.com/license/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     6
*/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     7
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     8
YUI.add('intl', function (Y, NAME) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     9
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    10
var _mods = {},
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    11
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    12
    ROOT_LANG = "yuiRootLang",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    13
    ACTIVE_LANG = "yuiActiveLang",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    14
    NONE = [];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    15
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    16
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    17
 * Provides utilities to support the management of localized resources (strings and formatting patterns).
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    18
 *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    19
 * @module intl
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    20
 */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    21
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    22
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    23
 * The Intl utility provides a central location for managing sets of localized resources (strings and formatting patterns).
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    24
 *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    25
 * @class Intl
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    26
 * @uses EventTarget
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    27
 * @static
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    28
 */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    29
Y.mix(Y.namespace("Intl"), {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    30
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    31
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    32
     * Private method to retrieve the language hash for a given module.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    33
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    34
     * @method _mod
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    35
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    36
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    37
     * @param {String} module The name of the module
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    38
     * @return {Object} The hash of localized resources for the module, keyed by BCP language tag
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    39
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    40
    _mod : function(module) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    41
        if (!_mods[module]) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    42
            _mods[module] = {};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    43
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    44
        return _mods[module];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    45
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    46
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    47
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    48
     * Sets the active language for the given module.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    49
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    50
     * Returns false on failure, which would happen if the language had not been registered through the <a href="#method_add">add()</a> method.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    51
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    52
     * @method setLang
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    53
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    54
     * @param {String} module The module name.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    55
     * @param {String} lang The BCP 47 language tag.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    56
     * @return boolean true if successful, false if not.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    57
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    58
    setLang : function(module, lang) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    59
        var langs = this._mod(module),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    60
            currLang = langs[ACTIVE_LANG],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    61
            exists = !!langs[lang];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    62
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    63
        if (exists && lang !== currLang) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    64
            langs[ACTIVE_LANG] = lang;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    65
            this.fire("intl:langChange", {module: module, prevVal: currLang, newVal: (lang === ROOT_LANG) ? "" : lang});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    66
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    67
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    68
        return exists;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    69
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    70
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    71
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    72
     * Get the currently active language for the given module.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    73
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    74
     * @method getLang
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    75
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    76
     * @param {String} module The module name.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    77
     * @return {String} The BCP 47 language tag.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    78
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    79
    getLang : function(module) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    80
        var lang = this._mod(module)[ACTIVE_LANG];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    81
        return (lang === ROOT_LANG) ? "" : lang;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    82
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    83
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    84
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    85
     * Register a hash of localized resources for the given module and language
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    86
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    87
     * @method add
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    88
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    89
     * @param {String} module The module name.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    90
     * @param {String} lang The BCP 47 language tag.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    91
     * @param {Object} strings The hash of localized values, keyed by the string name.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    92
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    93
    add : function(module, lang, strings) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    94
        lang = lang || ROOT_LANG;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    95
        this._mod(module)[lang] = strings;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    96
        this.setLang(module, lang);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    97
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    98
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    99
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   100
     * Gets the module's localized resources for the currently active language (as provided by the <a href="#method_getLang">getLang</a> method).
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   101
     * <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   102
     * Optionally, the localized resources for alternate languages which have been added to Intl (see the <a href="#method_add">add</a> method) can
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   103
     * be retrieved by providing the BCP 47 language tag as the lang parameter.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   104
     * </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   105
     * @method get
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   106
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   107
     * @param {String} module The module name.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   108
     * @param {String} key Optional. A single resource key. If not provided, returns a copy (shallow clone) of all resources.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   109
     * @param {String} lang Optional. The BCP 47 language tag. If not provided, the module's currently active language is used.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   110
     * @return String | Object A copy of the module's localized resources, or a single value if key is provided.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   111
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   112
    get : function(module, key, lang) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   113
        var mod = this._mod(module),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   114
            strs;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   115
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   116
        lang = lang || mod[ACTIVE_LANG];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   117
        strs = mod[lang] || {};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   118
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   119
        return (key) ? strs[key] : Y.merge(strs);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   120
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   121
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   122
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   123
     * Gets the list of languages for which localized resources are available for a given module, based on the module
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   124
     * meta-data (part of loader). If loader is not on the page, returns an empty array.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   125
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   126
     * @method getAvailableLangs
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   127
     * @param {String} module The name of the module
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   128
     * @return {Array} The array of languages available.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   129
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   130
    getAvailableLangs : function(module) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   131
        var loader = Y.Env._loader,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   132
            mod = loader && loader.moduleInfo[module],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   133
            langs = mod && mod.lang;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   134
        return (langs) ? langs.concat() : NONE;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   135
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   136
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   137
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   138
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   139
Y.augment(Y.Intl, Y.EventTarget);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   140
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   141
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   142
 * Notification event to indicate when the lang for a module has changed. There is no default behavior associated with this event,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   143
 * so the on and after moments are equivalent.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   144
 *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   145
 * @event intl:langChange
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   146
 * @param {EventFacade} e The event facade
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   147
 * <p>The event facade contains:</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   148
 * <dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   149
 *     <dt>module</dt><dd>The name of the module for which the language changed</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   150
 *     <dt>newVal</dt><dd>The new language tag</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   151
 *     <dt>prevVal</dt><dd>The current language tag</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   152
 * </dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   153
 */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   154
Y.Intl.publish("intl:langChange", {emitFacade:true});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   155
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   156
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   157
}, '3.10.3', {"requires": ["intl-base", "event-custom"]});