模块翻译不是翻译

Dan*_*iel 5 php translation magento

我的模块中的Magento翻译有点问题,因为它不起作用.正如所有教程所说的那样应该很容易.每个app/locale/[xx_XX]/ - 文件夹中都有一个.csv文件,在config.xml中也有一个条目.我的模块中有一个帮助器,它也在config.xml中注册,我可以使用它.毕竟,我清除了所有缓存文件并再次尝试.

我错了什么或忘记了什么?

代码中的调用:

$str = Mage::helper('mymodule')->__('mystring');
Run Code Online (Sandbox Code Playgroud)

在config.xml中(在前端,adminhtml和全局命名空间中尝试了这个块):

<translate>
    <modules>
        <Namespace_Module>
            <files>
                <default>Namespace_Module.csv</default>
            </files>
        </Namespace_Module>
    </modules>
</translate>
Run Code Online (Sandbox Code Playgroud)

Gri*_*air 5

我记得在我的商店以开发模式运行时遇到翻译问题.它背后有一个基本原理,允许您更好地调试翻译或其他东西.

我认为具体的情况是,在开发模式中,遇到的第一个翻译被选中.在非开发中,仅搜索特定模块.

所以说,你有模块A和B,他们都有术语"翻译这个",在我的开发环境中,我从模块A得到了翻译,而在生产中,我是从模块B得到的.

不确定你有什么样的术语,但它可能与你的问题有关.


Ala*_*orm 5

有两种可能出错的事情.首先是你的config.xml节点错了,Magento不知道要查找你的文件.第二个是你的节点正确,但Magento找不到你的文件,因为它位于错误的位置.

弹出以下文件中的以下方法

#File: app/code/core/Mage/Core/Model/Translate.php
protected function _loadModuleTranslation($moduleName, $files, $forceReload=false)
{
    foreach ($files as $file) {
        $file = $this->_getModuleFilePath($moduleName, $file);
        $this->_addData($this->_getFileData($file), $moduleName, $forceReload);
    }
    return $this;
}
Run Code Online (Sandbox Code Playgroud)

这是加载翻译文件的代码.使用var_dump或添加一些临时调试Mage::Log.

protected function _loadModuleTranslation($moduleName, $files, $forceReload=false)
{
    var_dump($moduleName);
    foreach ($files as $file) {
        var_dump('Start');
        var_dump($file);
        $file = $this->_getModuleFilePath($moduleName, $file);
        var_dump($file);
        $this->_addData($this->_getFileData($file), $moduleName, $forceReload);
        var_dump('End');
    }
    return $this;
}
Run Code Online (Sandbox Code Playgroud)

清除缓存,重新加载页面.检查文件的调试语句.如果您看到它列出,请确保它实际存在于文件系统上,并且它是可读的.

如果它没有显示,则表示您的配置不正确.确保你config.xml看起来像这样

<config>
    <frontend>
        <translate>
            <modules>
                <Namespace_Module>
                    <files>
                        <default>Namespace_Module.csv</default>
                    </files>
                </Namespace_Module>
            </modules>
        </translate>
    </frontend>
</config>
Run Code Online (Sandbox Code Playgroud)

使用类似模块列表模块的东西来确保您的模块实际加载到系统中.

祝好运!