跳转至

多语言翻译

翻译文件生成

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翻译文件