From 170dce3c0791958f5af60505867483c214ea9892 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Niklas=20Laxstr=C3=B6m?= Date: Sat, 29 Apr 2006 20:07:14 +0000 Subject: [PATCH] * Cleaned up formatNum usage in langfiles --- RELEASE-NOTES | 1 + languages/Language.php | 34 ++++++++++++++++++++++-------- languages/LanguageAf.php | 17 +++++---------- languages/LanguageAr.php | 39 +++++++++++++++-------------------- languages/LanguageAs.php | 35 +++++++++++++------------------ languages/LanguageAz.php | 7 ++----- languages/LanguageBe.php | 5 +++-- languages/LanguageBg.php | 23 ++++++++------------- languages/LanguageBn.php | 34 +++++++++++++----------------- languages/LanguageBo.php | 34 +++++++++++++----------------- languages/LanguageBr.php | 9 ++------ languages/LanguageBs.php | 4 ++-- languages/LanguageCa.php | 4 ++-- languages/LanguageCs.php | 9 ++------ languages/LanguageDa.php | 4 ++-- languages/LanguageDe.php | 4 ++-- languages/LanguageDz.php | 34 +++++++++++++----------------- languages/LanguageEl.php | 5 +++-- languages/LanguageEo.php | 5 +++-- languages/LanguageEs.php | 5 +++-- languages/LanguageEt.php | 4 ++-- languages/LanguageFa.php | 41 +++++++++++++++---------------------- languages/LanguageFi.php | 5 ++--- languages/LanguageFr.php | 9 ++------ languages/LanguageFur.php | 10 ++------- languages/LanguageFy.php | 10 ++------- languages/LanguageGu.php | 34 +++++++++++++----------------- languages/LanguageHi.php | 34 +++++++++++++----------------- languages/LanguageHr.php | 6 +++--- languages/LanguageHu.php | 4 ++-- languages/LanguageId.php | 4 ++-- languages/LanguageIs.php | 4 ++-- languages/LanguageIt.php | 4 ++-- languages/LanguageKm.php | 34 +++++++++++++----------------- languages/LanguageKn.php | 34 +++++++++++++----------------- languages/LanguageLo.php | 34 +++++++++++++----------------- languages/LanguageLt.php | 4 ++-- languages/LanguageMl.php | 34 +++++++++++++----------------- languages/LanguageNds.php | 6 +++--- languages/LanguageNl.php | 6 +++--- languages/LanguageNn.php | 12 +++++------ languages/LanguageNo.php | 4 ++-- languages/LanguageOr.php | 34 +++++++++++++----------------- languages/LanguageOs.php | 4 ---- languages/LanguagePa.php | 34 +++++++++++++----------------- languages/LanguagePl.php | 14 ++++++------- languages/LanguagePt.php | 4 ++-- languages/LanguageRu.php | 24 ++++++++++++---------- languages/LanguageSk.php | 12 +++++------ languages/LanguageSl.php | 4 ++-- languages/LanguageSq.php | 6 ++---- languages/LanguageSr_ec.php | 5 ++--- languages/LanguageSr_el.php | 5 ++--- languages/LanguageSv.php | 14 ++++++------- languages/LanguageTe.php | 34 +++++++++++++----------------- languages/LanguageTr.php | 12 +++++------ languages/LanguageUdm.php | 4 ++-- languages/LanguageUk.php | 7 +++---- languages/LanguageVi.php | 10 ++------- 59 files changed, 370 insertions(+), 506 deletions(-) diff --git a/RELEASE-NOTES b/RELEASE-NOTES index 8e4717af3d..299baa1be6 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -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 == diff --git a/languages/Language.php b/languages/Language.php index 74b1efffa8..5848915b09 100644 --- a/languages/Language.php +++ b/languages/Language.php @@ -892,10 +892,7 @@ class Language { return "$text"; } - /** - * 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) * diff --git a/languages/LanguageAf.php b/languages/LanguageAf.php index 8e129610a6..d7822c25c9 100644 --- a/languages/LanguageAf.php +++ b/languages/LanguageAf.php @@ -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", '.' => ',' ); } } diff --git a/languages/LanguageAr.php b/languages/LanguageAr.php index 51f1870155..22a86507b0 100644 --- a/languages/LanguageAr.php +++ b/languages/LanguageAr.php @@ -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; - } - } } - ?> diff --git a/languages/LanguageAs.php b/languages/LanguageAs.php index 411a2a1458..3d977abafe 100644 --- a/languages/LanguageAs.php +++ b/languages/LanguageAs.php @@ -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' => '৯' + ); } -} +} ?> diff --git a/languages/LanguageAz.php b/languages/LanguageAz.php index 028a89173f..4b408636dc 100644 --- a/languages/LanguageAz.php +++ b/languages/LanguageAz.php @@ -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 diff --git a/languages/LanguageBe.php b/languages/LanguageBe.php index c5387ee32e..33f1dfa6d2 100644 --- a/languages/LanguageBe.php +++ b/languages/LanguageBe.php @@ -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 { } } } + ?> diff --git a/languages/LanguageBg.php b/languages/LanguageBg.php index 5d35f62c8b..da600989cb 100644 --- a/languages/LanguageBg.php +++ b/languages/LanguageBg.php @@ -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); } + } ?> diff --git a/languages/LanguageBn.php b/languages/LanguageBn.php index 1e5b21f4f1..30f3a6f799 100644 --- a/languages/LanguageBn.php +++ b/languages/LanguageBn.php @@ -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 ) ); } + } ?> diff --git a/languages/LanguageBo.php b/languages/LanguageBo.php index 999c2a6b52..e61901f51d 100644 --- a/languages/LanguageBo.php +++ b/languages/LanguageBo.php @@ -10,27 +10,21 @@ 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' => '༩' + ); } + } ?> diff --git a/languages/LanguageBr.php b/languages/LanguageBr.php index f23884e939..52e2586b65 100644 --- a/languages/LanguageBr.php +++ b/languages/LanguageBr.php @@ -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 ) { diff --git a/languages/LanguageBs.php b/languages/LanguageBs.php index 3415a83fc7..70414ed250 100644 --- a/languages/LanguageBs.php +++ b/languages/LanguageBs.php @@ -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 diff --git a/languages/LanguageCa.php b/languages/LanguageCa.php index 2049fbdd57..a6ad1ffe9c 100644 --- a/languages/LanguageCa.php +++ b/languages/LanguageCa.php @@ -77,8 +77,8 @@ class LanguageCa extends LanguageUtf8 { } } - function formatNum( $number, $year = false ) { - return $year ? $number : strtr($this->commafy($number), '.,', ',.' ); + function separatorTransformTable() { + return array(',' => '.', '.' => ',' ); } } diff --git a/languages/LanguageCs.php b/languages/LanguageCs.php index 823808175b..9d94d432ed 100644 --- a/languages/LanguageCs.php +++ b/languages/LanguageCs.php @@ -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 diff --git a/languages/LanguageDa.php b/languages/LanguageDa.php index 776588f1a9..26391067e5 100644 --- a/languages/LanguageDa.php +++ b/languages/LanguageDa.php @@ -102,8 +102,8 @@ class LanguageDa extends LanguageUtf8 { } } - function formatNum( $number, $year = false ) { - return $year ? $number : strtr($this->commafy($number), '.,', ',.' ); + function separatorTransformTable() { + return array(',' => '.', '.' => ',' ); } } diff --git a/languages/LanguageDe.php b/languages/LanguageDe.php index 8be509f74c..8f4e89b0c1 100644 --- a/languages/LanguageDe.php +++ b/languages/LanguageDe.php @@ -100,8 +100,8 @@ class LanguageDe extends LanguageUtf8 { } } - function formatNum( $number, $year = false ) { - return $year ? $number : strtr($this->commafy($number), '.,', ',.' ); + function separatorTransformTable() { + return array(',' => '.', '.' => ',' ); } } diff --git a/languages/LanguageDz.php b/languages/LanguageDz.php index 581faf35b0..a4d8b3ef0a 100644 --- a/languages/LanguageDz.php +++ b/languages/LanguageDz.php @@ -10,27 +10,21 @@ 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' => '༩' + ); } + } ?> diff --git a/languages/LanguageEl.php b/languages/LanguageEl.php index 28c0208ef3..a05c91f7ee 100644 --- a/languages/LanguageEl.php +++ b/languages/LanguageEl.php @@ -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(',' => '.', '.' => ',' ); } + } ?> diff --git a/languages/LanguageEo.php b/languages/LanguageEo.php index 20890a900c..845915be98 100644 --- a/languages/LanguageEo.php +++ b/languages/LanguageEo.php @@ -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(',' => ' ', '.' => ',' ); } + } ?> diff --git a/languages/LanguageEs.php b/languages/LanguageEs.php index c9bf68844a..50a2f6f21a 100644 --- a/languages/LanguageEs.php +++ b/languages/LanguageEs.php @@ -80,9 +80,10 @@ class LanguageEs extends LanguageUtf8 { } } - function formatNum( $number, $year = false ) { - return $year ? $number : strtr($this->commafy($number), '.,', ',.' ); + function separatorTransformTable() { + return array(',' => '.', '.' => ',' ); } + } ?> diff --git a/languages/LanguageEt.php b/languages/LanguageEt.php index e793887da7..2c2ac40d97 100644 --- a/languages/LanguageEt.php +++ b/languages/LanguageEt.php @@ -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", '.' => ',' ); } /** diff --git a/languages/LanguageFa.php b/languages/LanguageFa.php index f5cb7a46d2..53392ec7af 100644 --- a/languages/LanguageFa.php +++ b/languages/LanguageFa.php @@ -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 ) ); } diff --git a/languages/LanguageFi.php b/languages/LanguageFi.php index ebd682babc..957dc00969 100644 --- a/languages/LanguageFi.php +++ b/languages/LanguageFi.php @@ -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", '.' => ',' ); } /** diff --git a/languages/LanguageFr.php b/languages/LanguageFr.php index 326d0c35d8..eb619297cb 100644 --- a/languages/LanguageFr.php +++ b/languages/LanguageFr.php @@ -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 ) { diff --git a/languages/LanguageFur.php b/languages/LanguageFur.php index 7d7cea8443..f58b205fa0 100644 --- a/languages/LanguageFur.php +++ b/languages/LanguageFur.php @@ -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] ) ) { diff --git a/languages/LanguageFy.php b/languages/LanguageFy.php index 39e5032c7e..08d90ea785 100644 --- a/languages/LanguageFy.php +++ b/languages/LanguageFy.php @@ -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() { diff --git a/languages/LanguageGu.php b/languages/LanguageGu.php index 3e1c93f615..8e20e078ba 100644 --- a/languages/LanguageGu.php +++ b/languages/LanguageGu.php @@ -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' => '૯' + ); } + } ?> diff --git a/languages/LanguageHi.php b/languages/LanguageHi.php index 5a1a4f6bdf..9f55bc45c4 100644 --- a/languages/LanguageHi.php +++ b/languages/LanguageHi.php @@ -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 ) ); } diff --git a/languages/LanguageHr.php b/languages/LanguageHr.php index 42028f1c28..a996c5ed98 100644 --- a/languages/LanguageHr.php +++ b/languages/LanguageHr.php @@ -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"; diff --git a/languages/LanguageHu.php b/languages/LanguageHu.php index 377ecfa924..277998d71b 100644 --- a/languages/LanguageHu.php +++ b/languages/LanguageHu.php @@ -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", '.' => ',' ); } } diff --git a/languages/LanguageId.php b/languages/LanguageId.php index 58c95eaddf..d0b5a8c87f 100644 --- a/languages/LanguageId.php +++ b/languages/LanguageId.php @@ -113,8 +113,8 @@ class LanguageId extends LanguageUtf8 { } } - function formatNum( $number, $year = false ) { - return !$year ? strtr($this->commafy($number), '.,', ',.' ) : $number; + function separatorTransformTable() { + return array(',' => '.', '.' => ',' ); } } diff --git a/languages/LanguageIs.php b/languages/LanguageIs.php index 7ad4af3481..739ddb9da2 100644 --- a/languages/LanguageIs.php +++ b/languages/LanguageIs.php @@ -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() { diff --git a/languages/LanguageIt.php b/languages/LanguageIt.php index 4d005dedab..4058343590 100644 --- a/languages/LanguageIt.php +++ b/languages/LanguageIt.php @@ -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(',' => '.', '.' => ',' ); } } diff --git a/languages/LanguageKm.php b/languages/LanguageKm.php index 429a50174b..0c5f55b215 100644 --- a/languages/LanguageKm.php +++ b/languages/LanguageKm.php @@ -10,27 +10,21 @@ 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' => '៩' + ); } + } ?> diff --git a/languages/LanguageKn.php b/languages/LanguageKn.php index b01e5f0df1..432bf344f7 100644 --- a/languages/LanguageKn.php +++ b/languages/LanguageKn.php @@ -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; - } - } } ?> diff --git a/languages/LanguageLo.php b/languages/LanguageLo.php index ff8b07b5d6..7fd20ca9c4 100644 --- a/languages/LanguageLo.php +++ b/languages/LanguageLo.php @@ -10,27 +10,21 @@ 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' => '໙' + ); } + } ?> diff --git a/languages/LanguageLt.php b/languages/LanguageLt.php index d5f6f35d1f..be608534b0 100644 --- a/languages/LanguageLt.php +++ b/languages/LanguageLt.php @@ -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(',' => ' ', '.' => ',' ); } } diff --git a/languages/LanguageMl.php b/languages/LanguageMl.php index edf8df384f..3f430c0f07 100644 --- a/languages/LanguageMl.php +++ b/languages/LanguageMl.php @@ -10,27 +10,21 @@ 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' => '൯' + ); } + } ?> diff --git a/languages/LanguageNds.php b/languages/LanguageNds.php index 592406281c..022bc69860 100644 --- a/languages/LanguageNds.php +++ b/languages/LanguageNds.php @@ -134,9 +134,9 @@ class LanguageNds extends LanguageUtf8 { } } - function formatNum( $number, $year = false ) { - return $year ? $number : strtr($this->commafy($number), '.,', ',.' ); + function separatorTransformTable() { + return array(',' => '.', '.' => ',' ); } -} +} ?> diff --git a/languages/LanguageNl.php b/languages/LanguageNl.php index f305c39d24..9cf35e1155 100644 --- a/languages/LanguageNl.php +++ b/languages/LanguageNl.php @@ -83,9 +83,9 @@ class LanguageNl extends LanguageUtf8 { } } - function formatNum( $number, $year = false ) { - return $year ? $number : strtr( $this->commafy( $number ), '.,', ',.' ); + function separatorTransformTable() { + return array(',' => '.', '.' => ',' ); } -} +} ?> diff --git a/languages/LanguageNn.php b/languages/LanguageNn.php index a2b5321db9..174aa7485c 100644 --- a/languages/LanguageNn.php +++ b/languages/LanguageNn.php @@ -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 ) { diff --git a/languages/LanguageNo.php b/languages/LanguageNo.php index 5126599f1f..115c7e3156 100644 --- a/languages/LanguageNo.php +++ b/languages/LanguageNo.php @@ -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 ) { diff --git a/languages/LanguageOr.php b/languages/LanguageOr.php index b19db6ad67..6db198431c 100644 --- a/languages/LanguageOr.php +++ b/languages/LanguageOr.php @@ -10,27 +10,21 @@ 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' => '୯', + ); } -} +} ?> diff --git a/languages/LanguageOs.php b/languages/LanguageOs.php index 4aaa17326f..71331cc91c 100644 --- a/languages/LanguageOs.php +++ b/languages/LanguageOs.php @@ -83,9 +83,5 @@ class LanguageOs extends LanguageRu { return "windows-1251"; } - function formatNum( $number, $year = false ) { - return !$year ? strtr($number, '.,', ', ' ) : $number; - } - } ?> diff --git a/languages/LanguagePa.php b/languages/LanguagePa.php index 1d12d8ad82..f8eb706c50 100644 --- a/languages/LanguagePa.php +++ b/languages/LanguagePa.php @@ -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' => '੯' + ); } + } ?> diff --git a/languages/LanguagePl.php b/languages/LanguagePl.php index d2747d056d..c53c8205e9 100644 --- a/languages/LanguagePl.php +++ b/languages/LanguagePl.php @@ -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 + '.' => ',' + ); } -} +} ?> diff --git a/languages/LanguagePt.php b/languages/LanguagePt.php index 2b621a6a73..47f8f95fa8 100644 --- a/languages/LanguagePt.php +++ b/languages/LanguagePt.php @@ -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(',' => ' ', '.' => ',' ); } /** diff --git a/languages/LanguageRu.php b/languages/LanguageRu.php index 6e55543fda..a094804e02 100644 --- a/languages/LanguageRu.php +++ b/languages/LanguageRu.php @@ -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", + '.' => ',' + ); } } - ?> diff --git a/languages/LanguageSk.php b/languages/LanguageSk.php index 347bcc4ff3..864c9e02d0 100644 --- a/languages/LanguageSk.php +++ b/languages/LanguageSk.php @@ -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 diff --git a/languages/LanguageSl.php b/languages/LanguageSl.php index 8cecf5da20..f19e1b1e2f 100644 --- a/languages/LanguageSl.php +++ b/languages/LanguageSl.php @@ -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 diff --git a/languages/LanguageSq.php b/languages/LanguageSq.php index 7f965d9bc8..36d91799cc 100644 --- a/languages/LanguageSq.php +++ b/languages/LanguageSq.php @@ -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(',' => '.', '.' => ',' ); } } - ?> diff --git a/languages/LanguageSr_ec.php b/languages/LanguageSr_ec.php index 004d5a0c25..bacca1b469 100644 --- a/languages/LanguageSr_ec.php +++ b/languages/LanguageSr_ec.php @@ -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 { } } - ?> diff --git a/languages/LanguageSr_el.php b/languages/LanguageSr_el.php index ba62a89261..2c56bd88d2 100644 --- a/languages/LanguageSr_el.php +++ b/languages/LanguageSr_el.php @@ -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 { } } - ?> diff --git a/languages/LanguageSv.php b/languages/LanguageSv.php index e29054ad92..02c73297c4 100644 --- a/languages/LanguageSv.php +++ b/languages/LanguageSv.php @@ -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 + '.' => ',' + ); } -} +} ?> diff --git a/languages/LanguageTe.php b/languages/LanguageTe.php index b5de0d43b2..34c9e9ea34 100644 --- a/languages/LanguageTe.php +++ b/languages/LanguageTe.php @@ -10,27 +10,21 @@ 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' => '౯' + ); } -} +} ?> diff --git a/languages/LanguageTr.php b/languages/LanguageTr.php index 44dcf4b6fc..de0e6a8e21 100644 --- a/languages/LanguageTr.php +++ b/languages/LanguageTr.php @@ -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 diff --git a/languages/LanguageUdm.php b/languages/LanguageUdm.php index 1454c5480f..53a36cd7fc 100644 --- a/languages/LanguageUdm.php +++ b/languages/LanguageUdm.php @@ -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(',' => ' ', '.' => ',' ); } } diff --git a/languages/LanguageUk.php b/languages/LanguageUk.php index a823d7b0c7..a3bdfd51c4 100644 --- a/languages/LanguageUk.php +++ b/languages/LanguageUk.php @@ -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 diff --git a/languages/LanguageVi.php b/languages/LanguageVi.php index fde247bce9..c1c71e21b4 100644 --- a/languages/LanguageVi.php +++ b/languages/LanguageVi.php @@ -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; -- 2.20.1