I18n java jsp jstl
yanndroide
Messages postés
1
Date d'inscription
Statut
Membre
Dernière intervention
-
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
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 !
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:
- I18n java jsp jstl
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - Télécharger - Jeux vidéo
- Eclipse java - Télécharger - Langages
- Java apk - Télécharger - Langages
- Waptrick java voiture - Télécharger - Jeux vidéo
1 réponse
Bonjour,
Je n'ai rien pour tester sous la main, donc à vérifier :
Tu pourrais mettre le setLocale en 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 :
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.
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.