【问题标题】:Change Magento decimal field format更改 Magento 十进制字段格式
【发布时间】:2013-09-27 02:20:49
【问题描述】:

我需要更改 Magento 的默认十进制格式。我的意思是,当我将 '1' 保存到十进制字段时,它最终会变成 '10000.0000' 和这个 '.0000'。

我需要将其更改为另一种格式,该格式使用“,”而不是“。”分隔十进制(和货币)数字。

这是巴西标准,即使更改商店语言后也不会使用。这种变化应该主要体现在管理端。

非常感谢!

==已编辑== 我还没有解决问题。我使用 PT-BR(巴西葡萄牙语)作为默认语言,但它仍然使用错误的十进制字符。 似乎 Magento 在几处代码中有一些非本地化的价格格式(我的意思是,硬编码)。例如:magento\js\prototype\validation.js 在第 426 行有:

|| (!isNaN(parseNumber(v)) && /^\s*-?\d*(\,\d*)?\s*$/.test(v));

但它需要是

|| (!isNaN(parseNumber(v)) && /^\s*-?\d*(\,\d*)?\s*$/.test(v));

适应 PT-BR 格式(或其他语言环境)。

我说的对吗?有人能解决这个问题吗?

【问题讨论】:

    标签: magento zend-framework localization internationalization magento-1.7


    【解决方案1】:

    如果您想在管理区域中查看此更改

    你去管理员左下角的下拉菜单

    然后选择

    Português (Portugal) / português (Portugal)
    

    它会根据需要显示货币。另外,如果您不安装软件包,请转到

    http://www.magentocommerce.com/translations/list/19

    下载您的软件包并将其添加到您的

    语言环境文件夹并从前端配置中选择

    希望这对你有帮助。

    【讨论】:

    • 正如我提到的,这个 Magento 实例中已经安装了巴西葡萄牙语,但这还不够。价格另一个十进制字段必须是 'x.abc' 而不是 'x,abc' - 感谢您的帮助,还有其他提示吗? :)
    • 我刚刚检查了我的本地设置,它对我有用。我可以添加屏幕截图吗?请清除您的缓存。或者试试这个解决方案magentocommerce.com/boards/viewthread/30474
    【解决方案2】:

    我已对文件magento\js\prototype\validation.js (line 426) 应用了以下更改:

    || (!isNaN(parseNumber(v)) && /^\s*-?\d*(\,\d*)?\s*$/.test(v));
    

    此外,通过添加第一个 if 语句来更改文件 lib/Varien/Data/Form/Element/Abstract.php:

    public function getEscapedValue($index=null)
    {
        $value = $this->getValue($index);
    
        if(is_numeric($value)){
            $value= number_format($value, 3, ",", ".");
        }
        ...
    

    到目前为止,此更改已解决了该问题。有什么副作用吗?

    欢迎评论!谢谢!

    【讨论】:

      【解决方案3】:

      较新版本的 Magento 基于 Zend Framework 货币语言环境格式,因此最好的方法是更改​​ Zend 目录中的 language.xml,更多信息请参见 great article。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-11-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-08-01
        • 2019-12-28
        • 1970-01-01
        相关资源
        最近更新 更多