Make commafy support negative numbers too,
[lhc/web/wiklou.git] / languages / Language.php
index 2e35743..48fd882 100644 (file)
@@ -2722,6 +2722,12 @@ class Language {
                        return strrev( (string)preg_replace( '/(\d{3})(?=\d)(?!\d*\.)/', '$1,', strrev( $_ ) ) );
                } else {
                        // Ref: http://cldr.unicode.org/translation/number-patterns
+                       $sign = "";
+                       if ( intval( $_ ) < 0 ) {
+                               // For negative numbers apply the algorithm like positive number and add sign.
+                               $sign =   $_[0];
+                               $_ = substr( $_,1 );
+                       }
                        $numberpart = array();
                        $decimalpart = array();
                        $numMatches = preg_match_all( "/(#+)/", $digitGroupingPattern, $matches );
@@ -2730,7 +2736,7 @@ class Language {
                        $groupedNumber = ( count( $decimalpart ) > 0 ) ? $decimalpart[0]:"";
                        if ( $groupedNumber  === $_ ) {
                                // the string does not have any number part. Eg: .12345
-                               return $groupedNumber;
+                               return $sign . $groupedNumber;
                        }
                        $start = $end = strlen( $numberpart[0] );
                        while ( $start > 0 ) {
@@ -2750,7 +2756,7 @@ class Language {
                                        $groupedNumber = "," . $groupedNumber;
                                }
                        }
-                       return $groupedNumber;
+                       return $sign . $groupedNumber;
                }
        }
        /**