2 * Allows to retrieve a specific or a set of
3 * messages to be added to mw.messages and returned
6 * @class mw.Api.plugin.messages
12 $.extend( mw
.Api
.prototype, {
14 * Get a set of messages.
16 * @param {Array} messages Messages to retrieve
17 * @return {jQuery.Promise}
19 getMessages: function ( messages
) {
24 amlang
: mw
.config
.get( 'wgUserLanguage' ),
26 } ).then( function ( data
) {
29 $.each( data
.query
.allmessages
, function ( i
, obj
) {
31 result
[ obj
.name
] = obj
.content
;
40 * Loads a set of mesages and add them to mw.messages.
42 * @param {Array} messages Messages to retrieve
43 * @return {jQuery.Promise}
45 loadMessages: function ( messages
) {
46 return this.getMessages( messages
).then( $.proxy( mw
.messages
, 'set' ) );
50 * Loads a set of mesages and add them to mw.messages. Only messages that are not already known
51 * are loaded. If all messages are known, the returned promise is resolved immediately.
53 * @param {Array} messages Messages to retrieve
54 * @return {jQuery.Promise}
56 loadMessagesIfMissing: function ( messages
) {
57 var missing
= messages
.filter( function ( msg
) {
58 return !mw
.message( msg
).exists();
61 if ( missing
.length
=== 0 ) {
62 return $.Deferred().resolve();
65 return this.getMessages( missing
).then( $.proxy( mw
.messages
, 'set' ) );
71 * @mixins mw.Api.plugin.messages
74 }( mediaWiki
, jQuery
) );