2

このサイト (および他のサイト) を検索しましたが、これに対する解決策を見つけることができませんでした。または、私が見つけた解決策は、私がやっている方法と似ています。

とにかく、ユーザーがログインした後、プロファイルの設定に基づいてロケールを更新しています。この場合、ユーザーを「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>

これは私の質問と似ていますが、間違って読んでいない限り、私は正しいことをしていると思います。

http://forum.springsource.org/showthread.php?36339-Multilanguage-in-Session-with-SessionLocaleResolver

ここで何が欠けているのかわかりません....

4

0 に答える 0