我的应用程序支持国际化和本地化,每个用户都可以选择自己喜欢的语言,应用程序会完美地体现出来。问题是当第一个用户选择英语而第二个用户选择法语时,第一个用户的资源包将在刷新他的页面后从法语资源中读取。
我正在使用以下代码在两种语言之间进行切换:
public void changeToEnglish()
{
FacesContext context = FacesContext.getCurrentInstance();
Locale currentLocale = context.getViewRoot().getLocale();
String locale = "en_US";
Locale newLocale = new Locale(locale);
if(!currentLocale.equals(newLocale))
context.getViewRoot().setLocale(newLocale);
}
我的 faces_config.xml 中有以下内容:
<locale-config>
<default-locale>en</default-locale>
<supported-locale>fr</supported-locale>
</locale-config>
该应用程序对更改语言的响应非常好,但我认为从 FacesContext 设置语言环境时,它反映了所有用户的语言环境。
请帮我解决这个问题......