首页 > 编程知识 正文

qt软件是干什么的,qt公司全称

时间:2023-05-06 08:02:19 阅读:150197 作者:4288

简介Qt提供了一个优秀的翻译工具,支持Qt C和Qt Quick的APP。 发布器、翻译人员和开发人员可以使用此工具完成任务。

主讲人:负责全面公开APP宣传。 通常,您需要协调开发人员和翻译人员的工作,使用lupdate工具同步和翻译源代码,然后使用lrelease同步工具创建在发布APP发布时使用的翻译文件。

译者:可以使用Qt Linguist工具翻译APP发布的文本。 当然,这需要专业的翻译知识。

开发者:您需要创建可以在Qt APP应用程序中使用的翻译文本。 它也应该有助于译者识别短语出现的场景。

有以上三个作用。 始发者、翻译者和开发者。 当然,大多数情况下,实际上是一个。 那是程序猴子自己,大家都知道。

配置文件发布者使用lupdate创建翻译文件使用lrelease翻译者的翻译字符串更改快捷键Alt快捷键Ctrl使用带有快捷键编号的参数更改目标语言环境的选择上下文翻译开发者使用翻译选择字符串指定翻译源的使用条件,隐藏QML源的国际化APP语,导入翻译以引用更多的引用发行者

Qt Linguist为发布器提供了两种工具:-lupdate和lrelease。 它们可以处理qmake项目文件,也可以直接在文件系统上执行。

创建翻译文件创建翻译文件:

lupdate会生成一组翻译源(TS )文件,其中包含所有用户都可以查看的文本。

将生成的TS文件传递给翻译人员(谁使用Qt Linguist添加翻译)。 Qt Linguist关注更改或删除任何源文本。

lupdate允许您在不破坏数据的情况下同步APP应用程序中用户可以看到的文本。

当发布APP应用程序并运行lrelease时,可以读取TS文件并生成要在执行APP应用程序时使用的QM文件。

lupdate 用法:

Creator菜单栏,选择:工具-外部Qt语言家-更新翻译(lupdate )

命令行: lupdate myproject.pro

lrelease 用法:

Creator菜单栏,选择:工具-外部Qt语言家-发布翻译(lrelease )

命令行: lrelease myproject.pro

译者Qt Linguist是向Qt APP应用程序添加翻译的工具。

Qt语言主窗口包含菜单栏和以下视图:

上下文(F6 ) :要翻译的字符串所在的上下文的列表。

字符串(F7 ) :用于显示上下文中已翻译的字符串。

短语和表单(F9 ) :用于在上下文源可访问时显示当前字符串所在的上下文。

翻译区:显示原文,进行译文和译文注释。

短语和猜测(F10 ) :用于在当前字符串中显示可能的翻译。

警告(F8 ) :显示验证测试失败的翻译字符串。

翻译区(1)总是可见的。 要显示或隐藏其他视图,请选择视图视图视图或使用上述快捷键。 每个窗口都是浮动接口,因此可以从标题栏中自由拖动。

翻译字符串在Qt Linguist中打开翻译源(TS )文件进行翻译。 TS文件是可读的XML文件。 它包含源短语及其翻译,通常由lupdate创建和更新。

Qt Linguist在翻译领域显示目标语言,对应的输入字段适应复数形式。 如果打开多个TS文件并同时翻译,则会针对每种语言显示翻译文本和译文注释字段。

要翻译字符串:

选择:文件-打开Ctrl O以加载ts文件。

在3上下文视图中选择上下文以将翻译的字符串加载到http://www.Sina.com/视图中。

字符串视图中选择要翻译的字符串。

在翻译区域输入与当前字符串对应的译文。

也可以双击,然后从“字符串”视图中选择“现有翻译”。 推测该短语将从短语本中读取,并从TS文件的类似短语中寻找现有的翻译。

这是可选的。 输入译文的注释,以便其他翻译人员可以理解。

如果要接受此翻译,请按Ctrl Enter键进行选择,或者单击字符串列表中选定源字符串左侧的图标。

选择:文件-保存以完成工作。

重复此过程,直到字符串列表中的所有合并标记都显示“接受/正确”或“接受/警告”标记。 然后选择下一个上下文继续。

选择:显示-可以看到统计、原文和译文的单词和字数。

选择:选择文件>提交,以创建与当前翻译文件同名的QM(Qt message )文件。 发布器的命令行工具lrelease具有相同的功能,可以完成APP应用程序的所有翻译源文件。

更改快捷键是键盘的组合,按下时APP应用程序会执行相应的操作。 有两种

型的快捷键:Alt、Ctrl。

Alt快捷键

Alt快捷键被用于菜单以及按钮。如果菜单或按钮的字符带有下划线时,表示按下ALT键和带下划线的字符将和点击菜单项或按下按钮执行相同的操作。

例如,大多数的应用具有一个带有下划线”F”字符的文件菜单”文件(F)”。这时,可以通过点击菜单栏上的按钮或按Alt+F调用即可。为了使快捷键可用,译文中必须包含指定的符号。例如:“File”应该翻译为”文件(&F)”,“Edit(&E)”应该翻译为”编辑(&E)”,

Ctrl快捷键

Ctrl键可以在任何视觉控制中独立存在。它们通常用于调用菜单中的菜单项,否则将需要多次操作键盘或鼠标。也可用于执行没有出现在任何菜单或按钮上的动作。

例如,大多数应用在文件菜单中有一个新建动作。新建动作可能会在文件菜单中显示为”新建Ctrl+N”,这意味着新建动作只需按下Ctrl+N,即可与选择:文件->新建执行相同的操作.

理想情况下,翻译Ctrl快捷键可以选择:译文->从源文中复制(Ctrl+B)。然而,在某些情况下,字符将在目标语言没有意义,也必须改变。无论选择任何一个字符(字母或数字),翻译都必须为”Ctrl+”后跟大写字符格式。Qt会在运行时自动显示正确名称。与Alt快捷键一样,如果译者改变了Ctrl快捷键,那么新的Ctrl快捷键不能与任何其他的Ctrl快捷键冲突。

警告:不要翻译了”Alt”、”Ctrl”、”Shift”快捷键部分。 Qt依赖于这些字符串。对于支持的语言,Qt会自动翻译这些字符串。

处理带编号的参数

有些短语包含带编号的参数。带编号的参数是一个占位符,将在运行时被替换为指定文本。带编号参数以%后跟数字形式出现在源字符串中。

例如:我们需要翻译的文本正如上所述,为可变字符串。

那么我们可以这样处理:

label->setText(tr(“User Name:”)+userName)。

这样提取出来的文本为”User Name:”,我们只需要将其翻译为”用户名:”即可,后面的userName将会在每次执行时动态显示。

更改目标语言环境

如果目标语言和国家没有明确设定,Qt Linguist 将会从翻译的原文件命中解析。例如,app_de.ts设定目标语言为德文,app_de_ch.ts设置目标语言为德文和瑞士。这有助于自动加载翻译当前的语言环境。

如果你的文件不遵守这个习惯,你也可以通过选择:编辑->翻译文件设置来指定信息。

选择上下文进行翻译

上下文窗口中列出了可被翻译的字符串所在的上下文,按照上下文名称顺序列出。每个上下文都是QObject的一个子类的名称,还可以有一个上下文QObject本身,它包含字符串传递到静态函数QObject::tr(),还可以有一个<匿名上下文>,它包含不属于在QObject一个子类的字符串。

下面的图标表示每个上下文的当前翻译状态:

状态图标描述接受/正确上下文中所有字符串都已被翻译,并通过验证测试。接受/警告上下文中所有字符串都被翻译或被标记为翻译,但至少有一个翻译验证测试不通过。在字符串视图中,可以看到字符串失败的测试。不接受至少有一个字符串没有被翻译或不被标记为翻译。废弃的没有课翻译的字符串出现在赏析文中,这意味着上下文本身不再属于应用程序。 选择字符串进行翻译

字符串视图中列出了所有在当前上下文可翻译的字符串。选择字符串使它出现在翻译区。

单击某个字符串前的图标改变它的翻译状态。一个勾,绿色或黄色,表示该字符串已被翻译并且被接受。问号意味着要么该字符串没有被翻译,要么翻译还没有被接受。

下面的图标表示每个字符串的当前翻译状态:

状态图标描述接受/正确源字符串存在翻译(可能为空)。用户已经接受了翻译,并通过所有验证测试。如果译文为空,可以点击图标进行撤销,这时上下文视图的”项”列接受翻译的数量减1,如果lupdate改变一个字符串的内容,其接受状态自动复位变为不被接受状态。接受/警告用户已经接受了翻译,但翻译没有通过所有的验证测试。验证测试失败显示在警告视图。单击该图标可撤销认可的翻译。状态被重置到校验失败,这时上下文视图的”项”列接受翻译的数量减1。不接受字符串已经通过了所有的验证测试,但那是用户没有接受翻译。点击图标或按下Ctrl+Enter来接受翻译,状态被重置为接受/正确,这时上下文视图的”项”列接受翻译的数量加1。未翻译该字符串没有翻译。点击图标以接受空翻译。状态被重置为接受/正确,这时上下文视图的”项”列接受翻译的数量加1。验证失败该字符串有一个翻译,但翻译没有通过所有的验证测试。验证测试失败会显示在警告视图。点击图标或按下Ctrl+Enter接受翻译尽管验证失败。状态被重置为接受/警告。建议编辑翻译来修复验证失败问题。当所有的失败已得到修复,状态将自动重置为不接受。废弃的该字符串已过时,它不再在上下文中使用。 开发者

在Qt应用程序中支持多国语言非常简单,为开发者的工作增加了很小的开销。当然,这会降低运行时性能。

指定翻译源

为了让发布者使用lupdate和lrelease,即可指定一个.pro的Qt工程文件。必须为TRANSLATIONS部分指定每种语言的翻译源。

一个典型的写法是这样的:

TRANSLATIONS = arrowpad_fr.ts arrowpad_nl.ts

翻译文件名中使用的语言环境用于确定在运行时加载哪种语言。欲了解更多信息,请参阅QLocale。

lupdate工具从应用程序中提取的用户界面字符串。它读取应用程序的.pro文件,以确定哪些源文件包含的文本需要被翻译。这意味着源文件都必须被列在.pro中。如果文件没有列出,其中的文本则不会被发现。

一个有四个翻译源文件的完整.pro例子:

HEADERS = main-dlg.h options-dlg.hSOURCES = main-dlg.cpp options-dlg.cpp main.cppFORMS = search-dlg.uiTRANSLATIONS = superapp_dk.ts superapp_fi.ts superapp_no.ts superapp_se.ts

如果你的编译器和运行系统使用不同的编码,并要使用非ASCII字符的字符串,则需要设置CODECFORSRC。 例如:

CODECFORSRC = UTF-8 使用条件来隐藏QML来源

SOURCES变量是用于C++的源文件。如果列出QML或JavaScript源文件存在,编译器试图像C++一样构建他们。作为一种变通方法,您可以使用lupdate_only{…}条件语句,所以lupdate工具看到.qml文件,但C++编译器会忽略它们。

例如,下面的.pro文件指定了应用程序中的2个qml文件:

lupdate_only {SOURCES = main.qml MainPage.qml}

也可以指定.qml源文件的通配符匹配。搜索不是递归的,所以你需要指定每个目录里的位置:

lupdate_only {SOURCES = *.qml *.js content/*.qml content/*.js} 国际化应用

设计应用程序,使其可以适应各种语言和地区没有工程变更。Qt试图使你的国际化尽可能的简单。所有输入控件和文本绘制方法Qt中提供内置所有语言支持。但编写源代码时仍然需要记住以下几点考虑:

让您的应用程序查找和加载适当的翻译文件。

让用户可见的文字和Ctrl快捷键作为目标进行翻译。

提供文本翻译的上下文。

消除歧义相同的文本。

使用编号参数(%n)作为参数占位符在运行时替换文本或数字。

国际化数字、日期、时间、货币。

标记数据文本字符串函数外翻译。

你可以使用C++和QML源在同一应用程序中,甚至有两个来源的用户接口字符串。该工具创建一个组合的翻译文件,字符串可以从C++和QML访问。

支持国际化的Qt应用程序的类可以参考:Qt国际化。
源代码翻译的过程可以参考:编写源代码翻译、Qt Quick国际化和本地化。

部署翻译

应用程序所需的.qm文件应放置在使用QTranslator加载代码可以找到他们的位置中。通常,通过指定相对QCoreApplication::applicationDirPath()的路径来完成。

通常,有用于应用程序.qm文件,并且,如果一个版本的Qt使用未安装在系统上,Qt的.qm文件需要被部署为好。

在Qt4中,有一个很大的、整体的.qm每个区域设置文件。例如,文件qt_de.qm包含了所有的德语翻译库。

在Qt5中,.qm文件由模块拆分,有一个所谓的元目录文件,其中包含的所有模块的.qm文件。元目录文件的名称和Qt4整体.qm文件的名称是相同的,以便现有的装载程序的工作原理和之前提供的所有包括.qm文件一样被发现。

然而,没有必要总部署所有Qt5的.qm文件。建议连接匹配源目录名模块的.qm文件在部署阶段使用工具lconvert 。例如,创建一个德语翻译文件使用模块Qt Core、Qt GUI、和Qt Quick,运行:

lconvert -o installation_folder/qt_de.qm qtbase_de.qm qtdeclarative_de.qm 更多参考

下面的教程介绍如何准备Qt应用翻译:

Hello tr() Arrow Pad Troll PrintInternationalization

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。