【问题标题】:WinForms Dynamic LocalizationWinForms 动态本地化
【发布时间】:2010-12-06 01:52:09
【问题描述】:

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

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

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

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

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

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

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

【问题讨论】:

    标签: c# .net winforms localization cab


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-07-30
        • 1970-01-01
        • 2011-12-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多