Inno Setup 在 [代码] 中检测所选语言

alf*_*ire 3 pascalcasing inno-setup

我想用IDP插件下载文件,但我需要选择语言功能的文件。示例:以英语和西班牙语安装,文件为myfile_x86_eng.exemyfile_x86_spa.exe。我对 Pascal 一无所知,我在互联网和 Stack Overflow 上搜索过,但没有找到结果。

我需要这样的东西:

#include ". \ Idp.iss"

[Languages]
Name: "English"; MessagesFile: "compiler: Languages \ English.isl";
Name: "Spanish"; MessagesFile: "compiler: Languages \ Spanish.isl";

[Code]
Procedure InitializeWizard (): string;
Var
  Language: string;
Begin
  Language: = ExpandConstant ('{param: LANG}');
  If Language = 'English' then
  Begin
    IdpAddFile ('https://myweb.com/myfile_x86_eng.exe', ExpandConstant ('{tmp} \ myfile_x86_eng.exe'));
  End
    Else
  If Language = 'Spanish' then
  Begin
    IdpAddFile ('https://myweb.com/myfile_x86_esp.exe', ExpandConstant ('{tmp} \ myfile_x86_spa.exe'));
  End;
End;
Run Code Online (Sandbox Code Playgroud)

其他方式可以使语言变量像这样myfile_x86_ {lang} .exe或类似的东西

Mar*_*ryl 5

使用ActiveLanguage功能

if ActiveLanguage = 'English' then
begin
  IdpAddFile('https://www.example.com/myfile_x86_eng.exe',
             ExpandConstant('{tmp}\myfile_x86_eng.exe'));
end
  else
if ActiveLanguage = 'Spanish' then
begin
  IdpAddFile('https://www.example.com/myfile_x86_esp.exe', 
             ExpandConstant('{tmp}\myfile_x86_spa.exe'));
end;
Run Code Online (Sandbox Code Playgroud)