本文主要是介绍QT国际化,将所有中文用tr函数包裹,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
cmake:
# #设置qm文件输出位置
set_source_files_properties(adSoft_ch.ts adSoft_en.ts
PROPERTIES OUTPUT_LOCATION "${CMAKE_SOURCE_DIR}/l2_viewer/dist/translations")
#生成翻译文件
qt_add_lupdate(${PROJECT_NAME} TS_FILES adSoft_ch.ts adSoft_en.ts)
# 生成发布文件
qt_add_lrelease(${PROJECT_NAME} TS_FILES adSoft_ch.ts adSoft_en.ts QM_FILES_OUTPUT_VARIABLE qm_files)
install(FILES ${qm_files} DESTINATION "translations")
# 添加资源文件
qt_add_resources(${PROJECT_NAME} "l2_viewer/dist/translations" PREFIX "/" BASE "${CMAKE_SOURCE_DIR}" FILES "${qm_files}")
# 更新
add_dependencies(${PROJECT_NAME} ${PROJECT_NAME}_lupdate)
add_dependencies(${PROJECT_NAME} ${PROJECT_NAME}_lrelease)
set(TS_DIR "${CMAKE_SOURCE_DIR}/l2_viewer/dist/translations")
set(TS_FILES
"${TS_DIR}/adSoft_ch.ts"
"${TS_DIR}/adSoft_en.ts"
)
#模拟更新和发布的命令代码
find_program(LUPDATE_EXECUTABLE lupdate)
find_program(LRELEASE_EXECUTABLE lrelease)
#生成ts和qm文件
foreach(_ts_file ${TS_FILES})
execute_process(
COMMAND ${LUPDATE_EXECUTABLE} -recursive ${CMAKE_SOURCE_DIR} -ts ${_ts_file})
execute_process(
COMMAND ${LRELEASE_EXECUTABLE} ${_ts_file})
endforeach()
1.在VSCODE中用正则表达式搜索:
"([\u4e00-\u9fa5,。?!;:“”]+)"
2.替换为
tr("$1")
若代码报错则用QObject::tr()包裹
这篇关于QT国际化,将所有中文用tr函数包裹的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!