QT国际化

一、使用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)