分发本地化的winforms app

时间:2009-06-25 17:38:39

标签: winforms localization clickonce software-distribution

这与我今天的早期帖子有关:link text

所以现在我有两个不同的本地化,一个英语,一个西班牙语的演示winforms应用程序。现在让我们说我有一个很棒的应用程序,让我们说它支持15种不同语言的本地化。在上一篇文章中,有人建议我在初始化表单时添加几行来设置本地化。目前我使用click一次来部署我的应用程序。我正试图找到一种部署方式,而不需要15种不同风格的应用程序。有没有办法查看当前用户的本地化,如果它与我编写的屏幕中的一种语言匹配使用它,否则使用默认值?

1 个答案:

答案 0 :(得分:2)

.NET框架的内置本地化系统已经处理了这种后备情况。您只需安装本地化表单和控件的附属DLL,然后,如果正确的DLL与用户的语言环境匹配,.NET将使用它,否则它将回退到下一个相关的父语言环境。例如,如果您的应用程序的默认语言是en-US但是您提供了en-GB翻译和en翻译,那么后备是:

  

烯GB->烯>的en-US

即。当en-GB不可用时,它会查找en,如果不存在,则使用默认值en-US。

因此,在分发时,您只能分发主要的en-US应用程序,然后为特定语言提供额外的附属DLL,例如语言包。有一个属性SatelliteContractVersionAttribute,允许您的主应用程序集指示它想要的卫星版本,这使您的本地化可以跨程序集版本工作(例如,如果您的程序集版本随构建而增加 - 您可以有效地忽略内部版本号。)

MSDN拥有大量有关全球化和本地化及其工作原理的信息,即使在ClickOnce部署的环境中也是如此。查看Globalizing Windows Forms section

当然,如果您选择不依赖.NET系统来支持全球化产品,那么您将不得不想出适合您所选方向的东西。