日期:2014-05-18  浏览次数:20830 次

C# 资源国际化的问题?
C# 资源国际化的问题?
问题描述:主要是界面上语言的控制,要能支持多种语言,而且能够支持其它语言并且不能重新编译程序
现在有一种方法是,设置窗体Lacalizable 为True再选择语言再设置窗体界面元素,最后通过编程控制选择语言,这种方式好像不能动态的增加语言,但是在应用程序主目录会生成一个名为xxx.en-US.resx(假设为英语(美国))的资源文件夹,里面的特定的资源(xxx.resource.dll),我希望以后做的特定资源也以这种方式发布。

现在能不能做到我自已做好一个资源(zh-cn)的dll文件然后放到应用程序主目录下面(此时程序已发布,不能重新编译程序),应用程序直接调用转化成中文。

现在问题是:这个资源文件dll怎么来?怎么生成?应用程序应该怎样编程实现动态增加其它语言的接口?

谢谢!

------解决方案--------------------
冲星,占位,接分
------解决方案--------------------
帮顶
------解决方案--------------------
我现在基本上都是用资源文件,根据不同的设定,加载不同的资源文件。
------解决方案--------------------
可以的,根据当前线程的不同,加载不同的资源文件,资源文件可以做成dll。也可以直接用resx文件。
如果直接是dll,动态加载就可以了。
------解决方案--------------------
为什么不直接在资源文件中添加你想要的语言呢
------解决方案--------------------
这个你可以放到数据库里设置啊。根据设置不同,去读取不同的资源文件。
------解决方案--------------------
把资源作为一个单独的项目编译成dll就可以了


现在能不能做到我自已做好一个资源(zh-cn)的dll文件然后放到应用程序主目录下面(此时程序已发布,不能重新编译程序),应用程序直接调用转化成中文。 
-------------------------------
你可以把默认语言资源文件做成chinese的, 这样 application load的时候找不到相应语言的资源就用默认资源, 这样你就只替换默认资源就可以了
但是建议还是当前的thread的cultrue来load资源,并且允许用户设置当前语言