我正在尝试根据Inno Setup中选择的语言进行条件安装。
即。如果选择的语言是英语,则安装文件en.txt,如果选择的语言是意大利语,则安装文件it.txt等。
可以这样做吗?我已经看到有{language}常量,但我不明白如何使用它来进行条件安装。
答案 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
仅在用户选择安装法语时才安装此注册表项。当您可以在注册表中存储已安装程序的语言时,它很有用。