WinForms动态本地化

3
我们有基于CAB(组合应用程序块)的智能客户端winform应用程序。
我们的软件要求之一是当用户更改我们的应用程序中提供的语言选项时动态替换文本。
我们支持约6种语言,包括东亚语言(中文/日语),欧洲语言(俄语、西班牙语、英语、荷兰语)。
在深入了解本地化后,我发现本地化不仅仅是动态替换文本。
我发现Windows控件是基于本地化资源选项创建的。它具有格式化、验证等功能。
建议动态本地化文本而不关闭表单/视图吗?还是应该重新启动应用程序?或者关闭表单并重新打开表单?
为什么不鼓励动态语言更改呢?
2个回答

0

我只会在启动时检查语言,并加载适当的资源(.resx)文件以加载应用程序的所有字符串。您可以通过自己的方式实现这一点,或者我相信.Net有一种内置的方法可以使用资源文件来实现。

您不希望浪费CPU来监视动态语言更改。用户在PC上更改语言设置的频率有多高?如果他们正在飞行中切换语言,他们可以像重新启动应用程序一样轻松地重新启动您的应用程序。

我知道当我拿出盒子时,我只将我的PC设置为英语,我期望任何国家的人都会这样做-选择他们的母语。


0

很遗憾,目前没有好的解决方案可以动态更改语言环境。

Guy Smith-Ferrier撰写了关于.NET国际化的书籍(确切地说),以下是他的解决方案代码:http://www.dotneti18n.com/Downloads.aspx 根据我的经验,它并不能在所有控件上运行,基本上是无用的。

只需在首次启动时将语言设置为Windows区域设置并保存在设置中,这对大多数用户来说是正确的。如果用户想要从应用程序内部更改它,则只需要重新启动一次应用程序即可。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接