专利名称:定位检测项的系统的制作方法
定位检测项的系统
技术领城
本发明涉及计算才几领域,尤其涉及一种定位检测项的系统。
背景技术:
随着产品的日益全球化,很多软件都需要应用到全球各个角 落,因此软件的本地化就显得越来越重要了。软件的本地化是指软 件的人机界面、提示信息等方面可以适应不同国家的需要,即软件 可以提供多种语言版本。
软件的本地化有很多种方法,下面介绍两种常用的软件本地化 的方法。
第 一种方法是为不同语言的软件版本提供不同的源代码或者 配置文件。采用这种方法,如果需要提供一种新的语言版本或者需 要修改部分提示信息,就必须修改源代码或者配置文件,然后重新 编译软件。这种方法比较容易引入新的故障,并且很难实现为客户 定制界面的功能。^f旦是采用这种方法,由于在这种方法中提示信息 或者界面中的标签都是固定写死的,所以响应速度比较快。
第二种方法是只提供一份源代码,然后通过配置文件配置软件 的语言环境,通过资源文件定义提示信息或者界面中各个标签需要 的资源字符串。当界面或者提示信息需要一个字符串,系统提供一 个方法,可以根据传入的资源字符串,然后读取配置文件中配置的语言环境,返回对应于此语言环境的相应字符串。这种方法的优点 在于当需要提供一种新的语言版本或者需要修改部分提示信息时, 只需要修改资源文件,不需要重新编译软件,因此引入错误的机会 比较少,并且比较容易为客户实现界面定制功能。同时,由于在这 种方法中提示信息或者界面中的标签都是从配置文件中动态读取 的,所以响应速度比4交'漫。
由于软件的本地化主要集中在界面,而界面对于响应速度的要 求不是很高,所以一般采用第二种方法的软件比较多。采用第二种 方法,软件的灵活性和扩展性都比较好。
目前国内的软件本地化一般需要同时支持中英文版本。多数是 先开发出中文版本,然后以中文版本为基础开发英文版本。这种本
地化软件一般容易出现以下问题
1、 英文版本源代码中直接使用中文字符串。
2、 英文版本的帮助文件中包含中文字符或者中文标点符号。
符号
3. 英文版本的数据库脚本文件中包含中文字符或者中文标点符号,
4、英文版本的资源文件中包含中文字符或者中文标点符号,
目前市面上还没有任何软件可以解决这些本地软件的常见故障,而这些常见故障通过常规手段,例如用户界面黑盒测试或者 走查代码白盒测试的方式来排查都需要花费大量的人力和时间,并 且很难完全发现所有故障。这样就提出了一种需求,如果能够有一 种方法可以快速定位本地化软件的常见故障,那样就能够大大缩短 本地化软件开发的时间,从而降低软件开发成本。
发明内容
针对以上一个或多个问题,本发明提供了 一种定位检测项的系 统,可以快速定位本地化软件开发过程中的常见故障,可以将本地 化软件中的常见故障输出到检查结果文件中供开发人员分析、修改 故障。因此可以大大缩短本地化软件开发的时间,从而降低软件开发成本。
本发明的定位检测项的系统包括定制才莫块,用于为每种不同的文件定义至少一个检测过滤才莫块和^r测项定位才莫块,并配置以下 至少 一种信息检测过滤模块和检测项定位模块检查的文件类型和 不同文件类型对应的一个或多个检查项;至少 一个检测过滤才莫块,以管道方式进行连接,用于分别对输入代码进行检测并将符合过滤 条件的检测项从代码中过滤,将过滤后的代码输入到检测项定位模 块;以及检测项定位模块,用于对需要4企测的检测项进行检测和定位,并生成检测结果输出文件,检测结果输出文件包括不符合所有 过滤条件的代码的位置和代码内容。
定制模块配置以下至少一种信息检测过滤模块和检测项定位才莫块检查的文件类型和不同文件类型对应的一个或多个检查项。定制才莫块通过新增类对4壬何文件类型进行配置。检测项定位系统用于定位代码中的中文字符和/或中文标点符号。至少一个检测过滤模块的检测项为以下至少 一种注释符之间的多行内容和注释符后面的 单行内容。检测项定位模块的检测项为中文字符和/或中文标点符号。
本发明通过新增类对任何文件类型进行配置。
检测项定位方法用于定位代码中的中文字符和/或中文标点符
号。至少一个检测过滤才莫块的4全测项为以下至少一种注释符之间 的多行内容和注释符后面的单行内容。检测项定位模块的检测项为 中文字符和/或中文标点符号。
本发明通过配置文件定制某种文件类型的检测类,在检测类可 以定制多个检测模块来检查对应文件类型中常见的本地化故障。本 发明适合于各种需要进行本地化处理的软件开发项目。
附田说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申 请的一部分,本发明的示意性实施例及其"i兌明用于解释本发明,并 不构成对本发明的不当限定。在附图中
图1是才艮据本发明的定位检测项的系统的框图2是才艮据本发明的检测项定位方法的流程图3是#4居本发明的实施例的启动时解析配置文件的流程图4是根据本发明的实施例的判断是否包含/* */的流程图5是#>据本发明的实施例的判断在代码最前面是否为//的流 程图6是4艮据本发明的实施例的判断在代码后面是否有〃的流程 图;以及
图7是根据本发明的实施例的解析检查结果输出对象,输出检 查结果文件的流程图。
具体实施例方式
下面参考附图,详细-沈明本发明的具体实施方式
。
图1是根据本发明的定位检测项的系统的框图。如图1所示,本发明的检测项定位系统包括定制模块102,用于为不同种类的 文件定义至少 一 个检测过滤4莫块和检测项定位4莫块,并配置以下至 少 一种信息检测过滤模块和检测项定位模块检查的文件类型和不 同文件类型对应的一个或多个检查项;至少一个检企测过滤才莫块104, 以管道方式进行连接,用于分别对输入代码进行检测并将符合过滤 条件的代码过滤掉,并生成检测结果输出文件,该检测结果输出文 件中包括不符合所有过滤条件的代码的位置和代码内容以供开发 人员修改本地化故障;以及检测项定位模块106,用于对需要4企测 的检测项进行检测和定位,并生成检测结果输出文件,检测结果输 出文件包括不符合所有过滤条件的代码的位置和代码内容。
定制4莫块可以通过新增类对任何文件类型进行配置。至少一个 检测过滤模块的检测项为以下至少 一种注释符之间的多行内容和 注释符后面的单行内容。检测项定位模块的检测项为中文字符和/ 或中文标点符号。
检测项定位系统用于定位代码中的中文字符和/或中文标点符号。
图2是根据本发明的检测项定位方法的流程图。如图2所示, 本发明的检测项定位方法包括以下步骤步骤S202,为不同类型的 文件定义至少一个检测过滤模块和检测项定位模块;步骤S204,至 少一个检测过滤模块顺序对输入代码进行检测并将符合过滤条件 的代码过滤,将过滤后的代码输入到检测项定位模块;以及步骤 S206,检测项定位模块对需要检测的检测项进行检测和定位,并生
成检测结果输出文件,所述检测结果输出文件包括不符合所有过滤 条件的代码的位置和代码内容以供开发人员修改本地化故障。
本发明可以配置以下至少 一种4言息;险测过滤冲莫块和检测项定 位才莫块检查的文件类型和不同文件类型对应的一个或多个才企查项。
本发明通过新增类对任何文件类型进行配置。
号。至少一个检测过滤4莫块的4企测项为以下至少一种注释符之间 的多行内容和注释符后面的单行内容。
检测项定位模块的检测项为 中文字符和/或中文标点符号。
才艮据本发明的一个实施例,本发明才是供了 一种快速定位软件本 地化中常见故障的方法。通过配置文件定制某种文件类型的检测 类,在检测类可以定制多个检测模块来检查对应文件类型中常见的 本地化故障。
本发明可以对指定目录下的源代码、文本文件、HTML、 XML 等类型的文件进行中文符号或者中文字符串的检查,对不同类型文 件的判断方法可以通过不同的检测类来实现,所以可以很容易地扩 展支持新增加的文件类型,检查结果按照一定的格式输出到结果文 件,从而方^f更用户的查看和纠错。
首先分析上文提到的常见故障,这些常见故障在本地化软件中 的多种文件类型中都普遍存在。而不同的文件类型存在不同的注 释标志,由于注释行中的中文字符或者中文标点符号不算是故障, 这样就要求为每种文件类型定义不同的检测常见故障的方法。
对于本地化文件中的常见故障,定义了多个模块来检测,这些 模块顺序执行。某个检测模块通过就说明这个字符串是合法的。就 不用流入下一个检测才莫块了 。
常见的检测模块有以下三类
1、 检测注释多行模块。处于注释符间的多行内容都可以通过 检测。
2、 检测注释单行模块。处于注释符后面的单行内容可以通过 检测。
3、 检测中文字符或者中文标点符号模块,如果检测字符串中 没有中文字符或者中文标点符号可以通过检测。
不同类型的文件可以不同的检测模块,可以通过配置文件来为 不同的文件类型配置需要的检测模块,每种文件类型可以多个检测 模块,如果某种文件类型需要使用以上三种常见的检测模块之外的 检测功能,可以通过实现接口的方式来创建一个新的检测模块。
下面介绍本发明的具体步骤,本发明提供了可灵活配置并且可 高度扩展的方案,包括以下步骤
(a) 定义一个检测才莫块的接口 ,接口中包括两个方法。 一个 方法用于初始化,另外一个方法用于对输入的字符串进行检测。所 有的检测模块都需要实现这个接口 。
(b) 定义配置文件,配置文件中为某种文件类型定义检测类, 这些类都需要实现步骤(a)中的接口。还需要为不同的文件类型 定义不同的检查项。不同的文件类型可以共用某个检测类,最后配 指文件中还定义输出检测结果文件的格式和名称。
(C)程序启动时,将配置文件的内容全部加栽到内存空间中, 然后为不同文4牛类型的4企测类构造一个实例,然后调用实例的初始 化方法,在初始化方法中,4艮据配置文件中的检测才莫块配置信息来
设置检测模块开关项。如图3所示,启动时解析配置文件的流程包 *括启动自动检测4欠件(S302);解冲斤配置文4牛,将所有的配置4言 息加载到内存中(S304);弹出界面供用户输入需要检测的目录以 及文件类型(S306)。
(d) 弹出界面供用户选择需要检查的目录。
(e) 对用户选中的目录,通过递归方式逐个实现对每一个符 合检查范围的文件的检查任务。
(f )根据文件类型从内存中查找相应的文件检测类对象实例逐 4亍对文件的内容进4亍检测。
(g)由于对某种类型文件可能配置有多种检查项,多种检查 项之间采用管道方式来顺序检查,每项检查项任务输出符合要求的 代码内容和代码行号,同时该输出项作为输入项流入下一个检查 项。
(h ) —般来说检测中文字符或者中文标点符号模块都是最后 一项检测内容,当其他的检查项都检查完后,对于最后一个检查项 流出的符合规范的代码逐行检查是否包括中文字符串,如果包含就 4巴此行内容和行号记录下来,最后流出 一个包含所有不符合本地化 软件规范的代码内容和代码行号。
(i)对于上面流出的内容,逐个解析后最后输出一个检查结果 文件。输出文件中针对每个文件都列出不符合的内容,包括错误行 号和错误内容。
配置文件格式考虑到配置文件的扩展性,配置文件采用xml 文件格式。下面简单介绍配置文件的各个配置项。
FILETYPE:文件类型
SUFFIX:文件后缀名
CLASSNAME:实现该中文件类型的类名。
CHECKMODULE:需要进行检测的模块
OUTPUTFILE:输出文件名
下面以WCDMA网管系统为例,详细介绍本发明的实施方法。
WCDMA网管系统采用java语言作为编程语言,本地化主要涉 及到帮助文件html;配置文件xml;数椐库脚本文件sql;以及源代 码文件java。
下面重点介绍如何实现java文件的各个检查项的功能。其他文 件类型的检测方法也都类似,但是注释符等略有不同,只要稍微做 一些调整就可以实现对其他文件类型的4企测了 。
本地化软件中最常见的故障就是英文版本中的源代码中直接 使用中文字符或者中文标点符号,这会造成在英文操作系统或者其 它语言操作系统中显示为乱码的故障。
本方法的实现原理就是发现源代码中的中文字符或者中文标 点符号,^f旦是需要注意对于Java源代^码中注释部分中的中文字符或 者中文标点符号不属于检查范围。
Java源代码中的注释行有以下几种形式。
1、 /*和*/之间的内容;
2、 行起始字符为//的内容;
3、 行结尾字符为//的内容;
针对这三种注释形式,需要做不同的处理,这属于三个处理模块。
1、 对于/*类型注释,首先表示此行为/*行,然后查询此行是否有*/,如果有,将此行为/*行的标记清除掉。同时此行内容为注释行,如果此行中没有817,则检查下一行,直到检查到有*/的行,处于/*和*/之间的内容全部属于注释行。如图4所示,示出了判断是 否包含/**/的流程图。解析流入的Vector对象,循环获取所有的元素,得到所有的/*和*/字符(S402);循环获取所有的文件内容,处 于/*和*/之间的内容属于注释,不输出到检查结果Vector对象中(S404); /*和*/需要成对出现,如果/*后面接着/*,则将后面的/* 丢掉,直到找到下一个*/为止算是一对/*和*/ (S406);对于不属于注释的代码内容和代码行全部输出到Vector对象中,作为下一个检查项的流入对象(S408)。
2、 针对在行开始处为//注释,此行为注释行。图5是根据本发 明的实施例的判断在代码最前面是否为//的流程图。如图5所示,包括以下步骤解析流入的Vector对象,循环获取所有的元素,如 果该行代码除去空格后最前面包含//,则此行属于注释,不输出到检查结果Vector对象中(S502);对于不属于注释的代码内容和代码行全部输出到Vector对象中,作为下一个检查项的流入对象(S504 )。
3、针对在行结束处后面跟着〃,此行不算注释行过滤。但是需 要将〃后面的内容过滤掉,这一行代码还属于检查范围。图6是根 据本发明的实施例的判断在代码后面是否有〃的流程图。如图6所 示,包括以下步骤解析流入的Vector对象,循环获取所有的元素, 如果该行代码后面包含//,则此行包含注释信息(S602);对于包含 注释信息的代码行,取出在最前面的〃之前的内容作为没有注释信 息的代码内容,并和代码4亍一起输出到Vector对象中(S604 );对 于不属于注释的代码内容和代码行全部输出到Vector对象中,作为 下一个检查项的流入对象(S606)。
对于前面两项检测中为注释行的内容就不需要检测其中是否 包含中文字符或者中文标点符号。但是对于最后一种情况,需要对 过滤掉〃后面的内容进行检测。
对于不属于注释行的内容,需要检测其中是否包括中文字符或 者中文标点符号,如果包含说明该行内容检测不通过。
将所有不符合的内容和行号输出到Vector对象中,对象中的每 个元素包含错误内容和错误行号信息。图7是根据本发明的实施例 的解析检查结果输出对象,输出检查结果文件的流程图。如图7所 示,包4舌以下步骤解析通过所有检查项之后流出的Vector对象 (S702);循环逐行读取通过所有检查项的代码,判断是否包含中 文字符串,如果包含,则将此行的行号和内容记录下来。所有不合 法的代码内容和代码行号都被记录到一个Vector对象中(S704); 将上面Vector对象中的错误行号和错误内容全部输出到检查结果文 件中(S706)。
最后对上面得到的Vector对象逐个元素进行解析,将解析后的 内容输出到检查结果文件中供开发人员分析、定位故障。
对于其他类型文件的处理也可以参照这个方法。
本发明的实施例通过以下过程实现了故障的定位
(a) 配置文件的格式,其中,可以定义检查哪些文件类型, 可以为不同文件类型定义不同的检查项。通过配置文件,实现高度 的灵活性和可扩展性,可以通过新增类来实现对任何文件类型的检 查。可以通过定义实现接口或者继承类来实现某种新增文件类型的 检查功能。
(b) 对于同一种文件类型的多种检查项,采用管道的方式, 每一项检查都屏蔽掉不符合本检查项的内容,然后将符合的内容和 行号保存到 一个Vector对象中,作为下一个检查项的输入。
(c) 对一个文件的全部检查项都检查完毕后,解析最后得到 的所有符合检查范围的内容,从中发现包括中文字符串的行号,然
后将行号和内容都记录到一个Vector对象中。并将所有文件的检查 结果都输出到一个文件中,包括文件名、错误内容和4普误行号。
本发明可以快速定位本地化软件中的常见故障。实现这种方法 的软件可以将本地化软件中的常见故障输出到才企查结果文件中供 开发人员分析、修改故障。因此可以大大缩短本地化软件开发的时 间,从而降低软件开发成本。
以上所述仅为本发明的优选实施例而已,并不用于限制本发 明,对于本领域的技术人员来说,本发明可以有各种更改和变化。 凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进 等,均应包含在本发明的保护范围之内。
权利要求
1.一种定位检测项的系统,其特征在于,所述系统包括定制模块,用于为每种不同的文件定义至少一个检测过滤模块和检测项定位模块,并配置以下至少一种信息所述检测过滤模块和所述检测项定位模块检查的文件类型和所述不同文件类型对应的一个或多个检查项;所述至少一个检测过滤模块,以管道方式进行连接,用于分别对输入代码进行检测并将符合过滤条件的检测项从所述代码中过滤,将过滤后的代码输入到所述检测项定位模块;以及所述检测项定位模块,用于对需要检测的检测项进行检测和定位,并生成检测结果输出文件,所述检测结果输出文件包括不符合所有过滤条件的代码的位置和代码内容。
2、根据权利要求1所述的定位检测项的系统,其特征在于,所述 定制模块通过新增类对任何文件类型进行配置。
3、根据权利要求1或2所述的定位检测项的系统,其特征在于, 所述检测项定位系统用于定位所述代码中的中文字符和/或中 文标点符号。冲艮据权利要求3所述的定位检测项的系统,其特征在于,所述 至少 一个检测过滤才莫块的检测项为以下至少 一种注释符之间 的多;f亍内容和注释符后面的单行内容。
4、根据权利要求3所述的定位检测项的系统,其特征在于,所述 检测项定位模块的检测项为中文字符和/或中文标点符号。
全文摘要
本发明提供了一种定位检测项的系统,该系统包括定制模块,用于为每种不同的文件定义至少一个检测过滤模块和检测项定位模块,并配置以下至少一种信息检测过滤模块和检测项定位模块检查的文件类型和不同文件类型对应的一个或多个检查项;至少一个检测过滤模块,以管道方式进行连接,用于分别对输入代码进行检测并将符合过滤条件的检测项从代码中过滤,将过滤后的代码输入到检测项定位模块;以及检测项定位模块,用于对需要检测的检测项进行检测和定位,并生成检测结果输出文件,检测结果输出文件包括不符合所有过滤条件的代码的位置和代码内容。本发明通过配置文件定制某种文件类型的检测类,在检测类可以定制多个检测模块来检查对应文件类型中常见的本地化故障。
文档编号G06F11/36GK101201788SQ20061016815
公开日2008年6月18日 申请日期2006年12月15日 优先权日2006年12月15日
发明者翁在新 申请人:中兴通讯股份有限公司