【实习总结】Qt通过Qt Linguist(语言家)实现多语言支持

目录

技术背景

核心概念

具体步骤

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

第二步:配置项目文件(.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文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值