Foxtable(狐表)用户栏目专家坐堂 → 如何开发中英文版程序


  共有14251人关注过本帖树形打印复制链接

主题:如何开发中英文版程序

帅哥哟,离线,有人找我吗?
程兴刚
  31楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:7237 积分:40614 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2012/10/26 20:58:00 [只看该作者]

改的不是控件名,引用的是控件名,该的是text属性!!


 回到顶部
帅哥哟,离线,有人找我吗?
dm168
  32楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:111 积分:1083 威望:0 精华:0 注册:2012/9/14 17:23:00
  发帖心情 Post By:2012/10/26 22:42:00 [只看该作者]

find("[en] = '" & c.name.split("_")(0) & "'")  

现在知到split("_")(0)   这个是做什么用的了
因为筛选的是控件名所以为区分语言表的英文对应控件名"_"之前的字符,比如控件 按钮,英文是button 对应控件名button_1 把button 和1用 _ 分开 老大这思路利害啊!

---------------------------------------------------------------------------------------------------------------------------------------
开始没明白还想把代码改成这样但是只能译成中文 不能反译英文,

For Each c As Winform.Control In Forms(Vars("Fname")).Controls
    If Typeof c Is WinForm.TreeView Then
        Dim trv As WinForm.TreeView =  Forms(Vars("Fname")).Controls(c.name)
        For Each nd As WinForm.TreeNode In trv.AllNodes
            Dim dr As DataRow = DataTables("表B").find("[en] = '" & nd.name & "'")
            If dr IsNot Nothing
                nd.text = dr(getConfigValue("语言类别", "cn"))
            End If
        Next
    Else
Dim ct As String =  Forms(Vars("Fname")).Controls(c.name).text 

        Dim dr As DataRow = DataTables("表B").find("[en] = '" & ct.split("_")(0) & "'")
        If dr IsNot Nothing
            Forms(Vars("Fname")).Controls(c.name).text = dr(getConfigValue("语言类别", "cn"))
        End If
    End If
Next
[此贴子已经被作者于2012-10-26 22:46:27编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
程兴刚
  33楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:7237 积分:40614 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2012/10/26 22:47:00 [只看该作者]

哦,不知道您问的是这个,没理解您前面的意思,这个是为了您再设计窗口增加控件时方便命名而做的!!

[此贴子已经被作者于2012-10-26 22:49:25编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
dm168
  34楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:111 积分:1083 威望:0 精华:0 注册:2012/9/14 17:23:00
  发帖心情 Post By:2012/11/9 17:23:00 [只看该作者]

老大后面两个for each 语法不对 要怎么写才对啊?还有程式菜单要怎么实现对译呢?
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目9.rar

Dim dr As DataRow
If e.Form.Controls("English_1").Checked = True
For Each tb As Table In Tables
For Each cl As col In tb.cols
dr = DataTables("表B").find("[cn] = '" & cl.caption & "'")
If dr IsNot Nothing
cl.Caption = dr("en")
End If
Next
tb.BuildHeader()
Next
For Each rt As RibbonMenu.Tab In RibbonTabs '菜单工能区
dr = DataTables("表B").find("[cn] = '" & rt.text & "'")
If dr IsNot Nothing
rt.text = dr("en")
End If
For Each gp As RibbonMenu.Group In RibbonTabs(rt.name).Groups '菜单功能组
dr = DataTables("表B").find("[cn] = '" & gp.text & "'")
If dr IsNot Nothing
gp.text = dr("en")
End If
For Each itm As RibbonMenu.RibbonItem In RibbonTabs(rt.name).Groups(gp.name).Items '菜单项目
Dim itms As String = RibbonTabs(rt.name).Groups(gp.name).Items(itm.name).text
dr = DataTables("表B").find("[cn] = '" & itms & "'")
If dr IsNot Nothing
RibbonTabs(rt.name).Groups(gp.name).Items(itm.name).text = dr("en")
End If
Next
Next
Next
For Each q As object In QAT.Items
dr = DataTables("表B").find("[cn] = '" & q.text & "'")
q.text = dr("en")
Next
For Each c As object In ConfigBar.Items
dr = DataTables("表B").find("[cn] = '" & c.text & "'")
c.text = dr("en")
Next
SaveConfigValue("语言类别", "cn")
End If
Functions.Execute("窗口翻译")

 回到顶部
帅哥哟,离线,有人找我吗?
dm168
  35楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:111 积分:1083 威望:0 精华:0 注册:2012/9/14 17:23:00
  发帖心情 Post By:2012/11/9 17:36:00 [只看该作者]

解决了,少了 if isnot nothing 但是程式菜单还是无法实现不知要怎么做?

 回到顶部
帅哥哟,离线,有人找我吗?
lin_hailun
  36楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/11/9 17:40:00 [只看该作者]

 同样的,这样做……左右下,需要的地方,变一下。

http://www.foxtable.com/help/topics/1091.htm

 回到顶部
帅哥哟,离线,有人找我吗?
dm168
  37楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:111 积分:1083 威望:0 精华:0 注册:2012/9/14 17:23:00
  发帖心情 Post By:2012/11/11 9:36:00 [只看该作者]

老大这个导航栏要怎么进入偱环?插不进去,再帮我看一下吧!提示WinForm.TreeView 要用end if结速,那导航栏双不能在end if 外面,要怎么做呢?

Dim dr As DataRow
For Each c As Winform.Control In Forms(Vars("当前窗口名称")).Controls
If Typeof c Is WinForm.TreeView Then
Dim trv As WinForm.TreeView = Forms(Vars("当前窗口名称")).Controls(c.name)
For Each nd As WinForm.TreeNode In trv.AllNodes
dr = DataTables("表B").find("[en] = '" & nd.text & "'")
If dr IsNot Nothing
nd.text = dr(getConfigValue("语言类别", "cn"))
End If
Next
If Typeof c Is WinForm.NavBar Then
Dim bar As WinForm.NavBar = Forms(Vars("当前窗口名称")).Controls(c.name)
For Each nb As WinForm.NavPage In bar.NavPages
dr = DataTables("表B").find("[en] = '" & nb.ButtonText & "'")
If dr IsNot Nothing
nb.ButtonText = dr(getConfigValue("语言类别", "cn"))
End If
Next

Else
Dim ct As String = Forms(Vars("当前窗口名称")).Controls(c.name).text
dr = DataTables("表B").find("[en] = '" & ct & "'")
If dr Is Nothing
dr = DataTables("表B").find("[cn] = '" & ct & "'")
If dr IsNot Nothing
Forms(Vars("当前窗口名称")).Controls(c.name).text = dr(getConfigValue("语言类别", "en"))
End If
Else
Forms(Vars("当前窗口名称")).Controls(c.name).text = dr(getConfigValue("语言类别", "cn"))
End If
End If
Next


 回到顶部
帅哥哟,离线,有人找我吗?
zen
  38楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:27 积分:303 威望:0 精华:0 注册:2013/4/9 9:10:00
  发帖心情 Post By:2013/10/10 18:05:00 [只看该作者]

 飞大侠果然不是盖的,太强大了!

 回到顶部
帅哥哟,离线,有人找我吗?
lsy
  39楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2013/10/10 18:59:00 [只看该作者]

既然看到了,就顶一下。

 回到顶部
美女呀,离线,留言给我吧!
test321
  40楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:148 积分:968 威望:0 精华:0 注册:2013/11/30 12:30:00
  发帖心情 Post By:2013/12/4 11:52:00 [只看该作者]

飞   可以传授一下经验  这是是怎么做出来的吗?

 


 回到顶部
总数 45 上一页 1 2 3 4 5 下一页