Magento2 Magento 2货币符号未显示

Magento2 Magento 2货币符号未显示,magento2,Magento2,我有两个商店,英语和阿拉伯语。默认存储为阿拉伯语,默认货币为SAR。货币符号在英语商店上显示良好,但在阿拉伯语商店上没有显示。它只在产品列表页面和单个产品页面上显示这样的价格 我把它修好了。 张贴我的答案可能是它可以帮助别人 编辑此文件 vendor\magento\zendframework1\library\Zend\Locale\Data\ar_SA.xml 并删除以下代码 <numbers> <currencyFormats numberSystem="latn"&g

我有两个商店,英语和阿拉伯语。默认存储为阿拉伯语,默认货币为SAR。货币符号在英语商店上显示良好,但在阿拉伯语商店上没有显示。它只在产品列表页面和单个产品页面上显示这样的价格

我把它修好了。 张贴我的答案可能是它可以帮助别人

编辑此文件

vendor\magento\zendframework1\library\Zend\Locale\Data\ar_SA.xml
并删除以下代码

<numbers>
<currencyFormats numberSystem="latn">
<currencyFormatLength>
<currencyFormat type="standard">
<pattern>¤#0.00</pattern>
</currencyFormat>
</currencyFormatLength>
</currencyFormats>
</numbers>

需要将“位置”更改为右侧。

如果@Ask4Tec的解决方案不起作用

试试这个

从en.xml文件复制货币和数字块,并将其粘贴到ar_SA.xml文件中 清理和刷新缓存
硬刷新后检查更新
ar_SA.xml
如下:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
<!-- Copyright © 1991-2013 Unicode, Inc.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
For terms of use, see http://www.unicode.org/copyright.html
-->
<ldml>
    <identity>
        <version number="$Revision: 9287 $"/>
        <generation date="$Date: 2013-08-28 21:32:04 -0500 (Wed, 28 Aug 2013) $"/>
        <language type="ar"/>
        <territory type="SA"/>
    </identity>
    <dates>
        <calendars>
            <calendar type="islamic">
                <dateTimeFormats>
                    <availableFormats>
                        <dateFormatItem id="Md" draft="contributed">M/d</dateFormatItem>
                        <dateFormatItem id="MEd" draft="contributed">E, M/d</dateFormatItem>
                        <dateFormatItem id="MMMd" draft="contributed">MMM d</dateFormatItem>
                        <dateFormatItem id="MMMEd" draft="contributed">E, MMM d</dateFormatItem>
                    </availableFormats>
                </dateTimeFormats>
            </calendar>
        </calendars>
    </dates>
    <numbers>
        <symbols numberSystem="latn">
            <decimal>.</decimal>
            <group>,</group>
            <list>;</list>
            <percentSign>%</percentSign>
            <plusSign>+</plusSign>
            <minusSign>-</minusSign>
            <exponential>E</exponential>
            <superscriptingExponent>×</superscriptingExponent>
            <perMille>‰</perMille>
            <infinity>∞</infinity>
            <nan>NaN</nan>
        </symbols>
        <decimalFormats numberSystem="latn">
            <decimalFormatLength>
                <decimalFormat>
                    <pattern>#,##0.###</pattern>
                </decimalFormat>
            </decimalFormatLength>
        </decimalFormats>
        <currencyFormats numberSystem="latn">
            <currencyFormatLength>
                <currencyFormat type="standard">
                    <pattern>¤#,##0.00</pattern>
                </currencyFormat>
                <currencyFormat type="accounting">
                    <pattern>¤#,##0.00;(¤#,##0.00)</pattern>
                </currencyFormat>
            </currencyFormatLength>
            <unitPattern count="one">{0} {1}</unitPattern>
            <unitPattern count="other">{0} {1}</unitPattern>
        </currencyFormats>
        <currencies>
            <currency type="USD">
                <displayName>US Dollar</displayName>
                <displayName count="one">US dollar</displayName>
                <displayName count="other">US dollars</displayName>
                <symbol>$</symbol>
            </currency>
        </currencies>
    </numbers>
</ldml>

M/d
E、 M/d
嗯
E、 嗯
.
,
;
%
+
-
E
×
‰
∞
楠
#,##0.###
¤#,##0.00
¤#,##0.00;(¤#,##0.00)
{0} {1}
{0} {1}
美元
美元
美元
$

下次进行composer更新时,在供应商内部编辑文件是不好的,它将被删除。您是否有正确的修复方法?您可以创建一个新模块并覆盖此xml文件。这不提供问题的答案。一旦你有足够的钱,你将能够;相反@MarcusBorkenhagen,接受的解决方案对我(以及其他人)不起作用,所以我发布了对我起作用的解决方案来帮助其他人。谢谢
use Magento\Framework\Event\ObserverInterface;
class ChangeCurrencyPosition implements ObserverInterface
{
    public function execute(\Magento\Framework\Event\Observer $observer)
    {
        $currencyOptions = $observer->getEvent()->getCurrencyOptions();
        $currencyOptions->setData('position', \Magento\Framework\Currency::RIGHT);
        return $this;
    }
}
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
<!-- Copyright © 1991-2013 Unicode, Inc.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
For terms of use, see http://www.unicode.org/copyright.html
-->
<ldml>
    <identity>
        <version number="$Revision: 9287 $"/>
        <generation date="$Date: 2013-08-28 21:32:04 -0500 (Wed, 28 Aug 2013) $"/>
        <language type="ar"/>
        <territory type="SA"/>
    </identity>
    <dates>
        <calendars>
            <calendar type="islamic">
                <dateTimeFormats>
                    <availableFormats>
                        <dateFormatItem id="Md" draft="contributed">M/d</dateFormatItem>
                        <dateFormatItem id="MEd" draft="contributed">E, M/d</dateFormatItem>
                        <dateFormatItem id="MMMd" draft="contributed">MMM d</dateFormatItem>
                        <dateFormatItem id="MMMEd" draft="contributed">E, MMM d</dateFormatItem>
                    </availableFormats>
                </dateTimeFormats>
            </calendar>
        </calendars>
    </dates>
    <numbers>
        <symbols numberSystem="latn">
            <decimal>.</decimal>
            <group>,</group>
            <list>;</list>
            <percentSign>%</percentSign>
            <plusSign>+</plusSign>
            <minusSign>-</minusSign>
            <exponential>E</exponential>
            <superscriptingExponent>×</superscriptingExponent>
            <perMille>‰</perMille>
            <infinity>∞</infinity>
            <nan>NaN</nan>
        </symbols>
        <decimalFormats numberSystem="latn">
            <decimalFormatLength>
                <decimalFormat>
                    <pattern>#,##0.###</pattern>
                </decimalFormat>
            </decimalFormatLength>
        </decimalFormats>
        <currencyFormats numberSystem="latn">
            <currencyFormatLength>
                <currencyFormat type="standard">
                    <pattern>¤#,##0.00</pattern>
                </currencyFormat>
                <currencyFormat type="accounting">
                    <pattern>¤#,##0.00;(¤#,##0.00)</pattern>
                </currencyFormat>
            </currencyFormatLength>
            <unitPattern count="one">{0} {1}</unitPattern>
            <unitPattern count="other">{0} {1}</unitPattern>
        </currencyFormats>
        <currencies>
            <currency type="USD">
                <displayName>US Dollar</displayName>
                <displayName count="one">US dollar</displayName>
                <displayName count="other">US dollars</displayName>
                <symbol>$</symbol>
            </currency>
        </currencies>
    </numbers>
</ldml>