3

我们有基于 CAB(复合应用程序块)的智能客户端 winform 应用程序。

我们的软件要求之一是当用户更改我们应用程序中提供的语言选项时动态替换文本。

我们支持大约 6 种语言,包括东亚(中文/日文)、欧洲语言(俄文、西班牙文、英文、荷兰文)。

在深入了解了本地化之后,我了解到本地化不仅仅是动态替换文本。

我发现 Windows 控件是基于本地化资源选项创建的。IT 具有格式化、验证之类的功能。

是否建议在不关闭表单/视图的情况下动态本​​地化文本?还是应该重新启动应用程序?或关闭表单并重新打开表单

为什么不应该鼓励动态的语言变化?

4

2 回答 2

0

不幸的是,动态更改语言环境没有好的解决方案。

Guy Smith-Ferrier 写了一本关于 .NET 国际化的书(字面意思),这里是他的解决方案的代码:http: //www.dotneti18n.com/Downloads.aspx 根据我的经验,它基本上不适用于所有控件使它无用。

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

于 2011-03-03T14:55:56.183 回答
0

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

您不想浪费 CPU 观察动态语言变化。用户多久更改一次 PC 上的语言设置?如果他们即时切换语言,他们可以轻松地重新启动您的应用程序。

我知道我只有在将电脑从盒子里拿出来时才将它们设置为英语,我希望任何国家的人都这样做——选择他们的母语。

于 2009-10-13T14:27:03.377 回答