summaryrefslogtreecommitdiff
path: root/resources/mediawiki.language/mediawiki.language.init.js
diff options
context:
space:
mode:
authorPierre Schmitz <pierre@archlinux.de>2013-01-18 16:46:04 +0100
committerPierre Schmitz <pierre@archlinux.de>2013-01-18 16:46:04 +0100
commit63601400e476c6cf43d985f3e7b9864681695ed4 (patch)
treef7846203a952e38aaf66989d0a4702779f549962 /resources/mediawiki.language/mediawiki.language.init.js
parent8ff01378c9e0207f9169b81966a51def645b6a51 (diff)
Update to MediaWiki 1.20.2
this update includes: * adjusted Arch Linux skin * updated FluxBBAuthPlugin * patch for https://bugzilla.wikimedia.org/show_bug.cgi?id=44024
Diffstat (limited to 'resources/mediawiki.language/mediawiki.language.init.js')
-rw-r--r--resources/mediawiki.language/mediawiki.language.init.js61
1 files changed, 61 insertions, 0 deletions
diff --git a/resources/mediawiki.language/mediawiki.language.init.js b/resources/mediawiki.language/mediawiki.language.init.js
new file mode 100644
index 00000000..30307a37
--- /dev/null
+++ b/resources/mediawiki.language/mediawiki.language.init.js
@@ -0,0 +1,61 @@
+/**
+ * Base language object with methods for storing and getting
+ * language data.
+ */
+( function ( mw, $ ) {
+
+ var language = {
+ /**
+ * @var data {Object} Language related data (keyed by language,
+ * contains instances of mw.Map).
+ * @example Set data
+ * <code>
+ * // 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>
+ * var grammarForms = mw.language.getData( 'nl', 'grammarForms' );
+ * </code>
+ */
+ 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).
+ */
+ getData: function ( langCode, dataKey ) {
+ var langData = language.data;
+ if ( langData && langData[langCode] instanceof mw.Map ) {
+ return langData[langCode].get( dataKey );
+ }
+ return undefined;
+ },
+
+ /**
+ * Convenience method for setting language data by language code and data key.
+ * 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.
+ */
+ setData: function ( langCode, dataKey, value ) {
+ var langData = language.data;
+ if ( !( langData[langCode] instanceof mw.Map ) ) {
+ langData[langCode] = new mw.Map();
+ }
+ langData[langCode].set( dataKey, value );
+ }
+ };
+
+ mw.language = language;
+
+}( mediaWiki, jQuery ) );