2012-12-10 16 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

伟大的现实生活中的例子,谢谢 –

相关问题