From f4bb7bcbff3770387c2fecfa91ce4a60b916a474 Mon Sep 17 00:00:00 2001 From: Mario Date: Fri, 27 Nov 2020 08:04:00 +0000 Subject: update composer libs --- .../intl/src/Formatter/CurrencyFormatter.php | 14 +++++++++ .../intl/src/Formatter/FormatterTrait.php | 34 ++++++++++++---------- .../intl/src/Formatter/NumberFormatter.php | 14 +++++++++ 3 files changed, 46 insertions(+), 16 deletions(-) (limited to 'vendor/commerceguys/intl/src/Formatter') 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(), + ]; + } } -- cgit v1.2.3