Bonjour,
Je veux faire le truc classique: quand on clique sur un lien/image on change de langue. Je dois gérer juste l'anglais et le français.
Je me suis inspiré de ce qui vait été fait sur le forum mais ça ne marche pas.![]()
Voici ce que j'ait fait :
deux fichiers situés dans WEB-INF/classes/ :
Dans le web.xml :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 message_fr.properties message_en.properties
Dans struts-config.xml :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <context-param> <param-name>javax.servlet.jsp.jstl.fmt.fallbackLocale</param-name> <param-value>fr</param-value> </context-param>
Mon classe action :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 <action path="/changelang" type="fr.ft.essai.langue.chgtLangue"> <forward name="succes" path="/inter.do" /> </action>
Inter.jsp :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 public class chgtLangue extends Action { public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws IOException,ServletException { HttpSession session = request.getSession(true); Locale locale = (Locale)session.getAttribute(org.apache.struts.Globals.LOCALE_KEY); //if(locale.toString()=="en") //{ session.setAttribute(org.apache.struts.Globals.LOCALE_KEY, new java.util.Locale("en","")); /*} else { session.setAttribute(org.apache.struts.Globals.LOCALE_KEY, new java.util.Locale("en")); }*/ return mapping.findForward("succes"); } }
C'est toujours le message français qui s'affiche.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 <%@ taglib uri="/WEB-INF/fmt.tld" prefix="fmt" %> <html> <body> <p>Inter</p> <fmt:bundle basename="message"> <fmt:message key="nom"/> </fmt:bundle> <a href="/essai/changelang.do">chgt langue</a> </body> </html>
Merci de votre aide
Partager