私のアプリケーションは国際化とローカリゼーションをサポートしています。各ユーザーは自分の好みの言語を選択でき、アプリケーションはそれを完全に反映します。問題は、最初のユーザーが英語を選択し、2番目のユーザーがフランス語を選択した場合、最初のユーザーのリソースバンドルは、ページを更新した後にフランス語のリソースから読み取ります。
次のコードを使用して、2つの言語を切り替えています。
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からロケールを設定すると、すべてのユーザーのロケールが反映されると思います。
これについて私を助けてください....