我如何开始使用QT语言学家翻译我的QtCreator项目?
我有一个简单的我如何开始使用QT语言学家翻译我的QtCreator项目?,qt,qt-linguist,Qt,Qt Linguist,我有一个简单的.proQt-Creator项目。我的大部分(如果不是全部的话)应用程序文本都在Qt.uiXML表单文件中。我想用Qt语言学家来翻译那个项目中的文本,但我不知道如何开始。互联网上没有有用的“Qt语言学家入门”文章。页面自豪地称自己也不是很有帮助,因为它只包含一般信息,而不是实用提示 我在Qt Creator中找到了以下项目: 我不太确定该怎么做才能让它们工作,它们与Qt语言学家有什么关系,Qt语言学家是一个完全独立的应用程序。我打开了Qt Linguist,它甚至不包含任何文件-
.pro
Qt-Creator项目。我的大部分(如果不是全部的话)应用程序文本都在Qt.ui
XML表单文件中。我想用Qt语言学家来翻译那个项目中的文本,但我不知道如何开始。互联网上没有有用的“Qt语言学家入门”文章。页面自豪地称自己也不是很有帮助,因为它只包含一般信息,而不是实用提示
我在Qt Creator中找到了以下项目:
我不太确定该怎么做才能让它们工作,它们与Qt语言学家有什么关系,Qt语言学家是一个完全独立的应用程序。我打开了Qt Linguist,它甚至不包含任何
文件
->新建…
项菜单,这就是我要开始的地方。开始时,它需要相当多的工作,但随后它是全自动的
源代码
在源文件中,必须将可翻译字符串放入tr()
函数中。所有QObject派生类都有自己的tr()
函数。对于该类中的字符串,使用该类的tr函数:so代替
QString str ="string to be translated";
使用
如果类没有tr()
函数,请使用
QString str = QOject::tr("string to be translated");
Qt创建者
在Qt Creator中,您进入工具/外部/配置。。。并填写lupdate和lrelease的位置。您可以硬编码它们的位置或使用宏。这些实用程序位于Qt安装位置的bin子目录中
ts文件
假设你想把英语翻译成荷兰语。您将需要两个文件。我们将它们命名为:myapp_en.ts
和myapp_nl.ts
。原则上,您不需要包含英语ts文件,但它有助于将英语与另一种语言同等对待
项目文件
添加到pro文件中
TRANSLATIONS+= /path_to_/myapp_en.ts
TRANSLATIONS+= /path_to_/myapp_nl.ts
第一次使用ts文件
第一次运行lupdate时,将创建ts文件
实际翻译
使用Qt-Linguist打开ts文件。您可以设置此文件的某些属性。所有需要翻译的字符串现在应该在ts文件的Qt Linguagist视图中可见。您可以插入翻译。并保存修改后的ts文件
更新ts文件
任何时候更改源代码都应该运行lupdate。使用Qt-Linguist添加任何新字符串的翻译,然后运行lupdate和lrelease。程序lrelease将文本文件转换为压缩的二进制文件(扩展名“qm”)
加载转换
现在只剩下告诉应用程序加载特定的翻译(即加载特定的qm文件)。使用Qt类QTranslator执行此操作。将能够查看“.ts”文件选择任何单个文件右键单击,查看是否显示使用qt4 Languagist打开文件的选项
如果不查看,请转到属性/使用打开在最后会有一个重置按钮,点击就可以看到了 如果没有安装软件包“qt4开发工具-下载qt语言专家”
Vicky Sharma你好,谢谢你的回答。我有一个问题,那就是Qt语言学家不会打开空文件。它抱怨文件意外结束。这使我无法实际创建Qt翻译文件……好的,正确的方法是:不创建文件,在
.pro
文件中写入文件名,然后运行lupdate
。感谢您提供有关qt4开发工具的提示。我有点绝望地寻找QT语言学家,但没有成功。
TRANSLATIONS+= /path_to_/myapp_en.ts
TRANSLATIONS+= /path_to_/myapp_nl.ts