Qt Quick 国际化

为 Qt Quick 应用程序生成翻译文件 (TS 和 QM)。

当你运行示例应用程序时,QML 运行时会根据系统语言自动从包含主 .qml 文件的目录下的 i18n 子目录中加载翻译。

标记可翻译文本

qml-i18n.qml 文件中,使用 qsTr 命令标记 UI 文本为可翻译

        Text {
            text: qsTr("Hello")

启用翻译

main.cpp 文件中,使用 QQmlApplicationEngine 自动从包含主 QML 文件的目录中名为 i18n 的子目录自动加载翻译文件

#include <QQmlApplicationEngine>

int main(int argc, char *argv[])
{
    QGuiApplication app(argc, argv);
    QQmlApplicationEngine engine;

i18n 子目录中的翻译文件名必须以下标为 qml_。例如,qml_en_AU.ts

创建翻译文件

CMakeLists.txt 文件中将 LinguistTools 模块作为 find_package 命令的值

find_package(Qt6 REQUIRED COMPONENTS Core Gui Quick Qml LinguistTools)

qt_add_translations 命令中定义要生成的翻译文件

qt_add_translations(qmli18n
    RESOURCE_PREFIX /qt/qml/translated/i18n
    TS_FILE_BASE qml
    TS_FILE_DIR i18n
)

构建应用程序以生成 TS 和 QM 文件。

注意: 在 Android 上,确保将 QM 文件作为资源包含。

添加翻译

要为新的语言创建翻译,将 i18n/base.ts 复制到 。您可以使用 Qt Linguist 翻译字符串。

示例项目 @ code.qt.io

© 2024Qt公司版权所有。此处包含的文档贡献是各自所有者的版权。提供的文档是根据自由软件基金会发布的 GNU 自由文档许可协议版本 1.3 许可的。Qt及其相关标识是芬兰及/或世界各地Qt公司在中国的商标。所有其他商标均为其各自所有者的财产。