如何使用带有预处理程序常量的语言文件?

时间:2018-10-08 10:35:19

标签: inno-setup

我希望语言文件中具有所有“ CustomMessages”(扩展名“ isl”)。此外,某些消息还包含预处理程序常量,例如

ALREADY_INSTALLED={#MyAppName} is already installed on this computer.

该消息应显示如下:

  

“此计算机上已经安装了My-really-nice-App”

但是我得到的是:

  

“ {#MyAppName}已安装在此计算机上。”

当我拥有代码,在同一个iss文件中的[CustomMessages]主题和#define MyAppName中定义的消息时,以下内容就像一个超级魅力:

MsgBox(ExpandConstant('{cm:ALREADY_INSTALLED}'), ...);

有任何线索吗?

1 个答案:

答案 0 :(得分:1)

{ [id]: [...types] } 个文件经过了预处理,而.iss个文件未进行预处理。

但是您可以使用FmtMessage function

.isl

使用

FmtMessage(CustomMessage('ALREADY_INSTALLED'), ['{#MyAppName}'])

请注意,在Pascal脚本代码中,最好使用CustomMessage('FOO'),而不是ALREADY_INSTALLED=%1 is already installed on this computer.


类似的问题:Pass parameters to custom messages defined in .isl files