我为Magento网站内置的功能创建了一个自定义语言文件。语言变量在我的本地机器上运行正常(当然),但是在我们的暂存环境中却没有。我的本地机器是Windows,登台服务器是Linux,所以明显的答案是文件名大小写的问题,但imho这些都是正确的。
我有自己的块覆盖Mage_Catalog,名为Feno_Catalog
,效果很好。对于该config.xml文件,我添加了一些代码来加载Feno_Catalog.csv
;
/local/Feno/Catalog/etc/config.xml:
<?xml version="1.0" encoding="iso-8859-1"?>
<config>
<modules>
<Feno_Catalog>
<version>0.1.0</version>
</Feno_Catalog>
</modules>
<global>
<blocks>
<catalog>
<rewrite>
<class>Feno_Catalog_Block</class>
</rewrite>
</catalog>
</blocks>
<helpers>
<catalog>
<rewrite>
<class>Feno_Catalog_Helper</class>
</rewrite>
</catalog>
</helpers>
</global>
<frontend>
<translate>
<modules>
<Feno_Catalog>
<files>
<default>Feno_Catalog.csv</default>
</files>
</Feno_Catalog>
</modules>
</translate>
</frontend>
<adminhtml>
<translate>
<modules>
<Feno_Catalog>
<files>
<default>Feno_Catalog.csv</default>
</files>
</Feno_Catalog>
</modules>
</translate>
</adminhtml>
</config>
CSV文件已放入2个文件夹:/app/locale/[de_DE|en_US]/
,并带有匹配的外壳。
正如我所提到的,它在我的本地计算机上工作正常,但在登台服务器上却没有。什么可能导致这个?我已经搜索了很多并清除了缓存(虽然缓存已关闭),切换语言(两种语言都不起作用 - 语言键类似于“poll_question_a1”)。
当我将翻译移动到Mage_Catalog.csv时,一切都运行正常(但当然这不是我想要的)。
那么如何解决?有没有办法找到原因?
答案 0 :(得分:1)
也许既然您正在重写目录模块,您需要将翻译看起来像这样:
<translate>
<modules>
<Mage_Catalog>
<files>
<feno>Feno_Catalog.csv</feno> <!-- name it something other than default, to avoid conflict with Mage_Catalog -->
</files>
</Mage_Catalog>
</modules>
</translate>
此外,您可以尝试在第131-134行左右查看app/code/core/Mage/Core/Model/Translate.php
。这就是加载模块翻译的地方。尝试在那里及其周围进行一些Mage::log()
次调用,看看你的CSV文件是否真的被加载了。