国际化与本地化问题

时间:2010-04-13 13:33:00

标签: jsf localization internationalization icefaces

我的应用程序支持国际化和本地化,每个用户都可以选择他的偏好语言,应用程序将完美地反映出来。问题是当第一个用户选择英语而第二个用户选择法语时,第一个用户的资源包将在刷新页面后从法语资源中读取。

我使用以下代码在两种语言之间进行更改:

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设置区域设置时它反映了所有用户区域设置。

请帮助我......

1 个答案:

答案 0 :(得分:1)

给定的代码不会这样做。问题出在其他地方或被误解了。

但是,更常见的做法是将区域设置存储在会话范围的bean中,并使用locale的{​​{1}}属性。

<f:view>