2011-06-20 29 views
4

我在使用Spring設置國際化時遇到問題。 這是我的配置。i18n(國際化)與Spring和Velocity的問題

<bean id="messageSource" 
      class="org.springframework.context.support.ResourceBundleMessageSource"> 
      <property name="basename" value="localization" /> 
    </bean> 
    <!-- declare the resolver --> 
    <bean id="localeResolver" 
      class="org.springframework.web.servlet.i18n.CookieLocaleResolver"> 
      <property name="defaultLocale" value="sv" /> 
    </bean> 
    <mvc:interceptors> 
      <bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor" /> 
    </mvc:interceptors> 
    <mvc:annotation-driven /> 

即使我要求?locale=sv(瑞典語),它總是顯示我英語。

我正在使用Spring的Velocity。

有什麼想法嗎? 感謝

回答

2

這是我做的事:

  • 首先在src/main/resources 複製messages_xx.properties我不能讓它使用名稱messages_xx_xx(messages_en_us)

  • 然後,只需添加以下CONFIGS到xxxx_servlet工作.xml上下文

    <bean id="messageSource" 
         class="org.springframework.context.support.ReloadableResourceBundleMessageSource"> 
         <property name="basename" value="classpath:messages" /> 
         <property name="defaultEncoding" value="UTF-8" /> 
    </bean> 
    

<mvc:interceptors> 
    <bean id="localeChangeInterceptor" 
     class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor"> 
     <property name="paramName" value="lang"/> 
    </bean> 
    </mvc:interceptors> 

    <mvc:annotation-driven/> 
  • *.vm

,這是它曾經#springMessages('message.title')