隨著網路的發展,在Web開發中,系統的國際化需求已經變得非常的普遍。本文主要講解SpringMVC框架對多語言的支持,僅供學習分享使用,如有不足之處,還請指正。 ...
隨著網路的發展,在Web開發中,系統的國際化需求已經變得非常的普遍。本文主要講解SpringMVC框架對多語言的支持,僅供學習分享使用,如有不足之處,還請指正。
什麼是國際化?
國際化(internationalization)又稱為 i18n(讀法為i 18 n,據說是因為internationalization(國際化)這個單詞從i到n之間有18個英文字母,i18n的名字由此而來),即能同時應對世界不同地區和國家的訪問,並針對不同地區和國家的訪問,提供相應的、符合來訪者閱讀習慣的頁面或數據。
SpringMVC支持國際化步驟
1. 創建國際化資源文件
如下所示,國際化資源文件*.properties格式的文件,文件命名必須符合【base_語言_地區.properties】的命名規範,預設為【base.properties】即,如果沒有對應的語言的資源文件,則從預設文件中查找。
1 //預設文件 2 /ThirdSpringMvc/src/i18n.properties 3 //英文-美國 4 /ThirdSpringMvc/src/i18n_en_US.properties 5 //中文-中國 6 /ThirdSpringMvc/src/i18n_zh_CN.properties
2. 國際化資源文件的內容
國際化資源文件內容是以鍵值對【key=value】的格式存儲的,且如果是中文,則顯示對應的Ascii碼如下所示:
hi=\u4F60\u597D me=\u6211 love=\u7231 study=\u5B66\u4E60 mvc=SpringMVC
3. 在SpringMVC預設配置文件【dispatcher-servlet.xml】文件中增加國際化支持
如下所示:基名為i18n是預設通用的命名方式。
備註:bean的id必須是messageSource,否則對應不上
1 <!-- 載入國際化資源文件 --> 2 <bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource"> 3 <!--<property name="basename" value="i18n"></property>--> 4 <property name="basenames"> 5 <list> 6 <value>i18n</value> 7 </list> 8 </property> 9 </bean>
4. 在JSP中文件中增加jstl支持
如下所示:通過<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>引入標簽支持
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <fmt:message key="hi"></fmt:message> <fmt:message key="me"></fmt:message> <fmt:message key="love"></fmt:message> <fmt:message key="study"></fmt:message> <fmt:message key="mvc"></fmt:message> </body> </html>
5. 測試,打開設置語言選項
在IE瀏覽器中設置如下:設置-->Internet選項-->語言-->打開語言選項,可以通過上移下移設置當前語言,如果沒有,則可以添加語言。如下所示:當前為英文-美國(en-US)
則瀏覽器顯示內容如下:
如設置成中文-中國(zh-CN),則顯示如下:
以上就是設置SpringMVC支持多語言的操作步驟。
備註
葡萄美酒夜光杯,欲飲琵琶馬上催。
醉卧沙場君莫笑,古來征戰幾人回?