我需要更改Magento的默认小数格式。我的意思是,当我将“1”保存到十进制字段时,它最终变为“10000.0000”,最后是“.0000”。
我需要将其更改为另一种格式,使用','而不是'。'分隔小数(和货币)数字。
这是巴西标准,即使在更改商店语言后也没有使用它。这种变化应主要反映在管理方面。
非常感谢!
==被修改==
我还没有解决问题。我使用PT-BR(巴西葡萄牙语)作为默认语言,它仍然使用错误的十进制字符。
似乎Magento在一些代码点中有一些非本地化的价格格式(我的意思是硬编码)。例如:第426行的magento\js\prototype\validation.js
包含:
|| (!isNaN(parseNumber(v)) && /^\s*-?\d*(\,\d*)?\s*$/.test(v));
但是它必须是
|| (!isNaN(parseNumber(v)) && /^\s*-?\d*(\,\d*)?\s*$/.test(v));
适合PT-BR格式(或其他语言环境)。
我是对的吗?有人能解决这个问题吗?
答案 0 :(得分:0)
如果您想在管理区域中查看此更改
你去管理员左下角
并选择
Português (Portugal) / português (Portugal)
它会根据您的需要显示货币。此外,如果您没有安装包,请转到
http://www.magentocommerce.com/translations/list/19
下载您的包并将其添加到您的
语言环境文件夹,并从前端配置中选择
希望这对您有所帮助。
答案 1 :(得分:0)
我已将以下更改应用于文件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, ",", ".");
}
...
到目前为止,这些变化已经解决了这个问题。你看到任何副作用吗?
欢迎评论!谢谢!
答案 2 :(得分:0)
较新版本的Magento基于Zend Framework货币区域设置格式,因此最好的方法是从Zend目录更改language.xml,有关此great article的更多信息。