如何本地化 Inno Setup 安装文件的 VersionInfo?

How do I localize VersionInfo of an Inno Setup installation file?

我正在创建一个根据用户语言具有不同名称的应用程序。例如,该软件在英语中称为 "Device Emulator",在德语中称为 "Geräteemulation"

我想在安装文件的版本信息中反映不同的名称(右键单击 -> 属性 -> "Details" 选项卡)。 到目前为止,我在 Inno Setup 中找不到指定本地化 "VersionInfo" 的方法,无论是在联机帮助中还是在网络上都没有。

最初我尝试在我了解到不允许的设置部分使用自定义消息。请参阅下面的代码。

[Setup]
AppName={cm:ApplicationName}
AppVerName={cm:ApplicationName} V{#MYVERSION}
AppCopyright=© 2018 {#MYCOMPANY}
AppPublisher={#MYCOMPANY}
AppVersion={#MYVERSION}
AppId={cm:ApplicationName}{#MYVERSION}

VersionInfoVersion={#MYVERSION}
VersionInfoCompany={#MYCOMPANY}
VersionInfoCopyRight=(C) {#MYCOMPANY}
VersionInfoDescription={cm:ApplicationName}
VersionInfoProductName={cm:ApplicationName}
VersionInfoProductVersion={#MYVERSION}

我希望这会显示 属性 window,其中包含本地化的应用程序名称和版本信息,但不幸的是它只显示 {cm:ApplicationName} for AppNameVersionInfoProductNameVersionInfoDescription.

那么,你们中有人知道如何在 Inno Setup 中对其进行本地化吗?

所有 Inno Setup constants 都是在 run/install-time 上计算的。虽然版本信息是 compile-time 的东西(它内置于安装程序 .exe 文件的 header 中)。所以你不能在任何 VersionInfo* 指令中使用常量。

虽然从技术上讲,Windows.exe 可以为不同的区域设置(语言)包含单独的版本信息结构,但 Inno Setup 不支持这一点。

Inno Setup 只有 single placeholder 版本信息。