根据 Inno Setup 中选择的语言创建命令行参数快捷方式

Creating command-line parameters shortcut depending of language selected in Inno Setup

我正在尝试在命令行参数中使用条件 - 我使用了本教程并且效果很好:

我正在创建一个安装程序,我想知道如果用户选择西班牙语怎么办,创建的快捷方式有参数:-spanish

#define MyAppName "The software"
#define MyAppVersion "1.0"
#define MyAppPublisher "Inc."

[Languages]
Name: "english"; MessagesFile: "compiler:Languages\English.isl"
Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl"
Name: "spanish"; MessagesFile: "compiler:Languages\Spanish.isl"

[Files]
Source: "C:\Program Files (x86)\The software\*"; DestDir: "{app}"; \
    Flags: ignoreversion recursesubdirs createallsubdirs

[Icons]
Name: "{group}\{cm:ProgramOnTheWeb,{#MyAppName}}"; Filename: "{#MyAppURL}"
Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}"
Name: "{commondesktop}\Soft name"; Filename: "{app}\soft.exe"; \
    Parameters: "-english"; IconFilename: {app}\icon.ico;

要么使用 Languages parameter:

[Icons]
Name: "{commondesktop}\Soft name"; Filename: "{app}\soft.exe"; \
    Parameters: "-english"; IconFilename: {app}\icon.ico; Languages: english
Name: "{commondesktop}\Soft name"; Filename: "{app}\soft.exe"; \
    Parameters: "-russian"; IconFilename: {app}\icon.ico; Languages: russian
...

或者使用 scripted constant and the ActiveLanguage function. If your language Name 开关名称始终匹配,非常简单:

[Icons]
Name: "{commondesktop}\Soft name"; Filename: "{app}\soft.exe"; \
    Parameters: "-{code:ActiveLanguage}"; IconFilename: {app}\icon.ico

如果它们不匹配,您将必须实施一个代理函数,将 ActiveLanguage 值转换为等效的开关名称。