asp.net web頁面元素的多語言化(多國語化)實(shí)現(xiàn)分享
開發(fā)的一些系統(tǒng),經(jīng)常要求支持多語言(例如日文,英文等),以前大部分做法是創(chuàng)建一個(gè)資源文件,
將每一個(gè)標(biāo)簽,按鈕等標(biāo)題文字預(yù)先用各種語言設(shè)定保存好,
在程序中根據(jù)選擇的語言來顯示對(duì)應(yīng)文字。
這樣做的缺點(diǎn)是如果每次改動(dòng)或增加一個(gè)控件,都需要程序開發(fā)人員刻意做多語言對(duì)應(yīng),
如果用戶想要改某些標(biāo)題的描述,還需要開發(fā)人員改動(dòng)資源文件并替換到程序發(fā)布目錄。
經(jīng)過調(diào)查實(shí)驗(yàn),最終想了一個(gè)辦法來較好地對(duì)應(yīng)此問題:
在每一個(gè)web頁面,設(shè)定一個(gè)只有最高級(jí)的管理權(quán)限才能看到的一個(gè)按鈕(例如叫“設(shè)定”),
來負(fù)責(zé)畫面上各固定標(biāo)題的設(shè)置,只要點(diǎn)擊這個(gè)按鈕,就通過控件遍歷的方法來顯示該頁面上所有希望控制的
控件(比如Label,button,gridview,linkbutton等), 將其各種語言的內(nèi)容顯示到一個(gè)小頁面上,讓用戶自己設(shè)定,
然后保存到DB。下次打開時(shí)就按照DB設(shè)定好的內(nèi)容初期化頁面控件的標(biāo)題。
最終用戶可自由設(shè)定,也無需開發(fā)人員不停修改。
畫面效果如下:
點(diǎn)擊“設(shè)定”
下面舉例,循環(huán)設(shè)定頁面中控件(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("關(guān)閉") OrElse btn.ID.Equals("btnClose") Then
If btn.ID.Equals("btnClose") Then
'僅關(guān)閉按鈕可用
btn.Enabled = True
Else
btn.Enabled = False
End If
End If
If frmCtrl.HasControls Then
LoopingControlsDisabled(frmCtrl)
End If
Next
End Sub
相關(guān)文章
WPF數(shù)據(jù)綁定中的RelativeSource屬性
這篇文章介紹了WPF數(shù)據(jù)綁定中的RelativeSource屬性,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-04-04請(qǐng)求如何進(jìn)入ASP.NET MVC框架
這篇文章主要介紹了請(qǐng)求如何進(jìn)入ASP.NET MVC框架的實(shí)現(xiàn)過程,感興趣的小伙伴們可以參考一下2016-04-04asp.net中幾種常用的身份驗(yàn)證方法總結(jié)
本篇文章小編就為大家介紹一下在asp.net中幾種常用的身份驗(yàn)證方法。需要的朋友可以過來參考下,希望對(duì)大家有所幫助2013-11-11把jQuery的each(callback)方法移植到c#中
jQuery中使用each(callback)方法可以很方便的遍歷集合,如2008-03-03MVC、MVP和MVVM分別是什么_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
MVC,MVP 和 MVVM分別是什么?MVC(Model-View-Controller)是最常見的軟件架構(gòu)之一,業(yè)界有著廣泛應(yīng)用。它本身很容易理解,但是要講清楚,它與衍生的 MVP 和 MVVM 架構(gòu)的區(qū)別就不容易了。2017-08-08