一种控件文本超长检测装置及方法与流程

文档序号:13760836阅读:137来源:国知局
一种控件文本超长检测装置及方法与流程

本发明涉及通信技术领域,更具体地说,涉及一种控件文本超长检测装置及方法。



背景技术:

通常,开发一款应用程序并不是针对特定终端、特定用户进行的,所以当应用程序在开发完成后,可能要在不同类型、不同系统环境、不同语言环境的终端上运行,例如,从运行设备的角度来说,一个应用程序可能要在平板电脑、智能手机或是PDA(Personal Digital Assistant,掌上电脑)上使用;从使用的语言环境来说,一个应用程序的显示界面需要支持以中文、德文、英文、法文等模式进行显示,以便为使用不同语言的用户提供服务;而站在系统环境的角度来说,不同的用户对应用程序中文本的字体、字号有不同的偏好与需求,例如对于女性用户而言,可能更希望文本内容显得清秀或可爱一些,但相对于隽秀婉约而言,男性用户可能更偏好于字体遒劲有力;同样地,由于视力的问题,年纪较大的用户可能希望应用程序上的文本字号能稍微大一些,这样便于其阅读应用程序各个界面上显示的文字信息。

在应用程序的开发前期,受限于语言翻译的专业性,程序开发人员通常只会在程序资源文件夹内添加values/strings.xml作为默认字符串资源表,该字符串资源列表通常是标准英语的形式,可选地,会额外添加程序开发人员熟悉的语言,例如其所在地区的母语下的字符串资源表(如简体中文对应的字符串资源表为values-zh-rCN/strings.xml)作为后期翻译参考。在开发后期,会由专业的翻译人员将应用程序中各个控件内的中文文本内容翻译到其他语言下,然后形成对应语言的字符串资源表并添加至应用程序下,如,在Android应用程序中,德语对应字符串资源表为“values-de/strings.xml”。

容易理解的是,开发人员进行开发的时候,是在一种语言的基础上进行的,开发人员设计的控件的大小与该语言下的文本大小应该是匹配的,但翻译人员将该语言下的文本翻译至其他语言下后,文本的长度会发生巨大的变化。对于那些翻译后文本长度没变化或者长度变化,但只是文本变短的情况而言,基本不会存在大的问题,但是针对那些翻译之后文本长度变长的情况来说,文本很可能无法完全显示,从而会造成文本无法在控件提供的区域内正常、完整地显示,影响到用户体验。

在现有技术中,为了解决上述问题,在开发后期会将不同语言对应的字符串资源表添加至应用程序中,使控件中的文本得以以不同语言类型进行显示;然后通过肉眼来判断控件中的文本在不同语言类型、在不同字号大小、不同字体样式下是否能够完整显示。但这种通过人眼排查的方式很不方便:一方面,排查的工作量较大,对人力资源的要求比较高;另一方面,人眼排查的排查速度较慢,而且排查的准确率也跟工作人员的主观性有很大的关系。

综上,现在亟需提出一种检测应用程序在不同类型、不同系统环境、不同语言环境的终端上运行时文本是否超长的方案。



技术实现要素:

本发明要解决的技术问题在于:解决现有技术中通过人眼来检测应用程序在不同类型、不同系统环境、不同语言环境的终端上运行时,控件对应的文本是否超长的方案对人力资源耗费大、检测准确率低的技术问题,针对该技术问题,提供一种控件文本超长检测装置及方法。

为解决上述技术问题,本发明提供一种控件文本超长检测方法,包括:

获取待检测控件在当前待检测语言类型下的文本;

根据待检测控件的属性信息确定所述文本在当前显示维度下所需要的理想显示区域,所述属性信息至少包括所述待检测控件的文本显示模式;

将所述理想显示区域与所述待检测控件实际提供的可用显示区域进行匹配;

匹配不成功时,判定所述待检测控件当前待检测语言类型的文本在当前显示维度下超长。

进一步地,将所述理想显示区域与所述待检测控件实际提供的可用显示区域进行匹配包括:

比较所述理想显示区域与所述可用显示区域的大小;

当所述理想显示区域小于等于所述可用显示区域,则判定匹配成功,否则判定匹配不成功。

进一步地,判定所述待检测控件当前待检测语言类型的文本在当前显示维度下超长后还包括:针对所述文本的超长提出告警。

进一步地,针对所述文本的超长提出告警包括:

将超长的所述文本及其对应的显示维度和所述待检测控件的属性信息添加至告警表格中;

向程序开发人员和/或文本翻译人员示出所述告警表格;

或,

在检测结果表中突出超长的所述文本及其对应的显示维度和所述待检测控件的属性信息,所述检测结果表用于记录各待检测控件的各语言类型的文本在各显示维度下的检测结果;

向程序开发人员和/或文本翻译人员示出所述检测结果表。

进一步地,获取待检测控件在当前待检测语言类型下的文本包括:

根据当前待检测语言类型获取到对应的字符串资源表;

利用所述待检测控件的资源标识号从所述字符串资源表中查找到对应的文本。

进一步地,根据待检测控件的属性信息确定所述文本在当前显示维度下所需要的理想显示区域包括:

根据所述待检测控件的文本显示模式和当前显示维度计算所述文本内容的理想显示区域,所述显示维度包括显示设备的设备独立像素、显示设备使用的字号、显示设备使用的字体中的至少一种。

进一步地,将所述理想显示区域与所述待检测控件实际提供的可用显示区域进行匹配之前还包括:

获取所述待检测控件的属性信息,所述属性信息还包括所述待检测控件的尺寸、所述待检测控件的边缘值;

根据所述尺寸及所述边缘值计算得到所述文本显示模式下所述待检测控件实际提供的可用显示区域。

本发明还提供了一种控件文本超长检测装置,所述控件文本超长检测装置包括:

获取模块,用于获取待检测控件在当前待检测语言类型下的文本;

确定模块,用于根据待检测控件的属性信息确定所述文本在当前显示维度下所需要的理想显示区域,所述属性信息至少包括所述待检测控件的文本显示模式;

匹配模块,用于将所述理想显示区域与所述待检测控件实际提供的可用显示区域进行匹配;

判定模块,用于匹配不成功时,判定所述待检测控件当前待检测语言类型的文本在当前显示维度下超长。

进一步地,所述获取模块用于根据当前待检测语言类型获取到对应的字符串资源表,并利用所述待检测控件的资源标识号从所述字符串资源表中查找到对应的文本。

进一步地,所述确定模块用于根据所述待检测控件的文本显示模式和当前显示维度计算所述文本内容的理想显示区域,所述显示维度包括显示设备的设备独立像素、显示设备使用的字号、显示设备使用的字体中的至少一种。

本发明实施例还提供一种计算机存储介质,所述计算机存储介质中存储有计算机可执行指令,所述计算机可执行指令用于执行前述的任一项的控件文本超长检测方法。

有益效果:

本发明实施例提供的控件文本超长检测装置、方法及计算机存储介质,通过获取待检测控件在当前待检测语言类型下的文本,并根据待检测控件的文本显示模式确定出该文本在当前显示维度下所需要的理想显示区域,然后将确定出的理想显示区域与待检测控件实际提供的可用显示区域进行匹配,当匹配不成功时,判定待检测控件当前待检测语言类型的文本在当前显示维度下超长。这种检测方式直接根据“理想显示区域”与“可用显示区域”这两个区域的客观大小进行比较,从而得到检测结果,不需要由人眼根据终端的显示画面进行主观的判断,因此避免了人眼主观性带来的检测准确率低的问题。另一方面,不需要人眼进行判断也降低了对人力资源的消耗,减小了相关工作人员的负担,优化了资源配置。

附图说明

下面将结合附图及实施例对本发明作进一步说明,附图中:

图1为本发明实施例一提供的控件文本超长检测方法一种流程图;

图2为本发明实施例一提供的待检测控件的一种结构示意图;

图3为本发明实施例二提供的控件文本超长检测方法一种流程图;

图4为本发明实施例三提供的控件文本超长检测装置的一种结构示意图;

图5为本发明实施例三提供的控件文本超长检测装置的另一种结构示意图;

图6为实现本发明各个实施例一个可选的移动终端的硬件结构示意图。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

实施例一:

为了解决现有技术中通过人眼排查来检测控件文本是否超长的方案中所存在的人力资源耗费大、排查准确率低、效率低的问题,本实施例提供一种控件文本超长检测方法,请参见图1:

S102、获取待检测控件在当前待检测语言类型下的文本。

一个待检测控件对应的文本可以通过不同的语言类型来进行表达,但是在不同语言类型下所表达出的含义是一定的,例如,为了表达“开始”的含义,在中文模式下,可以使用“开始”,在英文模式下可以使用“start”或是“begin”,而在韩语当中,则可以采用在俄语模式下,对应的文本内容应当为“начать”。

在本实施例当中,以中文作为应用程序的开发基础为例进行说明。在应用程序的开发后期,翻译人员所需要完成的工作就是将中文词汇翻译至其他语言下。例如,如果该应用程序的使用者除了中国用户以外还包括韩国用户,那么翻译人员就应当将该应用程序中各控件对应的中文文本翻译成韩文文本,翻译之后,由开发人员将各韩文文本以控件为基础添加至该应用程序的韩语字符串资源表当中。不同语言对应不同的字符串资源表,但是在不同的字符串资源表当中,同一个控件具有相同的资源标识号。所以,在判断文本是否超长时,可以根据控件的资源标识号获取翻译后的文本。

举个例子,在中文版的应用程序下,其中一个控件上的文本为“开始”,现在,要对这个控件翻译后的文本进行检测,判断在其他语言环境下,该控件的文本能够正常显示。将该控件作为待检测控件,根据文本内容——“开始”和应用程序的中文版字符串资源表可以确定出该控件对应的资源标识号,例如为“A-11”。如果当前需要检测德语情境下,待检测控件的文本内容能否正常显示,那么在获取到“A-11”之后,可以根据当前待检测语言类型找到对应的字符串资源表,如values-de/strings.xml,然后利用之前获取到的资源标识号“A-11”从values-de/strings.xml中查找到当前待检测语言——德语下的文本“beginnen”。

S104、根据待检测控件的属性信息确定文本在当前显示维度下所需要的理想显示区域。

显示维度一般包括应用程序所在显示设备的设备独立像素、显示设备使用的字号、显示设备使用的字体中的至少一种或者是多种的组合。

设备独立像素(DIP,device-independent pixel)是独立于设备的用于逻辑上衡量像素的单位,它与“像素密度”密切相关。所以,首先解释一下什么是像素密度:假设有一部手机,其屏幕的物理尺寸为1.5英寸×2英寸,屏幕分辨率为240×320,则可以计算出在这部手机的屏幕上,每英寸包含的像素点的数量为240/1.5=160dpi(横向)或320/2=160dpi(纵向),160dpi就是这部手机的像素密度,像素密度的单位dpi是Dots Per Inch的缩写,即每英寸像素数量。横向和纵向的这个值都是相同的,原因是大部分手机屏幕使用正方形的像素点。

不同的手机/平板可能具有不同的像素密度,例如同为4寸手机,有480×320分辨率的也有800×480分辨率的,前者的像素密度就比较低。Android系统定义了四种像素密度:低(120dpi)、中(160dpi)、高(240dpi)和超高(320dpi),它们对应的dp到px的系数分别为0.75、1、1.5和2,这个系数乘以dp长度就是像素数。例如界面上有一个长度为“100dp”的图片,那么它在240dpi的手机上实际显示为80×1.5=120px,在320dpi的手机上实际显示为80×2=160px。

在计算理想显示区域的时候,还可以进一步考虑待检测控件的文本显示模式,例如,待检测控件中的文本是单行显示模式,还是多行显示模式,是跑马灯显示模式,还是固定显示模式,待检测控件的大小可以是固定的,也可以随着文本大小的变化而进行自适应变化的。待检测控件的文本显示模式来源于待检测控件的属性信息。

假定根据待检测控件的属性信息确定待检测控件中的文本属于固定显示模式,只能通过单行显示,而且控件的大小并不能随着文本的大小进行自适应调整;当前的显示维度可以计算出每一个字符所占用的显示区域的大小,然后根据翻译文本中字符的数量确定出当前待检测语言类型下,待检测控件的文本正常显示所需要占用的理想显示区域。

S106、将理想显示区域与待检测控件实际提供的可用显示区域进行匹配。

当计算出文本显示所需要占用的理想显示区域后,可以将该理想显示区域与该待检测控件实际提供的可用显示区域进行匹配。匹配的实际过程就是理想显示区域的大小与可用显示区域的大小进行比较,在本实施例中,区域大小都是指的区域面积。当理想显示区域小于等于可用显示区域时,说明待检测控件提供的可用显示区域能够正常显示对应的文本,因此判定匹配成功;否则,当理想显示区域大于可用显示区域时,说明待检测控件实际要求的显示区域大于为其提供的显示区域,因此,对应的翻译文本无法正常显示,所以判定匹配不成功。

应当理解的是,在进行匹配之前还应当获取待检测控件的属性信息,这里的属性信息还包括待检测控件的尺寸、待检测控件的边缘值。然后根据获取到的尺寸及边缘值计算得到该文本显示模式下,待检测控件实际提供的可用显示区域。

本实施例中,边缘值包括Margin(外边距)边缘值和Padding(内边距)边缘值,Margin简写属性在一个声明中设置所有当前或者指定元素外边距属性,该属性可以有1~4个值。Padding属性定义元素边框与元素内容之间的空间。Padding简写属性在一个声明中设置所有内边距属性,设置所有当前或者指定元素内边距属性,该属性同样可以有1~4个值。

如图2所示,待检测控件20中,用户可见的区域为201,待检测控件的Margin边缘值为2,Margin边缘值所构成区域202;待检测控件的Padding边缘值为3,Padding边缘值构成区域203。在技术实现上,整个Margin边缘值所构成区域202都属于待检测控件20,因此,待检测控件20的尺寸是根据Margin边缘值计算得来的,而Padding边缘值构成的区域203属于实际可以显示文本的区域,也即该待检测控件20的可用显示区域。在得到待检测控件20的长、宽尺寸和其边缘值之后,可以计算得到其显示区域的大小。

S108、匹配不成功时,判定待检测控件当前待检测语言类型的文本在当前显示维度下超长。

当匹配不成功的时候,可以判定待检测控件当前待检测语言类型的文本在当前显示维度下超长。但这并不是说明该翻译文本在任何情况下都会超长,因为文本超长还与显示维度有很大的关系,例如当系统的字号较小的情况下,原本超长的文本可能也就不存在超长的情况了。

得到一个待检测控件的文本在一种语言类型、一种显示维度下的检测结果之后,还应当改变待检测语言的类型和/或显示维度重新进行检测,以便检测出该待检测控件在不同语言类型、不同显示维度下的文本显示是否存在文本超长的情况。在实际检测过程中,可以先选定一个显示维度,然后得到该显示维度下,各语言类型的翻译文本的显示情况后,再切换到一个新的显示维度重复检测工作。也可以先选定一种语言类型,并检测该语言类型下的翻译文本在不同字号、字体等不同显示维度下的显示情况,然后再切换语言类型得到新的翻译文本,并按照相同的方式进行文本是否超长的检测工作。由于对不同语言类型的翻译文本进行检测时候,需要先根据待检测控件的资源标识号从字符串资源表中获取到对应的翻译文本,所以,为了避免对一种语言类型的翻译文本进行检测的时候多次重复获取翻译文本的过程,本实施例可以采用第二种方式所述的方式进行检测。

判定待检测控件当前待检测语言类型的文本在当前显示维度下超长后,可以提出告警。告警的对象可以是程序开发人员和/或文本翻译人员,当程序开人员收到告警之后,可以对待检测控件的属性,例如其长、宽的尺寸或者其文本显示模式进行调整,当文本翻译人员收到告警之后,可以对翻译文本进行精简,以减少待显示字符的数目。

提出告警的时机可以是在确定待检测控件当前待检测语言类型的文本超长时,也可以是在得到一个待检测控件各种语言类型下的翻译文本在各种不同显示维度下的检测结果后再提出告警,同样的,也可以在一个应用程序所有的待检测控件的检测结果都被获取到之后才进行告警。

由于本实施例提出的控件文本超长检测方法检测效率高,检测速度快,因此,可以在得到应用程序所有待检测控件的检测结果后再发出告警。本实施例中,告警的方式有以下两种:

第一种是将超长的文本及其对应的显示维度和待检测控件的属性信息添加至告警表格中,然后将该表格显示给程序开发人员或者是文本翻译人员,告警表格中记录的都是检测结果为超长的文本及其关联的信息。

第二种是在检测结果表中突出超长的文本及其对应的显示维度和待检测控件的属性信息,并向程序开发人员和/或文本翻译人员示出所述检测结果表,检测结果表用于记录各待检测控件的各语言类型的文本在各显示维度下的检测结果,其中不仅包括检测结果为超长的文本及其关联信息,还包括检测结果为正常的文本及其关联信息,这里所说的关联信息包括文本对应的显示维度和待检测控件的属性信息。

应当明白的是,在一个应用程序当中,包含文本的待检测控件的数目可能比较多,因此,为了程序开发人员在接收到告警之后,能够迅速定位究竟是哪一个待检测控件的文本显示不正常,还可以将各待检测控件的宿主界面也添加至检测结果表或者告警表格中。

突出显示的方式可以通过对需要告警的信息进行高亮显示,或者进行加粗显示,甚至是加下划线的方式进行。

本实施例提供的控件文本超长检测方法,通过对待检测控件在不同语言类型下的文本正常显示所需要的理想显示区域与待检测控件实际提供的可用显示区域进行匹配,当理想显示区域小于等于可用显示区域时,就判定待检测控件当前待检测语言类型的文本在当前显示维度下正常,否则判定其超长。通过这种检测方式,可以降低对人力资源的消耗,减小相关工作人员的负担,优化资源配置。

另外,在检测结果显示待检测控件在不同语言类型下的文本超长之后,可以通过突出显示的方式向程序开发人员和/或文本翻译人员提出告警,使程序开发人员根据告警对待检测控件的属性信息进行调整,让文本翻译人员根据告警信息对翻译文本进行精简,从而使待检测控件中的文本正常显示,让用户能够正常获取到待检测控件中提供的信息,保证用户体验。

实施例二:

本实施例以一个具体的示例对本发明提供的控件文本超长检测方法进行说明,请结合图3:

S301、遍历获取目标应用程序中各待检测控件的属性信息。

解析目标应用程序各界面中的控件,将含有文本显示类(如Android中继承自TextView的)的控件列入待检测队列,从程序代码和应用程序的.Xml文件中获取待检测队列中各个待检测控件的属性信息,在本实施例中,属性信息包括:待检测控件的ID、类名、文本字号、长宽尺寸、待检测控件所属的宿主界面,以及待检测控件的尺寸是否自适应、待检测控件的文本显示是否是单行模式、是否是跑马灯模式等。

S302、根据待检测控件的ID获取翻译文本。

根据检测需求确定当前需要对哪种语言类型的文本进行检测,并获取到对应文本下的字符串资源表。然后根据待检测控件的ID查询待检测控件在该语言类型下的字符串资源列表,获得翻译文本。

S303、计算待检测控件实际提供的可用显示区域。

根据待检测控件的长宽尺寸以及Margin、Padding等边缘值,计算当前待检测控件实际可用于显示文本的可用显示区域Rect-real。

S304、计算翻译文本在当前显示维度下所需要的理想显示区域。

根据当前的显示维度(包括当前文本的显示字号、字体、设备独立像素等)和待检测控件的属性信息(包括待检测控件的文本字号(区分dp/sp)、宽高尺寸、尺寸是否自适应、是否为单行模式、是否为跑马灯样式等),结合字符串行首行尾间距、字符间距等参数,计算当前待检测控件的翻译文本完整显示所需的理想显示区域Rect-ideal。

S305、比较理想显示区域和可用显示区域的大小。

若Rect-ideal>Rect-real,则记录当前翻译文本及其对应的显示维度、待检测控件的属性信息、翻译文本的内容以及文本长度的超标量等。

S306、向程序开发人员和/或文本翻译人员提出告警。

当待检测的控件队列中每一个待检测控件在各语言类型下的翻译文本都进行过检测之后,以表格等形式输出检测结果,同时在表格中以高亮显示的方式突出显示超长的翻译文本及其对应的显示维度、待检测控件的属性信息、翻译文本的内容以及文本长度的超标量等。

特别地,如果待检测控件的属性信息中包括控件尺寸自适应、控件文本以多行模式进行显示、控件文本以跑马灯模式进行显示中的至少一个时,翻译文本超长对视觉的影响较小,对这部分超长文本可选择以另外一种比较缓和的形式输出预警,表示该部分文本翻译可暂缓修改。

本实施例提供的控件文本超长检测方法,在检测结果显示待检测控件在不同语言类型下的文本超长之后,可以以表格等形式输出检测结果,同时在表格中以高亮显示的方式突出显示超长的翻译文本及其对应的显示维度、待检测控件的属性信息、翻译文本的内容以及文本长度的超标量等,方便后续文本翻译人员进行翻译精简或者程序开发人员调整对应待检测控件的属性,从而保证应用程序的整体显示效果。

实施例三:

本实施例提供一种控件文本超长检测装置,如图4所示,实施例一和实施例二提供的控件文本超长检测方法可以在本实施例提供的控件文本超长检测装置40上实施:

控件文本超长检测装置40包括获取模块402、确定模块404、匹配模块406以及判定模块408。获取模块402用于获取待检测控件在当前待检测语言类型下的文本;确定模块404用于根据待检测控件的属性信息确定文本在当前显示维度下所需要的理想显示区域;匹配模块406用于将理想显示区域与待检测控件实际提供的可用显示区域进行匹配;而判定模块408则用于在匹配模块406匹配不成功时,判定待检测控件当前待检测语言类型的文本在当前显示维度下超长。

一个待检测控件对应的文本可以通过不同的语言类型来进行表达,但是在不同语言类型下所表达出的含义是一定的,例如,为了表达“开始”的含义,在中文模式下,可以使用“开始”,在英文模式下可以使用“start”或是“begin”,而在韩语当中,则可以采用在俄语模式下,对应的文本内容应当为“начать”。

在本实施例当中,以中文作为应用程序的开发基础为例进行说明。在应用程序的开发后期,翻译人员所需要完成的工作就是将中文词汇翻译至其他语言下。例如,如果该应用程序的使用者除了中国用户以外还包括韩国用户,那么翻译人员就应当将该应用程序中各控件对应的中文文本翻译成韩文文本,翻译之后,由开发人员将各韩文文本以控件为基础添加至该应用程序的韩语字符串资源表当中。不同语言对应不同的字符串资源表,但是在不同的字符串资源表当中,同一个控件具有相同的资源标识号。所以,控件文本超长检测装置40在判断文本是否超长时,可以根据控件的资源标识号获取翻译后的文本。

举个例子,在中文版的应用程序下,其中一个控件上的文本为“开始”,现在,控件文本超长检测装置40要对这个控件翻译后的文本进行检测,判断在其他语言环境下,该控件的文本能够正常显示。首先获取模块402将该控件作为待检测控件,根据文本内容——“开始”和应用程序的中文版字符串资源表可以确定出该控件对应的资源标识号,例如为“A-11”。如果当前需要检测德语情境下,待检测控件的文本内容能否正常显示,那么获取模块402在获取到“A-11”之后,可以根据当前待检测语言类型找到对应的字符串资源表,如values-de/strings.xml,然后利用之前获取到的资源标识号“A-11”从values-de/strings.xml中查找到当前待检测语言——德语下的文本“beginnen”。

确定模块404根据待检测控件的属性信息确定文本在当前显示维度下所需要的理想显示区域。显示维度一般包括应用程序所在显示设备的设备独立像素、显示设备使用的字号、显示设备使用的字体中的至少一种或者是多种的组合。

设备独立像素(DIP,device-independent pixel)是独立于设备的用于逻辑上衡量像素的单位,它与“像素密度”密切相关。所以,首先解释一下什么是像素密度:假设有一部手机,其屏幕的物理尺寸为1.5英寸×2英寸,屏幕分辨率为240×320,则可以计算出在这部手机的屏幕上,每英寸包含的像素点的数量为240/1.5=160dpi(横向)或320/2=160dpi(纵向),160dpi就是这部手机的像素密度,像素密度的单位dpi是Dots Per Inch的缩写,即每英寸像素数量。横向和纵向的这个值都是相同的,原因是大部分手机屏幕使用正方形的像素点。

不同的手机/平板可能具有不同的像素密度,例如同为4寸手机,有480×320分辨率的也有800×480分辨率的,前者的像素密度就比较低。Android系统定义了四种像素密度:低(120dpi)、中(160dpi)、高(240dpi)和超高(320dpi),它们对应的dp到px的系数分别为0.75、1、1.5和2,这个系数乘以dp长度就是像素数。例如界面上有一个长度为“100dp”的图片,那么它在240dpi的手机上实际显示为80×1.5=120px,在320dpi的手机上实际显示为80×2=160px。

在确定模块404计算理想显示区域的时候,还可以进一步考虑待检测控件的文本显示模式,例如,待检测控件中的文本是单行显示模式,还是多行显示模式,是跑马灯显示模式,还是固定显示模式,待检测控件的大小可以是固定的,也可以随着文本大小的变化而进行自适应变化的。待检测控件的文本显示模式来源于待检测控件的属性信息。

假定确定模块404根据待检测控件的属性信息确定待检测控件中的文本属于固定显示模式,只能通过单行显示,而且控件的大小并不能随着文本的大小进行自适应调整;当前的显示维度可以计算出每一个字符所占用的显示区域的大小,然后确定模块404根据翻译文本中字符的数量确定出当前待检测语言类型下,待检测控件的文本正常显示所需要占用的理想显示区域。

匹配模块406将理想显示区域与待检测控件实际提供的可用显示区域进行匹配。当确定模块404确定出文本显示所需要占用的理想显示区域后,匹配模块406可以将该理想显示区域与该待检测控件实际提供的可用显示区域进行匹配。匹配模块406匹配的实际过程就是理想显示区域的大小与可用显示区域的大小进行比较,在本实施例中,区域大小都是指的区域面积。当匹配模块406比较出理想显示区域小于等于可用显示区域时,说明待检测控件提供的可用显示区域能够正常显示对应的文本,因此判定匹配成功;否则,当理想显示区域大于可用显示区域时,说明待检测控件实际要求的显示区域大于为其提供的显示区域,因此,对应的翻译文本无法正常显示,所以判定匹配不成功。

应当理解的是,在匹配模块406进行匹配之前,确定模块404还应当获取待检测控件的属性信息,这里的属性信息还包括待检测控件的尺寸、待检测控件的边缘值。然后确定模块404根据获取到的尺寸及边缘值计算得到该文本显示模式下,待检测控件实际提供的可用显示区域。

本实施例中,边缘值包括Margin(外边距)边缘值和Padding(内边距)边缘值,Margin简写属性在一个声明中设置所有当前或者指定元素外边距属性,该属性可以有1~4个值。Padding属性定义元素边框与元素内容之间的空间。Padding简写属性在一个声明中设置所有内边距属性,设置所有当前或者指定元素内边距属性,该属性同样可以有1~4个值。

当匹配模块406匹配不成功的时候,判定模块408可以判定待检测控件当前待检测语言类型的文本在当前显示维度下超长。但这并不是说明该翻译文本在任何情况下都会超长,因为文本超长还与显示维度有很大的关系,例如当系统的字号较小的情况下,原本超长的文本可能也就不存在超长的情况了。

得到一个待检测控件的文本在一种语言类型、一种显示维度下的检测结果之后,控件文本超长检测装置40还应当改变待检测语言的类型和/或显示维度重新进行检测,以便检测出该待检测控件在不同语言类型、不同显示维度下的文本显示是否存在文本超长的情况。在实际检测过程中,可以先选定一个显示维度,然后得到该显示维度下,各语言类型的翻译文本的显示情况后,再切换到一个新的显示维度重复检测工作。也可以先选定一种语言类型,并检测该语言类型下的翻译文本在不同字号、字体等不同显示维度下的显示情况,然后再切换语言类型得到新的翻译文本,并按照相同的方式进行文本是否超长的检测工作。由于对不同语言类型的翻译文本进行检测时候,需要先根据待检测控件的资源标识号从字符串资源表中获取到对应的翻译文本,所以,为了避免对一种语言类型的翻译文本进行检测的时候多次重复获取翻译文本的过程,本实施例可以采用第二种方式所述的方式进行检测。

在本实施例提出的另一种控件文本超长检测装置40当中,如图5所示,其包括获取模块402、确定模块404、匹配模块406以及判定模块408以外,还包括告警模块410。

判定模块408判定待检测控件当前待检测语言类型的文本在当前显示维度下超长后,告警模块410可以提出告警。告警模块410的告警对象可以是程序开发人员和/或文本翻译人员,当程序开人员收到告警之后,可以对待检测控件的属性,例如其长、宽的尺寸或者其文本显示模式进行调整,当文本翻译人员收到告警之后,可以对翻译文本进行精简,以减少待显示字符的数目。

告警模块410提出告警的时机可以是在确定待检测控件当前待检测语言类型的文本超长时,也可以是在得到一个待检测控件各种语言类型下的翻译文本在各种不同显示维度下的检测结果后再提出告警,同样的,也可以在一个应用程序所有的待检测控件的检测结果都被获取到之后才进行告警。

由于本实施例提出的控件文本超长检测方法检测效率高,检测速度快,因此,告警模块410可以在得到应用程序所有待检测控件的检测结果后再发出告警。本实施例中,告警模块410告警的方式有以下两种:

第一种,告警模块410将超长的文本及其对应的显示维度和待检测控件的属性信息添加至告警表格中,然后将该表格显示给程序开发人员或者是文本翻译人员,告警表格中记录的都是检测结果为超长的文本及其关联的信息。

第二种,告警模块410在检测结果表中突出超长的文本及其对应的显示维度和待检测控件的属性信息,并向程序开发人员和/或文本翻译人员示出检测结果表,检测结果表用于记录各待检测控件的各语言类型的文本在各显示维度下的检测结果,其中不仅包括检测结果为超长的文本及其关联信息,还包括检测结果为正常的文本及其关联信息,这里所说的关联信息包括文本对应的显示维度和待检测控件的属性信息。

应当明白的是,在一个应用程序当中,包含文本的待检测控件的数目可能比较多,因此,为了程序开发人员在接收到告警之后,能够迅速定位究竟是哪一个待检测控件的文本显示不正常,告警模块410还可以将各待检测控件的宿主界面也添加至检测结果表或者告警表格中。

突出显示的方式可以通过对需要告警的信息进行高亮显示,或者进行加粗显示,甚至是加下划线的方式进行。

本实施例提供的控件文本超长检测装置40可以部署在终端上,本发明中描述的终端可以包括诸如移动电话、智能电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、导航装置等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。下面结合图6对本实施例提供的终端进行介绍,图6为实现本发明各个实施例一个可选的终端的硬件结构示意图:

终端60可以包括输出单元610、存储器620、控制器630等等。图6示出了具有各种组件的终端,但是应理解的是,并不要求实施所有示出的组件。可以替代地实施更多或更少的组件,将在下面详细描述终端的元件。

输出单元610被构造为以视觉、音频和/或触觉方式提供输出信号(例如,音频信号、视频信号、警报信号、振动信号等等)。输出单元610可以包括显示模块611、音频输出模块612、警报模块613等等。

显示模块611可以显示在终端60中处理的信息。例如,当终端60处于电话通话模式时,显示模块611可以显示与通话或其它通信(例如,文本消息收发、多媒体文件下载等等)相关的用户界面(UI)或图形用户界面(GUI)。当终端60处于视频通话模式或者图像捕获模式时,显示模块611可以显示捕获的图像和/或接收的图像、示出视频或图像以及相关功能的UI或GUI等等。

同时,当显示模块611和触摸板以层的形式彼此叠加以形成触摸屏时,显示模块611可以用作输入装置和输出装置。显示模块611可以包括液晶显示器(LCD)、薄膜晶体管LCD(TFT-LCD)、有机发光二极管(OLED)显示器、柔性显示器、三维(3D)显示器等等中的至少一种。这些显示器中的一些可以被构造为透明状以允许用户从外部观看,这可以称为透明显示器,典型的透明显示器可以例如为TOLED(透明有机发光二极管)显示器等等。根据特定想要的实施方式,终端60可以包括两个或更多显示模块(或其它显示装置),例如,移动终端可以包括外部显示模块(未示出)和内部显示模块(未示出)。触摸屏可用于检测触摸输入压力以及触摸输入位置和触摸输入面积。

音频输出模块612可以在移动终端处于呼叫信号接收模式、通话模式、记录模式、语音识别模式、广播接收模式等等模式下时,将无线通信单元110接收的或者在存储器620中存储的音频数据转换音频信号并且输出为声音。而且,音频输出模块612可以提供与终端60执行的特定功能相关的音频输出(例如,呼叫信号接收声音、消息接收声音等等)。音频输出模块612可以包括扬声器、蜂鸣器等等。

警报模块613可以提供输出以将事件的发生通知给终端60。典型的事件可以包括呼叫接收、消息接收、键信号输入、触摸输入等等。除了音频或视频输出之外,警报模块613可以以不同的方式提供输出以通知事件的发生。例如,警报模块613可以以振动的形式提供输出,当接收到呼叫、消息或一些其它进入通信(incoming communication)时,警报模块613可以提供触觉输出(即,振动)以将其通知给用户。通过提供这样的触觉输出,即使在用户的移动电话处于用户的口袋中时,用户也能够识别出各种事件的发生。警报模块613也可以经由显示模块611或音频输出模块612提供通知事件的发生的输出。

存储器620可以存储由控制器630执行的处理和控制操作的软件程序等等,或者可以暂时地存储己经输出或将要输出的数据(例如,电话簿、消息、静态图像、视频等等)。而且,存储器620可以存储关于当触摸施加到触摸屏时输出的各种方式的振动和音频信号的数据。

存储器620可以包括至少一种类型的存储介质,所述存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等等。而且,终端60可以与通过网络连接执行存储器620的存储功能的网络存储装置协作。

控制器630通常控制终端的总体操作。例如,控制器630执行与语音通话、数据通信、视频通话等等相关的控制和处理。

这里描述的各种实施方式可以以使用例如计算机软件、硬件或其任何组合的计算机可读介质来实施。对于硬件实施,这里描述的实施方式可以通过使用特定用途集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理装置(DSPD)、可编程逻辑装置(PLD)、现场可编程门阵列(FPGA)、处理器、控制器、微控制器、微处理器、被设计为执行这里描述的功能的电子单元中的至少一种来实施,在一些情况下,这样的实施方式可以在控制器630中实施。对于软件实施,诸如过程或功能的实施方式可以与允许执行至少一种功能或操作的单独的软件模块来实施。软件代码可以由以任何适当的编程语言编写的软件应用程序(或程序)来实施,软件代码可以存储在存储器620中并且由控制器630执行。

在本实施例中,应用程序的代码、应用程序的.xml文件及各种语言类型对应的字符串资源表可以被存储在存储器620当中。获取模块402、确定模块404、匹配模块406以及判定模块408的功能都可以通过终端60中的控制器630来实现:控制器630从存储在存储器620中的字符串资源表中获取到待检测控件在当前待检测语言类型下的文本,然后根据待检测控件的属性信息确定文本在当前显示维度下所需要的理想显示区域,并根据待检测控件的属性信息计算出实际的可用显示区域,然后将理想显示区域与可用显示区域进行匹配,当匹配不成功时,控制器630判定待检测控件当前待检测语言类型的文本在当前显示维度下超长。

本实施例中的告警模块410的功能可以通过输出单元610来实现,当告警是通过显示的方式进行时,输出单元610中的显示模块611在检测结果表中突出超长的文本及其对应的显示维度和待检测控件的属性信息,并向程序开发人员和/或文本翻译人员示出检测结果表。可以理解的是,在某些场景下,在通过显示模块611展示检测结果以进行告警的同时还可以通过音频输出模块612或者警报模块613发出提示音或者是震动来进行告警。

本实施例提供的控件文本超长检测装置40,通过对待检测控件在不同语言类型下的文本正常显示所需要的理想显示区域与待检测控件实际提供的可用显示区域进行匹配,当理想显示区域小于等于可用显示区域时,就判定待检测控件当前待检测语言类型的文本在当前显示维度下正常,否则判定其超长。通过这种检测方式,可以降低对人力资源的消耗,减小相关工作人员的负担,优化资源配置。

另外,在检测结果表征待检测控件在不同语言类型下的文本超长之后,告警模块410可以通过突出显示的方式向程序开发人员和/或文本翻译人员提出告警,使程序开发人员根据告警对待检测控件的属性信息进行调整,让文本翻译人员根据告警信息对翻译文本进行精简,从而使待检测控件中的文本正常显示,让用户能够正常获取到待检测控件中提供的信息,保证用户体验。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1