aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/commerceguys/intl/src/Formatter
diff options
context:
space:
mode:
authorMario <mario@mariovavti.com>2021-01-13 09:50:53 +0000
committerMario <mario@mariovavti.com>2021-01-13 09:50:53 +0000
commit5eefdc6485b2f6082f6fe5dfd6f1731fae7e3a2a (patch)
tree7521f4800e393538d19c393c6f495ea2d41cbf5a /vendor/commerceguys/intl/src/Formatter
parent0bc4c7d1a0e4348018e533be600ad1c648fd97fb (diff)
parent4d2bcbc5837a7d99dc541595ca8087c335242af0 (diff)
downloadvolse-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')
-rw-r--r--vendor/commerceguys/intl/src/Formatter/CurrencyFormatter.php14
-rw-r--r--vendor/commerceguys/intl/src/Formatter/FormatterTrait.php34
-rw-r--r--vendor/commerceguys/intl/src/Formatter/NumberFormatter.php14
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(),
+ ];
+ }
}