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