目录
技术背景
当我们使用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文件

2472

被折叠的 条评论
为什么被折叠?



