Web 應用實現國際化(i18n),主要包括兩個方面
一、頁面 ( jsp )靜態信息 的 國際化
二、動態消息的 國際化
在開始 Struts 國際化之前,我們先來看一下 java 如何實現國際化
主要步驟:
1、創建屬性文件(國際化資源文件)
* 國際化資源文件是有baseName+Locale構成,如MessagesBundle_en_US.properties
* 缺省的國際化資源文件是baseName.properties格式命名,如:MessagesBundle.properties
* 關于中文必須轉換成unicode,可以采用JAVA_HOME/bin/native2ascii工具轉換
命令 native2ascii.exe o.properties MessagesBundle_zh_CN.properties
也可以一個一個字符轉換
舉例:
屬性文件示例:
k1=China
k2=Hello,{0}
2、定義Locale對象
* 可以獲得系統默認 local ,也可以自定義
* 缺省的Locale是有操作系統決定的
* Locale是有語言和國家代碼構成
3、創建一個ResourceBundle對象
* ResourceBundle對象用于分離跟本地相關的數據
* 如果找不到相應語言或國家代碼的屬性文件,將使用默認的屬性文件(即沒有標識語言和國家代碼的屬性文件:MessagesBundle.properties)
4、從ResourceBundle對象中獲取數據,如果有占位符,可以給占位符賦值
示例:
public class test { public static void main(String[] args) { //獲取系統默認locle Locale localeDefault=Locale.getDefault(); System.out.println("Country="+localeDefault.getCountry()); System.out.println("Language="+localeDefault.getLanguage()); System.out.println("------------------------"); //我們通過指定一個語言代碼和國家代碼來創建一個Locale對象 Locale localeNew=new Locale("en","US"); System.out.println("Country="+localeNew.getCountry()); System.out.println("Language="+localeNew.getLanguage()); System.out.println("------------------------"); //讀取國際化資源文件 /** * 其創建方式如下: 第一個參數,表示要從哪些資源屬性文件中(MessagesBundle_XX_XX.properties)獲取數據 第二個參數,是一個Locale對象,表示要選擇哪個資源屬性文件 ResourceBundle對象用于分離跟本地相關的數據 如果找不到相應語言或國家代碼的屬性文件, 將使用默認的屬性文件(即沒有標識語言和國家代碼的屬性文件:MessagesBundle.properties) */ ResourceBundle myResources =ResourceBundle.getBundle("com.jialin.resource.MessagesBundle", localeDefault); //從ResourceBundle對象中獲取數據 System.out.println(myResources.getString("k1")); System.out.println(myResources.getString("k2")); System.out.println("------------------------"); //給國際化資源文件中的占位符賦值 MessageFormat myFormat=new MessageFormat(myResources.getString("k2")); System.out.println(myFormat.format(new Object[]{"jialin"})); } }
Struts國際化實現的核心原理,基本也是這個樣子,只是把相關的東西都寫到了配置文件中,更復雜也更靈活一些。
下篇繼續介紹Struts如何實現國際化。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
