Traduction avec Symfony 2.4.2
Bonjour à tous et à toutes.
Comme le titre l'indique je veux effectuer des traductions dans mes twig sur Symfony 2.4.2. J'ai regardé longuement la documentation et je n'arrive toujours pas à arriver à mes fins. Voici ma situation:
J'ai tout d'abord établit deux fichiers de traduction messages.en.yml et messages.fr.yml (assez succinct pour le test) comme il est conseillé dans la documentation dans le répertoire Resources/translations de mon Bundle
Code:
1 2
|
distances.semantiques: Semantic distances |
Code:
1 2
|
distances.semantiques: Distances sémantiques |
J'ai vérifié s'ils étaient bien pris en compte en changeant ma locale dans le fichier parameters.yml et c'est le cas. Ensuite dans mon contrôleur DefaultController j'ai mis le code suivant:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
public function changeLanguageAction($langue=null){
$request = $this->getRequest();
if($langue != null){
//\Doctrine\Common\Util\Debug::dump($langue);
$request->setLocale($langue);
$request->setDefaultLocale($langue);
$this->get('translator')->setLocale($langue);
}
// on tente de rediriger vers la page d'origine
$url = $this->container->get('request')->headers->get('referer');
if(empty($url)) {
$url = $this->container->get('router')->generate('acme_biomedical_homepage');
}
return new RedirectResponse($url);
} |
Dans la documentation il est écrit que:
Citation:
La locale de l'utilisateur actuel, qui est stockée dans la requête (ou stockée comme_locale en session), est déterminée
et que
Citation:
New in version 2.1: Le paramètre default_locale était à la base défini dans la clé session, cependant cela a changé dans la version 2.1. C'est parce que la locale est maintenant définie dans la requête et non plus dans la session
Alors je me suis dit que le fait de faire un "setLocale" et "setDefaultLocale" suffirai à la traduction (je n'ai pas voulu mettre en place le système suivant:/{_locale}/contact ). Or je constate que ce n'est pas le cas. Alors ma question est: Es-t-on obligé de mettre en place ce fameux système de rajout de locale dans l'url ou alors est-ce qu'il manque quelque-chose que j'ai oublié de faire (j'ai bien fait le cache:clear recommandé)?
Merci de vos réponses.