Asp.Net 網站多語言解決方案


最近領導要求實現PMSWeb應用程序的多區域語言的支持,所以在網搜集相關的信息,寫出了解決方案文檔,歡迎各位批評指正,謝謝!廢話少說,進入正題:

   

多語言解決方案(2013年1月 濟南)

目  錄

 

1.      開發目的... 1

2.      實現的效果... 1

3.      方案1說明(Asp.Net內置公共資源文件+ExtJS)... 1

3.1.       概述... 1

3.2.       實現步驟... 1

3.3.       本方案總結... 4

4.      方案2(XML+JS)... 5

4.1.       概述:... 5

4.2.       實現步驟:... 5

4.3.       本方案總結... 7

 

1.    開發目的

為了使PMS系統適應國際化項目管理的正常運行,根據當前用戶本地的語言、數據的習慣格式進行對系統進行本地化顯示,滿足用戶的需求。

 

2.    實現的效果

PMS系統平台根據用戶在登錄時所選擇的語言種類,對界面進行本地化顯示。用戶選擇中文時,系統界面展示的語言為中文,如果用戶選擇英文時,則展示為英文。本地化內容具體包括:界面顯示、提示信息、數據格式(日期、貨幣)。

 

3.    方案1說明(Asp.Net內置公共資源文件+ExtJS)

3.1.  概述

   方案1采用.Net Framework2.0 公共資源文件(.resx)+ExtJS實現。為每個區域用戶分別添加該區域的語言描述文件(默認語言.resx,中文.resx,英文.resx)。語言描述文件內容主要包括:關鍵字名稱(key_name), 關鍵字值(key_value),其中關鍵字名稱是唯一的。系統根據當前用戶選擇的區域語言,在相應的區域語言描述文件中獲取界面顯示信息。

3.2.  實現步驟

1)       獲取當前用戶的區域信息

用戶在登錄時選擇語言種類。

PMS讀取當前操作系統安裝語言作為默認語言。

2)   建立區域語言資源文件

根據用戶群體的需求,創建區域語言資源文件。

具體實現步驟:

  • 在解決方案管理器中添加Asp.Net 文件夾“App_GlobalResources

在文件夾中添加資源文件,例如 lang.resx。

添加所要描述的鍵名稱、鍵值。此文件為默認文件。

添加其他種類語言的描述文件,例如 英文(lang.en-US.resx)、中文(lang.zh-CN.resx),它們與默認文件的鍵名稱相同,鍵值不同。如下圖所示:

   
  
  
  
  
  

 

 

 

 

3)             設置Asp.Net 控件的文本顯示方式,

設置舉例如下:

標簽控件(引用公共資源文件):

<asp:Label ID="lbl_global" runat ="server" Width ="600px" Text ="<%$Resources:lang,Message %>"></asp:Label>

 

按鈕控件(引用本地資源文件):

 

<asp:Button ID="btnMessage" runat="server" OnClick="btnMessage_Click" Text="Message" meta:resourcekey="btnMessageResource1" />

  

隱藏按鈕(引用公共資源文件)

<asp:HiddenField ID="hidLang" runat ="server"   value="<%=Resources.lang.Message %>"/>

  

JavaScript變量引用

    

var strLang="<%=Resources.lang.Message%>";

 

 

實現效果界面展示:

 

 

  

 

 

3.3.  本方案總結

優點:本方案實現簡單,操作方便,安全性高。

對各種瀏覽器適應性高。

缺點: 部署后不易維護,需要重新編譯。

數據信息無法分類,難護分類。

  

 

4.    方案2(XML+JS)

實現方案說明:

4.1.  概述:

本方案主要將區域語言描述數據存放在XML文件中,根據在XML文件中自定義的節點標志變量及標志變量的值,通過Javascript對XML文件進行讀取操作。

4.2.  實現步驟:

Ø  設置區域語言初始標志

在Web.Config中,添加如下信息:

<appSettings>

    <add key="Flag" value="1" /> <!-- 0:中文; 1:英文--> 

  </appSettings>

  

Ø  系統獲取區域語言標志

由於Javascript無法訪問web.config文件,所以需要在Global.asax文件中Application_Start事件添加如下處理:

從Web.config 讀取區域語言標志變量

將標志變量寫入在指定的XML文件中,例如web.xml文件。

 

Ø  提取界面顯示、提示信息區域語言描述信息,分別存入相對應的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="這是一個測試用例"></add>

  </formShow>

  <alertmsg>

    <add key="FileNotExist" value="文件不存!"></add>

    <add key="DelInfo" value="請確認是否刪除該文件?"></add>    

  </alertmsg>

</langShow>

 

 

Ø  根據區域標志,通過Javascript在對應的上述文件中讀取顯示信息。

界面效果顯示如下圖所示:

 

 

 

 

 

4.3.  本方案總結

優點:

資源文件維護方便,不用重新編譯。

數據信息可以分類,便於維護。

缺點:

安全性差,用戶可以直接打開資源文件。

適應性差。系統需要辨別不同的瀏覽器(IE,Firefox..)。

 代碼下載:

 .Net 內置公共資源.zip  js_xml_multiLang.zip


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM