在Inno Setup中使用内置消息

时间:2013-12-19 18:40:49

标签: internationalization inno-setup

如何在Inno Setup中使用内置消息?

在“Default.isl”中有一条消息“FullInstallation”,我想在我的Inno安装脚本中使用它。因此,此消息已经被Inno Setup支持的所有语言翻译。这样我就不需要为此文本做翻译了。

我看到“Default.isl”有一个[CustomMessages]部分,我可以使用它们(例如){cm:CreateDesktopIcon}(因为“CreateDesktopIcon”作为自定义消息存在)。

如何使用[CustomMessages]部分中未列出的其他消息之一?

1 个答案:

答案 0 :(得分:6)

据我所知,没有{cm:...}类似的常量可以扩展[Messages]条目。如果我是对的,那么这取决于你想在哪里使用这样的常数。如果它在脚本编写部分,那么您需要使用带有getter的scripted constant调用SetupMessage函数,通过该函数,您可以通过列出的常量扩展所选语言的内置消息。 this file

您可以注意到,每个消息常量都只有语言文件中[Messages]条目的msg前缀。

例如,要将WizardPreparing消息展开为[Run]部分条目的Description值,您可以通过以下方式展开msgWizardPreparing常量:

[Run]
Filename: "MyProg.exe"; Description: "{code:GetDescription}"

[Code]
function GetDescription(Value: string): string;
begin
  Result := SetupMessage(msgWizardPreparing);
end;

[Code]部分,情况自然更容易,因为您可以直接在那里使用SetupMessage功能。因此,举例来说,要显示包含展开的CannotContinue消息的消息框,您只需这样扩展msgCannotContinue常量:

[Code]
procedure InitializeWizard;
var
  S: string;
begin
  S := SetupMessage(msgCannotContinue);
  MsgBox(S, mbInformation, MB_OK);
end;