Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我如何开始使用QT语言学家翻译我的QtCreator项目?_Qt_Qt Linguist - Fatal编程技术网

我如何开始使用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