translate.csv转换与通过表core_translate的数据库方法有什么不同
发布于 2012-12-11 06:18:40
下面是来自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
发布于 2012-12-10 14:31:19
core_translate表用于依赖于StoreView的短语
/app/design/frontend/YOUR PACKAGE/YOUR THEME/ LOCALE /YOUR LOCALE/translate.csv获取主题所在地区语言中的短语。如果您更改主题,则不会使用此短语(将使用来自新主题的translate.csv)。
如果短语在数据库和csv中可用,则将使用DB短语。
发布于 2013-05-28 01:03:02
在我看来,当您在多个服务器上以分布式方法运行magento时,core_translate非常有用,而且从文件系统读取数据并不理想。我使用带有内联翻译的core_translate来处理CMS块中的翻译内容。这样做的原因是,从db读取数据比解析.csv更快。(我不知道在启用缓存的情况下这是不是真的,但这似乎是最安全的方法)
https://stackoverflow.com/questions/13793422
复制相似问题