1. 程式人生 > >如何實現 Spring MVC i18n 國際化,動態設定預設語言

如何實現 Spring MVC i18n 國際化,動態設定預設語言

1.在spring配置檔案中配置資原始檔properties的位置及公共名,下列配置指定的properties檔案處於src目錄下的

resources資料夾中,名字為message_info_*.properties

<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">                    
  <propertyname="basenames">
   <list>
    <value>resources/message_info

</value>
   </list>
  </property>                  
  <propertyname="useCodeAsDefaultMessage"value="true"/>

<!-- Set whether to usethe message code as default message instead of throwing aNoSuchMessageException. Useful for development anddebugging. -->           
 </bean>

2.在spring配置檔案中配置基於session的處理,將提交上來的locale引數進行處理,下列程式碼預設載入的語言是中文簡體。

<bean id="localeResolver"class="org.springframework.web.servlet.i18n.SessionLocaleResolver">
   <propertyname="defaultLocale"value="zh_CN"></property>
 </bean>

3.在spring配置檔案中的controller內配置相應的攔截器。

<beanid="className"
  class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping">
  <propertyname="interceptors">
   <list>
        <beanclass="org.springframework.web.servlet.i18n.LocaleChangeInterceptor"/>
   </list>

  </property>
 </bean>

4.相應的properties檔案內寫入對應的語言,配置檔案的語言資訊以keyvalue的形式進行儲存。

5.利用jstl的fmt標籤庫進行相應資料的國際化。

  2)需要國際化處寫入<fmt:messagekey="title"></fmt:message>標籤,此處將顯示相應properties檔案中名為title的資訊。

  3)頁面上寫成三個連線用於控制國際化的轉換

   <ahref="/CloudPortal/staff/goindex.do?locale=zh_CN">Chinese</a>//message_info_zh_CN.properties
   <ahref="/CloudPortal/staff/goindex.do?locale=en_US">English</a>//message_info_en_US.properties
   <ahref="/CloudPortal/staff/goindex.do?locale=zh_TW">Chinese(TW)</a>//message_info_zh_TW.properties

 locale內部固定的引數用於判斷讀取請求的配置檔案。