QT国际化翻译

QT中常用的国际化方式,在代码中使用tr包裹所需要翻译的字符串,使用lupdate更新翻译文件,在Linguist中编辑所需要翻译的文字即可。

1.代码中加载翻译文件

cpp 复制代码
QTranslator *trans = new QTranslator();
bool b = trans->load("mytrans_cn.qm");
QApplication::installTranslator(trans);

setText(tr("abc"));

2.更新翻译文件

cpp 复制代码
lupdate ./ -ts mytrans_cn.ts

3.Linguist编辑发布qm文件

动态翻译:如果所需要翻译的文本是动态加载的,就需要进行动态翻译

cpp 复制代码
namespace RibbonWidgetTranslate {
    const QString translate_strings[] = {
        QT_TRANSLATE_NOOP("RibbonWidgetTranslate", "Straight line"),//直线
        QT_TRANSLATE_NOOP("RibbonWidgetTranslate", "Curve"),//曲线
        QT_TRANSLATE_NOOP("RibbonWidgetTranslate", "Rectangle"),//矩形
    };
}

使用QT_TRANSLATE_NOOP标记的字符串可以被lupdate识别。

cpp 复制代码
 QString translatedText = QCoreApplication::translate("RibbonWidgetTranslate", text.toUtf8().constData());

可以将text转换为翻译的文本

相关推荐
小短腿的代码世界6 小时前
Qt文件系统与IO深度解析:从QFile到异步文件操作
开发语言·qt
徐某人..8 小时前
基于i.MX6ULL平台的智能网关系统开发
arm开发·c++·单片机·qt·物联网·学习·arm
(Charon)10 小时前
【C++/Qt】Qt 封装 TCP 客户端底层 Network 类:连接、收发、自动测试与错误处理
服务器·网络·qt·tcp/ip
小短腿的代码世界13 小时前
QCefView深度解析:Qt应用中嵌入Chromium浏览器的终极方案
开发语言·qt
小短腿的代码世界17 小时前
VLC-Qt深度解析:Qt应用中的专业视频播放方案
开发语言·qt
rrr217 小时前
【前端开发】|GUI 基本概念和框架基础
前端·qt
Z文的博客17 小时前
【避坑实录】Qt 4.8.6 + Paho MQTT C客户端 + OpenSSL静态链接的血泪史
c语言·开发语言·qt·嵌入式linux
(Charon)18 小时前
【C++/Qt】Qt 实现 TCP Client:从功能构思到消息收发与日志保存
qt·网络协议·tcp/ip
qq_2837200518 小时前
Qt5.12.8 QML Canvas ctx.setLineDash 失效终极解决方案
开发语言·qt