2010年10月16日 星期六

Struts 教學 - 國際化處理

Struts 對於WEB有支援國際化的應用

通常在台灣地區 瀏覽器是設定為 zn_TW 繁體中文的

以 IE 為例可以選擇工具列上的 工具 > 網際網路選項 > 語言

在這底下可以設定你的偏好設定,可以點選新增來增加其他語系

並將預設的語言移動最上面即可

接下來看一下 Struts 對於國際化的支援

首先如果我們要做到支援繁體中文(zn_TW)和英文(en_US)的WEB網頁

第一步必須先定義這兩個的資源文件

以 Netbeans 在一個有選擇Struts framework 的 WEB App 為例

在左邊的專案欄底下的 Source Packages 應該會有一個 com.myapp.struts 的資料夾

裡面會有一個預設的 ApplicationResource.properties 的資源檔

此資源檔主要是提供驗證錯誤機制的標示值或是在其他資源黨找不到資料時會到此檔案中尋找

如果要實現上述的國際化支援必須另外新增兩個檔案

ApplicationResource_en_US.properties 英文資源文件


ApplicationResource_zh_TW.properties 中文資源文件

注意一點的就是不論是任資源檔,它裡面的內容只能是英文,如果是其他語言則需轉成 Unicode

你可以透過 JDK 所提供的 native2ascii 指令來將中文轉成 Unicode

例如 : native2ascii -encoding -big5 [inputFile.txt] [outputFile.txt]

大致上的國際化的部份就是這樣,以一實際例子來試驗

首先先編輯中英文的資源檔


login.name=please input your name
login.pswd=please input your password
login.error.name=your name is error
login.error.pswd=your password is error


login.name=\u8acb\u8f38\u5165\u59d3\u540d  /*請輸入姓名*/
login.pswd=\u8acb\u8f38\u5165\u5bc6\u78bc         /*請輸入密碼*/
login.error.name=\u59d3\u540d\u6b04\u4f4d\u932f\u8aa4       /*姓名欄位錯誤*/
login.error.pswd=\u5bc6\u78bc\u6b04\u4f4d\u932f\u8aa4        /*密碼欄位錯誤*/



//...HTML 省略部份...
<form action="/funinStruts/internation.do" method="get">
     <bean:message key="login.name" />
     <input type="text" name="uid" />
     <br />
     <bean:message key="login.pswd" />
     <input type="text" name="pswd"/>
     <br />
     <html:submit/>
</form>



//...HTML 省略部份...


我們可以用 Struts 所提供的 <bean:message> 標籤來完成國際化的顯示

該標籤會自動以 client 端的區域來決定對應的語言顯示


最後測試的時候可以透過切換為繁體中文和英文來觀看結果



沒有留言:

張貼留言