Tôi đã thực hiện quốc tế hóa vào ứng dụng JSF của mình như được mô tả here.JSF setLocale không hoạt động phù hợp
Nhưng tôi gặp sự cố: Khi tôi thay đổi ngôn ngữ, tất cả văn bản trên trang của tôi thay đổi. Nhưng sau đó nếu tôi nhấp vào liên kết điều hướng để đến trang khác, miền địa phương sẽ quay trở lại ngôn ngữ chuẩn!
Tôi nghĩ rằng tôi nhớ điều gì đó ở đây. Vì vậy, tôi cung cấp mã của tôi dưới đây và hy vọng bạn có thể giúp:
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 Phần (phần của nó mẫu của tôi):
<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>
khuôn mặt -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>
Tôi sau đó Text.java từ hướng dẫn và chỉ thay đổi gói-đường dẫn.
đây thư mục của tôi:
Nếu một cái gì đó quan trọng là mất tích yêu cầu nó vui lòng.