Метод locale класса TemplatedEmail
Метод locale класса TemplatedEmail задаёт локаль,
которая будет использоваться при рендеринге шаблона письма.
Первым параметром передаётся код локали в виде строки,
например 'ru', 'en' или 'de'.
Если в проекте настроены переводы для разных языков,
шаблон письма будет отрендерен на указанном языке.
Метод возвращает объект TemplatedEmail,
поэтому вызовы можно выстраивать в цепочку.
Синтаксис
$email->locale(string $locale): static
Пример
Давайте создадим письмо и зададим ему локаль 'ru':
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Mailer\MailerInterface;
use Symfony\Component\Mime\Address;
use Symfony\Component\Mime\Email;
use Symfony\Bridge\Twig\Mime\TemplatedEmail;
use Symfony\Component\Routing\Attribute\Route;
class EmailController extends AbstractController
{
#[Route('/send-email', name: 'send_email')]
public function send(MailerInterface $mailer): Response
{
$email = (new TemplatedEmail())
->from(new Address('sender@example.com', 'Sender'))
->to(new Address('user@example.com', 'User'))
->subject('hello')
->htmlTemplate('email/welcome.html.twig')
->context(['name' => 'user'])
->locale('ru');
$mailer->send($email);
return new Response('"email sent"');
}
}
?>
Пример
Давайте зададим локаль 'en' и передадим её в контекст шаблона:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Mailer\MailerInterface;
use Symfony\Component\Mime\Address;
use Symfony\Component\Mime\Email;
use Symfony\Bridge\Twig\Mime\TemplatedEmail;
use Symfony\Component\Routing\Attribute\Route;
class EmailController extends AbstractController
{
#[Route('/send-email-en', name: 'send_email_en')]
public function send(MailerInterface $mailer): Response
{
$email = (new TemplatedEmail())
->from(new Address('sender@example.com', 'Sender'))
->to(new Address('user@example.com', 'User'))
->subject('hello')
->htmlTemplate('email/welcome.html.twig')
->context(['name' => 'user'])
->locale('en');
$mailer->send($email);
return new Response('"email sent"');
}
}
?>
Смотрите также
-
класс
TemplatedEmail,
который создаёт письмо на основе Twig-шаблона -
метод
htmlTemplate,
который задаёт HTML-шаблон письма -
метод
context,
который передаёт данные в шаблон письма -
метод
subject,
который задаёт тему письма