2010-06-18 4 views
1

Ceci est mon fichier messages_en_US.properties dans WEB-INF/classes dossier: -Pourquoi l'internationalisation ne fonctionne pas correctement? JSF

Login=Login 

Et puis je crée messages_fr_FR.properties: -

Login=frenchLogin 

Puis, dans ma page JSF j'ai écrit ceci: -

<f:loadBundle basename="messages" var="msg"/> 

<h:commandButton id="btnLogin" value="#{msg.Login}" actionListener="#{IndexBean.doLogin}"/> 

Je peux voir correctement le texte de connexion par défaut. Mais quand je vais dans Firefox et change ma langue par défaut en fr-fr, mon texte reste toujours le même que je ne peux pas voir frenchLogin.

Je n'ai rien dans mon visage-config.xml

Qu'est-ce que je fais mal? Merci d'avance :)

Répondre

3

Vous devez avoir ceci dans le faces-config.xml

<application> 
     <message-bundle>com.mydomain.resources.Messages</message-bundle> 
     <locale-config> 
      <default-locale>fr_FR</default-locale> 
      <supported-locale>en_EN</supported-locale> 
     </locale-config> 
    </application> 

Vous avez besoin d'un Messages.properties qui sera par défaut.

dans votre page JSF:

<f:loadBundle basename="com.mydomain.resources.Messages" var="msg" /> 

Le fichier de messages doit être en src/main/java/ puis dans un paquet. Le mien est /src/main/java/com/mydomain/resources

Soyez également prudent avec les lettres majuscules.

+0

Merci :). J'ai eu une exception CONFIGURATION FAILED au début mais quand j'ai enlevé ' com.sun.facelets.FaceletViewHandler' ça marche très bien. Merci encore. – TCM

+0

c'est parce que vous n'utilisez pas de facettes je suppose. Désolé à ce sujet, j'ai oublié de supprimer cette ligne. – pakore

+0

Aussi pouvez-vous suggérer un moyen facile où je peux obtenir un texte équivalent de tous les mots anglais en français? – TCM