我爱Aspx >> VB.Net >> 开始你的第一个多语言版本的dotNET 应用程序(WinForm篇)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所有,特此声明。
【我对这篇文章有话说?】
XML 序列化(Serialization) 转..[05-20]
dotNET下面调用Access中存储过程..[05-12]
XML 序列化(Serialization) 转..[04-30]
[dotNET]COM组件转换成.NET组件&..[04-30]
转业界评说:DotNet的进一步消息[04-30]
Dotnet总结(2)--访问ms sql se..[04-30]
Dotnet总结(3)--打印[04-30]
Dotnet总结(4)--xml读写[04-30]
HTTP Downloader for Updater Ap..[04-29]
防止自动注册代码(from dotnetb..[04-29]
VB.NET and C# 语法比较手册[05-20]
在VB.NET中应用Agent技术[05-20]
VB.NET获取硬盘信息的几种方法[05-20]
利用VB.NET访问注册表[05-20]
Vb.net向sql server数据库中保存..[05-20]
Vb.net向sql server数据库中保存..[05-20]
向Visual Basic程序员介绍My命名..[05-20]
向Visual Basic程序员介绍My命名..[05-20]
VB.net是怎样做到的(一、二)[05-20]
VB.net是怎样做到的(四、五)[05-20]