如何将国际文本从Qt .pro / pri文件传递到ISS脚本

时间:2013-09-10 16:04:07

标签: qt internationalization inno-setup qmake

我正在使用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文件。或者有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

不幸的是,Qt 4 qmake无法实现这一点。

但是,你可以使用Qt 5的'log'qmake函数来满足你的需要。这只是为了您的方便,因为qmake无法完成您在此处尝试实现的目标。

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

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