我将 Symfony 邮件程序配置为使用 Messenger 发送电子邮件。
https://symfony.com/doc/current/mailer.html#sending-messages-async
我的电子邮件有两种语言,我依靠请求来检测语言,但现在电子邮件未翻译。
如何将消息翻译成请求中检测到的语言?
在我的控制器中:
$mailer->send(
$user->email,
$this->translator->trans('mails.recover.subject'),
'email/client/password-recovery.html.twig',
compact('user', 'hash', 'target')
);
模板:
{% extends 'email/base.html.twig' %}
{% block content %}
<h2>{{ 'mails.recover.header' | trans({'%name%': user.name}) }}</h2>
<p style="margin: 25px 0;">
{{ 'mails.recover.text1' | trans({'%url%': url('default')}) | raw }}
</p>
// More code
信使配置:
framework:
messenger:
# Uncomment this (and the failed transport below) to send failed messages to this transport for later handling.
# failure_transport: failed
transports:
# https://symfony.com/doc/current/messenger.html#transport-configuration
async: '%env(MESSENGER_TRANSPORT_DSN)%'
# failed: 'doctrine://default?queue_name=failed'
# sync: 'sync://'
routing:
# Route your messages to the transports
# 'App\Message\YourMessage': async
'Symfony\Component\Mailer\Messenger\SendEmailMessage': async
如果翻译正确,邮件主题看起来会更好,但邮件正文不会
如果我删除该行
'Symfony\Component\Mailer\Messenger\SendEmailMessage': async
在messegner配置中,翻译工作。
慕村225694
守候你守候我
一只名叫tom的猫
白猪掌柜的