我创建了一个模块,当客户选择特定付款类型时,该模块会发送带有pdf附件的电子邮件。您可以使用后端中的附件重新发送电子邮件。自动发送的pdf将以正确的商店默认语言进行翻译。但是当我手动重新发送带有pdf的电子邮件时,我无法弄清楚如何更改pdf将被翻译成哪种语言。
我可以更改用于的电子邮件模板:
$local = Mage::getStoreConfig('general/locale/code', $storeId)
$emailTemplate->loadDefault('my_email_template', $local);
我试图更改本地代码:
Mage::app()->getLocale()->setLocaleCode($local);
本地代码更改,但不会以正确的语言翻译它。 如何设置必须翻译的语言?
谢谢!
答案 0 :(得分:5)
尝试存储视图模拟。
您可以使用模拟将需要翻译的代码包装成另一种语言。它看起来像这样:
$enulatedStore = Mage::getSingleton('core/app_emulation');
$inivitalEnvSettings = $emulatedStore->startEnvironmentEmulation($storeId);
//here goes your code. It's going to be run as if it was your store view
$emulatedStore->stopEnvironmentEmulation($inivitalEnvSettings);
仿真意味着您暂时切换商店视图。 Magento将加载其所有设置和配置以及设计等。它非常方便,尤其是当您想要在管理中呈现前端页面时。