我有一个简单的.pro
Qt Creator项目.我在Qt .ui
XML表单文件中有大部分(如果不是全部)应用程序文本.我想使用Qt Linguist翻译该项目中的文本,但我不知道如何开始.互联网上没有有用的"Qt Linguist入门"文章.页面自豪地称自己Qt Linguist手册也不是很有用,因为它只包含通用信息,而不是实用的提示.
我在Qt Creator中找到了这些项目:
我不太清楚如何使它们工作以及它们与Qt Linguist的关系是什么,它是完全独立的应用程序.我打开了Qt Linguist,它甚至没有包含任何File
- > New...
项目菜单,这是我要开始的地方.
一开始它需要相当多的工作,但那都是自动的.
源代码
在源文件中,您必须将可翻译的字符串放在tr()
函数中.所有QObject派生类都有自己的tr()
函数.对于该类中的字符串,使用该类的tr函数:代替
QString str ="string to be translated";
使用
QString str = MyClass::tr("string to be translated");
如果该类没有tr()
使用功能
QString str = QOject::tr("string to be translated");
Qt Creator
在Qt Creator中,您可以转到Tools/External/Configure ...并填写lupdate和lrelease的位置.您可以对其位置进行硬编码或使用宏.这些实用程序位于Qt安装位置的bin子目录中.
ts文件
假设您要从英语翻译成荷兰语.您将需要两个文件.我们会打电话给他们:myapp_en.ts
和myapp_nl.ts
.原则上,您不需要包含英语ts文件,但它有助于将英语与另一种语言放在同一个基础上.
项目文件
添加到专业文件
TRANSLATIONS+= /path_to_/myapp_en.ts TRANSLATIONS+= /path_to_/myapp_nl.ts
第一次ts文件
第一次运行lupdate时,将创建ts文件.
实际翻译
用Qt Linguist打开ts文件.您可以设置此文件的某些属性.现在,所有需要翻译的字符串都应该在ts文件的Qt Linguist视图中可见.您可以插入翻译.并保存修改后的ts文件.
更新ts文件
每次更改源代码都应该运行lupdate.使用Qt Linguist添加任何新字符串的翻译并运行lupdate然后lrelease.程序lrelease将文本文件转换为压缩二进制文件(扩展名"qm").
加载翻译
现在唯一要做的就是告诉应用程序加载特定的转换(即加载特定的qm文件).您可以使用具有出色文档的Qt类QTranslator执行此操作.