2

我已经搜索了这个站点(和其他站点),但无法找到解决方案。或者,我找到的解决方案看起来与我的做法相似。

无论如何,在用户登录后,我会根据他们的个人资料偏好更新他们的语言环境。在这种情况下,我需要将用户更新为“fr_FR”法语。有趣的是,用户登录后第一页是英文的,但是如果您离开页面,页面会变为法语,如果您返回原来的页面,则现在是法语。

当用户登录时,他们通过 HomeController 将 SessionLocaleResolver 设置/更新为应该是法语的,但下一页没有反映这一点!!。

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());                                                                          
  }
    }

配置类="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