7 Replies Latest reply on Mar 14, 2012 11:50 AM by david meier

    Injected locale not the same as getLocale()?

    david meier Newbie



      I have a problem with i18n: after setting the locale to a different language (user selection menu in view), the locale is not updated in "every place".

      More specific: a getLocale() from facesContext does not get the same locale as a directly injected Locale by Jboss Seam. Even though the facesContext is injected by JBoss seam too!!


      Maybe I'm missing something here?




          class Messages {
              @Inject //injected by jboss seam
              Locale locale;
              @Inject //injected by jboss seam
              FacesContext facesContext;
              private void init() {
                  System.out.println(facesContext.getViewRoot().getLocale() + ", " + locale);
          class Manager {
              changeLocale() {
                  Locale locale = new Locale("de");
                  new Messages(); //de, de_DE
                  locale = new Locale("en");
                  new Messages(); //en, de_DE !!


      There is no problem with basic resource bundle bc I get is like this:

      ResourceBundle.getBundle("/myBundle", facesContext.getViewRoot().getLocale())


      But now I'm trying to use seam's

      private transient Messages messages;


      which seems to be based on the Locale locale; I do not get my messages i18n, they always reside in de_DE.