我使用CMake构建具有国际化支持的Qt项目。使用qt5_create_translation
我可以在源目录中创建*.ts
文件,并将文件*.qm
到构建目录中。
我想减少应该分发的文件数量。将翻译文件:/translations/*.qm
存储到Qt资源中是一条紧迫的解决方案。
但是在构建过程中,资源的名称是自动生成的,并且没有本机方法将它们自动放入*.qrc
文件中。
如何实现所需的使用,比如说,add_custom_command
或其他东西?
Qt的qrc文件只是XML文件。因此,您可以使用外部工具来添加它。
一个纯粹的cmake解决方案可以是:
- 创建名为
@TRANS_FILE@
的虚拟资源文件 - 将此文件添加到
qrc
文件
将 - 翻译文件的名称提取到变量中。不知道怎么做。
- 使用 cmake 的
configure_file
替换虚拟资源名称
例:
set(TRANS_FILE ${NameOfTranslationFile})
configure_file(infile.qrc outfile.qrc @ONLY)