CN103823686B - 基于签到法的字符串资源是否同步的检测方法及系统 - Google Patents

基于签到法的字符串资源是否同步的检测方法及系统 Download PDF

Info

Publication number
CN103823686B
CN103823686B CN201410098196.2A CN201410098196A CN103823686B CN 103823686 B CN103823686 B CN 103823686B CN 201410098196 A CN201410098196 A CN 201410098196A CN 103823686 B CN103823686 B CN 103823686B
Authority
CN
China
Prior art keywords
resource
string resource
language
string
variables
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201410098196.2A
Other languages
English (en)
Other versions
CN103823686A (zh
Inventor
唐兴龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangdong Oppo Mobile Telecommunications Corp Ltd
Original Assignee
Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangdong Oppo Mobile Telecommunications Corp Ltd filed Critical Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority to CN201410098196.2A priority Critical patent/CN103823686B/zh
Publication of CN103823686A publication Critical patent/CN103823686A/zh
Application granted granted Critical
Publication of CN103823686B publication Critical patent/CN103823686B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明公开了一种基于签到法的字符串资源是否同步的检测方法及系统,所述方法包括读取不同种类语言的资源文件,把同一类语言所有的字符串资源ID放在同一个数组,并使同一含义的字符串资源用同一个ID;采用签到的方式来检测出没有在所有语言的资源文件中都有定义的字符串资源,并将该字符串资源输出到报告文件里,指明该字符串资源在哪种语言里没有定义;所述系统包括资源文件读取模块和字符串资源检测模块。本发明方法及系统可以快速地检测出软件中不同语言种类的字符串资源的差异,即检测出哪一条字符串资源在哪种语言中没有定义,即不同语言的字符串资源存在不同步的问题,并将该字符串资源输出到报告文件里,防止程序出现显示异常或崩溃。

Description

基于签到法的字符串资源是否同步的检测方法及系统
技术领域
本发明涉及一种字符资源是否同步的检测方法及系统,尤其是一种基于签到法的字符串资源是否同步的检测方法及系统。属于软件开发技术领域。
背景技术
目前,在软件开发中经常会有多种语言的字符串资源,而且数量都比较多,因此经常出现一种问题就是对应的字符串有中文资源,但没有英文资源,或者是缺少繁体资源等,如果出现这种情况就会使软件显示不正确或者是由于找不到资源ID而出现异常。
中国专利申请号为200910081166.X的发明专利申请公开了一种字符串资源定义与调用的同步方法及装置,该申请用于解决在软件开发环境中,开发人员为维护字符串资源容易造成冗余以及出现定义与调用不同步的技术问题。该申请通过添加扫描检测模块自动程序代码中字符串调用以及在字符串资源文件中的字符串定义进行双向的检测,如果发现存在字符串冗余或未定义的情况则主动提示程序开发人员,从而减轻开发人员的工作负担,但并未出现解决上述技术问题的启示。
发明内容
本发明的目的是为了解决上述现有技术的缺陷,提供一种可以快速地检测出软件中不同语言种类的字符串资源的差异,并防止程序崩溃或显示异常的基于签到法的字符串资源是否同步的检测方法。
本发明的另一目的在于提供一种基于签到法的字符串资源是否同步的检测系统。
本发明的目的可以通过采取如下技术方案达到:
基于签到法的字符串资源是否同步的检测方法,其特征在于所述方法包括:
读取不同种类语言的资源文件,把同一类语言所有的字符串资源ID放在同一个数组,并使同一含义的字符串资源用同一个ID;
采用签到的方式来检测出没有在所有语言的资源文件中都有定义的字符串资源,并将该字符串资源输出到报告文件里,指明该字符串资源在哪种语言里没有定义。
作为一种优选方案,所述签到的方式通过创建ItemSignatureTable对象实现,不同语言中相同含义的字符串资源共用一个ItemSignatureTable对象,该对象包含两个变量,分别为mStringID变量和mSignatureTable变量;
其中,mStringID变量表示字符串资源ID;mSignatureTable变量表示字符串资源的签到表,mSignatureTable变量用二进制中不同的位来标记字符串资源的不同种类语言是否有签到,1表示有签到,0表示未签到。
作为一种优选方案,所述采用签到的方式来检测出没有在所有语言的资源文件中都有定义的字符串资源,并将该字符串资源输出到报告文件里,指明该字符串资源在哪种语言里没有定义,具体包括:
遍历所有的字符串资源,通过字符串资源ID在哈希表里查找该ID是否已创建了一张签到表;
若查找的字符串资源ID已创建了一张签到表,则获取ItemSignatureTable对象,并在mSignatureTable变量中相应语言的位设置为1;
若查找的字符串资源ID还未创建一张签到表,则创建ItemSignatureTable对象,并在mSignatureTable变量中相应语言的位设置为1,然后把ItemSignatureTable对象加入哈希表;
遍历哈希表里的每一项,查看表中所有ItemSignatureTable对象中mSignatureTable变量的语言位是否全部为1,若至少有一个位不为1,则说明相应的字符串资源的某种语言没有来签到;
在相应的字符串资源至少有一种语言没有来签到时,通过位运算判断mSignatureTable变量的语言位哪一位为0,即可知哪种语言没有定义该字符串资源;
将没有在所有语言的资源文件中都有定义的字符串资源输出到报告文件里,并指明该字符串资源在哪种语言里没有定义。
作为一种优选方案,所述把ItemSignatureTable对象加入哈希表后,key值表示字符串资源ID,value值表示ItemSignatureTable对象。
本发明的另一目的可以通过采取如下技术方案达到:
基于签到法的字符串资源是否同步的检测系统,其特征在于所述系统包括:
资源文件读取模块,用于读取不同种类语言的资源文件,把同一类语言所有的字符串资源ID放在同一个数组,并使同一含义的字符串资源用同一个ID;
字符串资源检测模块,用于采用签到的方式来检测出没有在所有语言的资源文件中都有定义的字符串资源,并将该字符串资源输出到报告文件里,指明该字符串资源在哪种语言里没有定义。
作为一种优选方案,所述字符串资源检测模块,具体包括:
字符串资源遍历单元,用于遍历所有的字符串资源,通过字符串资源ID在哈希表里查找该ID是否已创建了一张签到表;
对象获取单元,用于若查找的字符串资源ID已创建了一张签到表,则获取ItemSignatureTable对象,并在mSignatureTable变量中相应语言的位设置为1;
对象创建单元,用于若查找的字符串资源ID还未创建一张签到表,则创建ItemSignatureTable对象,并在mSignatureTable变量中相应语言的位设置为1,然后把ItemSignatureTable对象加入哈希表;
哈希表遍历单元,用于遍历哈希表里的每一项,查看表中所有ItemSignatureTable对象中mSignatureTable变量的语言位是否全部为1,若至少有一个位不为1,则说明相应的字符串资源至少有一种语言没有来签到;
字符串资源判断单元,用于在相应的字符串资源至少有一种语言没有来签到时,通过位运算判断mSignatureTable变量的语言位哪一位为0;
字符串资源输出单元,用于将没有在所有语言的资源文件中都有定义的字符串资源输出到报告文件里,并指明该字符串资源在哪种语言里没有定义。
本发明相对于现有技术具有如下的有益效果:
本发明方法及系统采用签到的方式,可以快速地检测出软件中不同语言种类的字符串资源的差异,即检测出哪一条字符串资源在哪种语言中没有定义,即不同语言的字符串资源存在不同步的问题,并将该字符串资源输出到报告文件里,防止程序出现显示异常或崩溃,能广泛应用于软件开发中。
附图说明
图1为本发明实施例1的基于签到法的字符串资源是否同步的检测方法的流程示意图。
图2a为本发明实施例1的基于签到法的字符串资源是否同步的检测方法中数组ArrayCn示意图。
图2b为本发明实施例1的基于签到法的字符串资源是否同步的检测方法中数组ArrayTw示意图。
图2c为本发明实施例1的基于签到法的字符串资源是否同步的检测方法中数组ArrayEn示意图。
图3为本发明实施例1的基于签到法的字符串资源是否同步的检测方法中签到过程的流程示意图。
图4为本发明实施例4的基于签到法的字符串资源是否同步的检测系统结构框图。
具体实施方式
实施例1:
如图1所示,本实施例的基于签到法的字符串资源是否同步的检测方法包括以下步骤:
1)读取不同种类语言的资源文件,把同一类语言所有的字符串资源ID放在同一个数组,并使同一含义的字符串资源用同一个ID;
如图2a~2c所示,本实施例以中文、繁体以及英文三种语言的资源为例,中文资源ID放到数组ArrayCn,繁体资源ID放到数组ArrayTw,英文资源放到ArrayEn,其中数组ArrayCn包括item1、item2、item3、item4、item5和item6,数组ArrayTw包括item1、item2、item3和item4,ArrayEn包括item1、item2、item3、item4、item5和item8;
2)采用签到的方式来检测出没有在所有语言的资源文件中都有定义的字符串资源,并将该字符串资源输出到报告文件里,指明该字符串资源在哪种语言里没有定义;
步骤2)中,所述签到的方式可以通过创建ItemSignatureTable对象实现,不同语言中相同含义的字符串资源共用一个ItemSignatureTable对象,所述ItemSignatureTable对象的创建如下:
ItemSignatureTable对象包含两个变量,分别为mStringID变量和mSignatureTable变量,mStringID变量表示字符串资源ID;mSignatureTable变量表示字符串资源的签到表,mSignatureTable变量用二进制中不同的位来标记字符串资源的不同种类语言是否有签到,1表示有签到,0表示未签到,在此定义mSignatureTable二进制的最后三位分别表示不同的语言(即最后三位作为语言位),如最后一位表示中文,倒数第二位表示繁体,倒数第三位表示英文;
如图1和图3所示,本实施例的步骤2)具体包括:
2.1)遍历所有的字符串资源,通过字符串资源ID在哈希表里查找该ID是否已创建了一张签到表;
2.2)若查找的字符串资源ID已创建了一张签到表,则获取ItemSignatureTable对象,并在mSignatureTable变量中相应语言的位设置为1;
2.3)若查找的字符串资源ID还未创建一张签到表,则创建ItemSignatureTable对象,并在mSignatureTable变量中相应语言的位设置为1,然后把ItemSignatureTable对象加入哈希表,key值表示字符串资源ID,value值表示ItemSignatureTable对象;
2.4)遍历哈希表里的每一项,查看表中所有ItemSignatureTable对象中mSignatureTable变量的最后三位是否全部为1,若至少有一个位不为1,则说明相应的字符串资源的某种语言没有来签到,此时通过位运算判断mSignatureTable变量的后三位哪一位为0,即可知哪种语言没有定义该字符串资源,将该字符串资源输出到报告文件里,并指明该字符串资源在哪种语言里没有定义;
本步骤以item5为例,它的最后签到结果是00000101,可以看到最后一位和倒数第三位均为1,倒数第二位为0,说明中文和英文都有签到,而繁体没有签到,这就说明item5的字符串资源在繁体里面没有定义,将item5的字符串资源输出到报告文件里,并指明在繁体里没有定义。
实施例2:
如图2a~2c和图3所示,本实施例的步骤2.4)以item6为例,它的最后签到结果是00000001,可以看到最后一位为1,倒数第二位和倒数第三位均为0,说明中文有签到,而繁体和英文没有签到,这就说明item6的字符串资源在繁体和英文里面没有定义,将item6的字符串资源输出到报告文件里,并指明在繁体里没有定义。
实施例3:
如图2a~图2c和图3所示,本实施例的步骤2.4)以item8为例,它的最后签到结果是00000100,可以看到倒数第三位为1,最后一位和倒数第二位均为0,说明英文有签到,而中文和繁体没有签到,这就说明item8的字符串资源在中文和繁体里面没有定义,将item8的字符串资源输出到报告文件里,并指明在中文和繁体里没有定义。
实施例4:
如图4所示,本实施例的基于签到法的字符串资源是否同步的检测系统,其特征在于:
资源文件读取模块,用于读取不同种类语言的资源文件,把同一类语言所有的字符串资源ID放在同一个数组,并使同一含义的字符串资源用同一个ID;
字符串资源检测模块,用于采用签到的方式来检测出没有在所有语言的资源文件中都有定义的字符串资源,并把该字符串资源输出到报告文件,指明该字符串资源在哪种语言里没有定义。
其中,所述字符串资源检测模块,具体包括:
字符串资源遍历单元,用于遍历所有的字符串资源,通过字符串资源ID在哈希表里查找该ID是否已创建了一张签到表;
对象获取单元,用于若查找的字符串资源ID已创建了一张签到表,则获取ItemSignatureTable对象,并在mSignatureTable变量中相应语言的位设置为1;
对象创建单元,用于若查找的字符串资源ID还未创建一张签到表,则创建ItemSignatureTable对象,并在mSignatureTable变量中相应语言的位设置为1,然后把ItemSignatureTable对象加入哈希表;
哈希表遍历单元,用于遍历哈希表里的每一项,查看表中所有ItemSignatureTable对象中mSignatureTable变量的语言位是否全部为1,若至少有一个位不为1,则说明相应的字符串资源的某种语言没有来签到;
字符串资源判断单元,用于在相应的字符串资源的某种语言没有来签到时,通过位运算判断mSignatureTable变量的语言位哪一位为0;
字符串资源输出单元,用于将没有在所有语言的资源文件中都有定义的字符串资源输出到报告文件里,并指明该字符串资源在哪种语言里没有定义。
综上所述,本发明方法及系统可以快速地检测出软件中不同语言种类的字符串资源的差异,即检测出哪一条字符串资源在哪种语言中没有定义,并将该字符串资源输出到报告文件里,防止程序出现显示异常或崩溃,能广泛应用于软件开发中。
上述实施例中所述的系统可以是手机、电子书、PDA、人机交互终端或其他具有显示功能的手持式终端设备。
另外,本领域普通技术人员可以理解实现上述各实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,相应的程序可以存储于一计算机可读取存储介质中,所述的存储介质,如ROM/RAM、磁盘或光盘等。
以上所述,仅为本发明专利较佳的实施例,但本发明专利的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明专利所公开的范围内,根据本发明专利的技术方案及其发明专利构思加以等同替换或改变,都属于本发明专利的保护范围。

Claims (4)

1.基于签到法的字符串资源是否同步的检测方法,其特征在于所述方法包括:
读取不同种类语言的资源文件,把同一类语言所有的字符串资源ID放在同一个数组,并使同一含义的字符串资源用同一个ID;
采用签到的方式来检测出没有在所有语言的资源文件中都有定义的字符串资源,并将该字符串资源输出到报告文件里,指明该字符串资源在哪种语言里没有定义;其中,所述签到的方式通过创建ItemSignatureTable对象实现,不同语言中相同含义的字符串资源共用一个ItemSignatureTable对象,该对象包含两个变量,分别为mStringID变量和mSignatureTable变量,mStringID变量表示字符串资源ID;mSignatureTable变量表示字符串资源的签到表,mSignatureTable变量用二进制中不同的位来标记字符串资源的不同种类语言是否有签到,1表示有签到,0表示未签到;
所述采用签到的方式来检测出没有在所有语言的资源文件中都有定义的字符串资源,并将该字符串资源输出到报告文件里,指明该字符串资源在哪种语言里没有定义,具体包括:
遍历所有的字符串资源,通过字符串资源ID在哈希表里查找该ID是否已创建了一张签到表;
若查找的字符串资源ID已创建了一张签到表,则获取ItemSignatureTable对象,并在mSignatureTable变量中相应语言的位设置为1;
若查找的字符串资源ID还未创建一张签到表,则创建ItemSignatureTable对象,并在mSignatureTable变量中相应语言的位设置为1,然后把ItemSignatureTable对象加入哈希表;
遍历哈希表里的每一项,查看表中所有ItemSignatureTable对象中mSignatureTable变量的语言位是否全部为1,若至少有一个位不为1,则说明相应的字符串资源至少有一种语言没有来签到;
在相应的字符串资源的某种语言没有来签到时,通过位运算判断mSignatureTable变量的语言位哪一位为0,即可知哪种语言没有定义该字符串资源;
将没有在所有语言的资源文件中都有定义的字符串资源输出到报告文件里,并指明该字符串资源在哪种语言里没有定义。
2.根据权利要求1所述的基于签到法的字符串资源是否同步的检测方法,其特征在于:所述把ItemSignatureTable对象加入哈希表后,key值表示字符串资源ID,value值表示ItemSignatureTable对象。
3.基于签到法的字符串资源是否同步的检测系统,其特征在于所述系统包括:
资源文件读取模块,用于读取不同种类语言的资源文件,把同一类语言所有的字符串资源ID放在同一个数组,并使同一含义的字符串资源用同一个ID;
字符串资源检测模块,用于采用签到的方式来检测出没有在所有语言的资源文件中都有定义的字符串资源,并将该字符串资源输出到报告文件里,指明该字符串资源在哪种语言里没有定义;其中,所述签到的方式通过创建ItemSignatureTable对象实现,不同语言中相同含义的字符串资源共用一个ItemSignatureTable对象,该对象包含两个变量,分别为mStringID变量和mSignatureTable变量,mStringID变量表示字符串资源ID;mSignatureTable变量表示字符串资源的签到表,mSignatureTable变量用二进制中不同的位来标记字符串资源的不同种类语言是否有签到,1表示有签到,0表示未签到;
所述字符串资源检测模块,具体包括:
字符串资源遍历单元,用于遍历所有的字符串资源,通过字符串资源ID在哈希表里查找该ID是否已创建了一张签到表;
对象获取单元,用于若查找的字符串资源ID已创建了一张签到表,则获取ItemSignatureTable对象,并在mSignatureTable变量中相应语言的位设置为1;
对象创建单元,用于若查找的字符串资源ID还未创建一张签到表,则创建ItemSignatureTable对象,并在mSignatureTable变量中相应语言的位设置为1,然后把ItemSignatureTable对象加入哈希表;
哈希表遍历单元,用于遍历哈希表里的每一项,查看表中所有ItemSignatureTable对象中mSignatureTable变量的语言位是否全部为1,若至少有一个位不为1,则说明相应的字符串资源至少有一种语言没有来签到;
字符串资源判断单元,用于在相应的字符串资源至少有一种语言没有来签到时,通过位运算判断mSignatureTable变量的语言位哪一位为0;
字符串资源输出单元,用于将没有在所有语言的资源文件中都有定义的字符串资源输出到报告文件里,并指明该字符串资源在哪种语言里没有定义。
4.根据权利要求3所述的基于签到法的字符串资源是否同步的检测系统,其特征在于:所述把ItemSignatureTable对象加入哈希表后,key值表示字符串资源ID,value值表示ItemSignatureTable对象。
CN201410098196.2A 2014-03-17 2014-03-17 基于签到法的字符串资源是否同步的检测方法及系统 Expired - Fee Related CN103823686B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410098196.2A CN103823686B (zh) 2014-03-17 2014-03-17 基于签到法的字符串资源是否同步的检测方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410098196.2A CN103823686B (zh) 2014-03-17 2014-03-17 基于签到法的字符串资源是否同步的检测方法及系统

Publications (2)

Publication Number Publication Date
CN103823686A CN103823686A (zh) 2014-05-28
CN103823686B true CN103823686B (zh) 2017-04-19

Family

ID=50758771

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410098196.2A Expired - Fee Related CN103823686B (zh) 2014-03-17 2014-03-17 基于签到法的字符串资源是否同步的检测方法及系统

Country Status (1)

Country Link
CN (1) CN103823686B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107241342A (zh) * 2017-06-30 2017-10-10 北京奇安信科技有限公司 一种网络攻击串检测方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1071013A2 (en) * 1999-06-29 2001-01-24 International Business Machines Corporation Mock translation method, system, and program to test software translatability
CN101145102A (zh) * 2006-09-11 2008-03-19 国际商业机器公司 测试国际化软件的方法和设备
CN101276272A (zh) * 2007-03-28 2008-10-01 凌阳科技股份有限公司 支持多语用户界面的系统及其方法
CN101577059A (zh) * 2008-05-05 2009-11-11 李春霞 支持多语种的语言学习系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1071013A2 (en) * 1999-06-29 2001-01-24 International Business Machines Corporation Mock translation method, system, and program to test software translatability
CN101145102A (zh) * 2006-09-11 2008-03-19 国际商业机器公司 测试国际化软件的方法和设备
CN101276272A (zh) * 2007-03-28 2008-10-01 凌阳科技股份有限公司 支持多语用户界面的系统及其方法
CN101577059A (zh) * 2008-05-05 2009-11-11 李春霞 支持多语种的语言学习系统

Also Published As

Publication number Publication date
CN103823686A (zh) 2014-05-28

Similar Documents

Publication Publication Date Title
US11397778B2 (en) Method and device for mining an enterprise relationship
US10095780B2 (en) Automatically mining patterns for rule based data standardization systems
CN102542201B (zh) 一种网页中恶意代码的检测方法及系统
CN102682090B (zh) 一种基于聚合词树的敏感词匹配处理系统及方法
US7912907B1 (en) Spam email detection based on n-grams with feature selection
US7937338B2 (en) System and method for identifying document structure and associated metainformation
CN109582833B (zh) 异常文本检测方法及装置
CN104778158A (zh) 一种文本表示方法及装置
CN107370718B (zh) 网页中黑链的检测方法和装置
US11184313B1 (en) Message content cleansing
US9626354B2 (en) Systems and methods for using tone indicator in text recognition
US20120110003A1 (en) Conditional execution of regular expressions
US10248646B1 (en) Token matching in large document corpora
CN104699667A (zh) 改进的基于语义词典的词语相似度计算方法和装置
CN109492118A (zh) 一种数据检测方法及检测装置
CN103605690A (zh) 一种即时通信中识别广告消息的装置和方法
WO2014065392A1 (ja) 情報抽出システム、情報抽出方法および情報抽出用プログラム
CN103823686B (zh) 基于签到法的字符串资源是否同步的检测方法及系统
CN103559202A (zh) 一种网页内容抽取装置和方法
CN103049434A (zh) 一种变形词证认系统及证认方法
CN102253983A (zh) 一种汉语高危词识别方法和系统
CN105608205A (zh) 结构化数据的指纹校验方法及装置
AlShenaifi et al. ARIB@ QALB-2015 shared task: a hybrid cascade model for Arabic spelling error detection and correction
US9106423B1 (en) Using positional analysis to identify login credentials on a web page
CN108021951A (zh) 一种文档检测的方法、服务器及计算机可读存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP01 Change in the name or title of a patent holder

Address after: Changan town in Guangdong province Dongguan 523860 usha Beach Road No. 18

Patentee after: GUANGDONG OPPO MOBILE TELECOMMUNICATIONS Corp.,Ltd.

Address before: Changan town in Guangdong province Dongguan 523860 usha Beach Road No. 18

Patentee before: GUANGDONG OPPO MOBILE TELECOMMUNICATIONS Corp.,Ltd.

CP01 Change in the name or title of a patent holder
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20170419

CF01 Termination of patent right due to non-payment of annual fee