如何在Magento 1.5中更改价格格式或区域设置选项?

时间:2011-07-21 18:46:00

标签: magento localization locale precision number-formatting

我将在magento和解决方案中写一个常见的问题,最适合我。

我一直在网上搜索并反映magento代码几个小时,以找到上述问题的解决方案。我希望匈牙利的价格格式为1 000 Ft,而不是1 000,00 Ft

我已将值'precision'替换为0,但未成功。 这是我探查的列表:

  • app / code / core / Mage / Core / Model / Store.php

    function formatPrice(){ $option = array('precison' => 2 ); ... }

  • app / code / core / Mage / Directory / Model / Currency.php

    function format() { $this->formatPrecision($price, 0, $options, $includeContainer, $addBrackets); }

在反映代码后,我意识到这一切都没有关系,因为数字格式信息是基于 Zend核心API 提供的 locale 信息。

所以这是我找到的解决方案,希望价格格式化将成为整个应用程序的标准。

您可以在 lib / Zend / Locale / Data / 中找到 YY.xml 文件,其中 YY 是您的国家/地区代码。我的是 hu.xml

你找到了这个部分:

<currencyFormats>
    <currencyFormatLength>
        <currencyFormat>
            <pattern>#,##0 ¤</pattern>
        </currencyFormat>
    </currencyFormatLength>
    <unitPattern count="other">{0} {1}</unitPattern>
</currencyFormats>

关于格式字符串,您可以在http://framework.zend.com/manual/en/zend.locale.parsing.html

找到一个完全没用的有用信息

1 个答案:

答案 0 :(得分:-2)

将“app / code / core / Mage / Directory / Model / Currency.php”复制到“app / code / local / Mage / Directory / Model / Currency.php”并替换格式化功能。

public function format($price, $options=array(), $includeContainer = true, $addBrackets = false)
    {
        return str_replace(',00', '', $this->formatPrecision($price, 2, $options, $includeContainer, $addBrackets));        
    }