Java JSF2.0通过浏览器和编程在整个会话中设置语言环境
如何根据初始浏览器请求检测应用程序的区域设置,并在整个浏览会话中使用它,直到用户专门更改区域设置,以及如何在剩余会话中强制使用此新区域设置?创建会话范围的托管bean,如下所示:Java JSF2.0通过浏览器和编程在整个会话中设置语言环境,java,jsf,jsf-2,internationalization,locale,Java,Jsf,Jsf 2,Internationalization,Locale,如何根据初始浏览器请求检测应用程序的区域设置,并在整个浏览会话中使用它,直到用户专门更改区域设置,以及如何在剩余会话中强制使用此新区域设置?创建会话范围的托管bean,如下所示: @ManagedBean @SessionScoped public class LocaleManager { private Locale locale; @PostConstruct public void init() { locale = FacesContext.
@ManagedBean
@SessionScoped
public class LocaleManager {
private Locale locale;
@PostConstruct
public void init() {
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);
}
}
要设置视图的当前区域设置,请将其绑定到主模板的
要更改它,请使用语言选项将其绑定到
要改进国际化页面的SEO(否则会被标记为重复内容),请将语言绑定到
创建会话范围的托管bean,如下所示:
@ManagedBean
@SessionScoped
public class LocaleManager {
private Locale locale;
@PostConstruct
public void init() {
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);
}
}
要设置视图的当前区域设置,请将其绑定到主模板的
要更改它,请使用语言选项将其绑定到
要改进国际化页面的SEO(否则会被标记为重复内容),请将语言绑定到
如果添加不在Locale类定义中的tr,如Locale.CANADA、Locale.GERMAN,该怎么办。我在faces-config.xml中添加了;en tr但是它不起作用:/add tr不在Locale类定义中,比如Locale.CANADA,Locale.derman,该怎么办。我在faces-config.xml中添加了;然而,它不起作用:/