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
This commit is contained in:
parent
cbe1f58fb2
commit
4c6c50f206
4 changed files with 66 additions and 51 deletions
|
|
@ -76,6 +76,6 @@ class ResourceLoaderLanguageDataModule extends ResourceLoaderModule {
|
|||
* @return array
|
||||
*/
|
||||
public function getDependencies() {
|
||||
return array( 'mediawiki.language' );
|
||||
return array( 'mediawiki.language.init' );
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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(
|
||||
|
|
|
|||
56
resources/mediawiki.language/mediawiki.language.init.js
Normal file
56
resources/mediawiki.language/mediawiki.language.init.js
Normal file
|
|
@ -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
|
||||
* <code>
|
||||
* // Override, extend or create the language data object of 'nl'
|
||||
* mw.language.setData( 'nl', 'myKey', 'My value' );
|
||||
* </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[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 );
|
||||
|
|
@ -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
|
||||
* <code>
|
||||
* // Override, extend or create the language data object of 'nl'
|
||||
* mw.language.setData( 'nl', 'myKey', 'My value' );
|
||||
* </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[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 );
|
||||
|
|
|
|||
Loading…
Reference in a new issue