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

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

Info

Publication number
CN103823686A
CN103823686A CN201410098196.2A CN201410098196A CN103823686A CN 103823686 A CN103823686 A CN 103823686A CN 201410098196 A CN201410098196 A CN 201410098196A CN 103823686 A CN103823686 A CN 103823686A
Authority
CN
China
Prior art keywords
resource
language
string resource
string
definition
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.)
Granted
Application number
CN201410098196.2A
Other languages
English (en)
Other versions
CN103823686B (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

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

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对象的创建如下:
Figure BDA0000477845270000051
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 (6)

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

Cited By (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 李春霞 支持多语种的语言学习系统

Cited By (1)

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

Also Published As

Publication number Publication date
CN103823686B (zh) 2017-04-19

Similar Documents

Publication Publication Date Title
KR101711882B1 (ko) 악성 취약점 파일을 검출하기 위한 방법, 장치 및 단말기
US10333972B2 (en) Method and apparatus for detecting hidden content of web page
CN107771334B (zh) 自动的数据库模式注释
US7937338B2 (en) System and method for identifying document structure and associated metainformation
CN105868166B (zh) 一种正则表达式的生成方法及系统
CN104778158A (zh) 一种文本表示方法及装置
EP3051428B1 (en) Method and system for selecting an encoding format for reading a target document
CN105095160A (zh) 一种文档转换阅读方法与系统
CN103942212A (zh) 一种用户界面的文字检测方法及装置
KR101509727B1 (ko) 자율학습 정렬 기반의 정렬 코퍼스 생성 장치 및 그 방법과, 정렬 코퍼스를 사용한 파괴 표현 형태소 분석 장치 및 그 형태소 분석 방법
US9002877B2 (en) Quick font match
US20150089415A1 (en) Method of processing big data, apparatus performing the same and storage media storing the same
CN103488482A (zh) 一种生成测试用例的方法和装置
CN104217036A (zh) 一种网页内容提取方法和设备
CN105335378A (zh) 多数据源的信息处理装置、服务器及方法
US10248646B1 (en) Token matching in large document corpora
CN105630524A (zh) 网页文本解析方法、装置和移动终端
CN103488488A (zh) 文本输入检查方法、装置及移动终端
CN102937949A (zh) 一种在富文本编辑器内实现英文拼写检查的方法及系统
CN105302626A (zh) Xps结构化数据的解析方法
Apostolova et al. Combining visual and textual features for information extraction from online flyers
CN103559202B (zh) 一种网页内容抽取装置和方法
US20150178289A1 (en) Identifying Semantically-Meaningful Text Selections
CN103823686A (zh) 基于签到法的字符串资源是否同步的检测方法及系统
CN103049434A (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
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.

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

Granted publication date: 20170419