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

发布于 2024-11-25 15:24:16 字数 1366 浏览 0 评论 0原文

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

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

我已将所有位置的值 ' precision' 替换为 0,但没有成功。 这是我探索的列表:

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

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

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

    函数格式() { $this->formatPrecision($price, 0, $options, $includeContainer, $addBrackets); }

反映代码后,我意识到这一切更改根本无关紧要,因为数字格式信息基于由 Zend core API 提供的 区域设置 信息 >。

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

您可以在 lib/Zend/ 中找到 YY.xml 文件Locale/Data/,其中 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

I'm going to write a common problem in magento and a solution, which best fit for me.

I've been searchin the net and reflecting magento code for hours to find solution to the above problem. I wanted Hungarian price format to be 1 000 Ft instead of 1 000,00 Ft

I have replaced the value 'precision' to 0 everywhere, but did not succeed.
Here is a list where I probed:

  • 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);
    }

After reflecting the code I realized that this all change does not matter at all because number format information is based on locale information which is provided by the Zend core API.

So here is the solution I found and hopefully price formatting will be standard for the entire application this way.

You find your YY.xml file in lib/Zend/Locale/Data/, where YY is your countries locale code. Mine is hu.xml

You find the part:

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

About the format string you can find a not-at-all useful information at http://framework.zend.com/manual/en/zend.locale.parsing.html

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

此生挚爱伱 2024-12-02 15:24:16

将“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));        
    }

Copy "app/code/core/Mage/Directory/Model/Currency.php" to "app/code/local/Mage/Directory/Model/Currency.php" and replace the format function.

public function format($price, $options=array(), $includeContainer = true, $addBrackets = false)
    {
        return str_replace(',00', '', $this->formatPrecision($price, 2, $options, $includeContainer, $addBrackets));        
    }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文