我有一个大型项目,其中一个qmake项目文件使用'subdirs‘模板定义了所有项目组件。目前,我在每个子项目的qmake文件中定义了翻译文件。这会导致每个子项目都有单独的翻译文件,这很快就会变得非常麻烦,难以维护。
如何让lupdate生成一个包含所有子项目的所有翻译字符串的翻译文件?
发布于 2009-12-02 21:28:43
首先,把你所有的pro文件分成pro和pri文件。然后将所有pri文件放入一个全局pro文件中,并为该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脚本可以很容易地为您生成此项目语言文件。
发布于 2020-10-13 15:00:46
我知道这个问题很老了,但我还是会附上我的解决方案。这最终得到了几个单独的翻译文件,但这正是我真正想要的,然后reach.You可以在主项目文件上运行lupdate,它将在每个子目录中生成/更新.ts文件。
因此,在每个pro文件中,您必须指定一个TARGET,并且此项目必须位于与此名称完全相同的文件夹中。
在每个项目文件中,我都包含一个共享的pri文件:
# Including shared configurations
!include(../common/shared.pri) {
error(shared.pri not found)
}然后,在这个pri文件中:
# Including traslations for every language
exists($$_PRO_FILE_PWD_/translations/) {
TRANSLATIONS += $$_PRO_FILE_PWD_/translations/$${TARGET}_de_DE.ts
message(> Found Translations for $${TARGET}: $$_PRO_FILE_PWD_/translations/$${TARGET}_de_DE.ts)
}对于更多的翻译语言,你可以添加一点逻辑。
https://stackoverflow.com/questions/1829474
复制相似问题