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

相关推荐
羽翼未丰的啊博21 小时前
DBC_2_C上位机
qt·车载系统·汽车
大米粥哥哥21 小时前
Qt 报错qt.qpa.plugin: Could not find the Qt platform plugin “xcb“ in ““【已解决】
开发语言·qt·plugin·linuxdeployqt·xcb
云中飞鸿1 天前
qt中显示日志的一般是哪个控件?
开发语言·qt
森G1 天前
34、事件的分发机制---------事件系统
c++·qt
Frank_refuel1 天前
QT->信号与槽详解下(概述、使用、自定义、连接方式、其他说明)
开发语言·qt
manyikaimen1 天前
博派智能-运动控制技术-RTCP-五轴联动
c++·图像处理·qt·算法·计算机视觉·机器人·c#
雪的季节1 天前
deleteLater跨线程安全触发时机解析
开发语言·qt·安全
森G1 天前
33、事件概述---------事件系统
c++·qt
人还是要有梦想的1 天前
QT C++ 机器学习
c++·qt·机器学习
一叶之秋14121 天前
类型驱动:解锁Qt模板的渲染潜能
开发语言·qt