From 4c6c50f206615282589cfb970d1add28c6734267 Mon Sep 17 00:00:00 2001 From: Santhosh Thottingal Date: Mon, 28 May 2012 17:15:43 +0530 Subject: [PATCH] Reverse the dependency for mediawiki.language.data * Previously mediawiki.language.data depended on mediawiki.language, making any module using langauge data having to explicitly define it as a dependency. This is not good. We should abstract the data generation part and for the users of the module. mediawiki.language should take care of having the required data. * So, reversing the dependency so that mediawiki.language depends on mediawiki.language.data. Then a simple dependency declaration with "mediawiki.language" is enough to have associated data available. This supersedes change set I810fb0a5 Change-Id: Iede836bb3e2fd700cb7c58caeebe9ec2e0043dfb --- .../ResourceLoaderLanguageDataModule.php | 2 +- resources/Resources.php | 5 ++ .../mediawiki.language.init.js | 56 +++++++++++++++++++ .../mediawiki.language/mediawiki.language.js | 54 ++---------------- 4 files changed, 66 insertions(+), 51 deletions(-) create mode 100644 resources/mediawiki.language/mediawiki.language.init.js diff --git a/includes/resourceloader/ResourceLoaderLanguageDataModule.php b/includes/resourceloader/ResourceLoaderLanguageDataModule.php index 4eb38f624a..aeeb29189d 100644 --- a/includes/resourceloader/ResourceLoaderLanguageDataModule.php +++ b/includes/resourceloader/ResourceLoaderLanguageDataModule.php @@ -76,6 +76,6 @@ class ResourceLoaderLanguageDataModule extends ResourceLoaderModule { * @return array */ public function getDependencies() { - return array( 'mediawiki.language' ); + return array( 'mediawiki.language.init' ); } } diff --git a/resources/Resources.php b/resources/Resources.php index 34b9be6732..4351758bb6 100644 --- a/resources/Resources.php +++ b/resources/Resources.php @@ -724,6 +724,11 @@ return array( 'uk' => 'resources/mediawiki.language/languages/uk.js', 'wa' => 'resources/mediawiki.language/languages/wa.js', ), + 'dependencies' => array( 'mediawiki.language.data' ), + ), + + 'mediawiki.language.init' => array( + 'scripts' => 'resources/mediawiki.language/mediawiki.language.init.js' ), 'mediawiki.jqueryMsg' => array( diff --git a/resources/mediawiki.language/mediawiki.language.init.js b/resources/mediawiki.language/mediawiki.language.init.js new file mode 100644 index 0000000000..20ed711b34 --- /dev/null +++ b/resources/mediawiki.language/mediawiki.language.init.js @@ -0,0 +1,56 @@ +/** + * 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 + * + * // Override, extend or create the language data object of 'nl' + * mw.language.setData( 'nl', 'myKey', 'My value' ); + * + * @example Get GrammarForms data for language 'nl': + * + * var grammarForms = mw.language.getData( 'nl', 'grammarForms' ); + * + */ + 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[langCode] instanceof mw.Map ) { + return langData[langCode].get( dataKey ); + } + return undefined; + }, + + /** + * Convenience method for setting language data by language code and data key. + * Creates a data object if there isn't one for the specified language already. + * @param langCode {String} + * @param dataKey {String} + * @param value {mixed} + */ + 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; + +} )( jQuery, mediaWiki ); diff --git a/resources/mediawiki.language/mediawiki.language.js b/resources/mediawiki.language/mediawiki.language.js index 67b605cc8a..87a6a8f3d2 100644 --- a/resources/mediawiki.language/mediawiki.language.js +++ b/resources/mediawiki.language/mediawiki.language.js @@ -1,58 +1,12 @@ /** - * Base language object - * * Localized Language support attempts to mirror some of the functionality of - * Language.php in MediaWiki. This object contains methods for loading and - * transforming message text. + * Language.php in MediaWiki. + * This adds methods for transforming message text. */ ( function( $, mw ) { var language = { - /** - * @var data {Object} Language related data (keyed by language, - * contains instances of mw.Map). - * @example Set data - * - * // Override, extend or create the language data object of 'nl' - * mw.language.setData( 'nl', 'myKey', 'My value' ); - * - * @example Get GrammarForms data for language 'nl': - * - * var grammarForms = mw.language.getData( 'nl', 'grammarForms' ); - * - */ - 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[langCode] instanceof mw.Map ) { - return langData[langCode].get( dataKey ); - } - return undefined; - }, - - /** - * Convenience method for setting language data by language code and data key. - * Creates a data object if there isn't one for the specified language already. - * @param langCode {String} - * @param dataKey {String} - * @param value {mixed} - */ - 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 ); - }, /** * Process the PLURAL template substitution * @@ -178,7 +132,7 @@ var language = { * @return {String} */ convertGrammar: function ( word, form ) { - var grammarForms = language.getData( mw.config.get( 'wgContentLanguage' ), 'grammarForms' ); + var grammarForms = mw.language.getData( mw.config.get( 'wgContentLanguage' ), 'grammarForms' ); if ( grammarForms && grammarForms[form] ) { return grammarForms[form][word] || word; } @@ -189,6 +143,6 @@ var language = { 'digitTransformTable': null }; -mw.language = language; +$.extend( mw.language, language ); } )( jQuery, mediaWiki ); -- 2.20.1