• 您的位置我爱Aspx >> VB.Net >> 开始你的第一个多语言版本的dotNET 应用程序(WinForm篇)
  • 开始你的第一个多语言版本的dotNET 应用程序(WinForm篇)

  • 作者:aspxer  来源:internet  日期:2007-5-20 13:59:19  关键字:dotnet
  • Private Sub MenuEnglish_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem4.Click

    @# English

    Dim aKey As RegistryKey

    aKey = Registry.CurrentUser.OpenSubKey(RegistryKeyForccBoy, True)

    aKey.SetValue("Language", "en-US")

    End Sub

    Private Sub MenuChinese_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem5.Click

    @# Chinese

    Dim aKey As RegistryKey

    aKey = Registry.CurrentUser.OpenSubKey(RegistryKeyForccBoy, True)

    aKey.SetValue("Language", "zh-CHS")

    End Sub

    保存你的Project,F5运行。然后选择菜单中的中文或英文退出后再启动。下面是运行后的屏幕拷图:

    补充:

    目前的VS.NET Beta2有关多语言在IDE中的切换有时还会有些问题,实际中你可以这样的方法;首先完成一个英文版本的应用,然后用Beta2 SDK的工具Resgen将Form1.resX转换成Form1.resources文件,(Resgen Form1.resX Form1.Resources)然后再用Beta2 SDK新带的WinRes.exe 打开这个转换的Form1.resources文件,你可以看到和VS.NET相同的窗体(上述的例子还有些不一致比如菜单没有了),然后修改这些UI的字体和表现成你需要的语言,选择Save as..在弹出的对话框中选择你对应的语言。dotNET允许你在完成整个应用后再新增其它不同的语言版本,只要根据dotNET的规范放置你的语言资源DLL,你的程序理论上可以变成是任何语言的版本。对于上述第二步中加的资源文件其实是一种Statelite Assembly 如果不经过Strong Name是无法放到GAC中共享的,所以只能放在dotNET资源规范规定的目录中。不过将它多语言化的方法也是类似的,你可以用上面的方法转换resX文件,也可以新建一个资源文件来做到。就目前看来使用VS.NET和手工方式各有利弊,总的一点:目前的dotNET对于多语言版本有了一种很通用和规范的作法,这一点和原来截然不同了。还有就是Beta2目前在这方面表现得还不是很稳定(haha)

    好了先到这吧,谢谢你花时间阅读这篇文章,希望对你有所帮助。另外Demo的图片中的dotNET标志,是从MS网站上得来的,所以这个Logo版权归Microsoft所有,特此声明。

    我对这篇文章有话说?
  • 广告位招租,广告代号:content_468_15
  • 上一篇:DotNET WinForm FAQ 16个(下)
    下一篇:VB.NET and C# 语法比较手册