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

台州网站设计承接工程平台

台州网站设计,承接工程平台,网站软件app,aspnet网站开发教程目录 技术背景 核心概念 具体步骤 第一步:标记需要翻译文本 第二步:配置项目文件(.pro) 第三步:运行lupdate生成.ts文件 第四步:翻译人员通过Qt 语言家翻译文本 第五步: 运行lrelease生成.qm文件 第六步&#…

目录

技术背景

核心概念

具体步骤

第一步:标记需要翻译文本

第二步:配置项目文件(.pro)

第三步:运行lupdate生成.ts文件

第四步:翻译人员通过Qt 语言家翻译文本

第五步: 运行lrelease生成.qm文件

第六步:在程序中加载.qm文件


技术背景

        当我们使用Qt开发软件,需要支持多语言切换,以此来实现软件国际化,在介绍之前,我们需要了解下如果没有qt语言家,我们会怎么实现多语言的。

        比如在MFC中,通过在定于多个xml文件(每个语言一个xml文件),在xml文件中,为每一个需要支持多语言的字符串定义一个唯一的、固定的ID,并写上对应语言的文本,如下:

<Dlg DlgId="25010"><IDS ID="1" String="确定" /><IDS ID="2" String="取消" />
</Dlg>

        然后在程序启动或切换语言的时候,根据选择的语言,读取并解析对应的xml文件。此时Qt Linguist提供的是一个 完整、成熟、工业级的国际化解决方案 ,而不仅仅是一个文件格式。它通过强大的工具链将繁琐、易错的手动操作自动化。

核心概念

在开始具体步骤的介绍之前,我们需要认识一下几个核心文件和工具。

1、tr()函数

        这是我们需要在代码中使用的函数,用来标记所有需要被翻译的文本,他就像一个记号,告诉qt,这个文本是需要替换成其他语言的。

2、.pro文件

        Qt项目的配置文件,我们需要在这里告诉Qt,我们的项目需要支持哪些语言。

3、.ts文件

这是一个基于XML格式的翻译源软件,它由Qt的工具生成,里面包含了所有被tr()函数标记过的原始文本,这个文件是给翻译人员使用的,他们用Qt Linguist工具打开它,然后逐条译文。

4、.qm文件

这是一个已编译的、二进制格式的翻译软件,它是由.ts文件发布生成的,体积更小,速度更快,这个文件是给程序在运行的时候使用的,程序会加载它来查找并显示翻译后的文本

5、lupdate工具

一个命令行工具,他的作用是扫描源代码(.cpp,.h,.ui文件),找出所有被tr()函数标记的字符串,然后生成或更新.ts文件

6、Qt Linguist工具

一个图形界面的翻译软件,翻译人员用它来打开.ts文件,然后方便填写译文。

7、lrelease工具

另一个命令行工具,它的作用是将已经翻译好的.ts文件转换成程序最终使用的二进制.qm文件。

具体步骤

第一步:标记需要翻译文本

        我们需要在代码中标记待翻译的字符串,这是最基础也是最重要的一步,需要使用到上面所介绍的tr()函数,如下:

QLabel *label = new QLabel(tr("Hello World"));
QPushButton *button = new QPushButton(tr("Submit"));

第二步:配置项目文件(.pro)

        在标记完待翻译的字符串之后,我们需要告诉Qt,项目需要哪些目标语言,这样lupdate工具会根据这个配置来生成相应语言的.ts文件.

那么要怎么配置.pro文件呢?

如下,在.pro文件中添加一个TRANSLATIONS变量,列出所有需要的.ts文件

TRANSLATIONS = \language_zh_CN.ts \language_fr.ts

这里的ts文件名可以自定义的,但通常需要包含语言简写以便区分。 

第三步:运行lupdate生成.ts文件

        现在,让lupdate工具自动为我们创建翻译源文件,省去了我们手动创建待翻译文本的XML文件的步骤。

执行完之后,我们在项目目录下便可以看到添加的.ts文件 。

第四步:翻译人员通过Qt 语言家翻译文本

先点击文件->打开文件

选择要进行翻译的语言对应的.ts文件 

 使用Qt Linguist打开

Qt Linguist提供一个非常友好的界面,他会逐条显示原文,我们只需要再旁边的输入框里填入译

即可,如下

在条框输入译文之后,可以点击工具栏上的“对号”图标(或者按Ctrl+Enter)确认该条翻译完成,如下

第五步: 运行lrelease生成.qm文件

翻译工作完成后,我们需要将.ts文件转换成程序能高效使用的格式。因为.ts文件是xml格式,方便我们阅读和编辑,但是解析慢,体积大。.qm是紧凑的二进制格式,程序加载和查找速度极快,适合在运行中使用,可以减小应用的体积和提高速度。

步骤:在Qt Creator中,点击菜单栏的 “工具” -> “外部” -> “Linguist” -> “发布翻译(lrelease)” 。

执行后,每个.ts文件旁边都会生成一个同名的.qm文件 。

第六步:在程序中加载.qm文件

程序本身不会自动加载翻译文件,我们必须在代码中告诉程序,现在用户选择了什么语言,请加载对应的.qm文件,并进行替换。

#include "mainwindow.h"
#include <QApplication>
#include <QTranslator>   // 1. 包含头文件
#include <QLocale>       // 用于获取系统语言int main(int argc, char *argv[])
{QApplication a(argc, argv);// 2. 创建翻译家对象QTranslator translator;// 3. 根据当前系统语言加载对应的.qm文件// 这里假设.qm文件和可执行文件在同一目录下的i18n文件夹中// 或者你也可以使用Qt资源系统(.qrc)来将.qm文件编译到程序内部QString lang = QLocale::system().name(); // 例如 "zh_CN"if (translator.load(":/i18n/language_" + lang)) { // 从资源文件加载// 4. 安装翻译家到应用程序a.installTranslator(&translator);}MainWindow w;w.show();return a.exec();
}

        当翻译家对象成功加载了翻译文件,这里的a.installTranslator(&translator)就是将这个translator安装到整个应用程序a中,一旦安装成功,Qt 的事件循环就会自动拦截所有需要显示文本的地方(比如 QLabel 的文本、 QPushButton 的按钮名等),如果这些文本被 tr() 函数标记过,Qt 就会拿着原文去 translator 里查找对应的译文,并显示译文而不是原文。

http://www.dtcms.com/a/534847.html

相关文章:

  • 网站是用什么做的seo优化推广工程师招聘
  • 网站服务器位置查询建网站如何上传
  • 如何检测网站是否安全建设工程检测中心网站
  • 网站开发还有哪些wordpress著名网站
  • 青岛网站建设鲁捷云wordpress导航特效
  • 网站设计应该考虑的重要因素做网站添加本地图片
  • 网站 建设在作用是什么意思网站建设小江网页设计
  • 怎样制作一个网站网站建站论坛
  • 网站模板免费吗北京市网络推广竞价
  • 网站群系统破解版南京房地产网站
  • 工程造价信息网官网入口贵阳网站搜索优化
  • 网站建设公司有哪些重要职务网站制作工具
  • 百度站长论坛wordpress项目管理主题
  • 安庆网站建设哪家好网站改版的宣传词
  • 金堂做网站的公司做行业导航网站好
  • 官方购物网站正品外贸企业网站对外贸的重要性
  • 商城网站开发解决方案wordpress变成静态网页
  • 科技期刊网站建设cms 企业网站管理系统
  • 巴中网站建设网站推广揭阳网站建设托管
  • 一个域名两个网站昆明网站建设服务至上
  • wordpress大站市场营销渠道
  • 指纹定制网站学历提升机构哪家好
  • 专业建站公司前景网站源码超市 下载
  • 找人建设网站站酷高高手
  • 保洁产品网站建设价格工业设计产品开发
  • 昆明网站优化建设网站开发前台代码和后台代码
  • 做网站编辑好听罕见绝不重名的公司名称
  • 不用代码做网站电子商务网站建设教学计划
  • 手机网站模板更换方法网站sem怎么做
  • 深圳网站ui设计可以免费发布招聘网站