I18n java jsp jstl

Fermé
yanndroide Messages postés 1 Date d'inscription dimanche 24 avril 2016 Statut Membre Dernière intervention 24 avril 2016 - 24 avril 2016 à 01:23
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 - 24 avril 2016 à 11:48
Hello tout le monde !

Ca fait 5 heures que je planche sur ca, ca me soule grave ^^ j'espère que vous pourrez m'aider...
Alors en fait pour la fac je dois faire une web-app avec en Java, et là je me pose sur l'internationalisation.

Voici le souci :
j'ai plein de JSP, qui utilisent un bundle de messages et qui ont plein de balises <fmt:message key="xxx"/> et j'ai un formulaire dans une nav bar sur chaque page qui permet de choisir une lanque. Ce que je veux faire evidemment c'est changer la langue de TOUT le site, que la personne soit connectée OU NON lorsque l'on clique sur une langue. J'ai essaye de plusieurs facons et je n'y arrive pas :
- <fmt:setLocale /> je ne vois pas ce que je peux mettre dedans
- Config.set ne marche que pour une session active
- je ne peux pas mettre un attribut à chaque requete de chaque page ca serait trop lourd
---> en gros : ya pas un moyen SIMPLE qui permet de dire qu'à un instant t, la langue de l'application c'est ca ou ca ? Merci de votre aide je vous bénis !
A voir également:

1 réponse

KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
24 avril 2016 à 11:48
Bonjour,

Je n'ai rien pour tester sous la main, donc à vérifier :

Tu pourrais mettre le setLocale en session :
<fmt:setLocale value="fr_FR" scope="session"/>

Tant que la session est valide le bundle utilisé sera celui du dernier setLocale. Et si tu veux changer de langue tu n'as qu'à refaire un setLocale.

Sur le même principe mais dans le code cette fois :
Config.set(session, Config.FMT_LOCALE, new Locale("fr","FR"));

Remarque (mais ce n'est qu'une hypothèse, tu me confirmeras) : je pense que ton problème vient que tu ne créés une session qu'au moment où l'utilisateur se connecte.
Or tu pourrais très bien avoir une session tout le temps et donc stocker des informations comme la Locale aussi longtemps que tu veux, même pour les utilisateurs non connectés. Il faudra peut-être juste jongler lors de la déconnexion avec les données qui ne concernent que le mode connecté et celle - comme la locale - qui concernent toute la session.
0