Struts國際化

 

“國際化”是指一個應用程序在運行時能夠根據客戶端請求所來自的國家/地區,語言的不同而顯示不同的用戶界面。          
                               
常用I18N這個記事作爲”國際化“的簡稱,其來源是英文單詞Internationalization的首字母I和N及它們之間的字符數18。          
Struts 框架通 使用<bean:messgae> 標記 ,以及使用java.util數據包中定 的Locale和ResourceBundle 來 支持國 化。          
java.text.MessageFormat 的技 可以支持消息的格式。                    
                               
資源文件和資源包                            

要用Struts實現國際化和本地化,首先要定義資源文件的名稱,這個文件會包含用默認語言編寫的會在程序中出現的所有消息。

這些消息以”鍵-值“對的形式存儲,如下:

lable.userID = USERID                          
一個 用程序 行國 ,所要用的各 言版本的” 標籤 “信息 應該 存放在不同的屬性文件中,            
一個 這樣 的文件 對應 言版本。所有屬性文件合在一起稱 爲資 源包(Resource Bundle)。            
屬性文件的命名格式可分爲以下兩種:                        
a)文件名前綴.properties                          
b)文件名前綴_語言種類.properties                        
文件名後 是properties,前 可自由 寫,其中 字段必 是有效的ISO 言代              
                               
下面結合一個實例來進行說明                          

首先來編寫一個默認的英文版資源文件 ApplicationResources.properties

 

#login Page  
lable.userID = USERID
lable.password = PASSWORD
lable.loginPage = Login Page
lable.btnLogin = Login  

lable.btnReset = Reset

然後編寫一個日文版本的ApplicationResources_ja.properties

 

#login page  
lable.userID = ユーザーID
lable.password = パスワード
lable.loginPage = ユーザ登録畫面
lable.btnLogin = 登 録  

lable.btnReset = クリア

爲了防止出現亂碼使用native2ascii將其轉換爲Unicode,如下所示:

 

#login page          
lable.userID = /u30e6/u30fc/u30b6/u30fcID    
lable.password = /u30d1/u30b9/u30ef/u30fc/u30c9    
lable.loginPage = /u30e6/u30fc/u30b6/u767b/u9332/u753b/u9762
lable.btnLogin = /u767b /u9332        

lable.btnReset = /u30af/u30ea/u30a2

 

然後我們在struts的配置文件中設置資源文件即可!在設置 的時候我們只需要設置ApplicationResources即可,

而ApplicationResources_ja.properties則不必,因爲Struts在運行時會自動獲取同名不同語言種類的資源文件!

 

<!-- 資源文件 -->




<message-resources parameter="resource.ApplicationResources"/>

 

上面這些工作做完後我們還需要寫一個Action來激發它,這個類大致如下,當然個人可以根據業務需要來編寫自己的Action。

最後回到頁面端,在自己的welcome.jsp頁面定義日文和英文語言標識符的兩個bean用來向ChangeLanguageAction 傳遞所需要的語言種別。

我的歡迎頁面如下,當我點擊Japanese鏈接時就會切換到日文語言界面。

 

這樣當來自日文操作系 的客 戶瀏覽時 就會自 動顯 示 日文,





而來其它的則統 一使用默 源文件ApplicationResources.properties英文。




程序究竟中如何知道的呢,其它 是通 IE的 置來 取!我IE屬性---常 --- 言   中其 就已 經設 定,如下:

 

另外如果在配置文件中有多個資源包要配置,用KEY屬性來區分,如下:

其中,不帶key屬性的就是默認的資源包。

資源包應該放在WEB應用程序的WEB-INF/classes目錄下,當系統初始化時,會裝載這些資源文件。

如果修改了資源文件,則需要重新啓動應用服務器。

 

 

資源包的訪問:











資源包有了後我們就可以對其進行訪問了,訪問方主要有二種:一種是在JSP頁面訪問,通過<bean:message>標記來訪問,

另一種是在程序中訪問!

在JSP中訪問如下:











<bean:message key="lable.welcomePage" />













在程序中訪問資 源包主要是在Action 中用到。Action提供了getResources()方法,





可以 得 org.apache.struts.MessageResources 的一個 例。MessageResources代表 源包的一個



它是一個抽 象 ,因此需要由Action的基 中的getResources()方法來返回它的一個 例。以下是程序示例:






     
                 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章