Forms 翻译Flash消息

Forms 翻译Flash消息,forms,translation,symfony,flash-message,Forms,Translation,Symfony,Flash Message,如果表单成功,我正在尝试翻译我发送的flash消息。 正常请求如下所示: $request->getSession()->getFlashBag()->add( 'notice', 'Your E-Mail has been sent.' ); 因此,我尝试使用以下变量翻译消息: $request->getSession()->getFlashBag()->add( 'n

如果表单成功,我正在尝试翻译我发送的flash消息。 正常请求如下所示:

$request->getSession()->getFlashBag()->add(
            'notice',
            'Your E-Mail has been sent.'
        );
因此,我尝试使用以下变量翻译消息:

$request->getSession()->getFlashBag()->add(
            'notice',
            'contact.message.email_has_been_sent'
        );
发送表单后,消息显示“contact.message.email\u have\u sent”。所以它没有找到翻译,但是变量是正确的。我在一个模板文件中测试了它。
有人知道我该怎么解决这个问题吗?我还没有发现任何有用的东西

假设您在控制器中:

$request->getSession()->getFlashBag()->add(
    'notice',
    $this->get('translator')->trans('contact.message.email_has_been_sent'));

阅读如何处理。

或者,在twig中:

{% for flashMessage in app.session.flashbag.get('notice') %}
    <p>{{ flashMessage|trans }}</p>
{% endfor %}
{%用于app.session.flashbag.get('notice')%%中的flashMessage
{{flashMessage | trans}}

{%endfor%}
自SF 2.8以来,您只需执行$this->addFlash()。@VictorToulouse这不是问题的重点,但如果您不扩展FrameworkExtraBundle的基本控制器,该怎么办?无论如何,我同意我应该扩展我的“旧”答案,以涵盖框架提供的所有方面:-)我倾向于使用这种方法,因为它使从控制器调用翻译器变得不必要,但当您需要使用占位符翻译消息时,它会变得复杂。请参阅此处此方法可能存在的问题: