2013-06-28 20 views
22

Ho problemi con il filtro | date ("d F, Y") nei miei modelli di ramoscello.Symfony2: Come posso impostare il filtro twig | date ("d F, Y") per produrre mesi in svedese?

Voglio che i mesi vengano stampati in svedese. Ho provato a impostare "locale: sv" nei miei file parameters.yml ma non ottengo alcun effetto.

Stava funzionando prima di passare da Symfony 2.1 a 2.3, quindi penso che potrebbe avere qualcosa a che fare con esso.

Qualche idea su come risolvere questo problema?

risposta

45

ramoscello Intl estensione

È possibile utilizzare la Twig Intl Extension trovano in fabpot s' estensione ufficiale Twig repository.

Esso fornisce un filtro data localizzata che può essere usato così:

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

uso app.request.locale come terzo parametro da impostazioni o solo 'sv'.

Integrazione nel progetto

aggiungere le estensioni ufficiali per il vostro composer.json utilizzando:

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 } 

punta rapida:

un altro interno a portata di mano è l'estensione di testo che fornisce troncare, ... ecc filtri

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

Grazie, ci sto provando ora, poiché tutte le date su questo sito devono essere stampate nella stessa lingua, quale sarebbe il modo migliore per non ripetere {{date | localizeddate ('full', 'none', * myLocaleValueFromParameters.yml *)}} su ogni singolo posto? Scrivere una macro di ramoscello o un'estensione di ramoscello sarebbe il modo migliore per andare? Mi sembra strano che non ci siano implementazioni rispetto alla chiave parameters.locale già costruita in – Tirithen

+1

puoi usare il filtro di data localizzato e passare il tuo parametro parameters.default_locale' a twig come globale usando 'twig.globals.global_locale:% default_locale% ', quindi usa qualcosa come' {{date | localizeddate ('full', 'none', global_locale)}} ' – nifr

+0

Grazie! Vado con quello e fare una macro ramoscello che prende l'oggetto data e lo formatta con il filtro localizeddate per evitare la ripetizione nei modelli. :) – Tirithen

2

|date utilizzare il filtro DateTime::format funzione che pretende molto locali di supporto. Vedi this question e scrivi la tua estensione di ramoscello.

+0

non è necessaria l'estensione della ramoscello :) vedi la mia risposta. – nifr

+0

se si desidera includere interi bundle per piccole funzioni $) –

+0

@nifr è necessaria l'estensione twig. la risposta fornita richiede di cambiare tutti i filtri '| date' nei file di twig, sembra una soluzione alternativa, non una soluzione solida. – Trix

Problemi correlati