Bonjour,
j'ai du texte à ajouter en fonction de la langue de l'utilisateur. J'ai donc un fichier .properties quelque part au milieu de mes classes.
ce fichier .properties contient les valeurs suivantes :
et je souhaite le transformer, pour des questions de lisibilité, de maintenance et de compatibilité avec notre programme de localisation en un fichier ressemblant à peu près à ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 page1Partie1Champ1ProprieteA = Texte 1 page1Partie1Champ2ProprieteA = Texte 2 page1Partie1Champ2ProprieteB = Texte 3
L'accès actuel se fait donc comme ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 page1.partie1.champ1.proprieteA = Texte 1 page1.partie1.champ2.proprieteA = Texte 2 page1.partie1.champ2.proprieteB = Texte 3
Rien de bien sorcier.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 <f:loadBundle basename="chemin.vers.Messages" var="bundle" /> <h:outputText value="#{bundle.page1Partie1Champ1ProprieteA}" />
Si cela ne posait pas de problème j'utiliserais bien :
Mais bien entendu, cela ne fonctionne pas : j'obtiens une erreur "500 Bean: java.lang.String, property: label". Je comprends le raisonnement sous-jacent (trouver la propriété "label" depuis la classe "String" qui n'existe pas, bien entendu), mais comment contourner celui-ci ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 <f:loadBundle basename="chemin.vers.Messages" var="bundle" /> <h:outputText value="#{bundle.page1.partie1.champ1.proprieteA}" />
Et donc comment utiliser cette dernière portion de code dans un fichier JSF normal ?
Partager