* Cleaned up formatNum usage in langfiles
authorNiklas Laxström <nikerabbit@users.mediawiki.org>
Sat, 29 Apr 2006 20:07:14 +0000 (20:07 +0000)
committerNiklas Laxström <nikerabbit@users.mediawiki.org>
Sat, 29 Apr 2006 20:07:14 +0000 (20:07 +0000)
59 files changed:
RELEASE-NOTES
languages/Language.php
languages/LanguageAf.php
languages/LanguageAr.php
languages/LanguageAs.php
languages/LanguageAz.php
languages/LanguageBe.php
languages/LanguageBg.php
languages/LanguageBn.php
languages/LanguageBo.php
languages/LanguageBr.php
languages/LanguageBs.php
languages/LanguageCa.php
languages/LanguageCs.php
languages/LanguageDa.php
languages/LanguageDe.php
languages/LanguageDz.php
languages/LanguageEl.php
languages/LanguageEo.php
languages/LanguageEs.php
languages/LanguageEt.php
languages/LanguageFa.php
languages/LanguageFi.php
languages/LanguageFr.php
languages/LanguageFur.php
languages/LanguageFy.php
languages/LanguageGu.php
languages/LanguageHi.php
languages/LanguageHr.php
languages/LanguageHu.php
languages/LanguageId.php
languages/LanguageIs.php
languages/LanguageIt.php
languages/LanguageKm.php
languages/LanguageKn.php
languages/LanguageLo.php
languages/LanguageLt.php
languages/LanguageMl.php
languages/LanguageNds.php
languages/LanguageNl.php
languages/LanguageNn.php
languages/LanguageNo.php
languages/LanguageOr.php
languages/LanguageOs.php
languages/LanguagePa.php
languages/LanguagePl.php
languages/LanguagePt.php
languages/LanguageRu.php
languages/LanguageSk.php
languages/LanguageSl.php
languages/LanguageSq.php
languages/LanguageSr_ec.php
languages/LanguageSr_el.php
languages/LanguageSv.php
languages/LanguageTe.php
languages/LanguageTr.php
languages/LanguageUdm.php
languages/LanguageUk.php
languages/LanguageVi.php

index 8e4717a..299baa1 100644 (file)
@@ -144,6 +144,7 @@ it from source control: http://www.mediawiki.org/wiki/Download_from_SVN
 * (bug 5761) Project talk namespace broken in Xal, Os, Udm and Cv
 * Rewrite reassignEdits script to be more efficient; support optional updates to
   recent changes table; add reporting and silent modes
+* Cleaned up formatNum usage in langfiles
 
 == Compatibility ==
 
index 74b1eff..5848915 100644 (file)
@@ -892,10 +892,7 @@ class Language {
                return "<em>$text</em>";
        }
 
-       /**
-        * This function enables formatting of numbers, it should only come
-        * into effect when the $wgTranslateNumerals variable is TRUE.
-        *
+        /**
         * Normally we output all numbers in plain en_US style, that is
         * 293,291.235 for twohundredninetythreethousand-twohundredninetyone
         * point twohundredthirtyfive. However this is not sutable for all
@@ -916,11 +913,23 @@ class Language {
         * @public
         * @param mixed $number the string to be formatted, should be an integer or
         *        a floating point number.
-        * @param bool $year are we being passed a year? (turns off commafication)
-        * @return mixed whatever we're fed if it's a year, a string otherwise.
+        * @param bool $commafy Set to false for special numbers like dates
+        * @return string
         */
-       function formatNum( $number, $year = false ) {
-               return $year ? $number : $this->commafy($number);
+       function formatNum( $number, $commafy = false ) {
+               global $wgTranslateNumerals;
+               if (!$commafy) {
+                       $number = $this->commafy($number);
+                       $s = $this->separatorTransformTable();
+                       if (!is_null($s)) { $number = strtr($number, $s); }
+               }
+
+               if ($wgTranslateNumerals) {
+                       $s = $this->digitTransformTable();
+                       if (!is_null($s)) { $number = strtr($number, $s); }
+               }
+
+               return $number;
        }
 
        /**
@@ -933,6 +942,15 @@ class Language {
                return strrev((string)preg_replace('/(\d{3})(?=\d)(?!\d*\.)/','$1,',strrev($_)));
        }
 
+       function digitTransformTable() {
+               return null;
+       }
+
+       function separatorTransformTable() {
+               return null;
+       }
+
+
        /**
         * For the credit list in includes/Credits.php (action=credits)
         *
index 8e12961..d7822c2 100644 (file)
@@ -69,18 +69,11 @@ class LanguageAf extends LanguageUtf8 {
                }
        }
 
-       function formatNum( $number, $year = false ) {
-               # South Africa uses space for thousands and comma for decimal
-               # Reference: AWS Reël 7.4 p. 52, 2002 edition
-               # glibc is wrong in this respect in some versions
-               if ( $year ) {
-                       return $number;
-               } else {
-                       return strtr($this->commafy($number), array(
-                               '.' => ',',
-                               ',' => "\xc2\xa0" // non-breaking space
-                       ));
-               }
+       # South Africa uses space for thousands and comma for decimal
+       # Reference: AWS Reël 7.4 p. 52, 2002 edition
+       # glibc is wrong in this respect in some versions
+       function separatorTransformTable() {
+               return array(',' => "\xc2\xa0", '.' => ',' );
        }
 
 }
index 51f1870..22a8650 100644 (file)
@@ -97,20 +97,22 @@ if (!$wgCachedMessageArrays) {
 }
 
 class LanguageAr extends LanguageUtf8 {
-       var $digitTransTable = array(
-               '0' => '٠',
-               '1' => '١',
-               '2' => '٢',
-               '3' => '٣',
-               '4' => '٤',
-               '5' => '٥',
-               '6' => '٦',
-               '7' => '٧',
-               '8' => '٨',
-               '9' => '٩',
-               '.' => '٫',
-               ',' => '٬'
-       );
+       function digitTransformTable() {
+               return array(
+                       '0' => '٠',
+                       '1' => '١',
+                       '2' => '٢',
+                       '3' => '٣',
+                       '4' => '٤',
+                       '5' => '٥',
+                       '6' => '٦',
+                       '7' => '٧',
+                       '8' => '٨',
+                       '9' => '٩',
+                       '.' => '٫', // wrong table?
+                       ',' => '٬'
+               );
+       }
 
        function getNamespaces() {
                global $wgNamespaceNamesAr;
@@ -159,14 +161,5 @@ class LanguageAr extends LanguageUtf8 {
                }
        }
 
-       function formatNum( $number ) {
-               global $wgTranslateNumerals;
-               if( $wgTranslateNumerals ) {
-                       return strtr( $number, $this->digitTransTable );
-               } else {
-                       return $number;
-               }
-       }
 }
-
 ?>
index 411a2a1..3d977ab 100644 (file)
@@ -8,27 +8,20 @@
 require_once( 'LanguageUtf8.php' );
 
 class LanguageAs extends LanguageUtf8 {
-       var $digitTransTable = array(
-               '0' => '০',
-               '1' => '১',
-               '2' => '২',
-               '3' => '৩',
-               '4' => '৪',
-               '5' => '৫',
-               '6' => '৬',
-               '7' => '৭',
-               '8' => '৮',
-               '9' => '৯'
-       );
-
-       function formatNum( $number ) {
-               global $wgTranslateNumerals;
-               if( $wgTranslateNumerals ) {
-                       return strtr( $number, $this->digitTransTable );
-               } else {
-                       return $number;
-               }
+       function digitTransformTable() {
+               return array(
+                       '0' => '০',
+                       '1' => '১',
+                       '2' => '২',
+                       '3' => '৩',
+                       '4' => '৪',
+                       '5' => '৫',
+                       '6' => '৬',
+                       '7' => '৭',
+                       '8' => '৮',
+                       '9' => '৯'
+               );
        }
-}
 
+}
 ?>
index 028a891..4b40863 100644 (file)
@@ -43,15 +43,14 @@ if (!$wgCachedMessageArrays) {
 }
 
 
-
 class LanguageAz extends LanguageUtf8 {
        function getNamespaces() {
                global $wgNamespaceNamesAz;
                return $wgNamespaceNamesAz;
        }
 
-       function formatNum( $number, $year = false ) {
-               return $year ? $number : strtr($this->commafy($number), '.,', ',.' );
+       function separatorTransformTable() {
+               return array(',' => '.', '.' => ',' );
        }
 
        function ucfirst ( $string ) {
@@ -77,6 +76,4 @@ class LanguageAz extends LanguageUtf8 {
        }
 
 }
-
-
 ?>
\ No newline at end of file
index c5387ee..33f1dfa 100644 (file)
@@ -169,8 +169,8 @@ class LanguageBe extends LanguageUtf8 {
                }
        }
 
-       function formatNum( $number, $year = false ) {
-               return $year ? $number : strtr($this->commafy($number), '.,', ',.' );
+       function separatorTransformTable() {
+               return array(',' => '.', '.' => ',' );
        }
 
        function convertPlural( $count, $wordform1, $wordform2, $wordform3) {
@@ -188,4 +188,5 @@ class LanguageBe extends LanguageUtf8 {
                }
        }
 }
+
 ?>
index 5d35f62..da60098 100644 (file)
@@ -173,26 +173,21 @@ class LanguageBg extends LanguageUtf8 {
        }
 
 
-       /**
-        * Translation table for numbers
-        * @var array
-        */
-       var $digitTransTable = array(
-               ',' => "\xC2\xA0", // @bug 2749
-               '.' => ','
-       );
+       function separatorTransformTable() {
+               return array(',' => "\xc2\xa0", '.' => ',' );
+       }
 
        /**
         * ISO number formatting: 123 456 789,99.
         * Avoid tripple grouping by numbers with whole part up to 4 digits.
-        * @param string $number
-        * @return string
         */
-       function formatNum( $number, $year = false ) {
-               if ( preg_match('/^\d{5}/', $number) ) {
-                       $number = $this->commafy($number);
+       function commafy($_) {
+               if (!preg_match('/^\d{1,4}$/',$_)) {
+                       return strrev((string)preg_replace('/(\d{3})(?=\d)(?!\d*\.)/','$1,',strrev($_)));
+               } else {
+                       return $_;
                }
-               return strtr($number, $this->digitTransTable);
        }
+
 }
 ?>
index 1e5b21f..30f3a6f 100644 (file)
@@ -47,31 +47,25 @@ class LanguageBn extends LanguageUtf8 {
                return $wgDateFormatsBn;
        }
 
-       var $digitTransTable = array(
-               '0' => '০',
-               '1' => '১',
-               '2' => '২',
-               '3' => '৩',
-               '4' => '৪',
-               '5' => '৫',
-               '6' => '৬',
-               '7' => '৭',
-               '8' => '৮',
-               '9' => '৯'
-       );
-
-       function formatNum( $number ) {
-               global $wgTranslateNumerals;
-               if( $wgTranslateNumerals ) {
-                        return strtr( $number, $this->digitTransTable );
-               } else {
-                       return $number;
-               }
+       function digitTransformTable() {
+               return array(
+                       '0' => '০',
+                       '1' => '১',
+                       '2' => '২',
+                       '3' => '৩',
+                       '4' => '৪',
+                       '5' => '৫',
+                       '6' => '৬',
+                       '7' => '৭',
+                       '8' => '৮',
+                       '9' => '৯'
+               );
        }
 
        function timeanddate( $ts, $adj = false ) {
                return $this->formatNum( Language::timeanddate( $ts, $adj ) );
        }
+
 }
 
 ?>
index 999c2a6..e61901f 100644 (file)
 require_once( 'LanguageUtf8.php' );
 
 class LanguageBo extends LanguageUtf8 {
-       var $digitTransTable = array(
-               '0' => '༠',
-               '1' => '༡',
-               '2' => '༢',
-               '3' => '༣',
-               '4' => '༤',
-               '5' => '༥',
-               '6' => '༦',
-               '7' => '༧',
-               '8' => '༨',
-               '9' => '༩'
-       );
-
-       function formatNum( $number ) {
-               global $wgTranslateNumerals;
-               if( $wgTranslateNumerals ) {
-                       return strtr( $number, $this->digitTransTable );
-               } else {
-                       return $number;
-               }
+       function digitTransformTable() {
+               return array(
+                       '0' => '༠',
+                       '1' => '༡',
+                       '2' => '༢',
+                       '3' => '༣',
+                       '4' => '༤',
+                       '5' => '༥',
+                       '6' => '༦',
+                       '7' => '༧',
+                       '8' => '༨',
+                       '9' => '༩'
+               );
        }
+
 }
 
 ?>
index f23884e..52e2586 100644 (file)
@@ -108,13 +108,8 @@ class LanguageBr extends LanguageUtf8 {
                return $this->date( $ts, $adj ) . " da " . $this->time( $ts, $adj );
        }
 
-       var $digitTransTable = array(
-               ',' => "\xc2\xa0", // @bug 2749
-               '.' => ','
-       );
-
-       function formatNum( $number, $year = false ) {
-               return $year ? $number : strtr($this->commafy($number), $this->digitTransTable );
+       function separatorTransformTable() {
+               return array(',' => "\xc2\xa0", '.' => ',' );
        }
 
        function getMessage( $key ) {
index 3415a83..70414ed 100644 (file)
@@ -160,8 +160,8 @@ class LanguageBs extends LanguageUtf8 {
         return "iso-8859-2";
     }
 
-    function formatNum( $number, $year = false ) {
-        return $year ? $number : strtr($this->commafy($number), '.,', ',.' );
+    function separatorTransformTable() {
+        return array(',' => '.', '.' => ',' );
     }
 
     # Convert from the nominative form of a noun to some other case
index 2049fbd..a6ad1ff 100644 (file)
@@ -77,8 +77,8 @@ class LanguageCa extends LanguageUtf8 {
                }
        }
 
-       function formatNum( $number, $year = false ) {
-               return $year ? $number : strtr($this->commafy($number), '.,', ',.' );
+       function separatorTransformTable() {
+               return array(',' => '.', '.' => ',' );
        }
 
 }
index 8238081..9d94d43 100644 (file)
@@ -186,13 +186,8 @@ class LanguageCs extends LanguageUtf8 {
                return $s;
        }
 
-       var $digitTransTable = array(
-                       ',' => "\xc2\xa0", // @bug 2749
-                       '.' => ','
-       );
-
-       function formatNum( $number, $year = false ) {
-               return $year ? $number : strtr($this->commafy($number), $this->digitTransTable);
+       function separatorTransformTable() {
+               return array(',' => "\xc2\xa0", '.' => ',' );
        }
 
        # Grammatical transformations, needed for inflected languages
index 776588f..2639106 100644 (file)
@@ -102,8 +102,8 @@ class LanguageDa extends LanguageUtf8 {
                }
        }
 
-       function formatNum( $number, $year = false ) {
-               return $year ? $number : strtr($this->commafy($number), '.,', ',.' );
+       function separatorTransformTable() {
+               return array(',' => '.', '.' => ',' );
        }
 
 }
index 8be509f..8f4e89b 100644 (file)
@@ -100,8 +100,8 @@ class LanguageDe extends LanguageUtf8 {
                }
        }
 
-       function formatNum( $number, $year = false ) {
-               return $year ? $number : strtr($this->commafy($number), '.,', ',.' );
+       function separatorTransformTable() {
+               return array(',' => '.', '.' => ',' );
        }
 
 }
index 581faf3..a4d8b3e 100644 (file)
 require_once( 'LanguageUtf8.php' );
 
 class LanguageDz extends LanguageUtf8 {
-       var $digitTransTable = array(
-               '0' => '༠',
-               '1' => '༡',
-               '2' => '༢',
-               '3' => '༣',
-               '4' => '༤',
-               '5' => '༥',
-               '6' => '༦',
-               '7' => '༧',
-               '8' => '༨',
-               '9' => '༩'
-       );
-
-       function formatNum( $number ) {
-               global $wgTranslateNumerals;
-               if( $wgTranslateNumerals ) {
-                       return strtr( $number, $this->digitTransTable );
-               } else {
-                       return $number;
-               }
+       function digitTransformTable() {
+               return array(
+                       '0' => '༠',
+                       '1' => '༡',
+                       '2' => '༢',
+                       '3' => '༣',
+                       '4' => '༤',
+                       '5' => '༥',
+                       '6' => '༦',
+                       '7' => '༧',
+                       '8' => '༨',
+                       '9' => '༩'
+               );
        }
+
 }
 
 ?>
index 28c0208..a05c91f 100644 (file)
@@ -73,9 +73,10 @@ class LanguageEl extends LanguageUtf8 {
                return 'iso-8859-7';
        }
 
-       function formatNum( $number, $year = false ) {
-               return $year ? $number : strtr($this->commafy( $number ), '.,', ',.' );
+       function separatorTransformTable() {
+               return array(',' => '.', '.' => ',' );
        }
+
 }
 
 ?>
index 20890a9..845915b 100644 (file)
@@ -178,9 +178,10 @@ class LanguageEo extends LanguageUtf8 {
                $wgEditEncoding = '';
        }
 
-       function formatNum( $number, $year = false ) {
-               return $year ? $number : strtr($this->commafy($number), '.,', ', ' );
+       function separatorTransformTable() {
+               return array(',' => ' ', '.' => ',' );
        }
+
 }
 
 ?>
index c9bf688..50a2f6f 100644 (file)
@@ -80,9 +80,10 @@ class LanguageEs extends LanguageUtf8 {
                }
        }
 
-       function formatNum( $number, $year = false ) {
-               return $year ? $number : strtr($this->commafy($number), '.,', ',.' );
+       function separatorTransformTable() {
+               return array(',' => '.', '.' => ',' );
        }
+
 }
 
 ?>
index e793887..2c2ac40 100644 (file)
@@ -151,8 +151,8 @@ class LanguageEt extends LanguageUtf8 {
         * Estonian numeric formatting is 123 456,78.
         * Notice that the space is non-breaking.
         */
-       function formatNum( $number, $year = false ) {
-               return $year ? $number : strtr($this->commafy($number), '.,', ", " );
+       function separatorTransformTable() {
+               return array(',' => "\xc2\xa0", '.' => ',' );
        }
 
        /**
index f5cb7a4..53392ec 100644 (file)
@@ -55,21 +55,23 @@ if (!$wgCachedMessageArrays) {
 #--------------------------------------------------------------------------
 
 class LanguageFa extends LanguageUtf8 {
-       var $digitTransTable = array(
-               "0" => "۰",
-               "1" => "۱",
-               "2" => "۲",
-               "3" => "۳",
-               "4" => "۴",
-               "5" => "۵",
-               "6" => "۶",
-               "7" => "۷",
-               "8" => "۸",
-               "9" => "۹",
-               "%" => "٪",
-               "." => "٫",
-               "," => "٬"
-       );
+       function digitTransformTable() {
+               return array(
+                       "0" => "۰",
+                       "1" => "۱",
+                       "2" => "۲",
+                       "3" => "۳",
+                       "4" => "۴",
+                       "5" => "۵",
+                       "6" => "۶",
+                       "7" => "۷",
+                       "8" => "۸",
+                       "9" => "۹",
+                       "%" => "٪",
+                       "." => "٫", // wrong table?
+                       "," => "٬"
+               );
+       }
 
        function getDefaultUserOptions() {
                $opt = Language::getDefaultUserOptions();
@@ -104,15 +106,6 @@ class LanguageFa extends LanguageUtf8 {
        # For right-to-left language support
        function isRTL() { return true; }
 
-       function formatNum( $number ) {
-               global $wgTranslateNumerals;
-               if( $wgTranslateNumerals ) {
-                       return strtr( $number, $this->digitTransTable );
-               } else {
-                       return $number;
-               }
-       }
-
        function timeanddate( $ts, $adj = false ) {
                return $this->formatNum( Language::timeanddate( $ts, $adj ) );
        }
index ebd682b..957dc00 100644 (file)
@@ -175,10 +175,9 @@ class LanguageFi extends LanguageUtf8 {
 
        /**
         * Finnish numeric formatting is 123 456,78.
-        * Notice that the space is non-breaking.
         */
-       function formatNum( $number, $year = false ) {
-               return $year ? $number : strtr($this->commafy($number), '.,', ", " );
+       function separatorTransformTable() {
+               return array(',' => "\xc2\xa0", '.' => ',' );
        }
 
        /**
index 326d0c3..eb61929 100644 (file)
@@ -92,13 +92,8 @@ class LanguageFr extends LanguageUtf8 {
                return " à ";
        }
 
-       var $digitTransTable = array(
-               ',' => "\xc2\xa0", // @bug 2749
-               '.' => ','
-       );
-
-       function formatNum( $number, $year = false ) {
-               return !$year ? strtr($number, $this->digitTransTable ) : $number;
+       function separatorTransformTable() {
+               return array(',' => "\xc2\xa0", '.' => ',' );
        }
 
        function getMessage( $key ) {
index 7d7cea8..f58b205 100644 (file)
@@ -77,16 +77,10 @@ class LanguageFur extends LanguageUtf8 {
                return $this->date( $ts, $adj ) . " a lis " . $this->time( $ts, $adj );
        }
 
-       var $digitTransTable = array(
-               ',' => "\xc2\xa0", // @bug 2749
-               '.' => ','
-       );
-
-       function formatNum( $number, $year = false ) {
-               return $year? $number : strtr($this->commafy($number), $this->digitTransTable);
+       function separatorTransformTable() {
+               return array(',' => "\xc2\xa0", '.' => ',' );
        }
 
-
        function getMessage( $key ) {
                global $wgAllMessagesFur;
                if( isset( $wgAllMessagesFur[$key] ) ) {
index 39e5032..08d90ea 100644 (file)
@@ -87,14 +87,8 @@ class LanguageFy extends LanguageUtf8 {
                return $wgSkinNamesFy;
        }
 
-
-       var $digitTransTable = array(
-               ',' => '.',
-               '.' => ','
-       );
-
-       function formatNum( $number, $year = false ) {
-               return !$year ? strtr($this->commafy($number), $this->digitTransTable ) : $number;
+       function separatorTransformTable() {
+               return array(',' => '.', '.' => ',' );
        }
 
        function getDateFormats() {
index 3e1c93f..8e20e07 100644 (file)
@@ -7,27 +7,21 @@
 require_once( 'LanguageUtf8.php' );
 
 class LanguageGu extends LanguageUtf8 {
-       var $digitTransTable = array(
-               '0' => '૦',
-               '1' => '૧',
-               '2' => '૨',
-               '3' => '૩',
-               '4' => '૪',
-               '5' => '૫',
-               '6' => '૬',
-               '7' => '૭',
-               '8' => '૮',
-               '9' => '૯'
-       );
-
-       function formatNum( $number ) {
-               global $wgTranslateNumerals;
-               if( $wgTranslateNumerals ) {
-                       return strtr( $number, $this->digitTransTable );
-               } else {
-                       return $number;
-               }
+       function digitTransformTable() {
+               return array(
+                       '0' => '૦',
+                       '1' => '૧',
+                       '2' => '૨',
+                       '3' => '૩',
+                       '4' => '૪',
+                       '5' => '૫',
+                       '6' => '૬',
+                       '7' => '૭',
+                       '8' => '૮',
+                       '9' => '૯'
+               );
        }
+
 }
 
 ?>
index 5a1a4f6..9f55bc4 100644 (file)
@@ -31,18 +31,20 @@ if (!$wgCachedMessageArrays) {
 
 
 class LanguageHi extends LanguageUtf8 {
-       var $digitTransTable = array(
-               "0" => "०",
-               "1" => "१",
-               "2" => "२",
-               "3" => "३",
-               "4" => "४",
-               "5" => "५",
-               "6" => "६",
-               "7" => "७",
-               "8" => "८",
-               "9" => "९"
-       );
+       function digitTransformTable() {
+               return array(
+                       "0" => "०",
+                       "1" => "१",
+                       "2" => "२",
+                       "3" => "३",
+                       "4" => "४",
+                       "5" => "५",
+                       "6" => "६",
+                       "7" => "७",
+                       "8" => "८",
+                       "9" => "९"
+               );
+       }
 
        function getNamespaces() {
                global $wgNamespaceNamesHi;
@@ -57,14 +59,6 @@ class LanguageHi extends LanguageUtf8 {
                        return parent::getMessage($key);
        }
 
-       function formatNum( $number ) {
-               global $wgTranslateNumerals;
-               if( $wgTranslateNumerals ) {
-                       return strtr( $number, $this->digitTransTable );
-               } else {
-                       return $number;
-               }
-       }
        function timeanddate( $ts, $adj = false ) {
                return $this->formatNum( Language::timeanddate( $ts, $adj ) );
        }
index 42028f1..a996c5e 100644 (file)
@@ -94,9 +94,9 @@ class LanguageHr extends LanguageUtf8 {
                }
        }
 
-       function formatNum( $number, $year = false ) {
-               return $year ? $number : strtr($this->commafy($number), '.,', ',.' );
-       }
+       function separatorTransformTable() {
+               return array(',' => '.', '.' => ',' );
+       }
 
        function fallback8bitEncoding() {
                return "iso-8859-2";
index 377ecfa..277998d 100644 (file)
@@ -123,8 +123,8 @@ class LanguageHu extends LanguageUtf8 {
                return $this->date( $ts, $adj ) . ", " . $this->time( $ts, $adj );
        }
 
-       function formatNum( $number, $year = false ) {
-               return !$year ? strtr($this->commafy($number), array( '.' => ',', ',' => "\xc2\xa0" )) : $number;
+       function separatorTransformTable() {
+               return array(',' => "\xc2\xa0", '.' => ',' );
        }
 
 }
index 58c95ea..d0b5a8c 100644 (file)
@@ -113,8 +113,8 @@ class LanguageId extends LanguageUtf8 {
                }
        }
 
-       function formatNum( $number, $year = false ) {
-               return !$year ? strtr($this->commafy($number), '.,', ',.' ) : $number;
+       function separatorTransformTable() {
+               return array(',' => '.', '.' => ',' );
        }
 
 }
index 7ad4af3..739ddb9 100644 (file)
@@ -158,8 +158,8 @@ class LanguageIs extends LanguageUtf8 {
         * The Icelandic number style uses dots where English would use commas
         * and commas where English would use dots, e.g. 201.511,17 not 201,511.17
         */
-       function formatNum( $number, $year = false ) {
-               return $year ? $number : strtr($this->commafy($number), '.,', ',.' );
+       function separatorTransformTable() {
+               return array(',' => '.', '.' => ',' );
        }
 
        function linkPrefixExtension() {
index 4d005de..4058343 100644 (file)
@@ -63,8 +63,8 @@ class LanguageIt extends LanguageUtf8 {
        /**
         * Italian numeric format is 201.511,17
         */
-       function formatNum( $number, $year = false ) {
-               return $year ? $number : strtr($this->commafy($number), '.,', ',.' );
+       function separatorTransformTable() {
+               return array(',' => '.', '.' => ',' );
        }
 
 }
index 429a501..0c5f55b 100644 (file)
 require_once( 'LanguageUtf8.php' );
 
 class LanguageKm extends LanguageUtf8 {
-       var $digitTransTable = array(
-               '0' => '០',
-               '1' => '១',
-               '2' => '២',
-               '3' => '៣',
-               '4' => '៤',
-               '5' => '៥',
-               '6' => '៦',
-               '7' => '៧',
-               '8' => '៨',
-               '9' => '៩'
-       );
-
-       function formatNum( $number ) {
-               global $wgTranslateNumerals;
-               if( $wgTranslateNumerals ) {
-                       return strtr( $number, $this->digitTransTable );
-               } else {
-                       return $number;
-               }
+       function digitTransformTable() {
+               return array(
+                       '0' => '០',
+                       '1' => '១',
+                       '2' => '២',
+                       '3' => '៣',
+                       '4' => '៤',
+                       '5' => '៥',
+                       '6' => '៦',
+                       '7' => '៧',
+                       '8' => '៨',
+                       '9' => '៩'
+               );
        }
+
 }
 
 ?>
index b01e5f0..432bf34 100644 (file)
@@ -21,18 +21,20 @@ if (!$wgCachedMessageArrays) {
 }
 
 class LanguageKn extends LanguageUtf8 {
-       var $digitTransTable = array(
-               '0' => '೦',
-               '1' => '೧',
-               '2' => '೨',
-               '3' => '೩',
-               '4' => '೪',
-               '5' => '೫',
-               '6' => '೬',
-               '7' => '೭',
-               '8' => '೮',
-               '9' => '೯'
-       );
+       function digitTransformTable() {
+               return array(
+                       '0' => '೦',
+                       '1' => '೧',
+                       '2' => '೨',
+                       '3' => '೩',
+                       '4' => '೪',
+                       '5' => '೫',
+                       '6' => '೬',
+                       '7' => '೭',
+                       '8' => '೮',
+                       '9' => '೯'
+               );
+       }
 
        function getMessage( $key ) {
                global $wgAllMessagesKn;
@@ -42,14 +44,6 @@ class LanguageKn extends LanguageUtf8 {
                        return parent::getMessage($key);
        }
 
-       function formatNum( $number ) {
-               global $wgTranslateNumerals;
-               if( $wgTranslateNumerals ) {
-                       return strtr( $number, $this->digitTransTable );
-               } else {
-                       return $number;
-               }
-       }
 }
 
 ?>
index ff8b07b..7fd20ca 100644 (file)
 require_once( 'LanguageUtf8.php' );
 
 class LanguageLo extends LanguageUtf8 {
-       var $digitTransTable = array(
-               '0' => '໐',
-               '1' => '໑',
-               '2' => '໒',
-               '3' => '໓',
-               '4' => '໔',
-               '5' => '໕',
-               '6' => '໖',
-               '7' => '໗',
-               '8' => '໘',
-               '9' => '໙'
-       );
-
-       function formatNum( $number ) {
-               global $wgTranslateNumerals;
-               if( $wgTranslateNumerals ) {
-                       return strtr( $number, $this->digitTransTable );
-               } else {
-                       return $number;
-               }
+       function digitTransformTable() {
+               return array(
+                       '0' => '໐',
+                       '1' => '໑',
+                       '2' => '໒',
+                       '3' => '໓',
+                       '4' => '໔',
+                       '5' => '໕',
+                       '6' => '໖',
+                       '7' => '໗',
+                       '8' => '໘',
+                       '9' => '໙'
+               );
        }
+
 }
 
 ?>
index d5f6f35..be60853 100644 (file)
@@ -81,8 +81,8 @@ class LanguageLt extends LanguageUtf8  {
                return $wgAllMessagesLt;
        }
 
-       function formatNum( $number, $year = false ) {
-               return $year ? $number : strtr($this->commafy($number), '.,', ', ' );
+       function separatorTransformTable() {
+               return array(',' => ' ', '.' => ',' );
        }
 
 }
index edf8df3..3f430c0 100644 (file)
 require_once( 'LanguageUtf8.php' );
 
 class LanguageMl extends LanguageUtf8 {
-       var $digitTransTable = array(
-               '0' => '൦',
-               '1' => '൧',
-               '2' => '൨',
-               '3' => '൩',
-               '4' => '൪',
-               '5' => '൫',
-               '6' => '൬',
-               '7' => '൭',
-               '8' => '൮',
-               '9' => '൯'
-       );
-
-       function formatNum( $number ) {
-               global $wgTranslateNumerals;
-               if( $wgTranslateNumerals ) {
-                       return strtr( $number, $this->digitTransTable );
-               } else {
-                       return $number;
-               }
+       function digitTransformTable() {
+               return array(
+                       '0' => '൦',
+                       '1' => '൧',
+                       '2' => '൨',
+                       '3' => '൩',
+                       '4' => '൪',
+                       '5' => '൫',
+                       '6' => '൬',
+                       '7' => '൭',
+                       '8' => '൮',
+                       '9' => '൯'
+               );
        }
+
 }
 
 ?>
index 5924062..022bc69 100644 (file)
@@ -134,9 +134,9 @@ class LanguageNds extends LanguageUtf8 {
                }
        }
 
-       function formatNum( $number, $year = false ) {
-               return $year ? $number : strtr($this->commafy($number), '.,', ',.' );
+       function separatorTransformTable() {
+               return array(',' => '.', '.' => ',' );
        }
-}
 
+}
 ?>
index f305c39..9cf35e1 100644 (file)
@@ -83,9 +83,9 @@ class LanguageNl extends LanguageUtf8 {
                }
        }
 
-       function formatNum( $number, $year = false ) {
-               return $year ? $number : strtr( $this->commafy( $number ), '.,', ',.' );
+       function separatorTransformTable() {
+               return array(',' => '.', '.' => ',' );
        }
-}
 
+}
 ?>
index a2b5321..174aa74 100644 (file)
@@ -204,13 +204,11 @@ class LanguageNn extends LanguageUtf8 {
 
        }
 
-       var $digitTransTable = array(
-               ',' => "\xc2\xa0",
-               '.' => ','
-       );
-
-       function formatNum( $number, $year = false ) {
-               return $year ? $number : strtr($this->commafy($number), $this->digitTransTable);
+       function separatorTransformTable() {
+               return array(
+                       ',' => "\xc2\xa0",
+                       '.' => ','
+               );
        }
 
        function getMessage( $key ) {
index 5126599..115c7e3 100644 (file)
@@ -92,8 +92,8 @@ class LanguageNo extends LanguageUtf8 {
                }
        }
 
-       function formatNum( $number, $year = false ) {
-               return !$year ? strtr($number, '.,', ',.' ) : $number;
+       function separatorTransformTable() {
+               return array(',' => '.', '.' => ',' );
        }
 
        function getMessage( $key ) {
index b19db6a..6db1984 100644 (file)
 require_once( 'LanguageUtf8.php' );
 
 class LanguageOr extends LanguageUtf8 {
-       var $digitTransTable = array(
-               '0' => '୦',
-               '1' => '୧',
-               '2' => '୨',
-               '3' => '୩',
-               '4' => '୪',
-               '5' => '୫',
-               '6' => '୬',
-               '7' => '୭',
-               '8' => '୮',
-               '9' => '୯',
-       );
 
-       function formatNum( $number ) {
-               global $wgTranslateNumerals;
-               if( $wgTranslateNumerals ) {
-                       return strtr( $number, $this->digitTransTable );
-               } else {
-                       return $number;
-               }
+       function digitTransformTable() {
+               return array(
+                       '0' => '୦',
+                       '1' => '୧',
+                       '2' => '୨',
+                       '3' => '୩',
+                       '4' => '୪',
+                       '5' => '୫',
+                       '6' => '୬',
+                       '7' => '୭',
+                       '8' => '୮',
+                       '9' => '୯',
+               );
        }
-}
 
+}
 ?>
index 4aaa173..71331cc 100644 (file)
@@ -83,9 +83,5 @@ class LanguageOs extends LanguageRu {
                return "windows-1251";
        }
 
-       function formatNum( $number, $year = false ) {
-               return !$year ? strtr($number, '.,', ', ' ) : $number;
-       }
-
 }
 ?>
index 1d12d8a..f8eb706 100644 (file)
@@ -73,26 +73,20 @@ class LanguagePa extends LanguageUtf8 {
                }
        }
 
-       var $digitTransTable = array(
-               '0' => '੦',
-               '1' => '੧',
-               '2' => '੨',
-               '3' => '੩',
-               '4' => '੪',
-               '5' => '੫',
-               '6' => '੬',
-               '7' => '੭',
-               '8' => '੮',
-               '9' => '੯'
-       );
-
-       function formatNum( $number ) {
-               global $wgTranslateNumerals;
-               if( $wgTranslateNumerals ) {
-                       return strtr( $number, $this->digitTransTable );
-               } else {
-                       return $number;
-               }
+       function digitTransformTable() {
+               return array(
+                       '0' => '੦',
+                       '1' => '੧',
+                       '2' => '੨',
+                       '3' => '੩',
+                       '4' => '੪',
+                       '5' => '੫',
+                       '6' => '੬',
+                       '7' => '੭',
+                       '8' => '੮',
+                       '9' => '੯'
+               );
        }
+
 }
 ?>
index d2747d0..c53c820 100644 (file)
@@ -104,14 +104,12 @@ class LanguagePl extends LanguageUtf8 {
                return "iso-8859-2";
        }
 
-       var $digitTransTable = array(
-               ',' => "\xc2\xa0", // @bug 2749
-               '.' => ','
-       );
-
-       function formatNum( $number, $year = false ) {
-               return !$year ? strtr($number, $this->digitTransTable ) : $number;
+       function separatorTransformTable() {
+               return array(
+                       ',' => "\xc2\xa0", // @bug 2749
+                       '.' => ','
+               );
        }
-}
 
+}
 ?>
index 2b621a6..47f8f95 100644 (file)
@@ -141,8 +141,8 @@ class LanguagePt extends LanguageUtf8 {
        /**
         * Portuguese numeric format is 123 456,78
         */
-       function formatNum( $number, $year = false ) {
-               return $year ? $number : strtr($this->commafy($number), '.,', ', ' );
+       function separatorTransformTable() {
+               return array(',' => ' ', '.' => ',' );
        }
 
        /**
index 6e55543..a094804 100644 (file)
@@ -217,22 +217,24 @@ class LanguageRu extends LanguageUtf8 {
                }
        }
 
-       /**
+       /*
         * Russian numeric format is "12 345,67" but "1234,56"
         */
-       function formatNum( $number, $year = false ) {
-               if ($year) {
-                       return $number;
-               }
-               else {
-                       //not strtr because of 2-byte unicode nbsp char
-                       $commafied_number = str_replace('.', ',', str_replace(',', ' ', $this->commafy($number)));
-                       return ($number<10000) ? str_replace(' ', '', $commafied_number) : $commafied_number;
-               }
 
+       function commafy($_) {
+               if (!preg_match('/^\d{1,4}$/',$_)) {
+                       return strrev((string)preg_replace('/(\d{3})(?=\d)(?!\d*\.)/','$1,',strrev($_)));
+               } else {
+                       return $_;
+               }
+       }
 
+       function separatorTransformTable() {
+               return array(
+                       ',' => "\xc2\xa0",
+                       '.' => ','
+               );
        }
 
 }
-
 ?>
index 347bcc4..864c9e0 100644 (file)
@@ -167,13 +167,11 @@ class LanguageSk extends LanguageUtf8 {
                return parent::getMessage( $key );
        }
 
-       var $digitTransTable = array(
-               ',' => "\xc2\xa0",
-               '.' => ','
-       );
-
-       function formatNum( $number, $year = false ) {
-               return $year ? $number : strtr($this->commafy($number), $this->digitTransTable );
+       function separatorTransformTable() {
+               return array(
+                       ',' => "\xc2\xa0",
+                       '.' => ','
+               );
        }
 
        # Convert from the nominative form of a noun to some other case
index 8cecf5d..f19e1b1 100644 (file)
@@ -93,8 +93,8 @@ class LanguageSl extends LanguageUtf8 {
                return "iso-8859-2";
        }
 
-       function formatNum( $number, $year = false ) {
-               return $year ? $number : strtr($this->commafy($number), '.,', ',.' );
+       function separatorTransformTable() {
+               return array(',' => '.', '.' => ',' );
        }
 
        # Convert from the nominative form of a noun to some other case
index 7f965d9..36d9179 100644 (file)
@@ -106,11 +106,9 @@ class LanguageSq extends LanguageUtf8 {
                        return parent::getMessage($key);
        }
 
-       function formatNum( $number ) {
-               global $wgTranslateNumerals;
-               return $wgTranslateNumerals ? strtr($number, '.,', ',.' ) : $number;
+       function separatorTransformTable() {
+               return array(',' => '.', '.' => ',' );
        }
 
 }
-
 ?>
index 004d5a0..bacca1b 100644 (file)
@@ -162,8 +162,8 @@ class LanguageSr_ec extends LanguageUtf8 {
                return $wgMagicWordsSr_ec;
        }
 
-       function formatNum( $number, $year = false ) {
-               return $year ? $number : strtr($this->commafy($number), '.,', ',.' );
+       function separatorTransformTable() {
+               return array(',' => '.', '.' => ',' );
        }
 
        /**
@@ -278,5 +278,4 @@ class LanguageSr_ec extends LanguageUtf8 {
        }
 
 }
-
 ?>
index ba62a89..2c56bd8 100644 (file)
@@ -162,8 +162,8 @@ class LanguageSr_el extends LanguageUtf8 {
                return $wgMagicWordsSr_el;
        }
 
-       function formatNum( $number, $year = false ) {
-               return $year ? $number : strtr($this->commafy($number), '.,', ',.' );
+       function separatorTransformTable() {
+               return array(',' => '.', '.' => ',' );
        }
 
        /**
@@ -278,5 +278,4 @@ class LanguageSr_el extends LanguageUtf8 {
        }
 
 }
-
 ?>
index e29054a..02c7329 100644 (file)
@@ -93,14 +93,12 @@ class LanguageSv extends LanguageUtf8 {
                }
        }
 
-       var $digitTransTable = array(
-               ',' => "\xc2\xa0", // @bug 2749
-               '.' => ','
-       );
-
-       function formatNum( $number, $year = false ) {
-               return $year ? $number : strtr($this->commafy($number), $this->digitTransTable);
+       function separatorTransformTable() {
+               return array(
+                       ',' => "\xc2\xa0", // @bug 2749
+                       '.' => ','
+               );
        }
-}
 
+}
 ?>
index b5de0d4..34c9e9e 100644 (file)
 require_once( 'LanguageUtf8.php' );
 
 class LanguageTe extends LanguageUtf8 {
-       var $digitTransTable = array(
-               '0' => '౦',
-               '1' => '౧',
-               '2' => '౨',
-               '3' => '౩',
-               '4' => '౪',
-               '5' => '౫',
-               '6' => '౬',
-               '7' => '౭',
-               '8' => '౮',
-               '9' => '౯'
-       );
 
-       function formatNum( $number ) {
-               global $wgTranslateNumerals;
-               if( $wgTranslateNumerals ) {
-                       return strtr( $number, $this->digitTransTable );
-               } else {
-                       return $number;
-               }
+       function digitTransformTable() {
+               return array(
+                       '0' => '౦',
+                       '1' => '౧',
+                       '2' => '౨',
+                       '3' => '౩',
+                       '4' => '౪',
+                       '5' => '౫',
+                       '6' => '౬',
+                       '7' => '౭',
+                       '8' => '౮',
+                       '9' => '౯'
+               );
        }
-}
 
+}
 ?>
index 44dcf4b..de0e6a8 100644 (file)
@@ -44,10 +44,6 @@ class LanguageTr extends LanguageUtf8 {
                return $wgNamespaceNamesTr;
        }
 
-       function formatNum( $number, $year = false ) {
-               return $year ? $number : strtr($this->commafy($number), '.,', ',.' );
-       }
-
        function ucfirst ( $string ) {
                if ( $string[0] == 'i' ) {
                        return 'İ' . substr( $string, 1 );
@@ -70,7 +66,9 @@ class LanguageTr extends LanguageUtf8 {
                return $wgDateFormatsTr;
        }
 
-}
-
+       function separatorTransformTable() {
+               return array(',' => '.', '.' => ',' );
+       }
 
-?>
+}
+?>
\ No newline at end of file
index 1454c54..53a36cd 100644 (file)
@@ -69,8 +69,8 @@ class LanguageUdm extends LanguageRu {
                return "windows-1251";
        }
 
-       function formatNum( $number, $year = false ) {
-               return !$year ? strtr($number, '.,', ', ' ) : $number;
+       function separatorTransformTable() {
+               return array(',' => ' ', '.' => ',' );
        }
 
 }
index a823d7b..a3bdfd5 100644 (file)
@@ -90,10 +90,9 @@ class LanguageUk extends LanguageUtf8 {
                return "windows-1251";
        }
 
-       function formatNum( $number, $year = false ) {
-               return !$year ? strtr($number, '.,', ',.' ) : $number;
+       function separatorTransformTable() {
+               return array(',' => '.', '.' => ',' );
        }
 
 }
-
-?>
+?>
\ No newline at end of file
index fde247b..c1c71e2 100644 (file)
@@ -178,16 +178,10 @@ class LanguageVi extends LanguageUtf8 {
                }
        }
 
-       var $digitTransTable = array(
-               ',' => '.',
-               '.' => ','
-       );
-
-       function formatNum( $number, $year = false ) {
-               return !$year ? strtr($this->commafy($number), $this->digitTransTable ) : $number;
+       function separatorTransformTable() {
+               return array(',' => '.', '.' => ',' );
        }
 
-
        function getDateFormats() {
                global $wgDateFormatsVi;
                return $wgDateFormatsVi;