2015-02-18 25 views
5

Bir form başarılı olursa, gönderdiğim hızlı mesajı çevirmeye çalışıyorum. Normal isteği şuna benzer: Flash Mesajı Çevir

$request->getSession()->getFlashBag()->add(
      'notice', 
      'Your E-Mail has been sent.' 
     ); 

Yani şu değişkenle mesajı tercüme etmeye çalıştı:

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

mesaj "contact.message.email_has_been_sent" gösterir formunu gönderdikten sonra. Yani çeviriyi bulamadı, ama değişken doğru. Bir şablon dosyasında test ettim. Kimsenin bir fikri var, bunu nasıl düzeltebilirim? Henüz yararlı bir şey bulamadım.

cevap

7

Bir Kontrolör içindedir varsayarsak:

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

Translations nasıl işleneceğini okuyun. dal içinde Alternatif

+0

sayesinde onlar olur. :) – Worstkaes

+0

SF 2.8'ten bu yana $ this-> addFlash() yapabilirsiniz. –

+0

@VictorToulouse bu sorunun konusu değil, ama eğer FrameworkExtraBundle'ın temel denetleyicisini genişletmiyorsanız? Her neyse çerçevenin sunduğu tüm yolu kapsayacak şekilde "eski" cevabımı genişletmem gerektiğine katılıyorum :-) –

1

:

{% for flashMessage in app.session.flashbag.get('notice') %} 
    <p>{{ flashMessage|trans }}</p> 
{% endfor %} 
+0

Tercümanı gereksiz yere çevirmeyi tercih ettiğimden, bu yöntemi tercih etme eğiliminde olacağım, ancak Mesajları yer tutucularla çevirmeniz gerekir. –