国际化和本地化问题
问题描述:
我的应用程序支持国际化和本地化,每个用户可以选择他的偏好语言,应用程序将完美地反映它。问题是当第一个用户选择英语而第二个用户选择法语时,第一个用户的资源包在刷新他的页面后将从法语资源读取。国际化和本地化问题
我使用下面的代码两种语言之间切换:
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设置语言环境时,它反映了所有用户的语言环境。
请帮我这个....
答
给定的代码不会这样做。问题出在其他地方或者被误解了。
但是,更常见的做法是将区域设置存储在会话范围的bean中,并使用属性<f:view>
。
thx为您的答复,实际上我确实保存用户bean(会话范围的bean)中的区域设置。我会尝试在模板中放置,看看会发生什么。 –
Ahmad
2010-04-13 14:36:48
非常感谢BalusC现在工作正常:) – Ahmad 2010-04-13 14:56:05
不客气。 – BalusC 2010-04-13 14:57:59