我正在使用 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 文件,维护所有字符。或者,还有更好的方法?