如何为大型Qt项目生成单个翻译文件?

如何为大型Qt项目生成单个翻译文件?,qt,internationalization,qmake,Qt,Internationalization,Qmake,我有一个大型项目,其中一个qmake项目文件使用“subdirs”模板定义所有项目组件。目前,我在每个子项目的qmake文件中定义翻译文件。这会导致每个子项目都有单独的翻译文件,很快就会变得过于繁琐而无法维护 如何让lupdate生成包含所有子项目的所有翻译字符串的单个翻译文件?首先将所有pro文件拆分为pro和pri文件。然后将所有pri文件放入一个全局pro文件,并为该pro文件生成语言文件 特殊语言专业版文件如下所示: TEMPLATE = app DEPENDPATH += Proj1

我有一个大型项目,其中一个qmake项目文件使用“subdirs”模板定义所有项目组件。目前,我在每个子项目的qmake文件中定义翻译文件。这会导致每个子项目都有单独的翻译文件,很快就会变得过于繁琐而无法维护


如何让lupdate生成包含所有子项目的所有翻译字符串的单个翻译文件?

首先将所有pro文件拆分为pro和pri文件。然后将所有pri文件放入一个全局pro文件,并为该pro文件生成语言文件

特殊语言专业版文件如下所示:

TEMPLATE = app
DEPENDPATH +=  Proj1 Proj2 Proj3    

include(Proj1/Proj1.pri)  
include(Proj2/Proj2.pri)
include(Proj3/Proj3.pri)

TRANSLATIONS = en.ts fr.ts it.main.ts ja.main.ts nl.main.ts

脚本可以很容易地为您生成此项目语言文件。

我知道这个问题已经很老了,但我仍将附加我的解决方案。这最终得到了几个单一的翻译文件,但这正是我真正想要达到的。然后,您可以在主项目文件上运行
lupdate
,它将在每个子文件中生成/更新.ts文件

因此,在每个pro文件中,您必须指定一个
目标
,并且此项目必须位于一个具有此名称的文件夹中

在每个项目文件中,我都包含一个共享pri文件:

#包括共享配置
!包括(../common/shared.pri){
错误(未找到shared.pri)
}
然后,在此pri文件中:

#包括每种语言的翻译
存在($$\u PRO\u文件\u PWD\uu/translations/){
翻译+=$$\u PRO\u FILE\u PWD\u/TRANSLATIONS/$$${TARGET}\u de_de.ts
消息(>为$${TARGET}找到了翻译:$$\u PRO_FILE\u PWD\u/Translations/$$${TARGET}\u de_de.ts)
}

对于更多的翻译语言,您可以添加一点逻辑。

我刚刚尝试了您的解决方案,假设我只需要在.pri文件中指定源、标题和表单,并且它可以工作!谢谢你的回答。pri文件是什么?@BenJones,
.pri
文件只是另一个
.pro
文件包含的
.pro
文件。因此,扩展的区别只是表明它们被包括在内。这种分离允许有一个
.pro
文件,该文件结合所有源代码生成翻译。