找回密码
 立即注册

QQ登录

只需一步,快速开始

BigTree
超级版主   /  发表于:2011-4-15 12:17  /   查看:8449  /  回复:7
在开发控件的多语言版本时,在vs2008里,比方主程序集的字符串资源放在myresource.resx中,中文字符串资源就在myresource.zh.resx中,编译通过后,中文资源的DLL文件会生成在zh-CN目录下。

在中文环境下使用这个控件时,运行时一切正常,可以调用到中文资源,但在VS设计时的属性说明、SmartTag等显示的依然是英文资源。

哪位帮助看看是怎么回事啊?

7 个回复

倒序浏览
CCKan
银牌会员   /  发表于:2011-4-15 13:32:00
沙发
VS是英文的,用中文的VS就好了
回复 使用道具 举报
BigTree
超级版主   /  发表于:2011-4-15 13:49:00
板凳

回复 2# CCKan 的帖子

谢谢回复,VS就是中文的。

刚才又试了一下,把中文资源的DLL文件放到IDE的zh-CN目录下可以解决这个问题。
回复 使用道具 举报
CCKan
银牌会员   /  发表于:2011-4-15 14:02:00
地板
注册表里面加了安装目录吗?
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v2.0.50727\AssemblyFoldersEx
回复 使用道具 举报
BigTree
超级版主   /  发表于:2011-4-15 14:30:00
5#
目前控件是安装的英文版产品,在注册表中上述位置增加了安装目录。中文资源是自己创建的,还处在自己做试验阶段,没有安装程序,也没有进行任何与注册相关的其他工作。
回复 使用道具 举报
CCKan
银牌会员   /  发表于:2011-4-15 14:35:00
6#
呵呵,怪不得,VS是认注册表中的目录的。
你把DLL文件放到IDE的zh-CN目录下可以正是因为该目录的父存在注册表中。
你可以在注册表中手工加一个key,名字随意,Default值就是你中文dll存放的目录。
回复 使用道具 举报
NeoLi
葡萄城公司职员   /  发表于:2011-4-15 20:29:00
7#
原帖由 BigTree 于 2011-4-15 13:49:00 发表
谢谢回复,VS就是中文的。

刚才又试了一下,把中文资源的DLL文件放到IDE的zh-CN目录下可以解决这个问题。


由于在Design Time下主线程是所启动的IDE的的线程,所以在Design Time下查找本地化资源的顺序是这样的:
1.先在GAC里面查找对应Culture的本地化资源,如果没找到--->2
2.然后在IDE根目录查找对应Culture的本地化资源(不同的资源放在不同的文件夹下,如中文资源在zh-CN目录下查找),如果没找到---3
3.使用默认资源,一般是英文资源.

因此这个问题也可以将你编译的中文本地化资源Dll注册到GAC来解决,支持多国语言的产品在发布时如果要支持Design Time,一般都是采取这种策略.
回复 使用道具 举报
ono
论坛元老   /  发表于:2011-6-14 11:13:00
8#
刷一下
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部