2011-09-02 61 views
1

我正在嘗試更改Magento版本中的價格格式。 1.5.1.0 from €8.49 to EUR 8.49如何更改Magento 1.5.1.0中的貨幣符號?

我一直在尋找很多帖子和論壇,但它沒有解決。 我試圖按照說明進行操作,但到目前爲止還沒有解決問題。 緩存被禁用。

/lib/Zend/Locale/Data/en.xml 
<currency type="EUR"> 
<displayName>Euro</displayName> 
<displayName count="one">euro</displayName> 
<displayName count="other">euros</displayName> 
//added <symbol>EUR</symbol> here 
</currency> 

/lib/Zend/Locale/Data/root.xml 
<currency type="EUR"> 
    <symbol>€</symbol> => changed to <symbol>EUR</symbol> didn't work 
</currency> 

不,我不想更改核心/ Zend文件或使用str_replace。

感謝您的幫助!

回答

0

嘗試在你的版本根目錄下grep,你會發現它是基於locale的,所以你可能需要在多個文件中改變t。

grep 'type="EUR"' . -rsn 

不要忘記觀察前端的變化

rm -rf var/cache/* 
+0

非常感謝!刪除/ var/cache創建它。不知道停用的緩存是不夠的... –

0
  1. 您可以使用免費的擴展Currency Manager

  2. 或者你可以寫自己的前事後清除緩存Mage_Directory_Model_Currency模型中的簡單模塊和覆蓋函數format()。

    public function formatTxt($price, $options=array()) 
    { 
        $options['display'] = Zend_Currency::USE_SHORTNAME; 
        return parent::formatTxt($price, $options); 
    } 
    

附:在Magento升級之後,您可以放棄/lib/Zend/Locale/Data/*.xml文件中的更改。

+0

以及你可以隨時將更改後的文件移動到應用程序/代碼/本地/ Zend/Locale /數據,但是你必須跟蹤任何本地更改 –

+1

@AntonS似乎像此方法不起作用。只要看看Zend_Locale_Data :: _ findRoute方法:它正在以這種方式查找定位文件:$ filename = dirname(__ FILE__)。 '/ Data /'。 $ locale。 '.XML'; - 這意味着,該文件將始終從lib/Zend/Locale/Data目錄中加載 – Snowcore

+0

@Snowcore您是否也嘗試過這一點? Magento允許你覆蓋Zend文件。所以你可以覆蓋路徑或看看它是否已經爲你完成 –