2014-09-18 50 views
0

我正面臨着本地化的奇怪行爲。我的應用中有兩種語言 - 英語和斯洛伐克語。在我的本地Glassfish切換區域設置完美。但是在Jelastic Glassfish上部署的相同應用程序始終使用英語。切換區域設置不起作用。我調試了遠程應用程序和facescontext(FacesContext.getCurrentInstance()。getViewRoot()。getLocale()和FacesContext.getCurrentInstance()。getExternalContext()。getRequestLocale())返回正確的sk語言環境,但頁面仍然是英語。在語言菜單中選擇斯洛伐克(第二選項)!Glassfish集羣上的JSF頁面總是用英文表示

這兩個玻璃魚都在版本3.1.2.2與Mojarra 2.2.7和Primefaces 5.0,在JDK7上運行。當地GF運行Win7上,遙控器上的Linux(CentOS的?)和它的集羣(也許這是什麼原因?)

面孔,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> 

login.xhtml

<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> 

LoginBean.java

@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); 
    } 
} 

感謝您的幫助

Michal

回答

1

我找到了一個解決方案,但我不確定,爲什麼會發生。我的slovak捆綁文件的名稱是Bundle_sk_SK.properties,我已將其重命名爲Bundle_sk.properties,現在它可以工作。

Michal