在我的应用程序中,我想支持2种语言(英语和阿拉伯语)。现在我将帮助文件的英文版本放在某个路径中。如果我希望用户选择他想要安装其应用程序的语言,并根据选择我会将相关的chm文件放在该路径中,该怎么办。
Q的另一部分,我可以做一些事情,例如当您安装应用程序时它会询问您的语言,然后它只会抛出相关的exe
文件吗?
答案 0 :(得分:0)
您没有告诉您如何在应用程序中实现本地化。由于您使用.NET进行开发,因此我假设您拥有包含所有本地化数据的每种语言的.resx文件。那么为什么不安装这两个帮助文件并将帮助文件的路径设置为资源文件中的本地化字符串?
顺便说一句,使用本地化资源文件,您只能安装一个可执行文件。您可以通过相应地指定CultureInfo.CurrentUICulture
来选择在加载表单时使用哪种语言,例如基于配置设置或注册表项。
关于问题的第二部分:您可以让您的用户选择目标语言。这将设置上述配置设置或注册表项。但是,在安装过程中更改语言不会更改MSI安装程序的UI语言(我不认为这是支持*)。
因此,我建议您为每种语言使用单独的安装程序或使用不同的安装系统(NSIS似乎是一个不错的选择)。
*)MSI可以select the UI language automatically根据为用户定义的区域设置。但是,这种行为并未得到官方支持,实现它的方式也有点复杂。