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.
Ou se situe ton fichier .properties ?
Dans ta déclaration tu mets MyResourceBundle alors que le nom de ton fichier est myResourceBundle il faut etre rigoureux.
Non ce n'est aps ça le probleme, j'ai fait une faute de frappe en tapant le message sur le forum. Mais en fait je ne comprend pas (je suis débutant en struts). Ma page web est en français, est-ce-que lorsque je fais ça (internationnalisation), je l'aurais automatiquement traduite en anglais ??? ou bien il faut que ma page web soit à la base en anglais ???
Si tu veux savoir si le problème vient du fait qu'il arrive pas à trouver ton fichier .properties, ou si ça vient du fait que tu n'arrives pas à changer la locale pour basculer en anglais, tu peux changer ta locale sur le système (pas le clavier mais vraiment la locale). Struts demande au navigateur pour trouver la locale avec laquelle il démare. Donc quand tu redémare ton navigateur après modif, Struts ira chercher le fichier de traduction xxx_EN.properties par défaut. Si ta pages est bien traduite, le problème vient du changement de locale. Si ta page est toujours en français c'est qu'il n'arrive pas à localiser ton fichier de traduction.
Ce sujet a déjà été traité plusieurs fois :
http://www.developpez.net/forums/arc...hp/t-9078.html
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 ??
il faut que ton tag default.dossiers apparaissent dans ton .properties français et anglais. Tu dois en utiliser 2 non? Tous tes tags doivent apparaitre dans les differents fichiers .properties. La le problème c qu'il ne trouve pas le message lorsqu'il essaie de le lire
oui c'est que j'ai fait. Dans mon .properties anglais j'ai :
default.dossiers=Folders
dans l'autre j'ai :
default.dossiers=Dossiers
Voici ce que je met dans mon struts-config :
<message-resources parameter="MyResourceBundle"/>
<message-resources parameter="ResourceBundle_EN"/>
En fait moi dans mon projet j'ai plusieurs fichiers properties :
MessageResources.properties
MessageResources_en_US.properties
MessageResources_fr_FR.properties
Et dans le struts-config j'ai seulement:
<message-resources parameter="MessageResources" />
Moi pareil, dans mon struts config je n'ai qu'une seule déclaration de mon bundle ...Envoyé par cipotesi
Donc si tu mets seulement
ca devrait marcher si tout tes .properties sont nommés MyResourceBundle_XX.properties
Code : Sélectionner tout - Visualiser dans une fenêtre à part message-resources parameter="MyResourceBundle"/>
Ton probleme vient du fait qu'il ne trouve pas le fichier .properties comme on te l'a dit plus haut
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager