分享

asp.net开发中,web页面实现页面元素的多语言化(多国语化)

 昵称10504424 2013-02-18

开发的一些系统,经常要求支持多语言(例如日文,英文等),以前大部分做法是创建一个资源文件,

将每一个标签,按钮等标题文字预先用各种语言设定保存好,

在程序中根据选择的语言来显示对应文字。

这样做的缺点是如果每次改动或增加一个控件,都需要程序开发人员刻意做多语言对应,

如果用户想要改某些标题的描述,还需要开发人员改动资源文件并替换到程序发布目录。

 

经过调查实验,最终想了一个办法来较好地对应此问题:

 在每一个web页面,设定一个只有最高级的管理权限才能看到的一个按钮(例如叫“设定”),

来负责画面上各固定标题的设置,    只要点击这个按钮,就通过控件遍历的方法来显示该页面上所有希望控制的

控件(比如Label,button,gridview,linkbutton等),   将其各种语言的内容显示到一个小页面上,让用户自己设定,

然后保存到DB。下次打开时就按照DB设定好的内容初期化页面控件的标题。

 

最终用户可自由设定,也无需开发人员不停修改。

 

画面效果如下:

 

点击“设定”

 

下面举例,循环设定页面中控件(TextBox,DropDownList等)为Disable的代码【读取控件的Text属性方法类似】:

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

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多