开发的一些系统,经常要求支持多语言(例如日文,英文等),以前大部分做法是创建一个资源文件,
将每一个标签,按钮等标题文字预先用各种语言设定保存好,
在程序中根据选择的语言来显示对应文字。
这样做的缺点是如果每次改动或增加一个控件,都需要程序开发人员刻意做多语言对应,
如果用户想要改某些标题的描述,还需要开发人员改动资源文件并替换到程序发布目录。
经过调查实验,最终想了一个办法来较好地对应此问题:
在每一个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
页面元素,多语言
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。