通过表translate.csv
core_translate
翻译与数据库方法有什么区别?
答案 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.
答案 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/