2012-07-30 1 views
11

J'essaie juste de montrer le nom des mois en fonction des paramètres régionaux actuels.Twig: affiche le nom des mois en fonction des paramètres régionaux en cours

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

mais les mois sont toujours affichés en anglais ...

J'ai essayé ce code ci-dessous j'ai trouvé here, mais le résultat est le même ...

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

NOTE : Dans le contrôleur, je vérifie les paramètres régionaux en cours en utilisant $request->getLocale et il correspond au paramètre de paramètres régionaux que je suis en train de basculer dans parameters.yml.

Quel est le problème?

Répondre

4

Vous pouvez utiliser SonataIntlBundle pour gérer la représentation de date localisée. Cependant, la bibliothèque Intl doit être installée.

+1

Je recommanderais plutôt d'utiliser l'extension Intl de Twig. Voir http://stackoverflow.com/a/23424315/1001110 –

+1

Il ne fournit pas de méthode pour afficher uniquement le mois traduit. –

2

Depuis que vous avez défini datetime TwigFilter, vous ne devez pas appeler {{ event.date|date('F') }}

Au lieu de cela, vous devez appeler cette {{ event.date|datetime('%B') }}

Questions connexes