Merge "Deprecate no longer used Skin::getCommonStylePath."
[lhc/web/wiklou.git] / resources / mediawiki.language / mediawiki.language.init.js
1 /**
2 * Base language object with methods for storing and getting
3 * language data.
4 */
5 ( function( $, mw ) {
6
7 var language = {
8 /**
9 * @var data {Object} Language related data (keyed by language,
10 * contains instances of mw.Map).
11 * @example Set data
12 * <code>
13 * // Override, extend or create the language data object of 'nl'
14 * mw.language.setData( 'nl', 'myKey', 'My value' );
15 *
16 * // Set multiple values at once
17 * mw.language.setData( 'nl', { 'foo': 'X', 'bar': 'Y' } );
18 * </code>
19 * @example Get GrammarForms data for language 'nl':
20 * <code>
21 * var grammarForms = mw.language.getData( 'nl', 'grammarForms' );
22 * </code>
23 */
24 data: {},
25
26 /**
27 * Convenience method for retreiving language data by language code and data key,
28 * covering for the potential inexistance of a data object for this langiage.
29 * @param langCode {String}
30 * @param dataKey {String}
31 * @return {mixed} Value stored in the mw.Map (or undefined if there is no map for
32 the specified langCode).
33 */
34 getData: function ( langCode, dataKey ) {
35 var langData = language.data;
36 if ( langData[langCode] instanceof mw.Map ) {
37 return langData[langCode].get( dataKey );
38 }
39 return undefined;
40 },
41
42 /**
43 * Convenience method for setting language data by language code and data key.
44 * Creates the data mw.Map if there isn't one for the specified language already.
45 *
46 * @param langCode {String}
47 * @param dataKey {String|Object} Key or object of key/values.
48 * @param value {mixed} Value for dataKey, ignored if dataKey is an object.
49 */
50 setData: function ( langCode, dataKey, value ) {
51 var langData = language.data;
52 if ( !( langData[langCode] instanceof mw.Map ) ) {
53 langData[langCode] = new mw.Map();
54 }
55 langData[langCode].set( dataKey, value );
56 }
57 };
58
59 mw.language = language;
60
61 } )( jQuery, mediaWiki );