Merge "(bug 47070) check content model namespace on import."
[lhc/web/wiklou.git] / resources / mediawiki.language / mediawiki.language.init.js
index 30307a3..fd77025 100644 (file)
@@ -1,38 +1,57 @@
-/**
- * Base language object with methods for storing and getting
- * language data.
- */
-( function ( mw, $ ) {
-
-       var language = {
+( function ( mw ) {
+       /**
+        * Base language object with methods related to language support, attempting to mirror some of the
+        * functionality of the Language class in MediaWiki:
+        *
+        *   - storing and retrieving language data
+        *   - transforming message syntax (`{{PLURAL:}}`, `{{GRAMMAR:}}`, `{{GENDER:}}`)
+        *   - formatting numbers
+        *
+        * @class
+        * @singleton
+        */
+       mw.language = {
                /**
-                * @var data {Object} Language related data (keyed by language,
-                * contains instances of mw.Map).
-                * @example Set data
-                * <code>
+                * Language-related data (keyed by language, contains instances of mw.Map). Loaded dynamically
+                * (see ResourceLoaderLanguageDataModule in PHP docs, aka mediawiki.language.data module).
+                *
+                * To set data:
+                *
                 *     // Override, extend or create the language data object of 'nl'
                 *     mw.language.setData( 'nl', 'myKey', 'My value' );
                 *
                 *     // Set multiple values at once
-                *     mw.language.setData( 'nl', { 'foo': 'X', 'bar': 'Y' } );
-                * </code>
-                * @example Get GrammarForms data for language 'nl':
-                * <code>
+                *     mw.language.setData( 'nl', { foo: 'X', bar: 'Y' } );
+                *
+                * To get GrammarForms data for language 'nl':
+                *
                 *     var grammarForms = mw.language.getData( 'nl', 'grammarForms' );
-                * </code>
+                *
+                * Possible data keys:
+                *
+                *  - `digitTransformTable`
+                *  - `separatorTransformTable`
+                *  - `grammarForms`
+                *  - `pluralRules`
+                *  - `digitGroupingPattern`
+                *
+                * @property
                 */
                data: {},
 
                /**
-                * Convenience method for retreiving language data by language code and data key,
-                * covering for the potential inexistance of a data object for this langiage.
-                * @param langCode {String}
-                * @param dataKey {String}
-                * @return {mixed} Value stored in the mw.Map (or undefined if there is no map for
-                  the specified langCode).
+                * Convenience method for retrieving language data.
+                *
+                * Structured by language code and data key, covering for the potential inexistence of a
+                * data object for this language.
+                *
+                * @param {string} langCode
+                * @param {string} dataKey
+                * @return {Mixed} Value stored in the mw.Map (or `undefined` if there is no map for the specified
+                *  langCode).
                 */
                getData: function ( langCode, dataKey ) {
-                       var langData = language.data;
+                       var langData = mw.language.data;
                        if ( langData && langData[langCode] instanceof mw.Map ) {
                                return langData[langCode].get( dataKey );
                        }
                },
 
                /**
-                * Convenience method for setting language data by language code and data key.
+                * Convenience method for setting language data.
+                *
                 * Creates the data mw.Map if there isn't one for the specified language already.
                 *
-                * @param langCode {String}
-                * @param dataKey {String|Object} Key or object of key/values.
-                * @param value {mixed} Value for dataKey, ignored if dataKey is an object.
+                * @param {string} langCode
+                * @param {string|Object} dataKey Key or object of key/values.
+                * @param {Mixed} value Value for dataKey, ignored if dataKey is an object.
                 */
                setData: function ( langCode, dataKey, value ) {
-                       var langData = language.data;
+                       var langData = mw.language.data;
                        if ( !( langData[langCode] instanceof mw.Map ) ) {
                                langData[langCode] = new mw.Map();
                        }
@@ -56,6 +76,4 @@
                }
        };
 
-       mw.language = language;
-
-}( mediaWiki, jQuery ) );
+}( mediaWiki ) );