【问题标题】:How do I localize VersionInfo of an Inno Setup installation file?如何本地化 Inno Setup 安装文件的 VersionInfo?
【发布时间】:2023-03-18 08:25:01
【问题描述】:

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

我想在安装文件的版本信息中反映不同的名称(右键单击 -> 属性 -> “详细信息”选项卡)。 到目前为止,我在 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}

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

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

【问题讨论】:

    标签: inno-setup versioninfo


    【解决方案1】:

    所有Inno Setup constants 在运行/安装时进行评估。虽然版本信息是编译时的东西(它内置在安装程序 .exe 文件的头文件中)。所以你不能在任何VersionInfo* 指令中使用常量。

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

    Inno Setup 只有一个single placeholder 用于版本信息。

    【讨论】:

    • 谢谢,我怕 Inno Setup 不支持这个。
    • 我是否理解正确,您只有一个多语言安装程序?或者您正在为每种语言构建单独的安装程序?
    • 是的,你是对的。我有一个多语言安装程序,根据用户系统的区域设置,我想在属性选项卡中显示不同的版本信息。我之前使用 C++ 资源文件来执行可执行文件和 dll 文件。因此,正如您提到的,我知道 Windows 允许您执行此操作。很遗憾 Inno Setup 不支持这一点。但好吧,我将不得不应对。
    猜你喜欢
    • 2018-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多