Une solution simple, tous les key dans XX_fr.properties tu les mets en anglais
Sinon tu changes la locale de la langue ...
Version imprimable
Une solution simple, tous les key dans XX_fr.properties tu les mets en anglais
Sinon tu changes la locale de la langue ...
Oui mais moi je veux mettre deux drapeaux sur mon site et je veux que lorsque l'utilisateur clique sur le drapeau alors il aura le site dans la langue correspondante. J'ai suivi les instructions qui se trouvent dans la FAQ à ce lien http://java.developpez.com/faq/strut...18n#langswitch mais ça ne marche pas encore.
Je voulais changer lalangue à la demande de l'utilisateur, pour cela j'ai rajouter ces deux lignes dans ma jsp :
et j'ai écrit cette classe (je l'est en fait copier coller de la faq de struts) :Code:
1
2 <html:link href="switch.do?lang='fr'&cty='FR'" style="color:#000000">FR</html:link> <html:link href="switch.do?lang='en'&cty='US'" style="color:#000000">EN</html:link>
Enuite et dans mon fichier de config, j'ai fait ça :Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38 public class SwithLangAction extends Action{ private Object source; /** Creates a new instance of SwithLangAction */ public SwithLangAction() { } public ActionForward perform(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { //récupération des paramètres passés et de l'url du referer String country = request.getParameter("cty"); String language = request.getParameter("lang"); String referer = (String) request.getAttribute("REFERER"); HttpSession session = request.getSession(); ActionForward forward = null; // définition de la locale setLocale( request, new Locale( language, country ) ); // redirection vers une page définie par défaut if( source==null ) { forward = (mapping.findForward("success")); } // redirection vers l'url du referrer. else { forward = new RedirectingActionForward(); forward.setPath( (String) source); } return forward; } }
Code:
1
2
3
4
5
6
7
8 <action path="/switch" type="fr.edition.eni.action.SwithLangAction" name="acceuilForm" scope="request" input="/acceuilForm.jsp"> <forward name="success" path="/acceuilForm.jsp"></forward> <forward name="erreur" path="/erreur.jsp"></forward> </action>
Lorsque je clique sur le lien Fr ou EN, mon navigateur me edige vers une page qui est vide.
Quelqu'un voit ou est le probleme ????
Merci
:salut:
Je veux pouvoir changer la langue de mon site à la demande de l'utilisateur.
Pour cela, j'ai fait comme indiqué dans la FAQ Struts à ce lien http://java.developpez.com/faq/strut...18n#langswitch
mais j'ai quelques problèmes.
Voici le code que je rajoute dans ma jsp pour faire les liens :
Code:
1
2 <html:link href="switch.do?lang='fr'" style="color:#000000">FR</html:link> <html:link href="switch.do?lang='en'&cty='US'" style="color:#000000">EN</html:link>
la classe SwithLangAction que j'ai copier/coller de la FAQ :
Le code que je rajoute pour mapper cette action dans mon fichier de config:Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38 public class SwithLangAction extends Action{ private Object source; /** Creates a new instance of SwithLangAction */ public SwithLangAction() { } public ActionForward perform(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { //récupération des paramètres passés et de l'url du referer String country = request.getParameter("cty"); String language = request.getParameter("lang"); String referer = (String) request.getAttribute("REFERER"); HttpSession session = request.getSession(); ActionForward forward = null; // définition de la locale setLocale( request, new Locale( language, country ) ); // redirection vers une page définie par défaut if( source==null ) { forward = (mapping.findForward("success")); } // redirection vers l'url du referrer. else { forward = new RedirectingActionForward(); forward.setPath( (String) source); } return forward; } }
mon probleme c'est que lorsque je clique sur un des liens, je suis redigé vers une page vide. Je pense que le probleme provient de mon fichier de config mais je n'arrive pas à voir c'est quoi exactement.Code:
1
2
3
4
5
6
7
8 <action path="/switch" type="fr.edition.eni.action.SwithLangAction" name="acceuilForm" scope="request" input="/acceuilForm.jsp"> <forward name="success" path="/acceuilForm.jsp"></forward> <forward name="erreur" path="/erreur.jsp"></forward> </action>
Mercie de bien vouloir m'aider.
Alors personne ne peut m'aider ou me dire s'il existe une autre méthode de faire ceci ?
:help: Pleeeeeeeeeease