Merge "Change of Title->exists() to Title->isKnown() for subpage links"
[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 * </code>
16 * @example Get GrammarForms data for language 'nl':
17 * <code>
18 * var grammarForms = mw.language.getData( 'nl', 'grammarForms' );
19 * </code>
20 */
21 data: {},
22
23 /**
24 * Convenience method for retreiving language data by language code and data key,
25 * covering for the potential inexistance of a data object for this langiage.
26 * @param langCode {String}
27 * @param dataKey {String}
28 * @return {mixed} Value stored in the mw.Map (or undefined if there is no map for
29 the specified langCode).
30 */
31 getData: function ( langCode, dataKey ) {
32 var langData = language.data;
33 if ( langData[langCode] instanceof mw.Map ) {
34 return langData[langCode].get( dataKey );
35 }
36 return undefined;
37 },
38
39 /**
40 * Convenience method for setting language data by language code and data key.
41 * Creates a data object if there isn't one for the specified language already.
42 * @param langCode {String}
43 * @param dataKey {String}
44 * @param value {mixed}
45 */
46 setData: function ( langCode, dataKey, value ) {
47 var langData = language.data;
48 if ( !( langData[langCode] instanceof mw.Map ) ) {
49 langData[langCode] = new mw.Map();
50 }
51 langData[langCode].set( dataKey, value );
52 }
53 }
54 mw.language = language;
55
56 } )( jQuery, mediaWiki );