我如何开始使用 QtLinguist 来翻译我的 QtCreator 项目?

How do I start using QtLinguist to translate my QtCreator project?

我有一个简单的 .pro Qt Creator 项目。我的大部分(如果不是全部)应用程序文本都在 Qt .ui XML 表单文件中。我想使用 Qt Linguist 来翻译那个项目中的文本,但我不知道如何开始。互联网上没有有用的 "Getting started with Qt Linguist" 文章。自豪地称自己为 Qt Linguist Manual 的页面也不是很有帮助,因为它只包含一般信息,而不是实用提示。

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

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

一开始需要做很多工作,但后来就完全自动了。

源代码

在您的源文件中,您必须将可翻译的字符串放入 tr() 函数中。所有派生的 QObject classes 都有自己的 tr() 函数。对于 class 内的字符串,请使用 class 的 tr 函数:因此代替

QString str ="string to be translated";

使用

QString str = MyClass::tr("string to be translated");

如果class没有tr()函数使用

QString str = QOject::tr("string to be translated");

Qt Creator

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

ts 文件

假设您要将英语翻译成荷兰语。您将需要两个文件。我们称它们为: myapp_en.tsmyapp_nl.ts 。原则上您不需要包含英语 ts 文件,但它有助于将英语与另一种语言同等对待。

项目文件

添加到 pro 文件

TRANSLATIONS+=  /path_to_/myapp_en.ts

TRANSLATIONS+=  /path_to_/myapp_nl.ts

第一次ts文件

第一次 运行 lupdate 时将创建 ts 文件。

实际翻译

用Qt Linguist打开ts文件。您可以设置此文件的一些属性。所有需要翻译的字符串现在都应该在 ts 文件的 Qt Linguist 视图中可见。您可以插入翻译。并保存修改后的ts文件。

更新ts文件

只要您更改了源代码,就应该运行 更新。使用 Qt Linguist 和 运行 lupdate 添加任何新字符串的翻译,然后使用 lrelease。程序 lrelease 将文本文件转换为压缩的二进制文件(扩展名 "qm")。

加载翻译

现在唯一剩下的就是告诉您的应用程序加载特定的翻译(即加载特定的 qm 文件)。您可以使用带有 excellent documentation.

的 Qt class QTranslator 执行此操作

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

如果不查看,请使用
转到properties/open 在最后会有一个reset按钮点击就可以看到了。

如果不安装包"qt4-dev-tools - to download qt linguist"

维琪夏尔马