Zaimplementowałem internacjonalizację w mojej aplikacji JSF zgodnie z opisem here.JSF setLocale nie działa poprawnie
Ale napotkałem problem: Po zmianie ustawień regionalnych wszystkie teksty na mojej stronie zmieniają się. Ale jeśli kliknę link nawigacyjny, aby przejść do innej strony, ustawienia narodowe wrócą do standardowego locale!
Myślę, że tęsknię za czymś tutaj. Więc zapewnić mój kod poniżej i nadzieję, że może pomóc:
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 część (to jest część mojego szablonu):
<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>
twarze -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>
Ja następnie Text.java z samouczka i tylko zmieniono ścieżkę pakietu.
Oto mój katalog:
Jeśli coś ważnego brakuje poprosić o to proszę.