2012-12-10 18 views

回答

8

這裏是的init()從應用程序/代碼/核心/法師/核心/型號方法的一部分和/ Translate.php

//Loading data from module translation files 
     foreach ($this->getModulesConfig() as $moduleName=>$info) { 
      $info = $info->asArray(); 
      $this->_loadModuleTranslation($moduleName, $info['files'], $forceReload); 
     } 
     $this->_loadThemeTranslation($forceReload); 
     $this->_loadDbTranslation($forceReload); 

從它可以看出,Magento的負載翻譯以下列順序,即Magento有三個選項可以將自定義翻譯添加到文本字符串:模塊翻譯,主題翻譯和內聯翻譯。

模塊翻譯

模塊的翻譯都存儲在app/locale/languagecode_COUNTRYCODE/文件夾中的CSV文件,命名爲Namespace_Modulename.csv形式擴展所有的字符串,其內部__()方法可以翻譯這樣

主題翻譯

字符串可以在您的主題中翻譯,因爲您只需要通過Magento管理區域設置區域設置,然後創建translate.csv app/design/frontend/<package>/<theme>/locale/languagecode_COUNTRYCODE並把你的這個CSV

「My Cart」,」My Basket」 

「My Account」,」Account」 

在線翻譯裏翻譯的字符串

爲了使您需要登錄到管理控制檯,並轉到System -> Configuration -> Developer,然後找到翻譯內嵌和前端設置Enabled是在線翻譯

此方法所做的所有翻譯都將存儲在數據庫內的core_translate表中。爲了更好地瞭解這種方法是如何工作的,check this video out.

以上案文是a part of my article on our blog

0

我挖了這個老論壇,提出了一些事情。可能Magento正在嘗試使用內聯core_translate方法並推出translate.csv。然而鑑於論壇主題是從2008年開始的,似乎並非如此。另一個建議是某些語言在數據庫上使用core_translate,而有些語言則將記錄保存在.csv中。可能.csv是針對本地維護者的,core_translate針對管理員。這裏的線程http://www.magentocommerce.com/boards/viewthread/40510/

5

core_translate表是依賴於StoreView

短語

/應用程序/設計/前端/你的包/你的主題/區域/你的locale/translate.csv在你的地區語言詞組時,您主題。如果您更改主題,則不會使用這些短語(將使用新主題中的translate.csv)。

如果短語在數據庫和csv中可用,則會使用數據庫短語。

+3

另外,內聯轉換功能修改了'core_translate'表。 –

1

在我看來,當你運行在多臺服務器上分發方法的Magento,並從文件系統讀取core_translate是有用只是不理想。 我使用core_translate和內聯翻譯來處理CMS塊中的翻譯內容。 (a mod) 原因是從數據庫中讀取比解析.csv要快。(我不知道在緩存打開的情況下是否屬實,但它似乎是最安全的路線)

+0

偉大的現實生活中的例子,謝謝 –

相關問題