Glassfish集群上的JSF页面始终使用英语

Glassfish集群上的JSF页面始终使用英语,jsf,primefaces,glassfish,locale,jelastic,Jsf,Primefaces,Glassfish,Locale,Jelastic,我面临着奇怪的本地化行为。我的应用程序中有两种语言-英语和斯洛伐克语。在我当地的Glassfish上,切换区域设置非常有效。但部署在Jelastic Glassfish上的同一应用程序始终使用英语。切换区域设置不起作用。我已经调试了远程应用程序,facescontext(facescontext.getCurrentInstance().getViewRoot().getLocale()和facescontext.getCurrentInstance().getExternalContext()

我面临着奇怪的本地化行为。我的应用程序中有两种语言-英语和斯洛伐克语。在我当地的Glassfish上,切换区域设置非常有效。但部署在Jelastic Glassfish上的同一应用程序始终使用英语。切换区域设置不起作用。我已经调试了远程应用程序,facescontext(facescontext.getCurrentInstance().getViewRoot().getLocale()和facescontext.getCurrentInstance().getExternalContext().getRequestLocale())返回正确的sk语言环境,但页面仍然是英文的。在语言菜单中选择了斯洛伐克语(第二选项)

这两个GlassFish版本都是3.1.2.2,Mojarra 2.2.7和Primefaces 5.0在JDK7上运行。本地GF在Win7上运行,远程运行在Linux(CentOS?)上,并且它是群集的(也许这就是原因?)

faces-conf.xml

<locale-config>
  <default-locale>en</default-locale>
  <supported-locale>sk</supported-locale>
</locale-config>
<resource-bundle>
  <base-name>Bundle</base-name>
  <var>bundle</var>
</resource-bundle>
谢谢你的帮助


迈克尔

我找到了一个解决办法,但我不确定为什么会这样。我的斯洛伐克捆绑包文件名为bundle_sk_sk.properties,我已将其重命名为bundle_sk.properties,现在它可以工作了

米哈尔

<f:view locale="#{loginBean.locale}">
  ...
  <p:outputLabel value="#{bundle.language}: "/>
  <p:selectOneMenu value="#{loginBean.language}" id="loginLocale">
    <f:selectItem itemValue="en" itemLabel="English" />
    <f:selectItem itemValue="sk" itemLabel="Slovensky" />
    <p:ajax update="@all"/>
  </p:selectOneMenu>
  ...
</f:view>
@ManagedBean(name = "loginBean")
@SessionScoped
public class LoginBean implements Serializable{

  private Locale locale = FacesContext.getCurrentInstance().getExternalContext().getRequestLocale();
  ...
  public Locale getLocale() {
    return locale;
  }

  public String getLanguage() {
    return locale.getLanguage();
  }

  public void setLanguage(String language) {
    locale = new Locale(language);
    FacesContext.getCurrentInstance().getViewRoot().setLocale(locale);
  }
}