如何使用 Inno 制作多语言版安装程序?

Posted by NosaLee in Common Programming on 20-05-2015.

© 牧山道人,保留所有权利。

本博使用 Inno 多年,其免费、易用、可扩展性佳等诸多特色让我一直很喜欢它。

今天开始生产多语言版软件,既然软件已支持多语,要做就做得有模有样,所以,打算让安装程序也支持多语言。

网上有很多介绍 Inno 制作多语安装包的文章,但大多比较复杂,令人眼花缭乱、望而生畏。
所以,我这篇文章将告诉你最简单可行的方法,下面正式开始:

1、使用正确的 Inno 版本。
既然是多语版安装包,可想见需要 Unicode 版 Inno,直接到官网下载安装即可,本文使用 Inno 5.5.5 (Unicode)。

2、加入你的软件产品支持的语种。

1
2
3
4
5
[Languages]
Name: en; MessagesFile: "compiler:Default.isl"
Name: pt_br; MessagesFile: "compiler:Languages\BrazilianPortuguese.isl"
Name: sc; MessagesFile: "compiler:Languages\ChineseSimplified.isl"
Name: tc; MessagesFile: "compiler:Languages\ChineseTraditional.isl"

注意:
a、语言名称【Name】任取(当然,最好遵循通用习惯,至少自己能看懂)。
b、消息文件【MessageFile】位置:“compiler:”表示 Inno 安装目录,如“D:\Program Files (x86)\Inno Setup 5”。
c、若 Inno 自带语言档不能满足您的需求,去官网下载并放到 Inno 安装目录\Languages 下即可。点击官网左侧树形导航“Inno Setup -> Translations”即可进入各语言档下载页。

3、执行安装包时正动显示语言列表,并令默认值跟操作系统语言设置一样。
恭喜您!不用作任何额外工作,Inno Unicode 版释出的安装包本身就这样。如下图:
Inno 安装包启动时显示语言列表,并自动选择系统语言。
如上,您可以尝试在不同语言的计算机上测试,其实语言列表上面的提示甚至窗口标题都是随系统语言自动确定的(当然,前提是你得在上述[languages]节加入了该语言档)。而这一切,不需要您做任何工作。原理呢?聪明的你只要打开上述 .isl 语言档即可发现,它们指定了与 Windows 标准相符的语言内码(LanguageID)及代码页(LanguageCodePage)。

4、如何让安装过程中选择的语言自动成为软件运行时的初始语言?
这是个稍显高端的议题,但若做到这点,你的软件从安装到运行使用的整体感觉会很好,犹如行云流水,用户会默默地给你加分的。
做法有很多种(但大致思路都是让安装程序留下点什么),这里暂且抛个砖:

1
2
[INI]
FileName: "{app}\lang.ini"; Section: "Language"; Key: "lang"; String: {language};

如上,很好理解吧,让 Inno 帮你写 INI 配置档,然后你软件首次运行时,就可以轻松获取用户安装时选择的语言了。
注意,上面的{language}就是用户所选语言名称(【Name】)。

5、不满意 Inno 语言档(MessagesFile)的翻译或字体怎么办?
这就更简单了,打开上述对应 .isl,备份一下,修改即可。注意将您修改后的结果单独存一下,以免每次升级 Inno 都去修改。

以上,已经足够使用。若还有其他特殊需求,请自行研究哈。

Comments:

There are (1) Comments for the 如何使用 Inno 制作多语言版安装程序?

Post a comment