Symfony 1.4:如何将i18n邮件发送给不是当前用户的用户(不同的文化)

时间:2011-11-27 12:42:42

标签: email symfony1 internationalization

我正在使用带有SwitftMailer的Symfony 1.4为电子邮件编写Web应用程序。我的网站将以多种语言提供,具体取决于所连接的用户。

我已经创建了一个使用__('some text')消息调用partials templates(get_partial)的邮件类。

工作正常:Symfony自动翻译部分用户文化,邮件与当前用户的文化一起发送。

我的问题是我想向不是当前用户的用户发送电子邮件,因此电子邮件的文化必须不同。

我想在获得部分之前更改当前的用户文化并在之后恢复,但这不是最干净的方式......

感谢您的帮助。

Sandrino

2 个答案:

答案 0 :(得分:2)

您可以使用以下内容:

$new_lang = new sfI18N(
  sfContext::getInstance()->getConfiguration(), 
  new sfNoCache(), 
  array('culture'=> 'pt'));
echo $new_lang->__('Read More');

不知道这是否是最好的答案,但它确实有效。

答案 1 :(得分:0)

感谢您的帮助。

与此同时,我发现了另一个我在symfony文档中找到的简单解决方案。

$catalogue = 'messages.pt';    // the name of the catalogue for translation
echo __("Text to translate", NULL, $catalogue);

希望可以帮助别人!