一國際化與本地化
1.國際化的含義:
就是讓一個程序在不同語系的操作系統之間能夠有不同的顯示,所謂不同顯示的含義就是:語言的不同,語法的不同,數字.日期.排序以及貨幣格式的不同.
2.本地化的含義
本地化相對于國際化來說,所涵蓋的范圍小得多,它指為單一一個操作系統提供符合的語言環境。比喻直接將英文軟件轉化為中文軟件就是本地化的一種。國際化是泛指,本地化是單一指定。
二認識編碼
1.UNICODE是微軟所提出的多字節等長碼,它可以使雙字節既可以表示英文字母,也可以表示漢字。表示英文字母的等長碼時,對其第一個字節進行補充動作。
java語言默認的編碼就是UNICODE;通常被國際化組織認可,用雙字節表示的中文中,針對Struts的國際化主要是UNICODE.
2.Struts中國際化的步驟:
UTF-8編碼就是以UNICODE編碼的儲存方式來表示的,它是Struts國際化的好幫手,它已經包含了英文字母的顯示。
(1).指定程序編碼和編譯時的字符編碼為UTF-8
(2).指定請求到來時的字符編碼為UTF-8
(3).在JSP的頭部聲明中也要出現UTF-8聲明
(4).對任何外部資源配置文件的編寫都使用UTF-8
三.Resource綁定
1.在Struts-config.xml中,配置資源文件需要做如下步驟
(1).從Struts-config.xml中找到"resource.application"
(2).為應該確定本地化環境后綴
(3).為本地化應用加上.properties擴展名
(4).在classpath目錄下找到resource目錄下的本地應用資源配置文件.
2.確定本地化后綴
JSP發送請求到達ActionServlet時.request都會用一個request.getLcale()的方法返回java.util.Locale對象.這個Locale對象保存的就是本地化區域環境.Locale對象由JDK提供專門用來實現國際化工作.
在Struts框架中,與Locale對象配合"確定本地化環境后綴",會讀取Locale對象的內容,并將它的語言和國家信息"_"產生一組字符串,追加到原來的文件名后.
static public final Locale SIMPLFIED_CHINESE=new Locale("zh","CN");
struts框架讀取對象該對象后,產生的本地化環境后綴就是"application_zh_CN".再加上.properties的擴展名,那么在簡體中文環境中,struts框架真正應該要讀取得的資源配置文件其實應該是:application_zh_CN.properties
3.Locale對象
要動態改變Locale對象,就必須先確定Locale對象的讀取在框架中是怎樣進行的,Locale對象被保存在什么地方.
Struts框架對于Locale對象的讀取是通過Session來進行的程序開始進行時,Struts框架就已經將Locale對象的實例存放在Session中得到Locale對象,再得到合適的資源配置文件.
把本地化Local對象的實例存放在Session中.
(1).存放本地化Locale對象到Session中是由Struts框架自行完成的..
(2).Struts框架內容定義了GloBals類的靜態全局變量,LOCALE_KEY,用來表示org,apache,struts.action.LOCALE;不應單獨使用,而是存放Locale對象用Globals.LOCALE_KEY來代替