Symfony 1.4: Как отправить почту i18n пользователю, который не является текущим пользователем (другая культура) - PullRequest
3 голосов
/ 27 ноября 2011

Я пишу веб-приложение с Symfony 1.4 с SwitftMailer для писем.Мой сайт будет доступен на нескольких языках в зависимости от подключенного пользователя.

Я уже создал почтовый класс, который вызывает шаблоны partials (get_partial), используя сообщения __ ('some text').

Это отлично работает: Symfony автоматически переводит частичное в пользовательскую культуру, а почта отправляется в соответствии с культурой текущего пользователя.

Моя проблема в том, что я хотел бы отправить электронное письмо пользователю, который не является текущим пользователем, поэтому культура письма должна быть другой.

Я подумал, чтобы сменить текущего пользователякультура до получения частичного и восстановить его после, но это не самый чистый путь ...

Спасибо за вашу помощь.

Сандрино

Ответы [ 2 ]

2 голосов
/ 27 ноября 2011

Вы можете использовать что-то вроде:

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

Не знаю, лучший ли это ответ, но он работает.

0 голосов
/ 04 декабря 2011

Спасибо за вашу помощь.

Тем временем я нашел другое простое решение, которое я нашел в документации Symfony.

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

Надеюсь, что это может помочь кому-то еще!

...