[JSTL/JSP/JAVA] comment afficher la clé d'un .properties ? [Resolu]

comment afficher la clé d'un .properties ? [Resolu] [JSTL/JSP/JAVA] - Java - Programmation

Marsh Posté le 19-02-2007 à 18:51:07    

Bonjour à tous,
 
J'ai lu beaucoup de choses au sujet des jstl et de la gestion de l'internationalisation (i18n) mais je m'y perd un peu  :??:  
 
Ma question est simple : Comment afficher dans ma page JSP les valeurs associées aux clefs de mes fichier properties ? (j'utilise tomcat).
 
Voici quelques bouts de mon code :
 
--> Mes fichiers formulaire1_en_GB.properties et formulaire1_fr_FR.properties (situé dans WEB-INF/classes/properties), peut pas faire plus simple  :p  
 

Code :
  1. # Fichier de properties pour la langue anglaise
  2. # Formalisme : clef/valeur
  3. message_bienvenu=Hello


Code :
  1. # Fichier de properties pour la langue française
  2. # Formalisme : clef/valeur
  3. message_bienvenu=Bonjour


 
--> Dans ma classe JAVA

Code :
  1. ...
  2. if (request.getParameter("langue" ) != null && !request.getParameter("langue" ).equals("" ) && request.getParameter("pays" ) != null && !request.getParameter("pays" ).equals("" )) {
  3.   request.getSession().setAttribute("maLocale", new Locale(request.getParameter("langue" ), request.getParameter("pays" )));
  4.  }
  5.  ResourceBundle bundle = ResourceBundle.getBundle("properties.formulaire1", (Locale) request.getSession().getAttribute("maLocale" ));
  6. ...


 
--> Et enfin la JSP où il doit manquer quelquechose :

Code :
  1. ...
  2. <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
  3. ...
  4. <tr>
  5.      <fmt:message key="properties.formulaire1.message_bienvenu"/>
  6. </tr>
  7. ...


 
Faut-il mettre quelquechose dans le fichier web.xml ?
 
Merci par avance  :) .


Message édité par Profil supprimé le 21-02-2007 à 18:28:17
Reply

Marsh Posté le 19-02-2007 à 18:51:07   

Reply

Marsh Posté le 20-02-2007 à 09:53:54    

J'ai vu qu'il fallait naturellement définir le tag dans le web.xml, petit oubli  :whistle: :

Code :
  1. ...
  2. <!-- Définition du taglib pour la gestion de l'internationalisation (i18n) -->
  3. <taglib>
  4. <taglib-uri>http://java.sun.com/jsp/jstl/fmt</taglib-uri>
  5. <taglib-location>/WEB-INF/fmt.tld</taglib-location>
  6. </taglib>
  7. ...


Que faut-il définir dans le fmt.tdl ?
 
Merci.

Reply

Marsh Posté le 20-02-2007 à 13:43:33    

Bon je me répond moi même  :o ... :lol:  
 
Voilà, j'ai donc lu, relu, rerelu les docs sur l'internationalisation.
 
J'ai télécharger les fichiers jstl.jar et standard.jar que j'ai placé dans WEB-INF/lib/.
J'ai également placé tout les fichiers de descripteur .tld (fmt.tld, c.tld, sql.tld,x.tld,...) dans WEB-INF/tld/.
 
Il me reste un petit problème, sur ma page JSP apparait : ???properties.formulaire1.message_bienvenu??? (au lieu de 'Bonjour' ou 'Hello' en fr et en).
 
J’en déduit qu’il ne trouve pas mes fichiers de properties, dans ma JSP j’ai mis ceci :

Code :
  1. <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
  2. ...
  3. <tr>
  4.      <fmt:setBundle basename="properties.formulaire1"/>
  5.      <fmt:message key="message_bienvenu"/>
  6. </tr>
  7. ...


 
Quelqu'un pourrait me guider ? merci  :hello:


Message édité par Profil supprimé le 20-02-2007 à 13:44:17
Reply

Marsh Posté le 20-02-2007 à 18:28:33    

:(  Vraiment personne ?

Reply

Marsh Posté le 21-02-2007 à 09:27:14    

Nan mais ici c'est HTML/CSS/JS, le XML c'est dans une autre sous categorie :o

Reply

Marsh Posté le 21-02-2007 à 12:00:37    

Je viens de voir que si je créé un fichier formulaire1.properties (avec le même contenu que le fichier formulaire1_fr_FR.properties présenté plus haut), mon tag <fmt:message key="message_bienvenu" /> de ma page formulaire1.jsp m'affiche bien 'Bonjour'   :) .
 
De ce fait il y un problème d'interprétation des _fr_FR, _en_GB  :??: .
 
Quelqu'un(e) pourrait-il m'aider ? (je rappelle que je suis sous tomcat avec l'ide eclipse).
 
Merci à toutes et à tous  :) .


Message édité par Profil supprimé le 21-02-2007 à 12:01:29
Reply

Marsh Posté le 21-02-2007 à 14:02:45    

vérifie ta locale actuelle. Tu es surement trop précis. _fr, ça suffit.


Message édité par brisssou le 21-02-2007 à 14:02:52

---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
Reply

Marsh Posté le 21-02-2007 à 15:08:48    

J'ai essayé en renommant mes fichiers properties en formulaire1_fr.properties... comme tu me l'a conseillé, mais rien n'y fait.
 
J'ai également essayé avec le code ci-dessous (dans ma JSP) en précisant le nom de mon bundle que j'ai défini dans ma Servlet (voir plus haut) et l'attribut 'var'

Code :
  1. <fmt:setBundle basename="properties.formulaire1" var="maLocale" />
  2. <fmt:message bundle="maLocale" key="message_bienvenu" />


Mais avec ça j'obtiens une exception.
 
Je rame depuis hier après midi la dessus, je sais plus trop quoi essayer  :sweat: .

Reply

Marsh Posté le 21-02-2007 à 18:26:35    

Mamamia tant de souffrance pour en arriver là. ça fonctionne  :bounce:  
 
Pour ceux que ça pourrait aider, voilà ce qu'il faut mettre dans la page JSP :
 

Code :
  1. ...
  2. <fmt:setLocale value="<%=request.getSession().getAttribute("maLocale" )%>" scope="session"/>
  3. <fmt:setBundle basename="properties.formulaire1" scope="session"/>
  4. ...
  5. <fmt:message key="message_bienvenu"/>
  6. ...


 
En gardant les fichiers properties sous la forme formulaire1_fr_FR.properties, formulaire_us_US.properties, ...
 
A la prochaine  :hello: .

Reply

Marsh Posté le 28-10-2012 à 12:11:28    

j'ai le meme probleme jai pas trouvé un tutoriel pour appliquer l'internationalisation,
jai suivi tius les exemples à la lettre mais aucun ne fonctionne
quelqu'un peut il m'aider ?

Reply

Marsh Posté le 28-10-2012 à 12:11:28   

Reply

Marsh Posté le 28-10-2012 à 12:13:32    


Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed