IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Struts 1 Java Discussion :

[I18N] internationalisation ne marche pas


Sujet :

Struts 1 Java

  1. #1
    Membre habitué
    Inscrit en
    Mai 2006
    Messages
    525
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 525
    Points : 150
    Points
    150
    Par défaut [I18N] internationalisation ne marche pas
    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

  2. #2
    Membre régulier Avatar de gamel
    Inscrit en
    Avril 2006
    Messages
    128
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 128
    Points : 107
    Points
    107
    Par défaut
    Salut,

    as tu précisé dans ton strutsconfig :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <message-resources parameter="resources.sc" />
    (ce qui signifie que ton .properties est dans WEB-INF/classes/resources)

    as tu mis dans ta page jsp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <html:html locale="true">
    (ce qui implique que tu utilises les tags struts-html)

  3. #3
    Membre habitué
    Inscrit en
    Mai 2006
    Messages
    525
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 525
    Points : 150
    Points
    150
    Par défaut
    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

  4. #4
    Membre habitué
    Inscrit en
    Mai 2006
    Messages
    525
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 525
    Points : 150
    Points
    150
    Par défaut
    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


  5. #5
    Membre régulier Avatar de gamel
    Inscrit en
    Avril 2006
    Messages
    128
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 128
    Points : 107
    Points
    107
    Par défaut
    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"

  6. #6
    Membre habitué
    Inscrit en
    Mai 2006
    Messages
    525
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 525
    Points : 150
    Points
    150
    Par défaut
    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.

  7. #7
    Membre éprouvé
    Avatar de yolepro
    Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2002
    Messages
    918
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mai 2002
    Messages : 918
    Points : 1 144
    Points
    1 144
    Par défaut
    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.

  8. #8
    Membre habitué
    Inscrit en
    Mai 2006
    Messages
    525
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 525
    Points : 150
    Points
    150
    Par défaut
    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 ???

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 156
    Points : 165
    Points
    165
    Par défaut
    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.

  10. #10
    Membre éprouvé
    Avatar de yolepro
    Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2002
    Messages
    918
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mai 2002
    Messages : 918
    Points : 1 144
    Points
    1 144
    Par défaut
    Ce sujet a déjà été traité plusieurs fois :

    http://www.developpez.net/forums/arc...hp/t-9078.html

  11. #11
    Membre habitué
    Inscrit en
    Mai 2006
    Messages
    525
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 525
    Points : 150
    Points
    150
    Par défaut
    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

  12. #12
    Membre éprouvé
    Avatar de yolepro
    Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2002
    Messages
    918
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mai 2002
    Messages : 918
    Points : 1 144
    Points
    1 144
    Par défaut
    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

    ...

  13. #13
    Membre habitué
    Inscrit en
    Mai 2006
    Messages
    525
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 525
    Points : 150
    Points
    150
    Par défaut
    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

  14. #14
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 38
    Points : 20
    Points
    20
    Par défaut
    Salut,

    si dans ton .properties tu met default.dossiers=folders, dans ta jsp tu dois utiliser le tag <bean:message> de la facon suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <html:link action="./LancerDossierAction.do"><bean:message key="default.dossiers"/></html:link>
    J'espère que ça t'aidera...
    Coralie.

  15. #15
    Membre habitué
    Inscrit en
    Mai 2006
    Messages
    525
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 525
    Points : 150
    Points
    150
    Par défaut
    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 ??

  16. #16
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 38
    Points : 20
    Points
    20
    Par défaut
    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

  17. #17
    Membre habitué
    Inscrit en
    Mai 2006
    Messages
    525
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 525
    Points : 150
    Points
    150
    Par défaut
    oui c'est que j'ai fait. Dans mon .properties anglais j'ai :
    default.dossiers=Folders
    dans l'autre j'ai :
    default.dossiers=Dossiers

  18. #18
    Membre habitué
    Inscrit en
    Mai 2006
    Messages
    525
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 525
    Points : 150
    Points
    150
    Par défaut
    Voici ce que je met dans mon struts-config :
    <message-resources parameter="MyResourceBundle"/>
    <message-resources parameter="ResourceBundle_EN"/>

  19. #19
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 38
    Points : 20
    Points
    20
    Par défaut
    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" />

  20. #20
    Membre régulier Avatar de gamel
    Inscrit en
    Avril 2006
    Messages
    128
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 128
    Points : 107
    Points
    107
    Par défaut
    Citation Envoyé par cipotesi
    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 ...
    Donc si tu mets seulement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    message-resources parameter="MyResourceBundle"/>
    ca devrait marcher si tout tes .properties sont nommés MyResourceBundle_XX.properties
    Ton probleme vient du fait qu'il ne trouve pas le fichier .properties comme on te l'a dit plus haut

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 3 123 DernièreDernière

Discussions similaires

  1. 'SHOW TABLES' marche pas sous postgresql !?
    Par fet dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 13/05/2004, 09h28
  2. Maximiser fenêtre ne marche pas
    Par sandrinec dans le forum Composants VCL
    Réponses: 2
    Dernier message: 12/06/2003, 12h02
  3. Réponses: 9
    Dernier message: 07/05/2003, 12h57
  4. [GifDecoder] marche pas dans applet avec IE
    Par formentor dans le forum Applets
    Réponses: 2
    Dernier message: 06/05/2003, 10h43
  5. Sysdate qui marche pas ??
    Par StouffR dans le forum Langage SQL
    Réponses: 4
    Dernier message: 28/08/2002, 13h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo