0

JSF 2.0 と Spring 3.0.2 と tomcat 7.0.14.0 をサーバーとして使用しています。サイトの言語の変更に問題があります。すべてのコードは、ローカル サーバーで正常に動作しています。しかし、サーバーにデプロイすると、言語の変更は反映されません。デフォルト言語としてイタリアが自動的に選択されます。別の言語をクリックしても何も変わりません。ここに私のBeanコードがあります:

            @ManagedBean(name="language")
           @SessionScoped
          public class LanguageBean implements Serializable{

private static final long serialVersionUID = 1L;

private String localeCode;





private static Map<String,Object> countries;
    static{
    countries = new LinkedHashMap<String,Object>();
    countries.put("English", Locale.ENGLISH); //label, value

            countries.put("Italian", Locale.ITALIAN);
}

public LanguageBean() {
    countries = new LinkedHashMap<String,Object>();


            countries.put("English", Locale.ENGLISH); //label, value
            countries.put("Italian", Locale.ITALIAN);

}

public Map<String, Object> getCountriesInMap() {
    return countries;
}


public String getLocaleCode() {
    return localeCode;
}


public void setLocaleCode(String localeCode) {
    this.localeCode = localeCode;
}


    public void countryLocaleCodeChanged(ValueChangeEvent e){

    String newLocaleValue = e.getNewValue().toString();


    for (Map.Entry<String, Object> entry : countries.entrySet()) {
            System.out.println("newLocaleValue "+newLocaleValue+"\n entry.getValue().toString()"+entry.getValue().toString());
        if(entry.getValue().toString().equals(newLocaleValue)){

            FacesContext.getCurrentInstance()
                .getViewRoot().setLocale((Locale)entry.getValue());
                    FacesContext context = FacesContext.getCurrentInstance(); 
                    System.out.println("Default : "+context.getApplication().getDefaultLocale()); 

                    context.getApplication().setDefaultLocale((Locale)entry.getValue());


        }
    }

}

そして、これはconfig.xmlです::

    <locale-config>
        <default-locale>en</default-locale>
    </locale-config>
    <resource-bundle>
        <base-name>com.mad_u.welcome</base-name>
        <var>msg</var>
    </resource-bundle>

アイデアをください。前もって感謝します。

4

1 に答える 1

0

私も同じ問題を抱えていました。私のプロパティファイルは次のようでした:

  • message_en_US.properties
  • message_es_ES.properties
  • message_eu_ES.properties

ローカル サーバーで動作していましたが、Web をサーバーにアップロードしても言語の変更が機能しなかったため、次のように変更しました。

        countries.put("Castellano", new Locale("es"));
        countries.put("Euskara", new Locale("eu"));
        countries.put("English", new Locale("en")); 

<locale-config>
            <default-locale>es</default-locale>
            <supported-locale>es</supported-locale>
            <supported-locale>eu</supported-locale>
            <supported-locale>en</supported-locale>
        </locale-config>

  • message_ja.properties
  • message_es.properties
  • message_eu.properties
于 2013-01-29T08:31:04.107 に答える