2012-07-30 12 views
11

के आधार पर महीनों का नाम दिखाएं मैं वर्तमान लोकेल के आधार पर महीनों का नाम दिखाने की कोशिश कर रहा हूं।ट्विग: वर्तमान लोकेल

{{ event.date|date('F') }} 

लेकिन महीनों हमेशा अंग्रेजी में दिखाए जाते हैं ...

नीचे मैं here पाया मैं इस कोड की कोशिश की है, लेकिन परिणाम एक ही है ...

class Helper_Twig extends Twig_Extension 
{ 
    public function getFilters() 
    { 
     return array(
      'datetime' => new Twig_Filter_Method($this, 'datetime') 
     ); 
    } 

    public function datetime($d, $format = "%B %e") 
    { 
     if ($d instanceof \DateTime) { 
      $d = $d->getTimestamp(); 
     } 

     return strftime($format, $d); 
    } 

    public function getName() 
    { 
     return 'Helper'; 
    } 
} 

नोट : नियंत्रक में मैं $request->getLocale का उपयोग कर वर्तमान लोकेल की जांच कर रहा हूं और यह उन लोकेल पैरामीटर से मेल खाता है जो मैं पैरामीटर.मिल में स्विच कर रहा हूं।

समस्या क्या है?

उत्तर

4

आप स्थानीय दिनांक प्रतिनिधित्व को संभालने के लिए SonataIntlBundle का उपयोग कर सकते हैं। Intl लाइब्रेरी को स्थापित करने की आवश्यकता है हालांकि।

+1

मैं इसके बजाय ट्विग के इंटेल एक्सटेंशन का उपयोग करने की सलाह दूंगा। Http://stackoverflow.com/a/23424315/1001110 –

+1

देखें यह केवल अनुवादित माह को प्रदर्शित करने का तरीका प्रदान नहीं करता है। –

2

जब से तुम datetime TwigFilter परिभाषित, आप {{ event.date|date('F') }}

इसके बजाय फोन करने के लिए नहीं है, आप कॉल करना चाहिए इस {{ event.date|datetime('%B') }}

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