5
私は、hereのようにJSFアプリケーションに国際化を実装しました。JSF setLocaleが適切に動作しない
しかし、問題が発生しました:ロケールを変更すると、ページのすべてのテキストが変更されます。しかし、別のページに移動するためにナビゲーションリンクをクリックすると、ロケールは標準ロケールに戻ります!
私はここで何かが間違っていると思います。だから私は以下の私のコードを提供し、あなたが役立つことを願って:
LocaleBean.java:
@ManagedBean(name="locale")
@SessionScoped
public class LocaleBean {
private Locale locale = FacesContext.getCurrentInstance().getViewRoot().getLocale();
public Locale getLocale() {
return locale;
}
public void setLanguage(String language) {
locale = new Locale(language);
FacesContext.getCurrentInstance().getViewRoot().setLocale(locale);
}
public String getLanguage() {
return locale.getLanguage();
}
}
JSFパート(私のテンプレートのそれの一部):
<h:outputText value=" #{text['common.language']}: " />
<h:selectOneMenu value="#{locale.language}" onchange="submit()">
<f:selectItem itemValue="de" itemLabel="Deutsch" />
<f:selectItem itemValue="en" itemLabel="English" />
</h:selectOneMenu>
顔-config.xml:
<?xml version="1.0" encoding="UTF-8"?>
<faces-config
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
version="2.0">
<application>
<locale-config>
<default-locale>de</default-locale>
<supported-locale>en</supported-locale>
</locale-config>
<resource-bundle>
<base-name>org.dhbw.stg.wwi2008c.mopro.ui.text</base-name>
<var>text</var>
</resource-bundle>
</application>
</faces-config>
私はチュートリアルのText.javaを変更し、bundle-pathのみを変更しました。
ここに私のディレクトリ:
重要な何かがそれをしてくださいお願いし欠落している場合。