Salut,
Je veux faire l'internationalisation eb utilisant struts et comme c'est la première fois que je fais ça, j'ai consulter la faq de struts et suivi les instructions mais ça ne marche pas![]()
Quelqu'un pourrait m'aider please
Merci
Salut,
Je veux faire l'internationalisation eb utilisant struts et comme c'est la première fois que je fais ça, j'ai consulter la faq de struts et suivi les instructions mais ça ne marche pas![]()
Quelqu'un pourrait m'aider please
Merci
Salut,
as tu précisé dans ton strutsconfig :
(ce qui signifie que ton .properties est dans WEB-INF/classes/resources)
Code : Sélectionner tout - Visualiser dans une fenêtre à part <message-resources parameter="resources.sc" />
as tu mis dans ta page jsp :
(ce qui implique que tu utilises les tags struts-html)
Code : Sélectionner tout - Visualiser dans une fenêtre à part <html:html locale="true">
oui, j'ai bien mis locale = true dans ma page jsp et j'ai mis dans monstrutsconfig
<message-resources parametermessage-"com.myapp.struts.MyResourceBundle" />
car mon fichier .properties se trouve dans com.myapp.struts mais ça ne marche pas. Et si j'ai envie de changer de langue comment il faut faire ?
C'est-à-dire que j'ai envie que lorsque l'utilisateur veut visualiser le site en anglais alors il lui suffit de cliquer sur un lien ou un drapeau.
Merci
Le probleme c'est que lorsque je clique sur le lien anglais il me redige vers une page vide de meme lorsque je clique sur le lien français. J'ai fait exactement comme dans la faq struts , j'ai rajouté en plus les liens :
<html:link href=switch.do?lang='fr'&cty='FR'>FR</html:link>
<html:link href=switch.do?lang='en'&cty='EN'>EN</html:link>
et l'action correspondante
![]()
Ton .properties, si je ne dis pas de betises doit se situer dans WEB-INF/classes
et vu ta config ton bundle doit s'appeler MyResourceBundle.properties
et apres essaye de mettre
Code : Sélectionner tout - Visualiser dans une fenêtre à part <message-resources parameter="XXX.MyResourceBundle"
Oui, j'ai fais tout ça mais j'ai toujours le meme probleme.
Voici tout mon cose :
1. Fichier myResourceBundle :
default.welcome=hello
2. dans ma page jsp j'ai fait <html:html locale = "true">
3. dans struts-config.xml :
<message-resources parametermessage-resources="MyResourceBundle" />
en faisant ceci, je n'est ni exception ni rien sauf que je n'observe pa sma page en anglais.![]()
J'ai compris d'ou proviens mon erreur. En fait j'ai cru que ce machin est tellemnt magique qu'en mettant default.welcome=hello. Il me traduira tout mon site en anglais.
Donc dans le . properties, je dois mettre tous les mots qui se trouvent dans mon site mais mon probleme c'est de savoir comment ?
Par exemple j'ai un lien qui s'appelle dossiers. Pour pouvoir le traduire je met quoi dans mon .properties ?
Merci infiniment
les libellés de tes messages son complètements arbitraires.
A toi de trouver un solution facile a maintenir.
Une technique est d'utiliser des mots clé (premier mot type de msg, deuxieme mot nom de la page troisieme mot résumé) :
exemple :
label.accueil.msgBienvenue =Bienvenue sur le site
lien.accueil.dossier =Dossier
...
Par exemple dans ma page JSP j'ai le code suivant :
<html:link action="./LancerDossierAction.do">Dossiers</html:link>
J'ai envie d'avoir dossiers en anglais si je séléctionne de visualiser le site en anglais et en français sinon.
Dans mon . properties je dois mettre quoi exactement.
ça ne marche pas avec : default.dossiers=folders
Salut,
si dans ton .properties tu met default.dossiers=folders, dans ta jsp tu dois utiliser le tag <bean:message> de la facon suivante :
J'espère que ça t'aidera...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 <html:link action="./LancerDossierAction.do"><bean:message key="default.dossiers"/></html:link>
Coralie.
Oui, j'ai fait ce que tu m'a dit mais Tomcat me sort l'exception suivante :
javax.servlet.jsp.JspException: Exception forwarding for name LancerDossierAction: javax.servlet.ServletException: Missing message for key "default.dossiers"
org.apache.struts.taglib.logic.ForwardTag.doForward(ForwardTag.java:125)
org.apache.struts.taglib.logic.ForwardTag.doEndTag(ForwardTag.java:105)
org.apache.jsp.Bienvenue_jsp._jspx_meth_logic_forward_0(Bienvenue_jsp.java:111)
org.apache.jsp.Bienvenue_jsp._jspService(Bienvenue_jsp.java:70)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:362
Tu vois c'est quoi l'erreur ??
![]()
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : 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
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 ?
Pleeeeeeeeeease
Partager