Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
更改Magento十进制字段格式_Magento_Zend Framework_Localization_Internationalization_Magento 1.7 - Fatal编程技术网

更改Magento十进制字段格式

更改Magento十进制字段格式,magento,zend-framework,localization,internationalization,magento-1.7,Magento,Zend Framework,Localization,Internationalization,Magento 1.7,我需要更改Magento的默认十进制格式。我的意思是,当我将“1”保存到一个十进制字段中时,它会变成“10000.0000”,最后是“.0000” 我需要将其更改为另一种格式,使用“,”而不是“.”来分隔十进制(和货币)数字 这是巴西标准,即使在更改商店语言后也不会使用。这种变化应该主要反映在管理方面 非常感谢 ==编辑== 我还没有解决这个问题。我使用PT-BR(巴西葡萄牙语)作为默认语言,但它仍然使用了错误的十进制字符。 似乎Magento在一些代码点中有一些未本地化的价格格式(我的意思是硬

我需要更改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格式(或其他地区)


我说得对吗?是否有人可以解决此问题?

如果您想在管理区检查此更改

您可以在“管理”左下角下拉列表中转到

选择

Português (Portugal) / português (Portugal)
它将显示您想要的货币。如果您没有安装软件包,请转到

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

locale文件夹,并从前端配置中选择


希望这一定会对您有所帮助。

我已将以下更改应用于文件
magento\js\prototype\validation.js(第426行)

此外,还通过添加第一条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, ",", ".");
    }
    ...
到目前为止,这些变化已经解决了这个问题。你看到什么副作用了吗


欢迎评论!谢谢

较新版本的Magento基于Zend Framework货币区域设置格式,因此最好的方法是从Zend目录中更改language.xml,更多信息请参见。

如我所述,此Magento实例中已经安装了巴西葡萄牙语,但这还不够。价格另一个十进制字段必须是“x.abc”,而不是“x,abc”-谢谢您的帮助,还有其他提示吗?:)我刚刚检查了我的本地设置,它正在为我工作。我可以添加屏幕截图吗?请清理您的缓存。或者试试这个解决方案
public function getEscapedValue($index=null)
{
    $value = $this->getValue($index);

    if(is_numeric($value)){
        $value= number_format($value, 3, ",", ".");
    }
    ...