4

我有一个简单的.proQt Creator 项目。我在 Qt .uiXML 表单文件中拥有大部分(如果不是全部)我的应用程序文本。我想使用 Qt Linguist 翻译该项目中的文本,但我不知道如何开始。互联网上没有有用的“Qt Linguist 入门”文章。页面自豪地称自己为Qt 语言学家手册也不是很有帮助,因为它只包含通用信息,而不是实用提示。

我在 Qt Creator 中找到了这些项目:

图片说明

我不太确定如何使它们工作,以及它们与完全独立的应用程序 Qt Linguist 有什么关系。我打开了 Qt Linguist,它甚至不包含任何File->New...项目菜单,这是我要开始的地方。

4

2 回答 2

11

一开始它需要相当多的工作,但后来它都是自动的。

源代码

在您的源文件中,您必须将可翻译的字符串放入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 创作者

在 Qt Creator 中,您转到 Tools/External/Configure... 并填写 lupdate 和 lrelease 的位置。您可以硬编码它们的位置或使用宏。这些实用程序位于 Qt 安装位置的 bin 子目录中。

ts 文件

假设您想从英语翻译成荷兰语。您将需要两个文件。我们将它们称为:myapp_en.tsmyapp_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 来完成此操作。

于 2015-12-20T20:34:27.643 回答
1

将能够查看“.ts”文件选择任何单个文件右键单击并查看它是否显示使用 qt4 语言学家打开文件的选项?

如果没有查看去属性/打开
最后会有一个重置按钮点击现在可以看到。

如果没有安装包“qt4-dev-tools - 下载 qt linguist”

维姬夏尔马

于 2016-05-18T12:24:39.647 回答