From c4372dd38a4d109b4f3881ea63b667e33adbe503 Mon Sep 17 00:00:00 2001 From: Pierre Schmitz Date: Thu, 26 Apr 2012 18:23:31 +0200 Subject: Update to MediaWiki 1.18.3 --- extensions/ParserFunctions/Convert.php | 30 ++++++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) (limited to 'extensions/ParserFunctions/Convert.php') diff --git a/extensions/ParserFunctions/Convert.php b/extensions/ParserFunctions/Convert.php index 2ae54d19..cdfd2232 100644 --- a/extensions/ParserFunctions/Convert.php +++ b/extensions/ParserFunctions/Convert.php @@ -54,6 +54,8 @@ class ConvertParser { # The last value converted, which will be used for PLURAL evaluation protected $lastValue; + protected $precision; + /** * Reset the parser so it isn't contaminated by the results of previous parses */ @@ -182,6 +184,19 @@ class ConvertParser { ); } + # If the Language hasn't been deliberately specified, get it from the wiki's + # content language, but run it through a configurable map first + if( $this->language === true ){ + global $wgContLang, $wgPFUnitLanguageVariants; + $code = $wgContLang->getCode(); + if( isset( $wgPFUnitLanguageVariants[$code] ) ){ + $this->language = Language::factory( $wgPFUnitLanguageVariants[$code] ); + } else { + # Ok, actually *do* use $wgContLang + $this->language = true; + } + } + return $this->processString( $string ); } @@ -217,13 +232,13 @@ class ConvertParser { if( $this->raw ){ return trim( $string ); } else { - $unit = $this->targetUnit->getText( + return $this->targetUnit->getText( + $string, $this->lastValue, $this->link, $this->abbreviate, $this->language ); - return $string . $unit; } } @@ -791,13 +806,14 @@ class ConvertUnit { /** * Get the text of the unit + * @param $string String Original text, with the number converted * @param $value String number for PLURAL support * @param $link Bool * @param $abbreviate Bool * @param $language Language * @return String */ - public function getText( $value, $link=false, $abbreviate=false, $language=null ){ + public function getText( $string, $value, $link=false, $abbreviate=false, $language=null ){ global $wgContLang; $value = $wgContLang->formatNum( $value ); @@ -806,7 +822,7 @@ class ConvertUnit { $this->dimension->getName(), $this->unitName, $this->prefix, - $value, $link, $abbreviate, $language + $string, $value, $link, $abbreviate, $language ); } elseif( !wfEmptyMsg( "pfunc-convert-unit-{$this->dimension->getName(true)}-{$this->unitName[0]}-{$this->unitName[1]}" ) ){ @@ -817,7 +833,7 @@ class ConvertUnit { $this->dimension->getName(true), "{$this->unitName[0]}-{$this->unitName[1]}", $this->prefix, # This will probably be rubbish, but it's the wiki users' problem, not ours - $value, $link, $abbreviate, $language + $string, $value, $link, $abbreviate, $language ); } else { @@ -826,12 +842,13 @@ class ConvertUnit { $dimensionNames[0], $this->unitName[0], $this->prefix[0], - $value, $link, $abbreviate, $language + $string, $value, $link, $abbreviate, $language ); $msg2Text = $this->getTextFromMessage( $dimensionNames[1], $this->unitName[1], $this->prefix[1], + '', 1, # Singular for denominator $link, $abbreviate, $language ); @@ -862,6 +879,7 @@ class ConvertUnit { $text = wfMsgExt( "pfunc-convert-unit-$dimension-$unit$abbr", array( 'parsemag', 'language' => $language ), + $string, $number, $prefix ); -- cgit v1.2.3-54-g00ecf