我有一个具有多种语言的 Magento 网站。我已经设置了语言包,网站上的所有内容似乎都能正确翻译。交易电子邮件也以正确的语言发送除了“忘记密码"始终以德语发送的电子邮件。这就是我所做的:
- 安装语言包并确保所有模板和文件夹结构正确。例子:
/app/locale/nl_NL/template/email/
- Under 系统 » 交易电子邮件:我应用了模板,选择了区域设置并保存。
- 然后我去了系统 » 配置 » 销售电子邮件,我从“当前配置范围“下拉列表,我选择了在事务电子邮件中为每种语言(每个商店视图)创建的模板。
在网上寻找解决方案后,似乎其他人也遇到了这个问题,有人提到 Magento 正在从第一个区域设置文件夹中选择“忘记密码”模板/应用程序/语言环境/。就我而言,我有:de_DE
, en_US
, fr_FR
, nl_NL
。所以它从德语中选择了模板de_DE
pack.
NOTE:另外,在后端的“配置”下,左侧有一个名为“LOCALE PACKS”的选项卡,其下只有“Locale de_DE”,尽管我还有其他语言包未显示在此处。不确定这是否相关。
Site: http://site1.cp1.glimworm.com/magento/
Magento 社区版本:1.7.0.2
语言环境包:
- Mage_Locale_en_US
- Locale_Mage_community_de_DE
- Locale_Mage_community_fr_FR
- Mage_Locale_nl_NL
知道如何从要发送的相应语言(而不是始终是德语)获取正确的电子邮件模板吗?任何帮助将不胜感激!我也可以提供更多信息。
我在 magento v1.5 中遇到同样的问题。经过长时间的研究,我发现了这个解决方案并且它对我有用。
Mage/Customer/Model/Customer.php
in this file i have make some changes as following.
find this line of code
if (!$storeId)
{
$storeId = $this->_getWebsiteStoreId($this->getSendemailStoreId());
}
and replace with
$storeId = ($storeId == '0')?$this->getSendemailStoreId():$storeId;
if ($this->getWebsiteId() != '0' && $storeId == '0')
{
$storeIds = Mage::app()->getWebsite($this->getWebsiteId())->getStoreIds();
reset($storeIds);
$storeId = current($storeIds);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)