Java Web的Struts2的多语种网站的多语言切换实例
? ? 先看圖圖;
圖1:
圖2:
圖3:
圖4:
一?
? ? 首先下載Properties Editor插件,該插件是支持中文的資源文件編輯器;MyEclipse 10.6 以上不用安裝該插件,使用自帶資源文件編輯器即可;下載后解壓,將features和plugins兩個目錄復制到MyEclipse安裝目錄,比如MyEclipse\MyEclipse 10\dropins,下,即可;
二 編寫測試JSP頁面
<%@ page language="java" pageEncoding="UTF-8"%> <%@ taglib prefix="s" uri="/struts-tags"%><html><head><title><s:text name = "registerPage" /></title><script type="text/javascript">function requestLocale(){localeForm.submit();}</script></head><body><s:set name="locale" value="#session['WW_TRANS_I18N_LOCALE']" /><form name="localeForm" action="<s:url/>" method="post"><select name="request_locale" οnchange="requestLocale()"><option value="zh_CN" >簡體中文</option><option value="en_US" <s:if test="#locale.language == 'en'">selected="selected"</s:if> >美式英語 </option><option value="ar_IL" <s:if test="#locale.language == 'ar'">selected="selected"</s:if> >日語</option></select></form> <s:form action = "register" name="form" ><s:textfield name="username" key="username" /> <s:textfield name="password" key="password" /><s:textfield name="age" key="age" /><s:textfield name="birthday" key="birthday" /><s:submit key="register" /></s:form><p>XXX </p><p>XXX </p><p>XXX </p><p>XXX </p><s:text name="teqtest" /><p>XXX </p><p>XXX </p><p>XXX </p><p>XXX </p><s:text name="testkey" /></body> </html>三 建立資源文件
? ? 資源文件放在如下位置:WEB-INF的classes目錄下,
? ? 新建文件夾文件夾i18n,放入如下圖資源文件;
四 編輯資源文件
? ? 在MyEclipse中打開?globalResource_zh_CN.properties, 這是中文資源文件,新建key名稱為testkey,值為一段中文;
? ??打開globalResource_en_US.properties,這是英文資源文件,新建key名稱為testkey,值為一段英文;
? ? 打開globalResource.properties,如上圖4,新建key名稱為testkey,值為一段日文;
五 在Struts2的配置文件中添加如下一段:
!-- 語言切換 -->
? <action name="*_jsp">
? ? ?<result>/xxxx/i18n/{1}.jsp</result>
? </action>
xxxx是項目中一個放頁面的文件夾,為了清楚,新建一個i18n文件夾,測試JSP放在這里;
因為Struts2的多語言切換是通過叫i18n的內(nèi)建攔截器實現(xiàn)的,所以起個名字叫i18n,好辨認;
六 在瀏覽器中查看結(jié)果
? ? 在瀏覽器中輸入:http://localhost:8080/dddd/xxxx/i18n/register_jsp.action
? ? 在頁面上用下拉列表切換語言,其效果分別如圖1、圖2、圖3;實現(xiàn)了頁面內(nèi)容中中、英、日三種語種的切換;
? ? 中間輸出的一段是土耳其文,用于測試,順帶搞暈大家;
七 關(guān)于Struts2的國際化支持
? ??Struts2的國際化支持是用資源文件實現(xiàn)的;本身機制還是比較復雜;資源文件命名,資源文件查找順序,等,都有一定規(guī)則;內(nèi)建i18n攔截器支持國際化,簡化編程。按我上述過程可操作成功,具體細節(jié)可參閱Struts2相關(guān)資料。
? ? 使用了i18n后,大致只有三個內(nèi)容,即可實現(xiàn)國際化:編輯資源文件,編寫前臺頁面,配置action。如上述二的代碼,頁面中必須要提供正確的request_locale請求參數(shù)。
? ? 找不到資源文件,或相應的key的內(nèi)容,會在頁面上直接輸出key的名字。
總結(jié)
以上是生活随笔為你收集整理的Java Web的Struts2的多语种网站的多语言切换实例的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CSS图片廊实例详解
- 下一篇: 网页图片左右滚动特效实例