以magento编程方式更改翻译语言

时间:2013-11-11 11:03:21

标签: php magento

我创建了一个模块,当客户选择特定付款类型时,该模块会发送带有pdf附件的电子邮件。您可以使用后端中的附件重新发送电子邮件。自动发送的pdf将以正确的商店默认语言进行翻译。但是当我手动重新发送带有pdf的电子邮件时,我无法弄清楚如何更改pdf将被翻译成哪种语言。

我可以更改用于的电子邮件模板:

$local = Mage::getStoreConfig('general/locale/code', $storeId)
$emailTemplate->loadDefault('my_email_template', $local);

我试图更改本地代码:

Mage::app()->getLocale()->setLocaleCode($local);

本地代码更改,但不会以正确的语言翻译它。 如何设置必须翻译的语言?

谢谢!

1 个答案:

答案 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将加载其所有设置和配置以及设计等。它非常方便,尤其是当您想要在管理中呈现前端页面时。