Magento如何在电子邮件翻译器中设置自定义语言

时间:2013-08-21 09:41:46

标签: magento

发送订单或发票电子邮件时,电子邮件内容语言是默认的本地代码。

所以我想根据一个客户的属性设置自定义语言。

覆盖此模型:

Mage_Core_Model_Email_Template

 public function sendTransactional($templateId, $sender, $emails, $name, $vars = array(), $storeId = null) {
    $this -> setSentSuccess(false);
    // print_r($emails);die;
    foreach ((array)$emails as $key => $email) {
        if (($storeId === null) && $this -> getDesignConfig() -> getStore()) {
            $storeId = $this -> getDesignConfig() -> getStore();
        }

        if (is_numeric($templateId)) {
            $this -> load($templateId);
        } else {
            $localeCode = Mage::getStoreConfig('general/locale/code', $storeId);
            $webSiteId = array(Mage::app()->getStore($storeId)->getWebsiteId(),1);
            $webSiteId = array_unique($webSiteId);
            $Customer = Mage::getModel("customer/customer"); 
            $Customer->setWebsiteId($webSiteId);
            $Customer->loadByEmail($email);
            $language = $Customer->getData('language');
            if (isset($language) && !empty($language)) {
                $localeCode = $this -> setLanguageByAsiointikieli($language);
            } else {
                $localeCode = 'en_US';
            }
            // Mage::getSingleton('adminhtml/session')->setLocale($localeCode);
            // Mage::app()->getLocale()->setLocaleCode($localeCode);
            $this -> loadDefault($templateId, $localeCode);
        }
        ....

现在,我设置的自定义语言是en_US.default语言是fi_FI。

结果是:

电子邮件内容标题是正确的(en_US)。但电子邮件内容值错误(fi_FI),不是en_US。

如下图所示:

点击这个 order email image

为什么?谁能帮助我?

0 个答案:

没有答案