Magento - translate.csv和core_translate之间的区别

时间:2012-12-10 00:27:12

标签: magento internationalization

通过表translate.csv core_translate翻译与数据库方法有什么区别?

4 个答案:

答案 0 :(得分:9)

这是来自app / code / core / Mage / Core / Model / Translate.php的init()方法的一部分

//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中有三个选项可以为文本字符串添加自定义翻译:模块翻译,主题翻译和内联翻译。

模块翻译

模块转换以csv文件的形式存储在app/locale/languagecode_COUNTRYCODE/文件夹中,命名为Namespace_Modulename.csv __()方法内的扩展中的所有字符串都可以这样翻译

主题翻译

字符串可以在您的主题中翻译,因为您只需要通过Magento管理区域设置区域设置,然后在app/design/frontend/<package>/<theme>/locale/languagecode_COUNTRYCODE中创建translate.csv并将翻译后的字符串放在此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

答案 1 :(得分:5)

core_translate表用于依赖于StoreView的短语

/ app / design / frontend /您的主题/您的主题/语言环境/您的LOCALE / translate.csv为您的主题提供您的LOCALE语言的短语。如果您更改主题,则不会使用此短语(将使用来自新主题的translate.csv)。

如果词组在数据库和csv中可用,则将使用DB短语。

答案 2 :(得分:1)

正如我所看到的,当您在多个服务器上以分布式方法运行magento时,core_translate非常有用,并且从文件系统读取并不理想。 我使用core_translate和内联翻译来处理CMS块中的翻译内容。 (一个mod) 这样做的原因是从db读取比解析.csv更快。 (我不知道启用缓存是否属实,但它似乎是最安全的路径)

答案 3 :(得分:0)

我挖出了这个提出一些建议的旧论坛。可能Magento正在尝试使用内联core_translate方法并推出translate.csv。但是鉴于论坛帖子是从2008年开始的,似乎并非如此。另一个建议是某些语言在数据库中使用core_translate,而有些语言将记录保存在.csv中。可能是.csv用于本地维护者,core_translate用于管理员。这是线程http://www.magentocommerce.com/boards/viewthread/40510/