使用Inno Setup基于语言进行条件安装

时间:2011-01-13 22:45:55

标签: inno-setup

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

即。如果选择的语言是英语,则安装文件en.txt,如果选择的语言是意大利语,则安装文件it.txt等。

可以这样做吗?我已经看到有{language}常量,但我不明白如何使用它来进行条件安装。

2 个答案:

答案 0 :(得分:9)

只需将Languages参数添加到[Files]条目中,基于语言选择安装的文件总是有条件的。

Inno Setup的常用参数帮助说:

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

总是处理没有语言参数的条目,除非其他参数说它不应该是。

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

    例如:
    语言: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 examples文件夹中包含的Languages.iss脚本。

答案 1 :(得分: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

仅在用户选择安装法语时才安装此注册表项。当您可以在注册表中存储已安装程序的语言时,它很有用。