2

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

4

4 回答 4

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 管理区域设置语言环境,然后在其中创建 translate.csvapp/design/frontend/<package>/<theme>/locale/languagecode_COUNTRYCODE并将您翻译的字符串放入此 CSV

“My Cart”,”My Basket”

“My Account”,”Account”

内联翻译

要启用内联翻译,您需要登录管理面板并转到System -> Configuration -> Developer然后找到内联翻译并Enabled为前端设置是

此方法所做的所有翻译都将存储在数据库中的 core_translate 表中。为了更好地了解此方法的工作原理,请查看此视频。

上面的文字是我在我们博客上的文章的一部分

于 2012-12-10T22:18:39.717 回答
5

core_translate 表用于依赖于 StoreView 的短语

/app/design/frontend/YOUR PACKAGE/YOUR THEME/locale/YOUR LOCALE/translate.csv 用于您的主题的本地语言的短语。如果您更改主题,则不会使用此短语(将使用来自新主题的 translate.csv)。

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

于 2012-12-10T06:31:18.533 回答
1

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

于 2013-05-27T17:03:01.807 回答
0

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

于 2012-12-10T01:42:51.730 回答