Installation Inno设置if和语言

Installation Inno设置if和语言,installation,package,inno-setup,pascal,Installation,Package,Inno Setup,Pascal,我想知道如何控制inno安装程序的语言,我希望用户在安装后选择英语inno安装程序时删除意大利语文件,但如果用户选择意大利语,我希望安装后删除英语语言文件。我尝试了此代码,但不起作用: [InstallDelete] #if {language} = "english" Type: files; Name: "{commondesktop}\english.txt" #if {language} = "italian" Type: files; Name: "{commondesktop}\it

我想知道如何控制inno安装程序的语言,我希望用户在安装后选择英语inno安装程序时删除意大利语文件,但如果用户选择意大利语,我希望安装后删除英语语言文件。我尝试了此代码,但不起作用:

[InstallDelete]
#if {language} = "english"
Type: files; Name: "{commondesktop}\english.txt"
#if {language} = "italian"
Type: files; Name: "{commondesktop}\italian.txt"
#endif
谢谢


对不起,我说的是英语。

指令是在编译时计算的,在任何情况下,[InstallDelete]节都是在安装开始时处理的。我认为,对于您的情况,最简单的方法是,如果用户没有选择相应的安装语言,则首先不要安装该文件:

[Languages]
Name: "en"; MessagesFile: "compiler:Default.isl"
Name: "it"; MessagesFile: "compiler:Languages\Italian.isl"

[Files]
Source: "english.txt"; DestDir: "{commondesktop}"; Languages: en;
Source: "italian.txt"; DestDir: "{commondesktop}"; Languages: it;

如果我误解了这个问题,您可以在代码中使用
DeleteFile
support函数来删除文件,例如在
CurStepChanged
过程中,而
CurStep
是“ssDone”或“ssPostInstall”。

指令在编译时计算,在任何情况下都是[InstallDelete]节在设置开始时进行处理。我认为,对于您的情况,最简单的方法是,如果用户没有选择相应的安装语言,则首先不要安装该文件:

[Languages]
Name: "en"; MessagesFile: "compiler:Default.isl"
Name: "it"; MessagesFile: "compiler:Languages\Italian.isl"

[Files]
Source: "english.txt"; DestDir: "{commondesktop}"; Languages: en;
Source: "italian.txt"; DestDir: "{commondesktop}"; Languages: it;

如果我误解了这个问题,您可以使用代码中的
DeleteFile
支持功能来删除文件,例如在
CurStepChanged
过程中,
CurStep
是“ssDone”或“ssPostInstall”。

如果您没有安装该文件,则不需要删除它,是吗?@user1363585,别忘了接受答案;-)还有一个内置参数,不需要使用
IsLang()
自定义函数。谢谢@Deanna,我不知道。如果你把它作为答案发布,我会投票。如果你没有安装它,你就不需要删除该文件,不是吗?@user1363585,别忘了接受答案;-)还有一个内置参数,不需要使用
IsLang()
自定义函数。谢谢@Deanna,我不知道。如果你把它作为答案贴出来,我会投票的。