Flo*_*Flo 7 translation magento
我正在为我的Magento安装(版本1.6.2.0)开发一个自定义模块.我在config.xml中注册了模块的翻译文件,并开始添加德语翻译.该模块为Magento后端添加了一些新行为.
在做翻译的过程中,我注意到了Magento的奇怪行为.尽管模块的csv文件中提供了翻译,但Magento无法翻译某些单词.
当我将密钥更改为其他值时,翻译按预期工作,因此Magento似乎看到并读取了cvs文件.
目前我注意到"City"和"Store"键的这种行为.
csv文件的内容:
"City","Stadt"
"City1","Stadt"
Run Code Online (Sandbox Code Playgroud)
我使用以下行来翻译字符串.
Mage::helper('mymodule')->__('City') // returns "City"
Run Code Online (Sandbox Code Playgroud)
当我将密钥更改为"City1"时,每个东西都按预期工作.
Mage::helper('mymodule')->__('City1') // returns "Stadt"
Run Code Online (Sandbox Code Playgroud)
在此之后,我搜索了德语翻译csv文件(由德国Magento社区提供),以获取关键"城市"的翻译,并在"adminhtml模块"中找到了一个.
Mage::helper('adminhtml')->__('City') // returns "Stadt"
Run Code Online (Sandbox Code Playgroud)
所以这也按预期工作.
我不知道我做错了什么.正如我所说,字符串"Store"也会出现相同的行为.
有什么想法吗?
最后我解决了翻译问题.原因是config.xml中的配置错误.我通过调试Magento读取翻译文件的代码找到了它.当发生这种情况时,会有一个名为scope的参数,该参数从config.xml文件的一个XML元素中读取.
该元素通常应该具有模块的名称,例如<MyCompany_MyModule>
.在我配置翻译的教程中,这个XML元素被命名<translations>
为错误的.
我想对于早期版本的Magento来说这可能是正确的.让人难以发现的是,只有在其他模块的翻译文件中定义的键才会出现错误.仅在我的翻译文件中定义的键按预期工作.
正确的配置应如下所示.
<frontend>
...
<translate>
<modules>
<MyCompany_MyModule>
<files>
<default>MyCompany_MyModule.csv</default>
</files>
</MyCompany_MyModule>
</modules>
</translate>
...
</frontend>
<adminhtml>
...
<translate>
<modules>
<MyCompany_MyModule>
<files>
<default>MyCompany_MyModule.csv</default>
</files>
</MyCompany_MyModule>
</modules>
</translate>
...
</adminhtml>
Run Code Online (Sandbox Code Playgroud)