gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 22:19:45 25 4
gpt4 key购买 nike

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

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

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

最佳答案

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

源代码

在您的源文件中,您必须将可翻译的字符串放入 tr() 函数中。所有 QObject 派生类都有自己的 tr() 函数。对于该类中的字符串,请使用该类的 tr 函数:so 而不是

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.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 View 中可见。您可以插入翻译。并保存修改后的ts文件。

更新 ts 文件

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

加载翻译

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

关于qt - 我如何开始使用 QtLinguist 来翻译我的 QtCreator 项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34376817/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com