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转换为翻译的文本

相关推荐
程序leo源1 天前
Qt窗口详解
开发语言·数据库·c++·qt·青少年编程·c#
我在人间贩卖青春1 天前
重学Qt——事件处理
qt
小宋0011 天前
QT中控件qss样式修改
开发语言·qt
yuechuji0011 天前
三、MPR(三平面重建)和三视图
qt
Hua-Jay1 天前
OpenCV联合C++/Qt 学习笔记(二十二)----相机模型与投影及单目相机标定
c++·笔记·qt·opencv·学习·计算机视觉
小短腿的代码世界2 天前
QCefView架构深度解析:从Chromium嵌入到Qt信号槽集成的完整技术链路
qt·架构
byxdaz2 天前
Qt修改操作系统的日期与时间
qt
小短腿的代码世界2 天前
Qt属性系统揭秘:从Q_PROPERTY宏到动态元对象系统的完整架构解析
开发语言·qt·架构
丁劲犇2 天前
QodeAssist:为msys2 ucrt64 Qt Creator 注入 AI 灵魂的开源插件
开发语言·人工智能·qt
listhi5202 天前
基于QT的串口心电波形实时显示系统
开发语言·qt