欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

QT国际化

程序员文章站 2022-05-16 10:30:38
...

一、使用tr
QString strMax = tr(“The maximum value”);
fromLocal8Bit无法实现国际化,如:
strType = QString::fromLocal8Bit(“单一元素”);
将需要翻译的字符串加上tr() 。
二、lupdate生成ts翻译文件,并编辑 + luguist发布

cd 到.pro 文件所在目录

lupdate DTS.pro -ts qt5_zh_CN.ts -》 在目录下生成 qt5_zh_CN.ts 翻译文件

-》 编辑

linguist qt5_zh_CN.ts

-》将翻译文件发布到程序加载的目录

-》
mian.cpp 加载翻译

-》添加下列代码

    QApplication a(argc, argv);

    QTranslator tsor;           //创建翻译器
    tsor.load("zh_hans.qm");    //加载语言包
    a.installTranslator(&tsor); //安装翻译器

或者

// 安装中文翻译
    const QString localSysName = QLocale::system().name();
    QScopedPointer<QTranslator> qtTranslator(new QTranslator(QCoreApplication::instance()));
    if (qtTranslator->load(QStringLiteral("qt_") + localSysName,
        QLibraryInfo::location(QLibraryInfo::TranslationsPath)))
    {
        QCoreApplication::installTranslator(qtTranslator.take());
    }
    //翻译程序
    QScopedPointer<QTranslator> gpTranslator(new QTranslator(QCoreApplication::instance()));
    QString strPath=getenv("ICCSHOME/system/lang");
    if (gpTranslator->load("qt5_zh_CN.qm", strPath))
    {
        QCoreApplication::installTranslator(gpTranslator.take());
    }

    //其中前一个安装中文翻译指qt自带的翻译文件。
        //后一个if (gpTranslator->load("qt5_zh_CN.qm", strPath))指应用程序自己的翻译文件

main.cpp中添加代码,二选一即可。

相关标签: QT国际化