I'm trying to translate the flash message I sent, if a form is succesful. The normal request looks like this:
$request->getSession()->getFlashBag()->add(
'notice',
'Your E-Mail has been sent.'
);
So I tried to translate the message with the following variable:
$request->getSession()->getFlashBag()->add(
'notice',
'contact.message.email_has_been_sent'
);
After sending the form the message shows "contact.message.email_has_been_sent". So it didn't found the translation, but the variable is right. I tested it inside a template file. Has anyone an idea, how I could fix this? I didn't found anything useful yet.
Presuming you are in a Controller:
$request->getSession()->getFlashBag()->add(
'notice',
$this->get('translator')->trans('contact.message.email_has_been_sent'));
Read how to handle Translations.
Alternatively, in twig:
{% for flashMessage in app.session.flashbag.get('notice') %}
<p>{{ flashMessage|trans }}</p>
{% endfor %}
来源:https://stackoverflow.com/questions/28588839/translate-the-flash-message