2010-11-10 10 views
0

comme je l'ai demandé il y a temps this question, je résolu mon problème en utilisant cette méthode:Problème changement application langue

  1. Dans loging.xhtm, par exemple:

    <f:view locale="#{languageDetails.locale}" > 
    <head> 
    ..... 
    <f:loadBundle basename="messages.Messages" var="msg1"/> 
    ..... 
    

    </h:form> 
    

    </body> 
    </f:view> 
    

2.In code source java j'ai également fait quelques changements:

public class LanguageDetails { 

    private static String locale = Locale.getDefault().getDisplayLanguage(); 

     public void setLocale(String locale1) { 
     this.locale = locale1; 
     } 

     public synchronized String getLocale() { 
     return locale; 
     } 

     public synchronized String changeLanguage() { 
     return "changed"; 
     } 
} 

Mais maintenant, je suis en train d'avoir la même option, pas seulement dans la page de connexion, mais dans d'autres p âge.
L'ajout du même code dans d'autres pages ne fonctionne pas car la fonction setLocale n'est pas appelée. De l'aide?
Merci à l'avance

Répondre

0

j'ai réalisé, il est vraiment important de mettre

<f:view locale="#{languageDetails.locale}" > 
.... 
</f:view> 

Ou dans chaque fichier, ou tout simplement dans le dossier haut. Plus tard, mettez <h:selectOneMenu> si nécessaire, mais en ayant toujours à l'esprit que vous ne pouvez pas avoir tous les <h:form>, <a4j:form> ... etc. que vous voulez, cela rend les choses plus compliquées. J'ai mis ce étiquettes de forme juste sur les fichiers supérieurs, et maintenant tout va bien.
Espérons que cela pourrait aider quelqu'un.