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/ :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
message_fr.properties
message_en.properties
Dans le web.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>
Dans struts-config.xml :
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>
Mon classe action :
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");
	}
}
Inter.jsp :
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>
C'est toujours le message français qui s'affiche.

Merci de votre aide