X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=resources%2Fmediawiki%2Fmediawiki.jqueryMsg.js;h=d7d90f429da110804a41f03a4b155d3e1ca2536e;hb=675c2eaa54c82a5ab3934bb183cf16f05f81cb53;hp=e4a9316fdef7b5ac39786c78e205b226170aae44;hpb=7ebd57c73d87f24407ad1ae4cfc034dd91c35364;p=lhc%2Fweb%2Fwiklou.git diff --git a/resources/mediawiki/mediawiki.jqueryMsg.js b/resources/mediawiki/mediawiki.jqueryMsg.js index e4a9316fde..d7d90f429d 100644 --- a/resources/mediawiki/mediawiki.jqueryMsg.js +++ b/resources/mediawiki/mediawiki.jqueryMsg.js @@ -785,13 +785,20 @@ ] ); return result === null ? null : [ result[0], result[2] ]; } + function templateWithOutFirstParameter() { + var result = sequence( [ + templateName, + colon + ] ); + return result === null ? null : [ result[0], '' ]; + } colon = makeStringParser( ':' ); templateContents = choice( [ function () { var res = sequence( [ // templates can have placeholders for dynamic replacement eg: {{PLURAL:$1|one car|$1 cars}} // or no placeholders eg: {{GRAMMAR:genitive|{{SITENAME}}} - choice( [ templateWithReplacement, templateWithOutReplacement ] ), + choice( [ templateWithReplacement, templateWithOutReplacement, templateWithOutFirstParameter ] ), nOrMore( 0, templateParam ) ] ); return res === null ? null : res[0].concat( res[1] ); @@ -1117,23 +1124,33 @@ /** * Transform parsed structure according to gender. - * Usage {{gender:[ gender | mw.user object ] | masculine form|feminine form|neutral form}}. - * The first node is either a string, which can be "male" or "female", - * or a User object (not a username). * - * @param {Array} nodes List of nodes, [ {string|mw.User}, {string}, {string}, {string} ] - * @return {string} selected gender form according to current language + * Usage: {{gender:[ mw.user object | '' | 'male' | 'female' | 'unknown' ] | masculine form | feminine form | neutral form}}. + * + * The first node must be one of: + * - the mw.user object (or a compatible one) + * - an empty string - indicating the current user, same effect as passing the mw.user object + * - a gender string ('male', 'female' or 'unknown') + * + * @param {Array} nodes List of nodes, [ {string|mw.user}, {string}, {string}, {string} ] + * @return {string} Selected gender form according to current language */ gender: function ( nodes ) { - var gender, forms; + var gender, + maybeUser = nodes[0], + forms = nodes.slice( 1 ); - if ( nodes[0] && nodes[0].options instanceof mw.Map ) { - gender = nodes[0].options.get( 'gender' ); - } else { - gender = nodes[0]; + if ( maybeUser === '' ) { + maybeUser = mw.user; } - forms = nodes.slice( 1 ); + // If we are passed a mw.user-like object, check their gender. + // Otherwise, assume the gender string itself was passed . + if ( maybeUser && maybeUser.options instanceof mw.Map ) { + gender = maybeUser.options.get( 'gender' ); + } else { + gender = maybeUser; + } return this.language.gender( gender, forms ); }, @@ -1174,11 +1191,13 @@ return this.language.convertNumber( number, isInteger ); } }; + // Deprecated! don't rely on gM existing. // The window.gM ought not to be required - or if required, not required here. // But moving it to extensions breaks it (?!) // Need to fix plugin so it could do attributes as well, then will be okay to remove this. - window.gM = mw.jqueryMsg.getMessageFunction(); + // @deprecated since 1.23 + mw.log.deprecate( window, 'gM', mw.jqueryMsg.getMessageFunction(), 'Use mw.message( ... ).parse() instead' ); /** * @method