2010-04-13 6 views
1

Mon application prend en charge l'internationalisation et la localisation, chaque utilisateur peut choisir sa langue de préférence et l'application la reflètera parfaitement. le problème est lorsque le premier utilisateur sélectionne l'anglais et le second sélectionne le regroupement de ressources français pour le premier utilisateur lira à partir de la ressource française après avoir rafraîchi sa page.Numéro d'internationalisation et de localisation

J'utilise le code suivant pour changer entre les deux langues:

public void changeToEnglish() 
    { 
     FacesContext context = FacesContext.getCurrentInstance(); 
     Locale currentLocale = context.getViewRoot().getLocale(); 
     String locale = "en_US"; 
     Locale newLocale = new Locale(locale); 
     if(!currentLocale.equals(newLocale)) 
      context.getViewRoot().setLocale(newLocale); 
    } 

Je donne les résultats suivants dans mon faces_config.xml:

<locale-config> <default-locale>en</default-locale> <supported-locale>fr</supported-locale> </locale-config>

la demande répondent très bien à l'évolution langues mais je pense que lors de la définition des paramètres régionaux à partir du FacesContext, il reflète tous les paramètres régionaux des utilisateurs.

S'il vous plaît aidez-moi sur ce ....

Répondre

1

Le code donné ne fait pas. Le problème se situe ailleurs ou a été mal interprété. Toutefois, une pratique plus courante consiste à stocker les paramètres régionaux dans un bean de portée de session et à utiliser l'attribut locale de <f:view>.

+0

thx pour votre réponse, en fait, je sauvegarder les paramètres régionaux dans le bean utilisateur (session scoped bean). Je vais essayer de mettre dans le template et voir ce qu'il va se passer. – Ahmad

+0

Merci beaucoup BalusC ça marche bien maintenant :) – Ahmad

+0

De rien. – BalusC