2012-07-30 21 views
11

Sadece ayların adını geçerli yerel ayara göre göstermeye çalışıyorum.Twig: geçerli yerel ayara göre ayların ismini göster

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

ancak aylar hep ingilizce gösterilmektedir ...

Ben here buldum aşağıda Bu kodu denedim ama sonuç aynıdır ...

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

NOT : Denetleyicide $request->getLocale kullanarak geçerli yerel ayarı kontrol ediyorum ve parameters.yml olarak değiştirdiğim yerele parametresine karşılık geliyor.

Sorun nedir? Eğer datetime TwigFilter tanımlanan yana

cevap

4

Yerelleştirilmiş tarih temsilini işlemek için SonataIntlBundle kullanabilirsiniz. Ancak Intl kütüphanesinin yüklenmesi gerekiyor.

+1

Bunun yerine Twig'in Intl uzantısını kullanmanızı öneririz. Bkz. Http://stackoverflow.com/a/23424315/1001110 –

+1

Sadece çevrilmiş ayı görüntülemek için bir yöntem sağlamaz. –

2

, sen yerine {{ event.date|date('F') }}

aramak zorunda değilsiniz, çağırmalıdır Muhtemelen PHP PHP intl -library yüklemediyseniz {{ event.date|datetime('%B') }}

İlgili konular