Skip to content

Commit 00fb26b

Browse files
author
Anna Bukatar
committed
ACP2E-541: Arabic Store Price Currency Error
1 parent 5b32ab9 commit 00fb26b

File tree

32 files changed

+301
-90
lines changed

32 files changed

+301
-90
lines changed

app/code/Magento/AdvancedSearch/view/frontend/templates/search_data.phtml

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,20 +6,23 @@
66

77
/**
88
* @var \Magento\AdvancedSearch\Block\SearchData $block
9+
* @var \Magento\Framework\Locale\LocaleFormatter $localeFormatter
910
*/
1011
?>
1112
<?php
1213
/** @var \Magento\Search\Model\QueryResult[] $data */
1314
$data = $block->getItems();
14-
if (count($data)) : ?>
15+
if (count($data)): ?>
1516
<dl class="block">
1617
<dt class="title"><?= $block->escapeHtml(__($block->getTitle())) ?></dt>
17-
<?php foreach ($data as $additionalInfo) : ?>
18+
<?php foreach ($data as $additionalInfo): ?>
1819
<dd class="item">
1920
<a href="<?= $block->escapeUrl($block->getLink($additionalInfo->getQueryText())) ?>"
2021
><?= $block->escapeHtml($additionalInfo->getQueryText()) ?></a>
21-
<?php if ($block->isShowResultsCount()) : ?>
22-
<span class="count"><?= /* @noEscape */ (int)$additionalInfo->getResultsCount() ?></span>
22+
<?php if ($block->isShowResultsCount()): ?>
23+
<span class="count">
24+
<?= /* @noEscape */ $localeFormatter->formatNumber((int)$additionalInfo->getResultsCount()) ?>
25+
</span>
2326
<?php endif; ?>
2427
</dd>
2528
<?php endforeach; ?>

app/code/Magento/Bundle/view/base/templates/product/price/tier_prices.phtml

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,20 +6,24 @@
66
?>
77

88
<?php
9-
/** @var \Magento\Framework\Pricing\Render\PriceBox $block */
10-
9+
/**
10+
* @var \Magento\Framework\Pricing\Render\PriceBox $block
11+
* @var \Magento\Framework\Locale\LocaleFormatter $localeFormatter
12+
*/
1113
/** @var \Magento\Bundle\Pricing\Price\TierPrice $tierPriceModel */
1214
$tierPriceModel = $block->getPrice();
1315
$tierPrices = $tierPriceModel->getTierPriceList();
1416
?>
15-
<?php if (count($tierPrices)) : ?>
17+
<?php if (count($tierPrices)):?>
1618
<ul class="<?= $block->escapeHtmlAttr(($block->hasListClass() ? $block->getListClass() : 'prices-tier items')) ?>">
17-
<?php foreach ($tierPrices as $index => $price) : ?>
19+
<?php foreach ($tierPrices as $index => $price): ?>
1820
<li class="item">
1921
<?= /* @noEscape */ __(
2022
'Buy %1 with %2 discount each',
21-
$price['price_qty'],
22-
'<strong class="benefit">' . round($price['percentage_value']) . '%</strong>'
23+
$localeFormatter->formatNumber($price['price_qty']),
24+
'<strong class="benefit">' .
25+
$localeFormatter->formatNumber(round($price['percentage_value'])) .
26+
'%</strong>'
2327
); ?>
2428
</li>
2529
<?php endforeach; ?>

app/code/Magento/Bundle/view/base/web/js/price-bundle.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,7 @@ define([
211211
}, 0);
212212
toTemplate.data[type] = {
213213
value: value,
214-
formatted: utils.formatPrice(value, format)
214+
formatted: utils.formatPriceLocale(value, format)
215215
};
216216
});
217217

app/code/Magento/Bundle/view/frontend/templates/sales/order/items/renderer.phtml

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,11 @@
44
* See COPYING.txt for license details.
55
*/
66
// phpcs:disable Magento2.Templates.ThisInTemplate
7-
/** @var $block \Magento\Bundle\Block\Sales\Order\Items\Renderer */
8-
/** @var $viewModel \Magento\Bundle\ViewModel\Sales\Order\Items\Renderer */
7+
/**
8+
* @var \Magento\Bundle\Block\Sales\Order\Items\Renderer $block
9+
* @var \Magento\Framework\Locale\LocaleFormatter $localeFormatter
10+
* @var \Magento\Bundle\ViewModel\Sales\Order\Items\Renderer $viewModel
11+
*/
912
$parentItem = $block->getItem();
1013
$viewModel = $block->getViewModel();
1114
$items = $viewModel->getOrderItems((int)$parentItem->getOrderId(), (int)$parentItem->getId());
@@ -73,25 +76,33 @@ $prevOptionId = '';
7376
<?php if ($item->getQtyOrdered() > 0): ?>
7477
<li class="item">
7578
<span class="title"><?= $block->escapeHtml(__('Ordered')); ?></span>
76-
<span class="content"><?= /* @noEscape */ $item->getQtyOrdered() * 1; ?></span>
79+
<span class="content">
80+
<?= /* @noEscape */ $localeFormatter->formatNumber($item->getQtyOrdered() * 1); ?>
81+
</span>
7782
</li>
7883
<?php endif; ?>
7984
<?php if ($item->getQtyShipped() > 0 && !$block->isShipmentSeparately()): ?>
8085
<li class="item">
8186
<span class="title"><?= $block->escapeHtml(__('Shipped')); ?></span>
82-
<span class="content"><?= /* @noEscape */ $item->getQtyShipped() * 1; ?></span>
87+
<span class="content">
88+
<?= /* @noEscape */ $localeFormatter->formatNumber($item->getQtyShipped() * 1); ?>
89+
</span>
8390
</li>
8491
<?php endif; ?>
8592
<?php if ($item->getQtyCanceled() > 0): ?>
8693
<li class="item">
8794
<span class="title"><?= $block->escapeHtml(__('Canceled')); ?></span>
88-
<span class="content"><?= /* @noEscape */ $item->getQtyCanceled() * 1; ?></span>
95+
<span class="content">
96+
<?= /* @noEscape */ $localeFormatter->formatNumber($item->getQtyCanceled() * 1); ?>
97+
</span>
8998
</li>
9099
<?php endif; ?>
91100
<?php if ($item->getQtyRefunded() > 0): ?>
92101
<li class="item">
93102
<span class="title"><?= $block->escapeHtml(__('Refunded')); ?></span>
94-
<span class="content"><?= /* @noEscape */ $item->getQtyRefunded() * 1; ?></span>
103+
<span class="content">
104+
<?= /* @noEscape */ $localeFormatter->formatNumber($item->getQtyRefunded() * 1); ?>
105+
</span>
95106
</li>
96107
<?php endif; ?>
97108
<?php elseif ($item->getQtyShipped() > 0 && $item->getParentItem() && $block->isShipmentSeparately()): ?>

app/code/Magento/Catalog/view/base/templates/product/price/tier_prices.phtml

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,15 @@
1111

1212
/** @var \Magento\Catalog\Pricing\Render\PriceBox $block */
1313
/** @var \Magento\Framework\View\Helper\SecureHtmlRenderer $secureRenderer */
14-
14+
/** @var \Magento\Framework\Locale\LocaleFormatter $localeFormatter*/
1515
/** @var \Magento\Catalog\Pricing\Price\TierPrice $tierPriceModel */
1616
$tierPriceModel = $block->getPrice();
1717
$tierPrices = $tierPriceModel->getTierPriceList();
1818
$msrpShowOnGesture = $block->getPriceType('msrp_price')->isShowPriceOnGesture();
1919
$product = $block->getSaleableItem();
2020
?>
2121
<?php if (count($tierPrices)): ?>
22-
<ul class="<?= $block->escapeHtmlAttr(($block->hasListClass() ? $block->getListClass() : 'prices-tier items')) ?>">
22+
<ul class="<?= $block->escapeHtmlAttr(($block->hasListClass() ? $block->getListClass(): 'prices-tier items')) ?>">
2323
<?php foreach ($tierPrices as $index => $price): ?>
2424
<li class="item">
2525
<?php
@@ -82,10 +82,12 @@ $product = $block->getSaleableItem();
8282
? __(
8383
'Buy %1 for %2 each and '.
8484
'<strong class="benefit">save<span class="percent tier-%3">&nbsp;%4</span>%</strong>',
85-
$price['price_qty'],
85+
$localeFormatter->formatNumber($price['price_qty']),
8686
$priceAmountBlock,
8787
$index,
88-
$block->formatPercent($tierPriceModel->getSavePercent($price['price']))
88+
$localeFormatter->formatNumber(
89+
$block->formatPercent($tierPriceModel->getSavePercent($price['price']))
90+
)
8991
)
9092
: __('Buy %1 for %2 each', $price['price_qty'], $priceAmountBlock);
9193
?>

app/code/Magento/Catalog/view/base/web/js/price-box.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ define([
150150
return memo + amount;
151151
}, price.amount);
152152

153-
price.formatted = utils.formatPrice(price.final, priceFormat);
153+
price.formatted = utils.formatPriceLocale(price.final, priceFormat);
154154

155155
$('[data-price-type="' + priceCode + '"]', this.element).html(priceTemplate({
156156
data: price

app/code/Magento/Catalog/view/base/web/js/price-options.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@ define([
182182
}, 0);
183183
toTemplate.data[type] = {
184184
value: value,
185-
formatted: utils.formatPrice(value, format)
185+
formatted: utils.formatPriceLocale(value, format)
186186
};
187187
});
188188

app/code/Magento/Catalog/view/base/web/js/price-utils.js

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,41 @@ define([
3030
return new Array(times + 1).join(string);
3131
}
3232

33+
/**
34+
* Format the price with the compliance to the specified locale
35+
*
36+
* @param {Number} amount
37+
* @param {Object} format
38+
* @param {Boolean} isShowSign
39+
*/
40+
function formatPriceLocale(amount, format, isShowSign)
41+
{
42+
var s = '',
43+
precision, pattern, locale, r;
44+
45+
format = _.extend(globalPriceFormat, format);
46+
precision = isNaN(format.requiredPrecision = Math.abs(format.requiredPrecision)) ? 2 : format.requiredPrecision;
47+
pattern = format.pattern || '%s';
48+
locale = window.LOCALE || 'en-US';
49+
if (isShowSign === undefined || isShowSign === true) {
50+
s = amount < 0 ? '-' : isShowSign ? '+' : '';
51+
} else if (isShowSign === false) {
52+
s = '';
53+
}
54+
pattern = pattern.indexOf('{sign}') < 0 ? s + pattern : pattern.replace('{sign}', s);
55+
amount = Number(Math.round(Math.abs(+amount || 0) + 'e+' + precision) + ('e-' + precision));
56+
r = amount.toLocaleString(locale, {minimumFractionDigits: precision});
57+
58+
return pattern.replace('%s', r).replace(/^\s\s*/, '').replace(/\s\s*$/, '');
59+
}
60+
3361
/**
3462
* Formatter for price amount
3563
* @param {Number} amount
3664
* @param {Object} format
3765
* @param {Boolean} isShowSign
3866
* @return {String} Formatted value
67+
* @deprecated
3968
*/
4069
function formatPrice(amount, format, isShowSign) {
4170
var s = '',
@@ -119,6 +148,7 @@ define([
119148
}
120149

121150
return {
151+
formatPriceLocale: formatPriceLocale,
122152
formatPrice: formatPrice,
123153
deepClone: objectDeepClone,
124154
strPad: stringPad,

app/code/Magento/Catalog/view/frontend/templates/navigation/left.phtml

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,16 @@
77
/**
88
* Category left navigation
99
*
10-
* @var $block \Magento\Catalog\Block\Navigation
10+
* @var \Magento\Catalog\Block\Navigation $block
11+
* @var \Magento\Framework\Locale\LocaleFormatter $localeFormatter
1112
*/
1213
?>
1314
<?php if (!$block->getCategory()) {
1415
return;
1516
} ?>
1617
<?php $_categories = $block->getCurrentChildCategories() ;?>
1718
<?php $_count = is_array($_categories) ? count($_categories) : $_categories->count(); ?>
18-
<?php if ($_count) :?>
19+
<?php if ($_count):?>
1920
<div class="block filter">
2021
<div class="title">
2122
<strong><?= $block->escapeHtml(__('Shop By')) ?></strong>
@@ -27,15 +28,19 @@
2728
<dd>
2829
<ol class="items">
2930
<?php /** @var \Magento\Catalog\Model\Category $_category */ ?>
30-
<?php foreach ($_categories as $_category) :?>
31-
<?php if ($_category->getIsActive()) :?>
31+
<?php foreach ($_categories as $_category):?>
32+
<?php if ($_category->getIsActive()):?>
3233
<li class="item">
3334
<a href="<?= $block->escapeUrl($block->getCategoryUrl($_category)) ?>"
34-
<?php if ($block->isCategoryActive($_category)) :?>
35+
<?php if ($block->isCategoryActive($_category)):?>
3536
class="current"
3637
<?php endif; ?>
3738
><?= $block->escapeHtml($_category->getName()) ?></a>
38-
<span class="count"><?= $block->escapeHtml($_category->getProductCount()) ?></span>
39+
<span class="count">
40+
<?= $block->escapeHtml(
41+
$localeFormatter->formatNumber($_category->getProductCount())
42+
) ?>
43+
</span>
3944
</li>
4045
<?php endif; ?>
4146
<?php endforeach ?>

app/code/Magento/Catalog/view/frontend/templates/product/list/toolbar/amount.phtml

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,28 +8,35 @@
88
/**
99
* Product list toolbar
1010
*
11-
* @var $block \Magento\Catalog\Block\Product\ProductList\Toolbar
11+
* @var \Magento\Catalog\Block\Product\ProductList\Toolbar $block
12+
* @var \Magento\Framework\Locale\LocaleFormatter $localeFormatter
1213
*/
1314
?>
1415
<p class="toolbar-amount" id="toolbar-amount">
15-
<?php if ($block->getLastPageNum() > 1) :?>
16+
<?php if ($block->getLastPageNum() > 1):?>
1617
<?= $block->escapeHtml(
1718
__(
1819
'Items %1-%2 of %3',
19-
'<span class="toolbar-number">' . $block->getFirstNum() . '</span>',
20-
'<span class="toolbar-number">' . $block->getLastNum() . '</span>',
21-
'<span class="toolbar-number">' . $block->getTotalNum() . '</span>'
20+
'<span class="toolbar-number">' . $localeFormatter->formatNumber($block->getFirstNum()) . '</span>',
21+
'<span class="toolbar-number">' . $localeFormatter->formatNumber($block->getLastNum()) . '</span>',
22+
'<span class="toolbar-number">' . $localeFormatter->formatNumber($block->getTotalNum()) . '</span>'
2223
),
2324
['span']
2425
) ?>
25-
<?php elseif ($block->getTotalNum() == 1) :?>
26+
<?php elseif ($block->getTotalNum() == 1):?>
2627
<?= $block->escapeHtml(
27-
__('%1 Item', '<span class="toolbar-number">' . $block->getTotalNum() . '</span>'),
28+
__(
29+
'%1 Item',
30+
'<span class="toolbar-number">' . $localeFormatter->formatNumber($block->getTotalNum()) . '</span>'
31+
),
2832
['span']
2933
) ?>
30-
<?php else :?>
34+
<?php else:?>
3135
<?= $block->escapeHtml(
32-
__('%1 Items', '<span class="toolbar-number">' . $block->getTotalNum() . '</span>'),
36+
__(
37+
'%1 Items',
38+
'<span class="toolbar-number">' . $localeFormatter->formatNumber($block->getTotalNum()) . '</span>'
39+
),
3340
['span']
3441
) ?>
3542
<?php endif; ?>

0 commit comments

Comments
 (0)