当前位置: 首页 > news >正文

给网站做认证合肥网站建设高端

给网站做认证,合肥网站建设高端,单位网站备案,哪些网站可以上传自己做的视频这篇文章展示了集成Qt Linguist 的功能。 但是有时候Qt的翻译功能比较繁琐,我们简单项目只需要使用本地化功能,将中文字符串导入到项目中,避免编码格式问题导致的乱码。 只需要使用一个简单的json或者其他格式的本地文件作为映射的key/value.…

这篇文章展示了集成Qt Linguist 的功能。
但是有时候Qt的翻译功能比较繁琐,我们简单项目只需要使用本地化功能,将中文字符串导入到项目中,避免编码格式问题导致的乱码。
只需要使用一个简单的json或者其他格式的本地文件作为映射的key/value.

当完全需要自定义翻译文件,或者只是简单的避免将中文写入cpp文件导致显示在ui上乱码时可以使用

创建 派生类,并实现翻译方法。

class JBTranslator : public QTranslator {public://保存自己的翻译QHash<QString, QString> m_texts;//override 基类虚函数,当需要翻译的时候会自动调用QString translate(const char *context, const char *sourceText, const char *disambiguation = nullptr, int n = -1) const override{if (m_texts.contains(sourceText)) {return m_texts.value(sourceText);}return sourceText;}
};

在 app 初始化后立即注册调用

int main(int argc, char *argv[])
{QApplication a(argc, argv);// 申明自定义类的实例JBTranslator translator;//用自定义的翻译实例替换系统默认的QApplication::installTranslator(&translator);/* :/tran.json 文件的内容,该文件也可以放在其他位置或其他类型的文件,只需要最终读取出来放入translator.m_texts变量即可
{"Hello_key": "你好,这是value","Hello_key2": "中文测试文字2"
}
*/QFile file(":/tran.json");if (!file.open(QFile::ReadOnly)) {qWarning() << "Cannot open translation file for reading.";return -1;}QJsonDocument doc = QJsonDocument::fromJson(file.readAll(), nullptr);QJsonObject jsonObj = doc.object();for (auto it = jsonObj.begin(); it != jsonObj.end(); ++it) {//将自定义的json文件的翻译字段,加载到我们类的变量中translator.m_texts.insert(it.key(), it.value().toString());}//这里调用后,会在 JBTranslator::translate(...) 方法中查找,并返回翻译好的字符串//手动调用tr(), 或者ui文件中自动调用翻译功能QString t = QObject::tr("Hello_key");//localized string:  "你好,这是value"qDebug() << "localized string: " << t; MainWindow w;w.show();return a.exec();
}

验证结果

调用代码:

    QString t = QObject::tr("Hello_key");qDebug() << "localized string: " << t; 

打印结果: localized string: "你好,这是value"

全局代码

#include "mainwindow.h"#include <QApplication>
#include <QTranslator>
#include <QFile>
#include <QJsonDocument>
#include <QJsonObject>
#include <QTextStream>
#include <QHash>
#include <QDebug>class JBTranslator : public QTranslator {public://保存自己的翻译QHash<QString, QString> m_texts;//override 基类虚函数,当需要翻译的时候会自动调用QString translate(const char *context, const char *sourceText, const char *disambiguation = nullptr, int n = -1) const override{if (m_texts.contains(sourceText)) {return m_texts.value(sourceText);}return sourceText;}
};int main(int argc, char *argv[])
{QApplication a(argc, argv);// 申明自定义类的实例JBTranslator translator;//用自带的翻译实例替换系统默认的QApplication::installTranslator(&translator);/*
{"Hello_key": "你好,这是value","Hello_key2": "中文测试文字2"
}
*/QFile file(":/tran.json");if (!file.open(QFile::ReadOnly)) {qWarning() << "Cannot open translation file for reading.";return -1;}QJsonDocument doc = QJsonDocument::fromJson(file.readAll(), nullptr);QJsonObject jsonObj = doc.object();for (auto it = jsonObj.begin(); it != jsonObj.end(); ++it) {//将自定义的json文件的翻译字段,加载到我们类的变量中translator.m_texts.insert(it.key(), it.value().toString());}//这里调用后,会在 JBTranslator::translate(...) 方法中查找,并返回翻译好的字符串QString t = QObject::tr("Hello_key");//localized string:  "你好,这是value"qDebug() << "localized string: " << t; MainWindow w;w.show();return a.exec();
}
http://www.yayakq.cn/news/741284/

相关文章:

  • 网站怎么做站内美化怎么更改网站名称
  • 网站建设维护学什么齐鲁建设网站
  • 大悟网站开发营销推广网站建设
  • 岳阳网站岳阳建站西地那非使用三大忌
  • 杭州公司的网站建设公司网站创造
  • 公司网站制作有哪些电脑培训班附近有吗
  • 建设小说网站风险分析为某企业策划一次网络营销活动
  • 自己开发网站需要多少钱番禺高端网站制作
  • 网站建设的意义建站之星官网 discuz
  • 无法访问此网站是什么原因免费高清无专码区直接看
  • 高清做网站插图室内设计培训班有用吗
  • 一般建设企业网站的费用稳定一天赚200块游戏
  • 垫江做网站北京市建设工程信息网ic卡
  • 苏州网站建设功能青岛开发区做网站设计的
  • 该网站尚未备案 腾讯云wordpress第三方登录
  • 深圳品牌网站制作中国电商排名前十名
  • 网站建设中企动力推荐手机一键登录
  • 网站建设报价比较外贸订单怎么找
  • 企业网站需要哪些模块适合html初学者做的网站
  • 微网站 功能js动效网站
  • 阿里云做的网站空间wordpress自适应视频
  • 自己做的网站打不开怎么回事大型网站建站公司
  • 在线logo设计网站浦口区网站建设售后保障
  • 一键生成个人网站seo搜索引擎优化论文
  • 漳州网站设计制作东莞 网站 建设 物流
  • 可以用腾讯企业邮箱域名做网站66建筑网
  • 网站自动跳转wordpress 图片延迟
  • 焦作市住房和城乡建设局网站网页升级访问中新每天正常更新中在线观看
  • 济南建设项目竣工验收公示网站温州网站制作建设
  • 上海html5网站制作电商网站的内容设计