简介

Qt提供了一款优秀的支持Qt C++和Qt Quick应用程序的翻译工具。发布者、翻译者和开发者可以使用这款工具来完成他们的任务。

发布者:承担了全面发布应用程序的责任。通常,他们协调开发者和翻译者的工作,可以使用lupdate工具同步源代码,进行翻译,使用lrelease同步工具为发布应用程序创建运行时使用的翻译文件。

翻译者:可以使用Qt Linguist工具翻译应用程序的文本。当然,这必须要有专业的翻译知识。

开发者:必须创建Qt应用程序能够使用的翻译文本。也应该帮助翻译者识别短语出现的场景。

发布者

Qt Linguist为发布者提供了两款工具-lupdate和lrelease。它们可以处理qmake项目文件,或直接在文件系统上运行。

创建翻译文件

要创建翻译文件:

1 运行lupdate产生一组翻译源(TS)文件,里面含有所有用户可见的文本,但未经过翻译。

2 把生成的TS文件交给翻译者(谁使用Qt Linguist添加翻译)。Qt Linguist关注任何源文本的改变或删除。

3 运行lupdate,可以从应用程序中同步用户可见的文本,它不会破坏任何数据。

4 发布应用程序,运行lrelease,即可读取TS文件,并生成用于应用程序运行时的QM文件。

使用lupdate

用法:
Creator菜单栏,选择:工具->外部->Qt语言家->更新翻译(lupdate)
命令行:lupdate myproject.pro

使用lrelease

用法:
Creator菜单栏,选择:工具->外部->Qt语言家->发布翻译(lrelease )
命令行:lrelease myproject.pro

第一部分:

在上面,源文件中的相关字符串已经使用tr函数包装起来了。现在要做的就是更新这些要翻译的字符串到ts文件。lupdate就是用于扫描pro文件中指定的代码或UI文件中被tr包装起来的文本。

lupdate的使用
lupdate的使用可以使用lupdate --help来查看。
粗略的说一下这个工具的用法:

使用方法:
lupdate [选项] [项目文件]…
lupdate [选项] [源文件 | 路径 | @ lst 文件]…-ts ts 文件 | @ lst 文件

lupdate [选项] 源文件 -ts 目标文件

生成ts文件

此时在pro文件里加入

TRANSLATIONS = zh_hans.ts 生成相应的ts文件
第二步:

翻译者

Qt Linguist是为Qt应用程序添加翻译的工具。

在Qt语言主窗口包含一个菜单栏和以下视图:
上下文(F6):将要被翻译的字符串所在的上下文列表。
字符串(F7):用于查看上下文中翻译的字符串。
短语和表单(F9):用于查看当前字符串所在的上下文,如果上下文源代码可访问。
翻译区:显示源文、进行译文及译文注释。
短语和猜测(F10):用于查看为当前字符串可能的翻译。
警告(F8):查看未通过验证测试的翻译字符串。

翻译区(1)是始终可见。要显示/隐藏其它视图,选择:查看->视图,也可以使用上面列出的快捷键。由于各个窗口为悬浮界面,所以可以通过标题栏任意拖动。

翻译字符串

在Qt Linguist中打开翻译源(TS)文件进行翻译。TS文件是可读的XML文件-包含源短语及其翻译,TS文件通常由lupdate创建与更新。

Qt Linguist在翻译领域显示目标语言,相应的输入字段适应复数形式。当打开多个TS文件同时翻译时,译文和译文注释字段显示为每种语言的。

要翻译字符串:

1选择:文件->打开(Ctrl+O)来加载TS文件。

2在上下文视图中选择一个上下文,来加载翻译的字符串到字符串视图中。

3选择字符串视图中的某个需要翻译的字符串。

4在翻译区域输入当前字符串对应的译文。
5也可以通过双击它从短语和猜测视图中选择现有的翻译。短语是从短语书籍中读取,猜测是在TS文件类似的短语中查找现有的翻译。

6 这项是可选的,可以输入译文注释,方便其他翻译者理解。

7 如果接受这个翻译,按Ctrl+Enter,选择,或点击字符串列表中所选源字符串的左侧图标。

选择:文件->保存,来完成工作。

重复这个过程,直到字符串列表中的所有串标有(接受/正确的)或(接受/警告)标记。然后选择下一个上下文并继续。

选择:查看->统计,可以看原文和译文单词和字符数。

第三部:

所谓发布翻译,就是使用lrelease工具将ts文件转换输出不包含多余信息的qm文件(qm文件是二进制文件,非文本文件)。

lrelease使用简要说明

使用方法:

lrelease [选项] 项目文件

lrelease [选项] ts 文件 [-qm qm 文件]

————————————————
原文链接:https://blog.csdn.net/lvdepeng123/article/details/90719769

Qt Linguist 介绍和简单应用相关推荐

  1. 1.4 Qt工具之Qt Linguist介绍

    转自:http://www.hellotongtong.com/Qt5base1/qtlinguist-intro.html 1.4 Qt工具之Qt Linguist介绍 ***[免费下载源码和PPT ...

  2. Qt Linguist 介绍

    原文: https://blog.csdn.net/liang19890820/article/details/50274409 简介 Qt提供了一款优秀的支持Qt C++和Qt Quick应用程序的 ...

  3. Qt Linguist介绍

    简介 Qt提供了一款优秀的支持Qt C++和Qt Quick应用程序的翻译工具.发布者.翻译者和开发者可以使用这款工具来完成他们的任务. 发布者:承担了全面发布应用程序的责任.通常,他们协调开发者和翻 ...

  4. Qt文档阅读笔记-Qt Concurrent介绍及简单使用

    目录 Getting Started 博主栗子 Getting Started QtConcurrent名称空间提供了高等级的API,这些高级API可以写多线程的程序,并且可以不使用低等级线程所要的东 ...

  5. Qt Linguist翻译 介绍

    转自:https://blog.csdn.net/liang19890820/article/details/50274409 简介 Qt提供了一款优秀的支持Qt C++和Qt Quick应用程序的翻 ...

  6. Qt之语言家的简单使用(一)(Qt翻译UI,Qt Linguist的使用,含源码+注释)

    文章目录 一.翻译程序示例图 二.流程须知(个人理解) 三.关于对话框中QDialogButtonBox翻译的操作 四.源码 CLinguistTest.h CLinguistTest.cpp CLi ...

  7. Qt Linguist 开发人员 programmers

    Qt Linguist 开发人员 programmers Qt Linguist 开发人员 programmers 在Qt项目文件中指定翻译源 国际化应用 部署翻译 讲解 Qt Linguist 开发 ...

  8. Qt Linguist翻译过程概述

    Qt Linguist翻译过程概述 翻译过程概述 翻译过程概述 必须在应用程序中翻译的大多数文本由单个单词或简短短语组成.这些通常显示为窗口标题,菜单项,工具提示以及按钮,复选框和单选按钮的标签. 开 ...

  9. Qt TCP协议 传输简单字符串实例

    TCP协议的程序使用的是客户端/服务器模式,在Qt中提供了QTcpSocket类来编写客户端程序,使用QTcpServer类编写服务器端程序. A 转载:http://mobile.51cto.com ...

最新文章

  1. shell介绍,命令历史,命令补全和别名 ,通配符, 输入输出重定向
  2. Easy Problem 7 求反数字字符串
  3. 中国鱼胶原蛋白行业应用前景与十四五投资建议报告2022年
  4. Spring Boot连接MySQL报错“Internal Server Error”的解决办法
  5. Spring事务传播
  6. BZOJ4237 JOISC2014 稻草人 CDQ分治、单调栈
  7. 悲观锁代码java_悲观锁的代码实现如何编写?
  8. python之__name__
  9. c# 弹性和瞬态故障处理库Polly
  10. 最近对项目代码做的一些更改和感想
  11. Hibernate 注解 没有加@Column一样会在数据库创建这些字段
  12. 【无人驾驶系列】基于ROS的无人驾驶系统
  13. dumpsys命令用法
  14. js的函数抖动和函数节流原理
  15. R-FCN算法的Caffe实现
  16. 人生苦短我用python(02)动态加载模块
  17. 【Android】五种常用布局方式详解(图文+示例)持续更新中...
  18. 学习Java还是学习大数据,哪个好?
  19. 高通MSM8953处理器(CPU)/骁龙625资料介绍
  20. matlab如何编newton-raphson,Matlab中的Newton-Raphson方法

热门文章

  1. 从酒桌游戏看二分查找算法
  2. 【掘金使用技巧8】用掘金编写常用技术指标
  3. fcpx怎么合成延时摄影_延时摄影:如何制作你的第一部延时视频,这里有几个小技巧...
  4. openpyxl:AttributeError: ‘MergedCell’ object attribute ‘value’ is read-only
  5. 统计N 个学生的成绩并输出低于平均水平的人数
  6. 大数据「偏见」会让我们变蠢吗
  7. 呼吸机缺关键零件,意大利小哥用3D打印救命!面临起诉风险,网友:意版“药神”?
  8. php仅显示月份的日历,JSP_用JSP实现的一个日历程序,!-- 显示任意年、月的日历 - phpStudy...
  9. oracle 日历每个月的第一天显示为中文的月份
  10. 从 0 到 1 实现 React 系列 —— 4.优化setState和ref的实现