我是在GAE 上執行的 所以相關設定可以參考 轉貼 struts2 整合 Google Appengine
的設定,主要包含 下載 struts2 , web.xml 設定 , structs.xml ,ServletContextListener 和 freemarker.core.TextBlock 等步驟
要使用 struct 的多國語言,不只一種方式,這裡我介紹的是在 struts.xml 中的宣告
在 struts.xml 加入 以下的敘述
<constant name="struts.custom.i18n.resources" value="applicationResource" />
value 就是自訂的名稱, 因為 struts2 資源檔的定義格式就是 自訂的名稱_語系簡碼_國家簡碼.properties 例如: applicationResource_zh_tw.properties
修改後的 struts.xml 如下
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<constant name="struts.devMode" value="false" />
<constant name="struts.custom.i18n.resources" value="applicationResource" />
</struts>
若在eclipse 下開發的話還可以下載 “PropEdit”(http://propedit.sourceforge.jp/eclipse/updates/)這個外掛
來源參考 Struts 2.0系列教程(四)Struts2国际化(i18n)您的应用程序
簡單的jsp 如下
<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
</head>
<body>
<h1>Struts 2 i18n tag example</h1>
<s:text name="hello"/>
</body>
</html>
properties 檔的設定文字必須要先轉成 unicode 的形式字串
在java中 可以呼叫native2ascii 來協助達成, native2ascii -編碼 來源檔案 目標檔案
例如
native2ascii -encoding utf8 applicationResource_zh_tw.properties applicationResource_zh_tw2.properties
加入 properties 檔 在 src 資料夾下面 如圖
就可以開始執行
結果如範例網站 ,這裡支援 俄文(ru)、繁體中文(zh_tw)、簡體中文(zh_CN)、英文(en)
http://11.latest.catontest.appspot.com/HelloWorld.jsp
要改預覽語言的方式:
IE:
工具-> 網際網路選項-> 語言
Firefox
工具->選項->內容-> 語言->選擇
1 則留言:
zh_tw 會怪怪的, 改用zh或zh_cn就可以?? 囧 @6/20 測試
張貼留言