小编Sto*_*orm的帖子

Qt国际化和CMake:如何更新*.ts并且不会丢失它们

CMakeLists.txt在翻译文件(*.ts)的目录中有这个:

SET(TRANSLATIONS
    lang_de.ts
    lang_en.ts
)

FIND_PACKAGE(Qt5LinguistTools)
QT5_ADD_TRANSLATION(QM_FILES ${TRANSLATIONS})
SET(QM_FILES ${QM_FILES} PARENT_SCOPE)
ADD_CUSTOM_TARGET (translations ALL DEPENDS ${QM_FILES})
Run Code Online (Sandbox Code Playgroud)

*.qm从指定的文件构建文件*.ts.

但是我希望改进这个并获得两个自动生成的自定义目标.一个用于将新字符串从源添加到ts文件中,另一个用于刷新ts.最后一个ts将从源更新并从中删除过时的字符串ts.

我试过在上面的行之后添加这个:

ADD_CUSTOM_TARGET (
    ts_append
    COMMAND QT5_CREATE_TRANSLATION(QM_FILES ${CMAKE_SOURCE_DIR}/src/app ${TRANSLATIONS} OPTIONS -I ${CMAKE_SOURCE_DIR}/src)
)

ADD_CUSTOM_TARGET (
    ts_refresh
    COMMAND QT5_CREATE_TRANSLATION(QM_FILES ${CMAKE_SOURCE_DIR}/src/app ${TRANSLATIONS} OPTIONS -no-obsolete -I ${CMAKE_SOURCE_DIR}/src)
)
Run Code Online (Sandbox Code Playgroud)

但似乎我不能QT5_CREATE_TRANSLATION在自定义目标内部使用宏,不是吗?

也许我的方向错了,你怎么解决这个问题:容易更新ts并且不会丢失它们make clean

qt cmake qt5

9
推荐指数
1
解决办法
4577
查看次数

标签 统计

cmake ×1

qt ×1

qt5 ×1