jenkins-bot has submitted this change and it was merged.
Change subject: Export mw.Message's string formatter as mw.format
......................................................................
Export mw.Message's string formatter as mw.format
For very simple string formatting, make mw.Message's `$N` substring
interpolation functionality available publicly as mw.format.
Change-Id: I87f62ac478aab80994caf79d3c89e1215cf088d4
---
M resources/src/mediawiki/mediawiki.js
1 file changed, 22 insertions(+), 5 deletions(-)
Approvals:
Bartosz Dziewoński: Looks good to me, approved
jenkins-bot: Verified
diff --git a/resources/src/mediawiki/mediawiki.js
b/resources/src/mediawiki/mediawiki.js
index 6bf93f4..3d5c19c 100644
--- a/resources/src/mediawiki/mediawiki.js
+++ b/resources/src/mediawiki/mediawiki.js
@@ -43,6 +43,16 @@
}
}
+ // String format helper. Replaces $1, $2 .. $N placeholders with
positional
+ // args. Used by Message.prototype.parser() and exported as mw.format().
+ function format( formatString ) {
+ var parameters = slice.call( arguments, 1 );
+ return formatString.replace( /\$(\d+)/g, function ( str, match
) {
+ var index = parseInt( match, 10 ) - 1;
+ return parameters[index] !== undefined ?
parameters[index] : '$' + match;
+ } );
+ }
+
/* Object constructors */
/**
@@ -297,11 +307,7 @@
* This function will not be called for nonexistent messages.
*/
parser: function () {
- var parameters = this.parameters;
- return this.map.get( this.key ).replace( /\$(\d+)/g,
function ( str, match ) {
- var index = parseInt( match, 10 ) - 1;
- return parameters[index] !== undefined ?
parameters[index] : '$' + match;
- } );
+ return format.apply( null, [ this.map.get( this.key )
].concat( this.parameters ) );
},
/**
@@ -436,6 +442,17 @@
}() ),
/**
+ * Format a string. Replace $1, $2 ... $N with positional
arguments.
+ *
+ * @method
+ * @since 1.25
+ * @param {string} fmt Format string
+ * @param {Mixed...} parameters Substitutions for $N
placeholders.
+ * @return {string} Formatted string
+ */
+ format: format,
+
+ /**
* Track an analytic event.
*
* This method provides a generic means for MediaWiki
JavaScript code to capture state
--
To view, visit https://gerrit.wikimedia.org/r/183063
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I87f62ac478aab80994caf79d3c89e1215cf088d4
Gerrit-PatchSet: 5
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: Ori.livneh <[email protected]>
Gerrit-Reviewer: Bartosz Dziewoński <[email protected]>
Gerrit-Reviewer: Daniel Friesen <[email protected]>
Gerrit-Reviewer: Fomafix
Gerrit-Reviewer: Jack Phoenix <[email protected]>
Gerrit-Reviewer: Krinkle <[email protected]>
Gerrit-Reviewer: MZMcBride <[email protected]>
Gerrit-Reviewer: Ori.livneh <[email protected]>
Gerrit-Reviewer: Ricordisamoa <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits