基于语言的条件安装(Inno Setup)

5

我正在尝试根据Inno Setup中选择的语言进行条件安装。

例如,如果选择的语言是英语,则安装en.txt文件,如果选择的语言是意大利语,则安装it.txt文件,以此类推。

这个可行吗?我看到有一个{language}常量,但我不知道如何使用它进行条件安装。

2个回答

12

只需在 [Files] 条目中添加 Languages 参数,就可以根据语言选择安装哪些文件。

Inno Setup 帮助文档中的常用参数说明:

Languages
使用空格分隔的语言名称列表,告诉安装程序此条目属于哪些语言。如果最终用户从该列表中选择了语言,则处理该条目(例如:安装文件)。

没有 Languages 参数的条目始终会被处理,除非其他参数表明不应该处理。

除了使用空格分隔的列表外,还可以使用布尔表达式。有关布尔表达式的示例,请参见组件和任务参数。


示例:
Languages: en nl

因此,如果您想要只为英语安装一个文件,只为西班牙语安装另一个文件,为英语和西班牙语(但不是法语)安装另一个文件,那么 [Files] 条目可能如下所示:

[Files]
Source: "MyProg-en.chm"; DestDir: "{app}"; Languages: en
Source: "MyProg-es.chm"; DestDir: "{app}"; Languages: es
Source: "x.exe"; DestDir: "{app}"; Languages: en es

查看Inno Setup示例文件夹中包含的Languages.iss脚本。


3
只需要注意,这个方法同样适用于注册表部分。例如:
[Languages]
Name: "en"; MessagesFile: "compiler:Default.isl"
Name: "ger"; MessagesFile: "compiler:Languages\German.isl"
Name: "fr"; MessagesFile: "compiler:Languages\French.isl"

[Registry]
Root: HKCR; Subkey: ".tes"; ValueType: string; ValueName: ""; ValueData: "Testing..."; Languages: fr

只有当用户选择法语安装时,才会安装此注册表键。当您可以将安装的程序语言存储在注册表中时,这非常有用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接