2009-02-19 52 views
0

在我的应用程序中,我想支持2种语言(英语和阿拉伯语)。现在我把英文版的帮助文件放到一个特定的路径中。如果我想让用户选择他想要安装他的应用程序的语言,并根据选择,我会在该路径中扔相关的CHM文件。使用msi文件进行本地化

也是Q的另一部分,我可以做什么,当你安装一个应用程序它会问你语言,那么它只会抛出相关的exe文件?

+0

你能解释一下你用来生成msi的安装程序吗?它是一个Visual Studio安装项目或其他东西? – 2009-02-19 09:00:23

回答

0

您没有告诉您如何在应用程序中实现本地化。由于您是在.NET中开发的,因此我认为您拥有包含所有本地化数据的每种语言的.resx文件。那么,为什么不安装这两个帮助文件,并将帮助文件的路径作为资源文件中的本地化字符串呢?

顺便说一句,使用本地化的资源文件,你将只有一个可执行文件来安装。您可以通过相应地指定CultureInfo.CurrentUICulture来选择在加载表单时使用哪种语言,例如,基于配置设置或注册表项。

关于问题的第二部分:您可以让您的用户选择目标语言。这将设置上述配置设置或注册表项。但是,在安装过程中更改语言不会更改MSI安装程序的UI语言(我认为这不支持*)。

因此,我会建议你有一个单独的安装程序为每种语言或使用不同的安装系统(NSIS似乎是一个不错的选择)。

*)根据为用户定义的区域设置,MSI可以为select the UI language automatically。但是,这种行为没有得到官方的支持,实现它的方式也有点复杂。