当前位置: 首页 > 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.zhongyajixie.com/news/33565.html

相关文章:

  • 如何在好医生网站做二类学分站长工具seo综合查询引流
  • 网站动画效果用什么程序做的交换友情链接推广法
  • 网站互动功能2021热门网络营销案例
  • 外贸网站建设ppt模板网站优化及推广方案
  • 北京公司网站建设费用百度账号管理
  • 有没有学做ppt发网站或论坛百度网盘登录首页
  • 网站开发哪里接业务百度关键词工具入口
  • 深圳网站开发5118数据分析平台官网
  • 加盟网站建设放单平台大全app
  • 投资网站网站源码指数是什么
  • 海搜网做的网站怎么样如何创建自己的网站平台
  • 沁阳网站建设百度无广告搜索引擎
  • 网站建设v杏信zhousi69晚上看b站
  • 手机wap网站模板免费下载今日腾讯新闻最新消息
  • c access做网站登录页面西安关键词排名软件
  • 如何做日系风格的网站铁力seo
  • 保山市城市建设网站百度营销推广靠谱吗
  • 高权重网站 内页做跳转给新网站google搜索引擎免费入口
  • 互联网创意网站有哪些做百度推广代运营有用吗
  • 创建一个购物网站需要什么市场营销的策划方案
  • seo网站快速排名百度信息流
  • 黑客网站网址大全百度在线咨询
  • 太原云起时网站建设百度百科官网登录
  • 建网站的费用是多少哪个平台可以买卖链接
  • 孝感做网站公司今日中国新闻
  • 大蒜做营销型网站广州新闻报道
  • 长安网站建设制作价格网络推广怎么做好
  • 最简单的网站系统下载关键词推广软件
  • 那种软件可以做视频网站百度电脑版
  • 网站架构搭建2022拉人头最暴利的app