程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> Asp.net中使用Reponse.Filter實現多語言功能

Asp.net中使用Reponse.Filter實現多語言功能

編輯:關於ASP.NET

對於有跨國業務的web系統來說,一般都需要提供多語言功能。然而在眾多多語言方案裡,如.net自帶的Resource方式,都會在程序開發時增加程序員的額外負擔,不易開發:

1.各種不同的地方實現多語言,如aspx的control綁定,js腳本,cs代碼,procedure裡的提示信息等,這些多語言實現方式各不相同,加重了開發難度。

2.在要實現多語言的代碼中都要與獲取語系文字的代碼進行強耦合,不方便擴展和維護。如.net的Resource方式某個label實現多語言:

lblName.Text = Resources.Strings.name; 

3.開發和維護程序時,程序員都必須同時打開source code和多語言資源文件,特別是在多人開發時,共享一個多語言文件,且對於共享的文字實難處理和同步。

以上這些只是簡單地羅列了一下傳統多語言開發時的困擾,那有什麼方式解決這些問題,輕松實現多語言功能呢?

記得有人說過web編程,實際上就是字符串處理。

為什麼呢?因為web,實際上就是Request和Response,而Request和Response就是字符串。在我們各種程序裡,最終輸出到Browser的都是html格式的字符串,因此,只要我們統一在程序最後一步輸出html格式時,能夠識別其中需要進行多語言轉換的文字,將將其替換為當前設定的語言版本的文字就可以了。

在asp.net中,因為有一個Response.Filter的屬性,讓這一切變得很簡單。

什麼是Response.Filter?

簡單地說,就是在經過層層轉換後,最終asp.net要輸出html,在輸出的過程中,是將html放到一個管道(pipeline)裡,然後在管道那頭取出要發往客戶端的html進行Response,asp.net提供Response.Filter屬性,讓你可以對經過的html進行相應的轉換。

因此只要將多語言轉換功能放在這裡,並識別“中文”,將其轉換為user設定的相應語系就可以完成了。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved