magento 1.4 -- 後台分類頁和產品頁字段名無法翻譯的bug及解決方案
在將1.3用的語言包放到1.4上使用之後,發現後台後台分類頁和產品頁字段都是英文,而這些英文詞在Mage_Catalog.csv中翻譯都存在,卻不起作用了。是1.4用新的語言包文件來翻譯這些詞了嗎?在我搜索完係統自帶的英文語言包,發現這些詞不存在與英文包的任何一個文件中,不知道是係統存在的bug還是Magento官方出於什麼考慮。
經查找發現這裏的字段名用到了getLabelHtml函數來輸出,找到這個函數發現是在基礎類庫裏麵,打開文件/lib/Varien/Data/Form/Element/Abstract.php,找到getLabelHtml函數,會發現標簽輸出時並沒有做處理:
將代碼做如下修改
public function getLabelHtml($idSuffix = '') { if (!is_null($this->getLabel())) { $html = '<label for="'.$this->getHtmlId() . $idSuffix . '">'.Mage::helper('catalog')->__($this->getLabel()) . ( $this->getRequired() ? ' <span >*</span>' : '' ).'</label>'."/n"; } else { $html = ''; } return $html; }
現在去看後台,分類頁和產品頁的字段都已經翻譯成中文了(假設這些詞語言包裏都有),說明已經讀取到了語言包。
有一點隱患是不知道除了分類頁和產品頁,getLabelHtml函數會不會在其它地方會有用到,因為我添加的代碼Mage::helper('catalog')->__()表示所有調用這個函數輸出的都使用Mage_Catalog.csv這個語言文件,各位使用時如有發現對其它地方有影響到,希望能留言告訴我,謝謝。
最後更新:2017-04-02 05:21:05