Bonjour,
Je suis entrain de mettre en place un système multilingue dans l'application que j'ai crée et Symfony2 ne charge pas la lange.
J'ai configuré mon fichier config.yml comme suit pour qu'il ai une langue par défaut :
framework:
translator: { fallback: fr }
Ensuite, j'ai créer une fonction qui permet de stocker la langue dans une session :
1 2 3 4 5 6 7 8 9 10 11 12
| public function choiceLangAction(Request $request, $lang = null) {
if ($lang != null) {
$this->get('session')->set('_locale', $lang);
}
// 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('homepage');
}
return new RedirectResponse($url);
} |
Voici les liens se trouvant dans un template permettant de changer de langue :
1 2
| <li><a href="{{ path('syslang', {'lang' : 'fr_FR'}) }}">FR</a></li>
<li><a href="{{ path('syslang', {'lang' : 'en_US'}) }}">EN</a></li> |
Pour terminé, j'ai créé mes fichiers de traductions messages.en.yml et messages.fr.yml dans le repertoire translations. J'ai également mis en place les traductions dans mes templates et vérifié que dans la session il y a bien la langue sélectionné par l'utilisateur.
Merci de votre aide
Partager