2012-07-30 36 views
11

Tôi chỉ đang cố gắng hiển thị tên của các tháng dựa trên ngôn ngữ hiện tại.Twig: hiển thị tên của các tháng dựa trên ngôn ngữ hiện tại

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

nhưng những tháng luôn được hiển thị bằng tiếng Anh ...

Tôi đã thử mã này dưới đây tôi thấy here, nhưng kết quả là như nhau ...

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

LƯU Ý : Trong bộ điều khiển tôi đang kiểm tra miền địa phương hiện tại bằng cách sử dụng $request->getLocale và nó tương ứng với tham số miền địa phương tôi đang chuyển đổi trong parameters.yml.

Sự cố là gì?

Trả lời

4

Bạn có thể sử dụng SonataIntlBundle để xử lý biểu diễn ngày được bản địa hóa. Mặc dù vậy, thư viện Intl cần được cài đặt.

+1

Tôi khuyên bạn nên sử dụng tiện ích mở rộng của Twig's Intl thay thế. Xem http://stackoverflow.com/a/23424315/1001110 –

+1

Nó không cung cấp phương pháp chỉ hiển thị tháng đã dịch. –

2

Vì bạn định nghĩa datetime TwigFilter, bạn không cần phải gọi {{ event.date|date('F') }}

Thay vào đó, bạn nên gọi đây là {{ event.date|datetime('%B') }}

Các vấn đề liên quan