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

相关推荐
Quz5 天前
QML Hello World 入门示例
qt
xcyxiner8 天前
DicomViewer (dcmtk读取dcm文件)5
qt
xcyxiner9 天前
DicomViewer (后台线程处理文件)4
qt
xcyxiner9 天前
DicomViewer (添加模型类)3
qt
xcyxiner10 天前
DicomViewer (目录调整) 2
qt
xcyxiner10 天前
dcmtk vtk vtk-dicom(gdcm) 编译(debug) v2
qt
桥田智能12 天前
桥田智能 QT-650S:面向白车身焊装的 800kg 重载快换解决方案
开发语言·qt·系统架构
森G12 天前
75、服务器源码解析---------云视频服务项目
linux·服务器·网络·c++·qt
森G12 天前
77、线程池原理和实现------服务器源码解析----云视频服务项目
服务器·c++·qt
森G12 天前
71、打包发布---------打包发布
c++·qt