2012-07-30 12 views
11

Po prostu próbuję pokazać nazwę miesięcy na podstawie bieżących ustawień narodowych.Twig: pokaż nazwę miesięcy na podstawie bieżących ustawień narodowych

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

ale miesiące są zawsze wyświetlane w języku angielskim ...

Próbowałem ten kod poniżej znalazłem here, ale wynik jest taki sam ...

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

UWAGA : W kontrolerze sprawdzam bieżące ustawienia narodowe za pomocą $request->getLocale i odpowiada on parametrowi lokalizacji I'm switching in parameters.yml.

Na czym polega problem?

Odpowiedz

4

Możesz użyć SonataIntlBundle do obsługi zlokalizowanej reprezentacji daty. Biblioteka Intl musi być zainstalowana.

+1

Zalecam używanie zamiast tego rozszerzenia Twil Intl. Zobacz http://stackoverflow.com/a/23424315/1001110 –

+1

Nie zapewnia metody wyświetlania tylko przetłumaczonego miesiąca. –

2

Ponieważ zdefiniowane datetime TwigFilter, nie trzeba zadzwonić {{ event.date|date('F') }}

Zamiast tego, należy zgłosić ten {{ event.date|datetime('%B') }}

Powiązane problemy