在cmakelist中添加下列代码
set(TS_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
set(TS_FILES
"${TS_DIR}/${PROJECT_NAME}_chinese.ts"
)
find_program(LUPDATE_EXECUTABLE lupdate)
find_program(LRELEASE_EXECUTABLE lrelease)
foreach(_chinese_file ${TS_FILES})
execute_process(
COMMAND ${LUPDATE_EXECUTABLE} -recursive ${CMAKE_SOURCE_DIR} -ts ${_chinese_file})
execute_process(
COMMAND ${LRELEASE_EXECUTABLE} ${_chinese_file})
endforeach()
会生成.ts文件和qm文件,将ts文件的翻译工作做完,再次cmake。生成的.qm文件就可以在项目中使用
QTranslator translator;
translator.load(":/resources/mytest_chinese.qm", app.applicationDirPath());
app.installTranslator(&translator)
写法二
set(TS_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
set(languages
chinese
traditional
)
set(files ${files} resources/resources.qrc)
source_group(TREE "${CMAKE_CURRENT_SOURCE_DIR}" FILES ${files})
find_program(LUPDATE_EXECUTABLE lupdate)
find_program(LRELEASE_EXECUTABLE lrelease)
foreach(_lan ${languages})
set(_ts_file "${TS_DIR}/${PROJECT_NAME}_${_lan}.ts")
execute_process(
COMMAND ${LUPDATE_EXECUTABLE} -recursive ${CMAKE_SOURCE_DIR}/srcs -ts ${_ts_file})
execute_process(
COMMAND ${LRELEASE_EXECUTABLE} ${_ts_file}
)
execute_process(
COMMAND ${CMAKE_COMMAND} -E copy ${TS_DIR}/${PROJECT_NAME}_${_lan}.qm ${CMAKE_SOURCE_DIR}/srcs/nim_lib/qml/resources/
)
endforeach()
直接将生成好的qm文件拷贝到资源文件中,注意路径