Merci pour votre aide.
Sans votre aide je ne pouvais pas debloquer mon probleme.
En fait, j'avais une liste deroulante remplie avec des questions (francais ou anglais).
Je voulais la remplir en anglais si l'usager choisit l'anglais comme langue de navigation au depart ou en francais si l'usager choisit le francais.
Avec le code que vous avez ecrit la liste contient toujours le texte en francais, meme si je change la langue.
voici les etapes pour mener a bien cette implementation:
dans votre classe LocaleAction vous devez faire le changement suivant:
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
| public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
// Extract attributes we will need
HttpSession session = request.getSession();
Locale locale = getLocale(request);
String language = null;
String country = null;
String page = null;
try {
language = (String) PropertyUtils.getSimpleProperty(form,
"language");
country = (String) PropertyUtils.getSimpleProperty(form, "country");
page = (String) PropertyUtils.getSimpleProperty(form, "page");
} catch (Exception e) {
log.error(e.getMessage(), e);
}
if ((language != null && language.length() > 0)
&& (country != null && country.length() > 0)) {
locale = new java.util.Locale(language, country);
} else if (language != null && language.length() > 0) {
locale = new java.util.Locale(language, "");
}
session.setAttribute(Globals.LOCALE_KEY, locale);
if (null == page)
return mapping.findForward("success");
else
return new ActionForward(page);
} |
Vous devez ensuite ajouter les lignes suivantes a votre struts-config.xml:
1 2 3 4
| <form-bean name="localeForm" type="org.apache.struts.action.DynaActionForm">
<form-property name="language" type="java.lang.String" />
<form-property name="country" type="java.lang.String" />
</form-bean> |
puis
1 2 3
| <action path="/locale" type="com.matar.onlinestore.LocaleAction" name="localeForm" scope="request">
<forward name="success" path="/home.do" />
</action> |
Ensuite vous devez faire le changement suivant:
localizedMessage = messageResources.getMessage((Locale)session.getAttribute(Globals.LOCALE_KEY), messageKey);
Pour acceder aux keys suivant la langue selectionnee vous devez utiliser le code suivant:
getLocalizedMessage(request, "Struts.hello");
Dans MessageResources
Struts.hello=Hello Struts
et dans MessageResources_fr
Struts.hello=Bonjour Struts
Partager