我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
?