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

相关推荐
sycmancia1 小时前
Qml——Image和AnimatedImage使用
qt
lhbweilai4 小时前
QT(了解各个控件和布局)上
数据库·qt
ShineWinsu10 小时前
对于Qt:QLabel常见属性的解析
c++·qt·面试·笔试·gui·标签·qlabel
小徐不徐说10 小时前
数据库存储基础:理解表结构、主键、事务与 BLOB
开发语言·数据库·c++·qt·程序设计
蓝祁子yoky1 天前
Qt学习日记 Day13:网络编程(一)-TCP基础与Socket实战
网络·qt·学习
飞浪纪元[FWC–FE]1 天前
从零到一键绿:Qt 5.14.2 + VS2019 开发环境搭建、Kit 套件配置与构建错误修复完全手册
开发语言·qt
ShineWinsu1 天前
对于Qt:QCheckBox常见属性的详细解析
c++·qt·面试·笔试·gui·qcheckbox·多选框
ShineWinsu1 天前
对于Qt:QPushButton常见属性的解析
开发语言·c++·qt·api·gui·按钮·qpushbutton
飞浪纪元[FWC–FE]1 天前
Qt 工程创建与 CMake / qmake 构建规范
开发语言·数据库·qt
Lhan.zzZ1 天前
用 Qt 构建线程安全的通讯静态库:从线程亲和性到完整工程
c++·vscode·qt·tcp/ip·udp