diff options
author | Mario <mario@mariovavti.com> | 2021-01-13 09:50:53 +0000 |
---|---|---|
committer | Mario <mario@mariovavti.com> | 2021-01-13 09:50:53 +0000 |
commit | 5eefdc6485b2f6082f6fe5dfd6f1731fae7e3a2a (patch) | |
tree | 7521f4800e393538d19c393c6f495ea2d41cbf5a /vendor/commerceguys/intl/src/Formatter | |
parent | 0bc4c7d1a0e4348018e533be600ad1c648fd97fb (diff) | |
parent | 4d2bcbc5837a7d99dc541595ca8087c335242af0 (diff) | |
download | volse-hubzilla-5.2.tar.gz volse-hubzilla-5.2.tar.bz2 volse-hubzilla-5.2.zip |
Merge branch '5.2RC'5.2
Diffstat (limited to 'vendor/commerceguys/intl/src/Formatter')
3 files changed, 46 insertions, 16 deletions
diff --git a/vendor/commerceguys/intl/src/Formatter/CurrencyFormatter.php b/vendor/commerceguys/intl/src/Formatter/CurrencyFormatter.php index 8d4d11f27..7d3b90d6e 100644 --- a/vendor/commerceguys/intl/src/Formatter/CurrencyFormatter.php +++ b/vendor/commerceguys/intl/src/Formatter/CurrencyFormatter.php @@ -238,4 +238,18 @@ class CurrencyFormatter implements CurrencyFormatterInterface throw new InvalidArgumentException(sprintf('Unrecognized currency display "%s".', $options['currency_display'])); } } + + /** + * {@inheritdoc} + */ + protected function getLocalizedSymbols(NumberFormat $numberFormat): array + { + return [ + '.' => $numberFormat->getDecimalCurrencySeparator(), + ',' => $numberFormat->getGroupingCurrencySeparator(), + '+' => $numberFormat->getPlusSign(), + '-' => $numberFormat->getMinusSign(), + '%' => $numberFormat->getPercentSign(), + ]; + } } diff --git a/vendor/commerceguys/intl/src/Formatter/FormatterTrait.php b/vendor/commerceguys/intl/src/Formatter/FormatterTrait.php index aa63c1f5f..11cdd2372 100644 --- a/vendor/commerceguys/intl/src/Formatter/FormatterTrait.php +++ b/vendor/commerceguys/intl/src/Formatter/FormatterTrait.php @@ -124,13 +124,7 @@ trait FormatterTrait $number = strtr($number, $this->digits[$numberingSystem]); } // Localize symbols. - $replacements = [ - '.' => $numberFormat->getDecimalSeparator(), - ',' => $numberFormat->getGroupingSeparator(), - '+' => $numberFormat->getPlusSign(), - '-' => $numberFormat->getMinusSign(), - '%' => $numberFormat->getPercentSign(), - ]; + $replacements = $this->getLocalizedSymbols($numberFormat); $number = strtr($number, $replacements); return $number; @@ -149,15 +143,10 @@ trait FormatterTrait */ protected function parseNumber($number, NumberFormat $numberFormat) { - $replacements = [ - $numberFormat->getGroupingSeparator() => '', - // Convert the localized symbols back to their original form. - $numberFormat->getDecimalSeparator() => '.', - $numberFormat->getPlusSign() => '+', - $numberFormat->getMinusSign() => '-', - $numberFormat->getPercentSign() => '%', - - // Strip whitespace (spaces and non-breaking spaces). + // Convert localized symbols back to their original form. + $replacements = array_flip($this->getLocalizedSymbols($numberFormat)); + // Strip whitespace (spaces and non-breaking spaces). + $replacements += [ ' ' => '', chr(0xC2) . chr(0xA0) => '', ]; @@ -168,6 +157,8 @@ trait FormatterTrait } $number = strtr($number, $replacements); + // Strip grouping separators. + $number = str_replace(',', '', $number); // Convert the accounting format for negative numbers. if (substr($number, 0, 1) == '(' && substr($number, -1, 1) == ')') { $number = '-' . str_replace(['(', ')'], '', $number); @@ -212,4 +203,15 @@ trait FormatterTrait * @return string[] The patterns, keyed by style. */ abstract protected function getAvailablePatterns(NumberFormat $numberFormat); + + /** + * Gets the localized symbols for the provided number format. + * + * Used to localize the number in localizeNumber(). + * + * @param NumberFormat $numberFormat The number format. + * + * @return array + */ + abstract protected function getLocalizedSymbols(NumberFormat $numberFormat): array; } diff --git a/vendor/commerceguys/intl/src/Formatter/NumberFormatter.php b/vendor/commerceguys/intl/src/Formatter/NumberFormatter.php index 95c9a0020..03795fe6d 100644 --- a/vendor/commerceguys/intl/src/Formatter/NumberFormatter.php +++ b/vendor/commerceguys/intl/src/Formatter/NumberFormatter.php @@ -160,4 +160,18 @@ class NumberFormatter implements NumberFormatterInterface throw new InvalidArgumentException(sprintf('Unrecognized style "%s".', $options['style'])); } } + + /** + * {@inheritdoc} + */ + protected function getLocalizedSymbols(NumberFormat $numberFormat): array + { + return [ + '.' => $numberFormat->getDecimalSeparator(), + ',' => $numberFormat->getGroupingSeparator(), + '+' => $numberFormat->getPlusSign(), + '-' => $numberFormat->getMinusSign(), + '%' => $numberFormat->getPercentSign(), + ]; + } } |