2

我正在使用 QtCreator 和 Inno 设置来创建一个支持英语、日语和许多其他语言的国际安装程序

在我进入项目之前采取的方法是在构建过程中使用构建变量和 echo 命令动态创建 Inno 设置脚本,即:

在 Qt .PRI 文件中

system(echo <some ISS command here> >> myfile)

这适用于标准文本,例如

system(echo if IsWin64 then >> $$ISS)
system(echo begin >> $$ISS)
system(echo HKey := \'Wow6432Node\'; >> $$ISS)
system(echo end >> $$ISS)

在 ISS 文件中创建

if IsWin64 then
begin
HKey := 'Wow6432Node';
end

但是,我们现在还想将一些外语文本写入脚本文件以获取警告消息,例如

system(echo alreadyInstalledMessage := \'La version XYZ est déjà installée.\'; >> $$ISS)

这应该在 .ISS 文件中显示为

alreadyInstalledMessage := 'La version XYZ est déjà installée.';

但它表现为

alreadyInstalledMessage := 'La version XYZ est d‚j… install‚e.';

我猜这取决于字符编码,但在 echo 命令或 QMake 上找不到任何东西来让它做我想做的事。

任何人都知道魔法符文是什么让文本从 .PRI 文件传递​​到 .ISS 文件,维护所有字符。或者,还有更好的方法?

4

1 回答 1

0

不幸的是,您无法使用 Qt 4 qmake 实现此目的。

但是,您可以将 'log' qmake 函数与 Qt 5 一起使用,这将满足您的需要。这只是为了您的方便,因为 qmake 无法在此处实现您想要实现的目标。

它也是功能冻结的,因此很可能没有任何有用的功能被反向移植。

您将需要重申您的项目,并以不同的方式解决这个问题。

于 2013-09-14T09:59:15.203 回答