Language Bulgarian
Currency: BGN
This is happening on a new installation without any modifications.
The returned currency format is different in different versions of the INTL module.
Magento 2.3, php7.2
<script> require([ 'jquery', 'priceBox' ], function($){ var dataPriceBoxSelector = '[data-role=priceBox]', dataProductIdSelector = '[data-product-id=15]', priceBoxes = $(dataPriceBoxSelector + dataProductIdSelector); priceBoxes = priceBoxes.filter(function(index, elem){ return !$(elem).find('.price-from').length; }); priceBoxes.priceBox({'priceConfig': {"productId":"15","priceFormat":{"pattern":"%s\u00a0\u043b\u0432.","precision":2,"requiredPrecision":2,"decimalSymbol":",","groupSymbol":"\u00a0","groupLength":2,"integerRequired":false},"prices":{"oldPrice":{"amount":155,"adjustments":[]},"basePrice":{"amount":155,"adjustments":[]},"finalPrice":{"amount":155,"adjustments":[]}},"idSuffix":"_clone","tierPrices":[],"calculationAlgorithm":"TOTAL_BASE_CALCULATION"}}); }); </script>
The issue is present when the php-intl ICU version is 60.1 or 60.2
Tested with php 7.1 and 7.2
What I found is that $formatter->getPattern() returns "#0.00 ¤" while the format scpecified in vendor\magento\zendframework1\library\Zend\Locale\Data\bg.xml is
<currencyFormats numberSystem="latn"> <currencyFormatLength> <currencyFormat type="standard"> <pattern>#,##0.00 ¤</pattern> </currencyFormat> </currencyFormatLength> <unitPattern count="one">{0} {1}</unitPattern> <unitPattern count="other">{0} {1}</unitPattern> </currencyFormats>
Did you found solution for this problem? I have the same issue with new Magento 2 installation and PHP 7.2 . The thousands separator is not working correctly.