一种字符串资源定义与调用的同步方法及装置制造方法及图纸

技术编号:3844702 阅读:214 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种字符串资源定义与调用的同步方法及装置,用于解决在软件开发环境中,开发人员人为维护字符串资源容易造成冗余以及经常出现定义与调用不同步的技术问题。本发明专利技术通过添加扫描检测模块自动对程序代码中的字符串调用及在字符串资源文件中的字符串定义进行双向的检测,如果发现存在字符串冗余或未定义的情况则主动提示程序开发人员,从而减轻了开发人员的工作负担,提高了开发的速度和检错的准确率和效率,优化了代码,避免了冗余字符串占用额外的存储空间。

【技术实现步骤摘要】

本专利技术涉及软件源代码开发技术,尤其涉及一种字符串资源定义与调用的同步方 法及装置。
技术介绍
在软件开发领域,字符串资源主要是指需在用户界面上显示输出的定义在资源文 件中的字符串的集合,对于国际化的语言环境,字符串资源一般都会有若干个语言版本。字 符串的国际化使用集中管理的国际化形式,同一个字符串资源由唯一的系统生成的字符串 标识(键值)来标识,每一个字符串资源在不同的语言下面有不同的表现。开发人员对字 符串资源的管理总体上分为两个过程一是字符串的定义,即给字符串内容分配唯一的字 符串标识;二是字符串的调用,即在程序代码中通过字符串标识从资源文件中调用对应的 字符串。由于字符串的定义和调用是由开发人员人工来维护的,调用和定义在一定程度上 是分离的,这样就会产生同步的问题,即如果在字符串资源文件中定义了某个字符串而在 程序代码中并没有使用到该字符串,就会产生冗余;如果通过某个字符串标识调用字符串, 而对应的字符串在字符串资源文件中并没有定义,则在编译程序代码的时候就会出错,导 致无法整个程序代码编译失败。
技术实现思路
有鉴于此,本专利技术的主要目的在于提供一种能够实现字符串资源定义和调用同步 的方法及装置,用于解决在软件开发环境中,开发人员人为维护字符串资源容易造成冗余 以及经常出现定义与调用不同步的技术问题。本专利技术的基本思想是通过添加一个扫描检测模块自动对程序代码进行扫描从而 及时发现并提醒开发人员那个或哪些字符串未定义,以及自动检查哪些字符串虽然定义了 但在程序代码中并未使用,从而及时发现冗余定义的字符串并提示开发人员删除。为达到上述目的,本专利技术的技术方案是这样实现的一种字符串资源定义和调用的同步方法,包括使用宏定义实现字符串资源访问接口,通过扫描检测模块扫描在程序代码文件中 调用但未在字符串资源文件中定义的字符串标识,以及检测在字符串资源文件中定义但未 在程序代码文件中调用的字符串资源,并产生相应告警信息。进一步地,所述使用宏定义实现字符串资源访问接口是指在字符串资源文件中 定义用于在程序代码文件中调用字符串资源的宏,所述宏使用特定命名规则进行命名。进一步地,通过扫描检测模块扫描在程序代码文件中调用但未在字符串资源文件 中定义的字符串标识的方法为实时检测开发人员在程序代码文件中输入的调用字符串资源的宏并从所述宏中 提取出字符串标识,若发现所述字符串标识在字符串资源文件中未定义,则产生相应告警 信息;或,在保存程序代码文件时或通过菜单命令调用扫描检测模块对程序代码文件中所 有调用字符串资源的宏进行扫描,并检测其引用的字符串标识是否在字符串资源文件中定 义,若发现未定义则产生相应告警信息。进一步地,所述检测在字符串资源文件中定义但未在程序代码文件中调用的字符 串资源的步骤为由扫描检测模块整体扫描程序代码文件中所有调用字符串资源的宏,并将所述宏 中的字符串标识提取出来形成字符串标识集合;扫描检测模块循环判断字符串资源文件中的每一个字符串资源的字符串标识是 否包含于所述字符串标识集合中,若不存在产生相应告警信息提示删除该冗余定义的字符串。本专利技术的另一目的在于提供一种能够实现字符串资源定义和调用同步的装置,为 达到上述目的,本专利技术的技术方案是这样实现的一种字符串资源定义与调用的同步装置,包括程序代码编辑模块、字符串资源模 块,还包括扫描检测模块,用于程序代码文件与字符串资源文件之间的字符串调用与定义的 同步,并在发现引用未定义的字符串或冗余定义的字符串时产生相应告警信息。进一步地,所述扫描检测模块包括冗余检测模块,用于检测在字符串资源文件中定义但未在程序代码文件中调用的 字符串,并产生相应告警信息;引用扫描模块,用于自动扫描在程序代码文件中调用但未在字符串资源文件中定 义的字符串标识,并产生相应告警信息;告警模块,用于接收冗余检测模块及引用扫描模块产生的告警信息并以设定方式 提示给用户。进一步地,所述引用扫描模块包括宏匹配模块,用于实时对在程序代码编辑模块中输入的宏进行匹配或在所述程序 代码编辑模块保存程序代码文件时扫描在程序代码文件中出现的调用字符串资源的宏,获 取其引用的字符串标识发送给引用验证模块;引用验证模块,用于根据接收到的字符串标识在字符串资源文件中检索,判断所 述字符串标识是否在字符串资源文件中定义,若未定义则产生告警信息并发送给所述告警 模块。进一步地,所述冗余检测模块包括字符串标识获取模块,用于在扫描在程序代码文件中调用字符串资源的宏,并获 取其中的字符串标识形成字符串标识集合;定义验证模块,用于获取字符串资源文件中已定义的字符串资源的字符串标识, 并判断每一个字符串标识是否包含于所述字符串标识集合中,若不包含,则产生告警信息 并发送给所述告警模块。进一步地,所述程序代码编辑模块通过接口调用所述扫描检测模块,所述扫描检 测模块可直接输出告警信息或通过所述接口在所述程序代码编辑模块中输出所述告警信息。本专利技术通过添加扫描检测模块自动对程序代码中的字符串调用及在字符串资源 文件中的字符串定义进行双向的检测,如果发现存在字符串冗余或未定义的情况则主动提 示程序开发人员,从而减轻了开发人员的工作负担,提高了开发的速度和检错的准确率和 效率,优化了代码,避免了冗余字符串占用额外的存储空间。附图说明图1为本专利技术实现字符串资源定义与调用的同步方法的流程图;图2为本专利技术实现字符串资源定义与调用的同步装置的结构图。具体实施例方式为使本专利技术的目的、技术方案和优点更加清楚明白,以下举实施例并参照附图,对 本专利技术进一步详细说明。图1为本专利技术实现字符串资源定义与调用的同步方法的流程图,具体为步骤1 在字符串资源模块中用户添加字符串资源,生成字符串资源文件;在集成开发环境中,通常提供用于定义和管理字符串资源文件的字符串资源模 块,通过字符串资源模块可定义新的字符串资源,可对字符串资源进行维护管理等操作,本 专利技术中,扫描检测模块通过字符串资源模块提供的接口对字符串资源文件进行操作。每一个字符串资源针对不同的语言有不同的内容,每个字符串资源都有唯一的字 符串标识与其相对应,在程序代码文件中可通过字符串标识来调用对应的字符串资源。为了在程序代码中直接根据字符串标识调用对应的字符串资源,需将字符串资源 编译成字符串资源文件,在字符串资源文件中对字符串资源的调用封装了接口,并且在头 文件中使用宏定义将字符串资源的调用规范为特定的宏,为了方便在程序代码文件中的扫 描,本专利技术在字符串资源文件中使用特定命名规则对宏进行命名,宏定义示例如下#define_(msgid)zGuil 18n_Gettext(msgid),其中zGuillSr^Gettext为用于从字符串资源文件中获取字符串资源的函数,_ (msgid)为在程序代码文件中使用的宏,msgid为字符串标识,使用该宏定义就可以调用字 符串资源文件中的字符串资源。步骤2 在通过程序代码编辑模块编写程序代码文件时,扫描检测模块对程序代 码文件进行扫描,当发现调用字符串的宏时,从其调用代码中获取所引用的字符串标识,判 断所述字符串标识是否已在字符串资源文件中定义,若未定义则产生相应的告警信息;本专利技术中,在程序代码编辑模块中进行程序代码文件的编辑、编译等操作,现有的 编程环境本文档来自技高网...

【技术保护点】
一种字符串资源定义与调用的同步方法,其特征在于,包括:使用宏定义实现字符串资源访问接口,通过扫描检测模块扫描在程序代码文件中调用但未在字符串资源文件中定义的字符串标识,以及检测在字符串资源文件中定义但未在程序代码文件中调用的字符串资源,并产生相应告警信息。

【技术特征摘要】

【专利技术属性】
技术研发人员:杨一
申请(专利权)人:中兴通讯股份有限公司
类型:发明
国别省市:94[中国|深圳]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1