2013-06-28 4 views
22

मुझे अपने twig टेम्पलेट्स में | दिनांक ("डी एफ, वाई") फ़िल्टर के साथ समस्याएं आ रही हैं।Symfony2: मैं स्वीडिश में आउटपुट महीनों में टिग | डेट ("डी एफ, वाई") फ़िल्टर कैसे सेट कर सकता हूं?

मुझे स्वीडिश में महीनों का उत्पादन करना है। मैंने अपने पैरामीटर में "लोकेल: एसवी" सेट करने का प्रयास किया है। एमआईएल फाइलें लेकिन मुझे कोई प्रभाव नहीं पड़ता है।

यह सिम्फनी 2.1 से 2.3 तक अपग्रेड करने से पहले काम कर रहा था, इसलिए मुझे लगता है कि इसके साथ कुछ करने के लिए कुछ हो सकता है।

इसे ठीक करने के तरीके पर कोई विचार?

उत्तर

45

टहनी Intl एक्सटेंशन

आप उपयोग कर सकते हैं Twig Intl Extensionfabpot की आधिकारिक टहनी विस्तार repository में पाया। वर्तमान स्थान के लिए तीसरे पैरामीटर के रूप में

{{ date | localizeddate('full', 'none', app.request.locale) }} 

उपयोग app.request.locale या सिर्फ 'sv':

यह एक स्थानीय तारीख फिल्टर जो इस तरह इस्तेमाल किया जा सकता प्रदान करता है। अपने प्रोजेक्ट में

एकता

का उपयोग कर अपने composer.json को आधिकारिक एक्सटेंशन जोड़ने:

composer require twig/extensions:1.0.*@dev 
composer update twig/extensions 

config.yml

#enable intl extensions 
services: 
    twig.extension.intl: 
     class: Twig_Extensions_Extension_Intl 
     tags: 
      - { name: twig.extension } 

त्वरित टिप:

एक और आसान विस्तार पाठ प्रदान काटना विस्तार है, ... आदि फिल्टर

services: 
    twig.extension.text: 
     class: Twig_Extensions_Extension_Text 
     tags: 
      - { name: twig.extension } 
+0

धन्यवाद, मैं अब यह कोशिश कर रहा हूं, क्योंकि इस साइट पर सभी तिथियों को एक ही भाषा में मुद्रित किया जाना चाहिए, {{date | localizeddate ('पूर्ण', 'कोई नहीं', * myLocaleValueFromParameters.yml *)}} हर जगह पर? एक ट्विग मैक्रो या ट्विग एक्सटेंशन लिखना सबसे अच्छा तरीका है? मुझे यह अजीब लगता है कि पैरामीटर के खिलाफ कोई कार्यान्वयन नहीं है। – Tirithen

+1

में पहले से निर्मित लॉकेल कुंजी आप स्थानीय दिनांक फ़िल्टर का उपयोग कर सकते हैं और 'twig.globals.global_locale का उपयोग कर वैश्विक के रूप में अपने' पैरामीटर.default_locale' को टॉग कर सकते हैं:% default_locale% ', फिर कुछ {{{date | localizeddate ('पूर्ण', 'none', global_locale)}} ' – nifr

+0

धन्यवाद! मैं इसके साथ जाऊंगा और इसमें एक टिग मैक्रो बनाउंगा जो डेट ऑब्जेक्ट लेता है और टेम्पलेट्स में पुनरावृत्ति को रोकने के लिए इसे स्थानीयकृत फ़िल्टर के साथ प्रारूपित करता है। :) – Tirithen

2

|date फिल्टर उपयोग DateTime::format समारोह जो समर्थन स्थानों does not। this question देखें और अपना खुद का ट्विग एक्सटेंशन लिखें।

+0

अपने twig एक्सटेंशन की आवश्यकता नहीं है :) मेरा जवाब देखें। – nifr

+0

यदि आप छोटे फ़ंक्शन के लिए पूरे बंडल शामिल करना चाहते हैं $) –

+0

@nifr के अपने twig एक्सटेंशन की आवश्यकता है। प्रदान किए गए उत्तर में एक को टिग फाइलों में सभी '| डेट' फ़िल्टरों को बदलने की आवश्यकता होती है, एक वर्कअराउंड की तरह लगता है, एक मजबूत समाधान नहीं। – Trix

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