Une langue switcher dans Symfony 2.4

J'ai une Langue d'objet, et je peux ajouter, supprimer et mettre à jour des langues à partir de la page admin.

Ce que je veux faire, c'est ajouter une langue switcher, j'ai mis ce code html/twig code:

 {% for language in languages %}         
      <li><a href="{{ path('evr_footer_switch_language',{'locale': language.code | lower }) }}">{{ language.language | capitalize }} ({{ language.code }})</a></li>
 {% endfor %}

Et une action the route for the action is evr_footer_switch_language, celui que j'ai utilisé dans le sélecteur ci-dessus:

 public function switchlanguageAction($locale = 'en') {

        $this->get('session')->set('_locale', $locale);
        $request = $this->getRequest();
       $request->setLocale($locale);
        return $this->redirect($request->headers->get('referer'));
    }

C'est le chemin que j'ai défini pour l'action/contrôleur switchlanguageAction()

evr_footer_switch_language:
    pattern: /language/switch/{locale}
    defaults: { _controller: EvrHomeBundle:Footer:switchlanguage, locale: en }

Il me semble très simple dans son principe, vous cliquez sur le lien de la langue (obtenu à partir de la base de données), envoyer le code de la langue (exemple : 'fr', 'fr', 'zh', etc...) à l'action en tant que $variable locale, puis définissez les paramètres Régionaux de la session/demande de cette valeur.

Le problème est que rien de tout cela fonctionne, et la langue est toujours 'EN' (valeur par défaut).

Note Selon les exigences du projet, La langue ne peut pas être mentionné dans l'URL (comme fr/articles, fr/articles), mais la même URL (/articles/) peut montrer, dans différentes langues, c'est pourquoi je n'ai pas utiliser le pré-définis slug (_locale).

Grâce

InformationsquelleAutor SmootQ | 2014-02-06