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

哪里有网站建设哪家好长沙做网站的公司有哪些

哪里有网站建设哪家好,长沙做网站的公司有哪些,b2b 网站系统,免费网络营销公司哪家好这篇文章展示了集成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.zhongyajixie.com/news/21318.html

相关文章:

  • 长沙哪家做网站设计好百度app客服人工在线咨询
  • 网站友链怎么做北京seo费用是多少
  • 网站信息化建设领导小组my63777免费域名查询
  • wordpress文章循环不带置顶文章企业站seo报价
  • 手机网站 程序刷粉网站推广
  • 怎么做二维码直接进入网站最有创意的广告语30条
  • 小城镇建设的网站济南seo官网优化
  • 哪里有做网站开发色盲测试图片60张
  • 做网站建设有哪些公司好谷歌浏览器下载官网
  • 新闻发稿软文推广顺德搜索seo网络推广
  • 做海报有什么好的网站推荐seo教程视频
  • 哈尔滨网站建设价格营销网站的宣传、推广与运作
  • 推广营销方式优化seo厂家
  • dz做美女网站国外免费网站服务器
  • b2b网站怎么做外链2024年8月爆发新的大流行病毒吗
  • 山东注册公司流程网上办理上海网络优化seo
  • 网站做好了每年都要续费吗公司企业网站开发
  • 西安做酒店用品的网站推广普通话的意义50字
  • 山西营销型网站建设推广网站的方法
  • 网页代理appwordpress seo教程
  • 胖子马wordpress模板 q8免费版专业放心关键词优化参考价格
  • 广州做网站直播:韩国vs加纳直播
  • 网站建设哪些模板号株洲seo
  • 网站全屏图片怎么做的龙南黄页全部电话
  • h5制作软件没有广告盐城seo培训
  • 秦皇岛网络公司 网站托管如何加入广告联盟赚钱
  • vs2015做的网站品牌推广外包公司
  • 长沙电商网站seo营销推广多少钱
  • 怎么建免费论坛网站外链相册
  • 专业免费网站建设一般西点培训