User Interface Text Guidelines

请遵循本节中的准则,以确保扩展与Qt Creator UI保持一致,并且可以轻松地将其本地化为其他语言。

编写UI文本时,请确保它:

  • 与现有的Qt Creator用户界面条款一致
  • 简明扼要
  • 中性,描述性和事实正确
  • 明确的
  • 可翻译成不同的语言

语法和风格

所有UI文本必须为语法正确的英语,并使用标准形式的书面语言。不要使用方言。使用惯用语言,即英语特有的表达。如果可能,请以英语为母语的人进行评论。

用户界面文本应简洁明了且经济实惠。避免使用不必要的内容词和短语。但是,更重要的是使文本有用且易于理解。

避免以第二个人称称呼用户。使用中性语调或被动语态,但在必要时使用称呼。称呼用户时,请避免使用“请”一词。例外情况是一些版权文本和简短的命令式句子,否则听起来可能会粗鲁。例如,请稍候

避免在菜单名称和项目中使用缩写。如果没有足够的空间可以完整拼写或连字,请根据英语缩写规则将文本缩写。

避免缩写。例如,使用cannot 而不是can't

标点

避免在菜单名称和菜单项中使用标点符号或特殊字符。

使用标点符号如下:

  • 在消息中使用句号。
  • 切勿在菜单项名称的末尾使用句号(.)。
  • 放置三个句号(...)在菜单项名称的末尾,这将打开一个需要用户操作的对话框。
  • 使用感叹号(!),仅在需要用户特别注意或特别重要的文本中。
  • 在变量值周围使用引号("")。 例如,关闭项目"qtcreator"。为了保持一致,请在用户可见的字符串中使用双引号突出显示或设置文件名,目录名,URL等。
  • 不要使用前导,尾随或多个空格来对齐消息中的文本,因为翻译工具可能无法正确处理它们。

编写工具提示tooltips

工具提示包含有关图标,菜单项或其他UI元素的有用信息。当用户将鼠标指针放在UI元素上时,它们就会出现。您还可以向用户界面添加始终可见的描述性文本。

对于图标,可以将命令名用作工具提示。在这种情况下,请使用书本样式大写(book style capitalization),并且不要在工具提示后添加句点。

工具提示也可以包含完整的句子。尝试使它们尽可能短而简洁,同时仍使它们在语法上正确。就像对任何句子一样,使用句子样式大写(sentence style capitalization)和标点符号。

设计模式中编写工具提示

在Qt Designer中,将纯文本用作工具提示。要获得更多格式,请在富文本编辑器的源选项卡中,编写简短的规范HTML:<html><head/><body><b>Note:</b> text.

Qt Designer具有简化富文本格式的功能(默认情况下处于启用状态),但仍然应通过查看源选项卡进行验证。

编写消息

检查消息是否简洁明了且经济合理。 但是,更重要的是消息是有用的并且易于理解。

尽量减少使用许多新的和不同的句子结构。 重用在类似情况下使用的句子结构。 例如:

  • 无法将日志作为所选消息类型发送。文字太长。
  • 无法接收图像。
  • 无法插入图片。 文字长度上限为120个字符。
  • 图片名称已被使用。
  • 文件夹名称已被使用。

UI文本大写

使用两种样式,书名和句子样式(book title and sentence style):

  • 示例 Example of Book Title Capitalization

  • 示例 Example of sentence style capitalization

使用书本样式大写

使用书本样式大写时,大写所有单词,除少于五个字母的介词(例如,是'with'而不是'Without'),连词(例如,and, or, but)和冠词(a, an, the )。 但是,请始终将大写第一个和最后一个的上述单词。

将书本样式大写用于:

  • 标题(窗口,对话框,组框,选项卡,列表视图列等)
  • 功能(菜单项,按钮)
  • 可选择项目(组合框项目,列表框项目,树形列表项目等)

检查书本样式大写

您可以使用\doc\titlecase文件夹中的to-title-case.js脚本来检查UI文本或文档中标题的书籍样式大写:

  1. 在浏览器中打开to-title-case.html。
  2. 在字段中输入用户界面文本。
  3. 单击转换。

带有建议的书本样式大写的UI文本显示在右侧的字段中。

使用句子样式大写

当使用句子样式大写时,除专有名称外,仅大写第一个字母。

将句子样式大写用于:

  • 标签
  • 工具提示
  • 描述性文本
  • 其他非头或标题文字

准备本地化

Qt Creator已本地化为多种语言。一致性和简洁性使UI文本更易于翻译。

标记UI文本进行翻译

确保呈现给用户的文本字符串易于翻译。用户界面文本字符串包含在tr()调用中,并在翻译过程中从源代码中提取。因此,翻译器可能不知道消息的源代码上下文。

您可以添加注释,使之在Qt Linguist( //:)中可见,以阐明上下文。例如:

  //: Contact book "Add person" button label
return tr("Add");

如果该类不是Q_OBJECT,请使用QCoreApplication::translate("class context", "message")或考虑使用Q_DECLARE_TR_FUNCTIONS。不要使用QObject::tr(),这会造成混淆,因为消息在Qt Linguist中按类上下文分组显示,而与QObject绑定的消息没有类上下文。

传递给tr().arg()的文件和目录名称,使用QDir::toNativeSeparators()。

不要使用跨越整个字符串的标记,因为这会使翻译人员感到困惑。例如,不采用:

tr("<html><head/><body><span>UI Text</span></body></html>")

采用

QLatin1String("<html><head/><body><span>") + tr("UI Text") + QLatin1String("/span></body></html>")

语言或书写系统的特征

为了使扩展本地化,请考虑语言和书写系统对实现的影响。

不好意思,这一小节我也看的不知所云,大家感兴趣直接看原文吧,sry

语言或书写系统的特征 对实现的影响
字序 不同的语言具有不同的字序规则。
不要使用运行时串联。 请使用完整的短语和"%1"格式。 例如,使用:
tr("Foo failed: %1").arg(message)
代替
tr("Foo failed: ") + message
单数,复数,对偶形式 某些语言没有复数形式(例如,中文和日语),而另一些语言具有双重形式。
在布局设计中为文本扩展留出空间。 一些语言需要更多空间来表示多个或双重性以传达所需的信息。
例如使用
tr("%n files found", 0, number)
代替
tr("%1 files found").arg(number)
性别 有些语言具有性别(女性,男性,中性),而有些则没有(例如芬兰语)或没有广泛使用(例如英语)。
不要重复使用文本字符串。 由于基本单词的性别,同一术语可能无法在其他情况下使用。
文章在某些语言中具有语法性别,而且在英语中句子不如容易被构造。 避免以下类型的构造:
tr("%1 failed").arg(someCondition ? "the operation" : "opening a file")

Qt Creator通用条款

本节总结了用于常见Qt Creator UI组件的术语。 它还描述了命名不同类型的UI组件的约定。

始终检查您打算使用的术语在UI中是否没有其他含义。如果已经存在合适的术语,请使用它。 例如,将查找Find用于搜索,将新建New用于创建新对象的向导。

有关如何添加UI组件的更多信息,请参见Common Extension Tasks

UI文本 使用 约定
上下文菜单 当用户右键单击屏幕时打开。 内容取决于上下文。 您可以添加与特定上下文相关的菜单项。 请遵循命名菜单项的约定。
对话框 用户界面元素通常包含许多选择,或允许用户向应用程序提供输入。 当用户选择菜单项或按钮时打开。 使用菜单项或按钮名称作为对话框名称。 您也可以将菜单项或按钮名称与对话框中管理的对象名称结合在一起。例如,文档选项中的添加按钮将打开添加文档对话框。
定位器 使您不仅可以浏览文件,还可以浏览定位过滤器(locator filter)得到的任何条目。 您可以添加定位过滤器。 检查过滤器是否尚未使用,并为其指定描述性名称。
菜单 包含代表命令或选项的菜单项,并在逻辑上进行分组和显示。 菜单也可以包含子菜单。 您可以创建新菜单。 使用与现有菜单名称一致的简短但描述性的名称。 使用无歧义的名称。
菜单项 表示供用户选择的命令或选项。 您可以将新条目添加到菜单。 使用与现有菜单名称一致的简短但描述性的名称。 使用无歧义的名称。
消息框 以状态信息,警告或错误消息的形式向用户提供反馈的对话框。

来自Qt Creator的输出应该显示在输出面板中。

使用事件作为标题,并在消息框中提供解决方案。
模式 模式对应于全屏幕控件,专门用于任务。 例如,您可以为新型编辑器添加模式。 使用描述性但简短的模式名称。 它们必须适合于模式选择器。
输出面板 任务面板中显示的面板,显示Qt Creator的输出。 对输出面板使用描述性名称。
侧边栏 在编辑和调试模式下可用的视图,可用于浏览项目,文件和书签,以及查看类层次结构。 您可以将视图添加到侧边栏菜单。 使用描述性名称。
视图 屏幕上为用户显示信息,以及为用户提供管理信息功能的区域。 调试模式下可用,用于与在调试器控制下运行的程序进行交互。 对视图使用描述性名称。

原创造福大家,共享改变世界

献出一片爱心,温暖作者心灵


qt creator源码全方面分析(2-6)的更多相关文章

  1. qt creator源码全方面分析(3-3)

    目录 qtcreatordata.pri 定义stripStaticBase替换函数 设置自定义编译和安装 QMAKE_EXTRA_COMPILERS Adding Compilers 示例1 示例2 ...

  2. qt creator源码全方面分析(3-5)

    目录 qtcreatorlibrary.pri 使用实例 上半部 下半部 结果 qtcreatorlibrary.pri 上一章节,我们介绍了src.pro,这里乘此机会,把src目录下的所有项目文件 ...

  3. qt creator源码全方面分析(0)

    本人主攻C++和Qt. 上两天刚研究完Qt install framework(IFW)应用程序安装框架. google没发现有正儿八经的官方文档的翻译,我就进行了翻译哈!! 系列文章具体见:http ...

  4. qt creator源码全方面分析(4-0)

    Qt系统 Qt Creator源码是在Qt对象和框架基础下写的,因此,阅读Qt Creator源码,你首先对Qt得有一定的了解. Qt Core Qt Core特征: The Meta-Object ...

  5. qt creator源码全方面分析(4-2)

    目录 global头文件 global.h xx.h global头文件 插件的本质就是动态链接库,对于库,需要导出符号,供用户导入使用.在qt creator的源码中,存在固定的导入导出模式. gl ...

  6. qt creator源码全方面分析(4-5)

    目录 Qt中的字符串 QLatinString 详细介绍 源码 小结 QStringLiteral(str) 详细介绍 源码 小结 Qt中的字符串 Qt中处理字符串最常用的肯定是QString,但是在 ...

  7. qt creator源码全方面分析(4-6)

    目录 Qt插件基础 Qt插件基础 我们知道Qt Creator源码是基于插件架构的,那么我们先来介绍下插件基础知识. 相关内容如下: How to Create Qt Plugins [ - Defi ...

  8. qt creator源码全方面分析(3-2)

    目录 qtcreator.pri 判断重复包含 定义版本信息 VERSION 定义IDE名称 启用C++14 CONFIG 自定义函数 Replace Functions Test Functions ...

  9. qt creator源码全方面分析(2-7)

    目录 Completing Code 补全代码片段 编辑代码片段 添加和编辑片段 删除片段 重置片段 补全Nim代码 Completing Code 在编写代码时,Qt Creator建议使用属性,I ...

  10. qt creator源码全方面分析(2-10-1)

    目录 Getting and Building Qt Creator 获取Qt 获取和构建Qt Creator Getting and Building Qt Creator 待办事项:应该对此进行扩 ...

随机推荐

  1. 1023 组个最小数 (20 分)C语言

    给定数字 0-9 各若干个.你可以以任意顺序排列这些数字,但必须全部使用.目标是使得最后得到的数尽可能小(注意 0 不能做首位).例如:给定两个 0,两个 1,三个 5,一个 8,我们得到的最小的数就 ...

  2. 简单聊一聊JS中的循环引用及问题

    本文主要从 JS 中为什么会出现循环引用,垃圾回收策略中引用计数为什么有很大的问题,以及循环引用时的对象在使用 JSON.stringify 时为什么会报错,怎样解决这个问题简单谈谈自己的一些理解. ...

  3. 关于Scrum+XP+DevOps的学习

    最近听了ECUG大会上孙敬云老师的分享感觉受益匪浅,毕竟大学课本上只讲到瀑布模型就没有下文了,工作以后一直贯彻的都是Scrum路线,一直也没有时间好好的去学习整理这部分的知识,直到近几天听到了孙老师的 ...

  4. spring boot学习笔记(1)

    一.构建springboot项目 可以通过idea的springboot initialization来创建, idea的功能很强大,可以自己选择需要集成的插件. 完整的项目结构是这样的: DemoA ...

  5. Python中with标签的使用详解

    1.在python DTL模板中,想要定义变量,可以通过"with"语句来实现. 2."with"语句有两种使用方式: 第一种是"with xx=xx ...

  6. 1.PL/SQL Developer的快捷键

    设置步骤: Configure  =>  preference => 用户界面 => 编辑器  => 自动替换 => 启用 => 编辑 =>保存(产生一个文件 ...

  7. 简单的 FFT 变形 - BZOJ 2194

    「BZOJ2194」快速傅立叶之二 2015年4月29日3,8300 Description 请计算C[k]=sigma(a[i]*b[i-k]) 其中 k < = i < n ,并且有 ...

  8. 基于Java+HttpClient+TestNG的接口自动化测试框架(四)-------参数存取处理

    在真正开始接口测试之前,我们需要对参数的处理进行梳理.这里所说的“参数”,既包含之前在xml中的配置(我们称之为全局参数),也包含在每一条用例中书写的param.全局参数为固定不变的,而根据接口相应获 ...

  9. java Random类(API)

    一.过程 1.导包 2.实例化 3.使用(类的成员方法) 二.作用 生成随机数,与python中random 相似 三.常用方法 1.nextInt(),随机生成int数据类型范围的数 2.nextI ...

  10. matplotlib 散点图

    一.特点 离散的数据,查看分布规律,走向趋势 二.使用 1.核心 plt.scatter(x, y) # x为x轴的数据,可迭代对象,必须是数字 # y为y轴的数据,可迭代对象,必须是数字 # x和y ...