このサイト (および他のサイト) を検索しましたが、これに対する解決策を見つけることができませんでした。または、私が見つけた解決策は、私がやっている方法と似ています。
とにかく、ユーザーがログインした後、プロファイルの設定に基づいてロケールを更新しています。この場合、ユーザーを「fr_FR」フランス語に更新する必要があります。興味深いのは、ユーザーがログインした後の最初のページは英語ですが、別のページに移動するとページがフランス語に変わり、元のページに戻るとフランス語になっていることです。
ユーザーがログインすると、SessionLocaleResolver をフランス語に設定/更新する HomeController を通過しますが、次のページにはこれが反映されません!!。
final LocaleResolver localeResolver = RequestContextUtils.getLocaleResolver(request);
if (localeResolver != null) {
// get the new locale name from the request param, if possible
final String newLocaleName = userProfile.getDefaultLocaleId();
if (newLocaleName != null) {
final LocaleEditor localeEditor = new LocaleEditor();
localeEditor.setAsText(newLocaleName);
// set the new locale
localeResolver.setLocale(request, response,
(Locale) localeEditor.getValue());
}
}
構成 class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
<bean id="messageSource" class="
com.ecommerce.web.util.MyResourceBundleMessageSource" >
<property name="basenames" >
<util:list>
<value>resourcebundles.mybundles-ui</value>
</util:list>
</property>
</bean>
<bean id="localeResolver"
class="org.springframework.web.servlet.i18n.SessionLocaleResolver" >
<property name="defaultLocale" value="en" />
</bean>
これは私の質問と似ていますが、間違って読んでいない限り、私は正しいことをしていると思います。
ここで何が欠けているのかわかりません....