Nikerabbit has uploaded a new change for review. https://gerrit.wikimedia.org/r/110342
Change subject: Parser functions now format numbers according to page language ...................................................................... Parser functions now format numbers according to page language Also fixed incorrect return value documentation. Bug: 60604 Change-Id: I1e16f20ca79436afe17eba711981b2ae43fed9e1 --- M RELEASE-NOTES-1.23 M includes/parser/CoreParserFunctions.php M includes/parser/Parser.php 3 files changed, 33 insertions(+), 18 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/core refs/changes/42/110342/1 diff --git a/RELEASE-NOTES-1.23 b/RELEASE-NOTES-1.23 index fdefa0b..bcc0987 100644 --- a/RELEASE-NOTES-1.23 +++ b/RELEASE-NOTES-1.23 @@ -143,6 +143,8 @@ list=usercontribs. * list=watchlist now uses the querying user's rights rather than the wlowner's rights when checking whether wlprop=patrol is allowed. +* Core parser functions returning a number now format the number according to + the page content language, not wiki content language. === Languages updated in 1.23 === diff --git a/includes/parser/CoreParserFunctions.php b/includes/parser/CoreParserFunctions.php index 3966b9e..6e3c4b2 100644 --- a/includes/parser/CoreParserFunctions.php +++ b/includes/parser/CoreParserFunctions.php @@ -410,44 +410,57 @@ return $mwObject->matchStartToEnd( $value ); } - static function formatRaw( $num, $raw ) { + static function formatRaw( $num, $raw, Language $language ) { if ( self::matchAgainstMagicword( 'rawsuffix', $raw ) ) { return $num; } else { - global $wgContLang; - return $wgContLang->formatNum( $num ); + return $language->formatNum( $num ); } } static function numberofpages( $parser, $raw = null ) { - return self::formatRaw( SiteStats::pages(), $raw ); + return self::formatRaw( SiteStats::pages(), $raw, $parser->getFunctionLang() ); } static function numberofusers( $parser, $raw = null ) { - return self::formatRaw( SiteStats::users(), $raw ); + return self::formatRaw( SiteStats::users(), $raw, $parser->getFunctionLang() ); } static function numberofactiveusers( $parser, $raw = null ) { - return self::formatRaw( SiteStats::activeUsers(), $raw ); + return self::formatRaw( SiteStats::activeUsers(), $raw, $parser->getFunctionLang() ); } static function numberofarticles( $parser, $raw = null ) { - return self::formatRaw( SiteStats::articles(), $raw ); + return self::formatRaw( SiteStats::articles(), $raw, $parser->getFunctionLang() ); } static function numberoffiles( $parser, $raw = null ) { - return self::formatRaw( SiteStats::images(), $raw ); + return self::formatRaw( SiteStats::images(), $raw, $parser->getFunctionLang() ); } static function numberofadmins( $parser, $raw = null ) { - return self::formatRaw( SiteStats::numberingroup( 'sysop' ), $raw ); + return self::formatRaw( + SiteStats::numberingroup( 'sysop' ), + $raw, + $parser->getFunctionLang() + ); } static function numberofedits( $parser, $raw = null ) { - return self::formatRaw( SiteStats::edits(), $raw ); + return self::formatRaw( SiteStats::edits(), $raw, $parser->getFunctionLang() ); } static function numberofviews( $parser, $raw = null ) { global $wgDisableCounters; - return !$wgDisableCounters ? self::formatRaw( SiteStats::views(), $raw ) : ''; + return !$wgDisableCounters + ? self::formatRaw( SiteStats::views(), $raw, $parser->getFunctionLang() ) + : ''; } static function pagesinnamespace( $parser, $namespace = 0, $raw = null ) { - return self::formatRaw( SiteStats::pagesInNs( intval( $namespace ) ), $raw ); + return self::formatRaw( + SiteStats::pagesInNs( intval( $namespace ) ), + $raw, + $parser->getFunctionLang() + ); } static function numberingroup( $parser, $name = '', $raw = null ) { - return self::formatRaw( SiteStats::numberingroup( strtolower( $name ) ), $raw ); + return self::formatRaw( + SiteStats::numberingroup( strtolower( $name ) ), + $raw, + $parser->getFunctionLang() + ); } /** @@ -646,7 +659,7 @@ $title = Title::makeTitleSafe( NS_CATEGORY, $name ); if ( !$title ) { # invalid title - return self::formatRaw( 0, $raw ); + return self::formatRaw( 0, $raw, $parser->getFunctionLang() ); } $wgContLang->findVariantLink( $name, $title, true ); @@ -672,7 +685,7 @@ } $count = $cache[$name][$type]; - return self::formatRaw( $count, $raw ); + return self::formatRaw( $count, $raw, $parser->getFunctionLang() ); } /** @@ -688,13 +701,13 @@ $title = Title::newFromText( $page ); if ( !is_object( $title ) ) { - return self::formatRaw( 0, $raw ); + return self::formatRaw( 0, $raw, $parser->getFunctionLang() ); } // fetch revision from cache/database and return the value $rev = self::getCachedRevisionObject( $parser, $title ); $length = $rev ? $rev->getSize() : 0; - return self::formatRaw( $length, $raw ); + return self::formatRaw( $length, $raw, $parser->getFunctionLang() ); } /** diff --git a/includes/parser/Parser.php b/includes/parser/Parser.php index 9157619..9ce8910 100644 --- a/includes/parser/Parser.php +++ b/includes/parser/Parser.php @@ -821,7 +821,7 @@ * @since 1.19 * * @throws MWException - * @return Language|null + * @return Language */ public function getTargetLanguage() { $target = $this->mOptions->getTargetLanguage(); -- To view, visit https://gerrit.wikimedia.org/r/110342 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I1e16f20ca79436afe17eba711981b2ae43fed9e1 Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/core Gerrit-Branch: master Gerrit-Owner: Nikerabbit <niklas.laxst...@gmail.com> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits