asp.net web頁面元素的多語言化(多國語化)實現分享

來源:互聯網
上載者:User

開發的一些系統,經常要求支援多語言(例如日文,英文等),以前大部分做法是建立一個資源檔,

將每一個標籤,按鈕等標題文字預先用各種語言設定儲存好,

在程式中根據選擇的語言來顯示對應文字。

這樣做的缺點是如果每次改動或增加一個控制項,都需要程式開發人員刻意做多語言對應,

如果使用者想要改某些標題的描述,還需要開發人員改動資源檔並替換到程式發布目錄。

經過調查實驗,最終想了一個辦法來較好地對應此問題:

在每一個web頁面,設定一個只有最進階的系統管理權限才能看到的一個按鈕(例如叫“設定”),

來負責畫面上各固定標題的設定,只要點擊這個按鈕,就通過控制項遍曆的方法來顯示該頁面上所有希望控制的

控制項(比如Label,button,gridview,linkbutton等), 將其各種語言的內容顯示到一個小頁面上,讓使用者自己設定,

然後儲存到DB。下次開啟時就按照DB設定好的內容初期化頁面控制項的標題。

終端使用者可自由設定,也無需開發人員不停修改。

畫面效果如下:

點擊“設定”

下面舉例,迴圈設定頁面中控制項(TextBox,DropDownList等)停用代碼:

複製代碼 代碼如下:Public Shared Sub LoopingControlsDisabled(ByVal oControl As Control)
Dim frmCtrl As Control
Dim btn As Button
For Each frmCtrl In oControl.Controls
If TypeOf frmCtrl Is TextBox Then
DirectCast(frmCtrl, TextBox).Enabled = False
End If
If TypeOf frmCtrl Is DropDownList Then
DirectCast(frmCtrl, DropDownList).Enabled = False
End If
If TypeOf frmCtrl Is CheckBox Then
DirectCast(frmCtrl, CheckBox).Enabled = False
End If
If TypeOf frmCtrl Is RadioButton Then
DirectCast(frmCtrl, RadioButton).Enabled = False
End If
If TypeOf frmCtrl Is FileUpload Then
DirectCast(frmCtrl, FileUpload).Enabled = False
End If
If TypeOf frmCtrl Is Button Then
btn = DirectCast(frmCtrl, Button)
'If btn.Text.Equals("關閉") OrElse btn.ID.Equals("btnClose") Then
If btn.ID.Equals("btnClose") Then
'僅關閉按鈕可用
btn.Enabled = True
Else
btn.Enabled = False
End If
End If
If frmCtrl.HasControls Then
LoopingControlsDisabled(frmCtrl)
End If
Next
End Sub
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.