多语言翻译
翻译文件生成
SARibbon提供的对话框和窗口涉及多语言翻译问题,目前通过cmake构建会自动把多语言内容生成在build-dir/src/SARibbonBar/i18n下,此目录下你能看到SARibbon_*.qm文件,这个文件为编译好的翻译文件,你的程序启动的时候可以加入QTranslator进行翻译
新增翻译文件
如果你需要新增翻译文件,请按照如下步骤:
打开src/SARibbonBar/CMakeLists.txt
找到如下内容:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 | ##################################
# 翻译
##################################
find_package(Qt${QT_VERSION_MAJOR}LinguistTools QUIET)
if(Qt${QT_VERSION_MAJOR}LinguistTools_FOUND)
# 2. 准备 ts 文件列表(可以写多个语言)
set(TS_FILES
i18n/SARibbon_zh_CN.ts
i18n/SARibbon_en_US.ts
)
set(TS_SOURCES
${SARIBBON_HEADER_FILES}
${SARIBBON_SOURCE_FILES}
${SACOLOR_HEADER_FILES}
${SACOLOR_SOURCE_FILES}
)
# 3. 生成/更新 ts 文件 + 编译出 qm 文件
# 这一步会在 build 目录里生成 myapp_zh_CN.qm 等
# 4. 根据 Qt 版本调对应宏
if(QT_VERSION_MAJOR EQUAL 5)
qt5_create_translation(QM_FILES ${TS_SOURCES} ${TS_FILES})
elseif(QT_VERSION_MAJOR EQUAL 6)
qt6_create_translation(QM_FILES ${TS_SOURCES} ${TS_FILES})
endif()
# 5. 把生成的 qm 挂到目标上
target_sources(${SARIBBON_LIB_NAME} PRIVATE ${QM_FILES})
message(STATUS "Translation support enabled (LinguistTools found).")
endif()
|
在TS_FILES中添加你的翻译文件,然后运行cmake重新生成项目,就会在src/SARibbonBar/i18n下生成你的ts翻译文件
通过Linguist工具打开这个文件,进行翻译,完成后保存,然后运行cmake重新生成项目,就会在build-dir/src/SARibbonBar/i18n下生成此ts文件对应的qm翻译文件