最近領(lǐng)導(dǎo)要求實(shí)現(xiàn)PMSWeb應(yīng)用程序的多區(qū)域語言的支持,所以在網(wǎng)搜集相關(guān)的信息,寫出了解決方案文檔,歡迎各位批評(píng)指正,謝謝!廢話少說,進(jìn)入正題:
多語言解決方案(2013年1月 濟(jì)南) 目 錄
1. 開發(fā)目的... 1 2. 實(shí)現(xiàn)的效果... 1 3. 方案1說明(Asp.Net內(nèi)置公共資源文件+ExtJS)... 1 3.1. 概述... 1 3.2. 實(shí)現(xiàn)步驟... 1 3.3. 本方案總結(jié)... 4 4. 方案2(XML+JS)... 5 4.1. 概述:... 5 4.2. 實(shí)現(xiàn)步驟:... 5 4.3. 本方案總結(jié)... 7
1. 開發(fā)目的為了使PMS系統(tǒng)適應(yīng)國(guó)際化項(xiàng)目管理的正常運(yùn)行,根據(jù)當(dāng)前用戶本地的語言、數(shù)據(jù)的習(xí)慣格式進(jìn)行對(duì)系統(tǒng)進(jìn)行本地化顯示,滿足用戶的需求。
2. 實(shí)現(xiàn)的效果PMS系統(tǒng)平臺(tái)根據(jù)用戶在登錄時(shí)所選擇的語言種類,對(duì)界面進(jìn)行本地化顯示。用戶選擇中文時(shí),系統(tǒng)界面展示的語言為中文,如果用戶選擇英文時(shí),則展示為英文。本地化內(nèi)容具體包括:界面顯示、提示信息、數(shù)據(jù)格式(日期、貨幣)。
3. 方案1說明(Asp.Net內(nèi)置公共資源文件+ExtJS)3.1. 概述方案1采用.Net Framework2.0 公共資源文件(.resx)+ExtJS實(shí)現(xiàn)。為每個(gè)區(qū)域用戶分別添加該區(qū)域的語言描述文件(默認(rèn)語言.resx,中文.resx,英文.resx)。語言描述文件內(nèi)容主要包括:關(guān)鍵字名稱(key_name), 關(guān)鍵字值(key_value),其中關(guān)鍵字名稱是唯一的。系統(tǒng)根據(jù)當(dāng)前用戶選擇的區(qū)域語言,在相應(yīng)的區(qū)域語言描述文件中獲取界面顯示信息。 3.2. 實(shí)現(xiàn)步驟1) 獲取當(dāng)前用戶的區(qū)域信息用戶在登錄時(shí)選擇語言種類。 PMS讀取當(dāng)前操作系統(tǒng)安裝語言作為默認(rèn)語言。 2) 建立區(qū)域語言資源文件根據(jù)用戶群體的需求,創(chuàng)建區(qū)域語言資源文件。 具體實(shí)現(xiàn)步驟:
在文件夾中添加資源文件,例如 lang.resx。 添加所要描述的鍵名稱、鍵值。此文件為默認(rèn)文件。 添加其他種類語言的描述文件,例如 英文(lang.en-US.resx)、中文(lang.zh-CN.resx),它們與默認(rèn)文件的鍵名稱相同,鍵值不同。如下圖所示:
3) 設(shè)置Asp.Net 控件的文本顯示方式,設(shè)置舉例如下: 標(biāo)簽控件(引用公共資源文件): <asp:Label ID="lbl_global" runat ="server" Width ="600px" Text ="<%$Resources:lang,Message %>"></asp:Label>
按鈕控件(引用本地資源文件):
隱藏按鈕(引用公共資源文件)
JavaScript變量引用:
var strLang="<%=Resources.lang.Message%>";
實(shí)現(xiàn)效果界面展示:
3.3. 本方案總結(jié)優(yōu)點(diǎn):本方案實(shí)現(xiàn)簡(jiǎn)單,操作方便,安全性高。 對(duì)各種瀏覽器適應(yīng)性高。 缺點(diǎn): 部署后不易維護(hù),需要重新編譯。 數(shù)據(jù)信息無法分類,難護(hù)分類。
4. 方案2(XML+JS)實(shí)現(xiàn)方案說明:4.1. 概述:本方案主要將區(qū)域語言描述數(shù)據(jù)存放在XML文件中,根據(jù)在XML文件中自定義的節(jié)點(diǎn)標(biāo)志變量及標(biāo)志變量的值,通過Javascript對(duì)XML文件進(jìn)行讀取操作。 4.2. 實(shí)現(xiàn)步驟:設(shè)置區(qū)域語言初始標(biāo)志在Web.Config中,添加如下信息:
系統(tǒng)獲取區(qū)域語言標(biāo)志由于Javascript無法訪問web.config文件,所以需要在Global.asax文件中Application_Start事件添加如下處理: 從Web.config 讀取區(qū)域語言標(biāo)志變量 將標(biāo)志變量寫入在指定的XML文件中,例如web.xml文件。
提取界面顯示、提示信息區(qū)域語言描述信息,分別存入相對(duì)應(yīng)的XML文件中,如中文.XML,英文.XML。格式如下所示:英文:
<?xml version="1.0" encoding="utf-8" ?> <langShow> <formShow> <add key="Add" value="Add"></add> <add key="Delete" value="Delete"></add> <add key="ShowInfo" value="This is a test!"></add> </formShow> <alertmsg> <add key="FileNotExist" value="File isn't exist!"></add> <add key="DelInfo" value="Are you sure to delete this file?"></add> </alertmsg> </langShow>
中文: <?xml version="1.0" encoding="utf-8" ?> <langShow> <formShow> <add key="Add" value="添加"></add> <add key="Delete" value="刪除"></add> <add key="ShowInfo" value="這是一個(gè)測(cè)試用例"></add> </formShow> <alertmsg> <add key="FileNotExist" value="文件不存!"></add> <add key="DelInfo" value="請(qǐng)確認(rèn)是否刪除該文件?"></add> </alertmsg> </langShow>
根據(jù)區(qū)域標(biāo)志,通過Javascript在對(duì)應(yīng)的上述文件中讀取顯示信息。界面效果顯示如下圖所示:
4.3. 本方案總結(jié)優(yōu)點(diǎn): 資源文件維護(hù)方便,不用重新編譯。 數(shù)據(jù)信息可以分類,便于維護(hù)。 缺點(diǎn): 安全性差,用戶可以直接打開資源文件。 適應(yīng)性差。系統(tǒng)需要辨別不同的瀏覽器(IE,F(xiàn)irefox..)。 代碼下載: |
|