将.qm(i18n)文件编译为二进制文件

时间:2014-12-01 13:17:07

标签: c++ qt internationalization qt5 qmake

我有多个i18n qm文件,现在翻译就像魅力一样。 我面临的问题是,我有以下文件夹结构:

project
-build
--debug
--release
-src
-i18n

现在我的同事们有不同的构建文件夹结构,因此:

translator.load("../../i18n/{translationfile}");

不为他们工作。 一种解决方案可能是解决特定的构建文件夹结构,但这不是我想要的。我更喜欢将所有翻译导出到应用程序本身,因此它可能没有任何特殊的文件夹结构。只需给客户二进制文件,就像它应该的那样。

无论如何,我不知道如何在qmake中做到这一点(在cmake中也没有,但是qmake是我需要在这里使用的。)

我看了一眼:How to Integrate Qt4 qm files into binary using cmake and QRC?但仍然不确定。

任何帮助表示感谢。

1 个答案:

答案 0 :(得分:0)

看起来我修好了。

而不是

translator.load("../../i18n/{translationfile}");

我用

QDir dir(":/i18n");
translator.load(dir.absoluteFilePath({translationFile}));

我还在我的专业文件中添加了一个i18n.qrc文件:

RESOURCES += images.qrc \
             i18n.qrc

如果我将二进制文件/可执行文件移动到另一个文件夹并从那里执行它,它就有用了,所以我想这就是将翻译文件编译成QApplication所需要的全部内容。