一般magento的語言包都是指/app/locale目錄下的檔案夾,以中文包為例,/app/locale/zh_cn下的所有檔案就是中文語言包的全部内容(具體可見從http://www.magentochina.org/bbs/下載下傳的magento漢化包)。
細心地人可能會發現,除了這裡有csv檔案,在模闆檔案目錄下也有一個locale檔案夾,這裡同樣有個檔案名為translate.csv的csv檔案(在各自語言檔案夾下,比如預設在locale下就隻有一個en_us檔案夾,裡面自帶一個translate.csv檔案)。
現在我們來做個實驗,在你所使用的模闆目錄下/app/design/frontend/default/default/locale(這裡以default為例),建立檔案夾zh_cn,在這個檔案夾下建立檔案translate.csv,打開translate.csv,添加這樣一句:
"my cart","購物袋"
儲存。
現在打開前台,你會發現原來的“我的購物車”變成了“購物袋”(“我的購物車”這個翻譯取自http://www.magentochina.org/bbs/的漢化包)。
可以推斷出,translate.csv裡的翻譯要比/app/locale/下的語言檔案裡的翻譯優先級要高。
其實從這個檔案放的位置就可以了解,這個csv檔案是專門給所在的模闆用的,當使用這個模闆時,translate.csv裡的翻譯項會覆寫掉語言包裡的同名項,至于實際用法,以上面的為例,國内的語言包現在都是把my cart翻譯成“我的購物車”,這個翻譯沒有問題,但如果是做一個服裝網站,把它翻譯成“購物袋”是不是會更讨巧和更有創意呢,這時你不需要去修改/app/locale/zh_cn目錄下的檔案,而是像上面的例子一樣去translate.csv新增項來覆寫掉原來的。
以為自身的使用情況來說,雖然網上有現成的中文漢化包提供下載下傳,但并沒有做到百分百漢化(其中有一些是magento自帶的bug造成的),特别是背景,而國内的客戶是很難接受在背景經常看到英文的,是以在這個漢化包的基礎上,我經常需要把發現的漏網之魚做好翻譯并加到語言包裡去,積累起來更完善的語言包以便下個項目可以重用,這時就會存在一個問題,有些項目的特殊性會要求把同一段英文翻譯成不同的中文(還是以購物車和購物袋為例),如果把這一類的翻譯直接去改語言包裡的檔案來實作,下一個項目要重用這個語言包就會帶來問題。是以,把所有可能個性的,無法重用的翻譯都寫到translate.csv裡去是一種正确和合理的思路,我覺得這也是官方提供這種方式的初衷。
ps:背景模闆目錄下同樣存在這個檔案,可以用同樣的方式修改背景的翻譯