我想在JSF中实现国际化,网上给出的大多数技术都涉及向用户询问他/她的语言环境并在会话bean中设置值。但我希望基于请求接受语言头设置语言环境,并且JSF应该有一些过滤器,它在加载第一页之前设置语言环境,然后在语言会话bean中设置它,我可以重用它
因此有一些Locale过滤器像jsf实现的功能可以用来设置Locale吗?
谢谢!
答案 0 :(得分:1)
如果您已在faces-config.xml中正确配置了区域设置并且具有正确的资源包文件,那么应该由Java EE应用程序自动检测区域设置。这个tutorial from Netbeans给出了很好的介绍。
此外,Web应用程序可以根据请求检测客户端的区域设置,如Java EE tutorial中的引用:
获取给定的正确字符串 用户,Web应用程序 检索语言环境(由浏览器设置) 语言偏好)来自请求 使用getLocale方法,或允许 用户明确选择 区域设置。
还有一个如何使用getLocale方法的例子:
FacesContext ctx = FacesContext.getCurrentInstance();
Locale locale = ctx.getViewRoot().getLocale();
您可以将其置于会话状态以便轻松访问。