Je me décide à poster un message sur le forum car après des heures de recherches et de tests je ne parviens pas à résoudre mon problème.
En fait je ne parviens pas à traduire mon site en fonction de la locale. Plus précisément la locale est bloquée sur 'en'.
J'utilise Symfony 2.1 et j'ai bien suivi le guide https://github.com/symfony/symfony/b...httpfoundation, qui consiste à créer un listener pour injecter la locale à la fois dans le request et dans la session de l'utilisateur.
De ce côté-là pas de problème, j'ai même injecté la locale dans l'url pour avoir des urls du type monsite.fr/fr et monsite.fr/en (ça fonctionne). Dans l'onglet Request de mon profiler j'ai bien '_locale : fr' à la fois comme attribut du request et de la session.
Par contre si dans mon template j'essaye d'afficher {{ app.request.locale }} il m'affiche systématiquement 'en'. Du coup lorsque je suis en 'fr', il ne va pas me chercher les traductions dans mon fichier 'fr' mais dans le 'en' (le nommage de fichier est bon car lorsque je supprime celui en anglais il va bien chercher la trad dans celui en français).
config.yml
parameters.yml
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 framework: translator: { fallback: %locale% } default_locale: %locale%
Une chose que j'ai remarquée et qui je pense est importante. J'utilise FOSUserBundle pour la gestion de mes utilisateurs, et si je ne suis pas connecté, je parviens à afficher la bonne locale. Une fois connecté plus moyen d'afficher du 'fr'.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 parameters: locale: fr
Autre chose, j'ai commencé à paramétrer mon entité Article avec l'extension Doctrine Translatable. Je ne l'utilise pas encore mais peut-être que ça peut poser un problème également.
Est-ce que quelqu'un a déjà eu le problème ou voit d'où ça peut venir ?
Merci d'avance,
Guillaume
Partager