0

我需要更改 Magento 的默认十进制格式。我的意思是,当我将“1”保存到十进制字段时,它最终会变成“10000.0000”,而这个“.0000”最终会变成“10000.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 格式(或其他语言环境)。

我对吗?有人可以解决这个问题吗?

4

3 回答 3

0

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

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

并选择

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

它会根据需要向您显示货币。此外,如果你不安装你的包去

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

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

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

希望这对你有帮助。

于 2013-09-27T04:50:51.093 回答
0

较新版本的 Magento 基于 Zend 框架货币语言环境格式,因此最好的方法是更改​​ Zend 目录中的 language.xml,更多信息请参阅这篇精彩的文章

于 2014-08-25T15:41:39.997 回答
0

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

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

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

public function getEscapedValue($index=null)
{
    $value = $this->getValue($index);

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

到目前为止,这种变化已经解决了这个问题。你看有什么副作用吗?

欢迎评论!谢谢!

于 2013-10-20T20:25:58.603 回答