如何在magento中更改语言环境中的图像?

时间:2010-01-07 09:20:06

标签: php magento

我想在magento中更改搜索图像。在magento中搜索时,图像名称为btn_search.gif。现在它从skin / frontend / default / default / images获取图像。该文件是/app/design/frontend/default/default/template/catalogsearch/form.mini.phtml,其中提到此标记为

<input id="search-button" type="image" src="<?php echo $this->getSkinUrl('images/btn_search.gif') ?>" alt="<?php echo $this->__('Search') ?>" />

我检查代码,发现我们可以将locale作为_type传递给

<input id="search-button" type="image" src="<?php echo $this->getSkinUrl('images/btn_search.gif', array('_type'=>'local')) ?>" alt="<?php echo $this->__('Search') ?>" />

但是当我检查代码时,这只会在locale目录中检查该文件是否存在于该语言环境中。如果存在,那么它将采取皮肤图像。我想使用该区域设置图像而不是该皮肤图像。

所以当我点击法国商店时,我得到的图像是我在/app/design/frontend/default/default/locale/fr_FR/images/btn_search.gif

中设置的

我在/app/code/core/Mage/Core/Model/Design/Package.php中检查了getSkinUrl的代码。我发现他检查文件的语言环境,但它返回皮肤URL。

是否有任何返回语言环境网址的方法?

1 个答案:

答案 0 :(得分:5)

我得到了答案

这就是我将按钮语言(语言环境)依赖于magento commerce

的方式

我从主页上的迷你搜索表单开始。该表单的搜索图像按钮在

中定义

/应用/设计/前端///模板/ catalogsearch / form.mini.phtml

在该文件中,我更改了以下行

<input type="image" src="<?php echo $this->getSkinUrl('images/btn_mini_search.gif') ?>" alt="<?php echo $this->__('Search') ?>"/>

<input type="image" src="<?php echo $this->getSkinUrl('images/btn_mini_search_'.$this->__('_LOCALE_BUTTON_').'.gif') ?>" alt="<?php echo $this->__('Search') ?>"/>

然后我将_LOCALE_BUTTON_的翻译添加到所有语言环境translate.csv文件中: /应用程序/设计/前端///区域设置// translate.csv:

即。 区域设置en_GB:_LOCALE_BUTTON_,en_GB 区域设置nl_NL:_LOCALE_BUTTON_,nl_NL

对于每个翻译,请确保/ skin / frontend /// images /目录中提供了区域设置后缀按钮图像文件:

即。 btn_mini_search_en_GB.gif btn_mini_search_nl_NL.gif

我认为你也可以通过将上面提到的行更改为_LOCALE_BUTTON_来表示文件夹:

<input type="image" src="<?php echo $this->getSkinUrl('images/locale/'.$this->__('_LOCALE_BUTTON_').'/btn_mini_search.gif') ?>" alt="<?php echo $this->__('Search') ?>"/>

但是你需要保存这样的locale后缀按钮图像文件: / skin / frontend /// images / locale / en_GB / btn_mini_search.gif和 / skin / frontend /// images / locale / nl_NL / btn_mini_search.gif

我自己没有测试过最后一种方法,但我没有看到任何原因导致它无效的原因。

我一直在考虑用常规的“搜索”字符串替换_LOCALE_BUTTON_值(不推荐!!) 此方法的优点是您不需要为translate.csv文件添加单独的翻译,但是您可能会遇到多个语言环境(重复键)的某些翻译类似的风险。除此之外,当翻译中使用非ascii / utf-8字符时,它可能会导致问题,但这取决于您使用的操作/文件系统。