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

时间:2009-12-01 22:46:02

标签: qt internationalization qmake

我有一个大项目,其中一个qmake项目文件使用'subdirs'模板定义所有项目组件。目前,我在每个子项目的qmake文件中定义翻译文件。这导致每个子项目的单独翻译文件,这很快就变得难以维护。

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

2 个答案:

答案 0 :(得分:5)

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

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

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

脚本可以轻松为您生成此项目语言文件。

答案 1 :(得分:1)

我知道这个问题已经很老了,但是我仍然会附加我的解决方案。最终只有几个翻译文件,但这是我真正想要的。您可以在主项目文件上运行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)
}

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