2012-07-30 4 views
11

Ich versuche nur, den Namen der Monate basierend auf dem aktuellen Gebietsschema anzuzeigen.Zweig: Zeigt den Namen der Monate basierend auf dem aktuellen Gebietsschema an

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

aber die Monate immer in Englisch angezeigt ...

Ich habe diesen Code versucht, unter ich here gefunden, aber das Ergebnis ist das gleiche ...

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'; 
    } 
} 

HINWEIS : In der Steuerung überprüfe ich das aktuelle Gebietsschema mit $request->getLocale und es entspricht dem Gebietsschema-Parameter, den ich in parameters.yml umschalte.

Was ist das Problem?

Antwort

4

Sie können SonataIntlBundle verwenden, um lokalisierte Datumsdarstellung zu behandeln. Intl Bibliothek muss jedoch installiert werden.

+1

Ich würde stattdessen Twig's Intl-Erweiterung empfehlen. Siehe http://StackOverflow.com/a/23424315/1001110 –

+1

Es bietet keine Möglichkeit, nur den übersetzten Monat anzuzeigen. –

2

Da Sie datetime TwigFilter definiert sind, müssen Sie nicht {{ event.date|date('F') }}

Stattdessen rufen, sollten Sie dies nennen {{ event.date|datetime('%B') }}

Verwandte Themen