2015-02-18 8 views
5

यदि कोई फॉर्म सफल है, तो मैं भेजे गए फ़्लैश संदेश का अनुवाद करने की कोशिश कर रहा हूं। सामान्य अनुरोध इस तरह दिखता है:फ्लैश संदेश का अनुवाद करें

$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_has_been_sent" से पता चलता भेजने के बाद। तो इसे अनुवाद नहीं मिला, लेकिन चर सही है। मैंने इसे एक टेम्पलेट फ़ाइल के अंदर परीक्षण किया। क्या किसी को कोई विचार है, मैं इसे कैसे ठीक कर सकता हूं? मुझे अभी तक कुछ भी उपयोगी नहीं मिला।

उत्तर

7

यह मानकर आप एक नियंत्रक में हैं:

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

पढ़ें Translations को संभालने के लिए कैसे।

+0

धन्यवाद, कि काम करता है। :) – Worstkaes

+0

एसएफ 2.8 के बाद से, आप बस $-> addFlash() कर सकते हैं। –

+0

@VictorToulouse यह सवाल का मुद्दा नहीं है, लेकिन क्या होगा यदि आप FrameworkExtraBundle के मूल नियंत्रक का विस्तार नहीं करते हैं? वैसे भी मैं मानता हूं कि मुझे ढांचे द्वारा प्रदान किए जाने वाले सभी तरीकों को कवर करने के लिए अपने "पुराने" उत्तर का विस्तार करना चाहिए :-) –

1

वैकल्पिक रूप से, टहनी में:

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

मैं इस विधि को पसंद करना चाहूंगा क्योंकि यह अनुवादक को अनावश्यक से कॉलर को कॉल करता है, लेकिन यह जटिल हो जाता है जब आप जटिल हो जाते हैं प्लेसहोल्डर्स के साथ संदेशों का अनुवाद करने की आवश्यकता है। –

संबंधित मुद्दे