CN111522531A - 文件查验方法、装置、电子设备及计算机可读存储介质 - Google Patents
文件查验方法、装置、电子设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN111522531A CN111522531A CN202010300643.3A CN202010300643A CN111522531A CN 111522531 A CN111522531 A CN 111522531A CN 202010300643 A CN202010300643 A CN 202010300643A CN 111522531 A CN111522531 A CN 111522531A
- Authority
- CN
- China
- Prior art keywords
- localized
- file
- data list
- key value
- result
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/10—Requirements analysis; Specification techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/14—Details of searching files based on file metadata
- G06F16/148—File search processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/43—Checking; Contextual analysis
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Library & Information Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供一种文件查验方法、装置、电子设备及计算机可读存储介质,包括:获取应用工程目录下的本地化文件;对所述本地化文件进行解析,获得所述本地化文件的数据列表;其中,所述数据列表存储有所述本地化文件中各业务场景下的键值;基于所述数据列表中的键值对所述本地化文件进行规范性检查,输出检查结果。本发明实施例可以查验出本地化文件中的不规范使用,从而可以在应用工程做国际化输出以及SDK输出时规避多语言适配方面的问题。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种文件查验方法、装置、电子设备及计算机可读存储介质。
背景技术
在全球化的趋势下,越来越多的电子设备应用需要支持多语言,为不同国家及地域的客户提供服务。在移动操作系统iOS原生应用领域,国际化文件是指strings类型的本地化文件即strings文件,用来管理不同语言类型的翻译内容。
目前,strings文件会有多个语言类型的本地化文件,在这些本地化文件中,可能会存在很多不规范的使用。然而,这些不规范的使用,在应用工程做国际化输出以及软件开发工具包(SDK,Software Development Kit)输出时会导致多语言适配方面的问题。
发明内容
本发明实施例提供一种文件查验方法、装置、电子设备及计算机可读存储介质,以解决由于本地化文件的不规范使用,导致在应用工程做国际化输出以及SDK输出时存在多语言适配方面的问题。
第一方面,本发明实施例提供了一种文件查验方法,所述方法包括:
获取应用工程目录下的本地化文件;
对所述本地化文件进行解析,获得所述本地化文件的数据列表;其中,所述数据列表存储有所述本地化文件中各业务场景下的键值;
基于所述数据列表中的键值对所述本地化文件进行规范性检查,输出检查结果。
第二方面,本发明实施例还提供一种文件查验装置,所述装置包括:
获取模块,用于获取应用工程目录下的本地化文件;
解析模块,用于对所述本地化文件进行解析,获得所述本地化文件的数据列表;其中,所述数据列表存储有所述本地化文件中各业务场景下的键值;
检查模块,用于基于所述数据列表中的键值对所述本地化文件进行规范性检查,输出检查结果。
第三方面,本发明实施例还提供一种电子设备,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述文件查验方法的步骤。
第四方面,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现上述文件查验方法的步骤。
本发明实施例中,通过获取应用工程目录下的本地化文件;对所述本地化文件进行解析,获得所述本地化文件的数据列表;其中,所述数据列表存储有所述本地化文件中各业务场景下的键值;基于所述数据列表中的键值对所述本地化文件进行规范性检查,输出检查结果。如此,可以查验出本地化文件中的不规范使用,从而可以在应用工程做国际化输出以及SDK输出时规避多语言适配方面的问题。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的文件查验方法的流程图之一;
图2是本发明实施例提供的文件查验方法的流程图之二;
图3是键值未调用检查的细化流程图;
图4是键值重复声明检查的细化流程图;
图5是键值对齐检查的细化流程图;
图6是键值调用位置检查的细化流程图;
图7是本发明实施例提供的文件查验装置的结构图;
图8是本发明实施提供的电子设备的结构图。
具体实施方式
从背景技术可以看出,现有技术中,strings文件会有多个语言类型的本地化文件,在这些本地化文件中,可能会存在很多不规范的使用。
比如,在单个语言类型的strings文件中可能会有多个重复的键值声明,或者内容相同但键值不同。
又比如,多个语言类型中的strings文件存在没有对齐的情况,比如,简体中文版本中有键值声明,但是,在繁体中文版本中却没有键值的存在。
还比如,调用位置不规范,如在一SDK中存在的键值,但是调用的却在另一个SDK中;已经在本地化文件中声明,但是并没有在所在的应用工程或SDK中调用。
然而,这些不规范的使用,在应用工程做国际化输出以及SDK输出时会导致多语言适配方面的问题。
基于此,本发明实施例提供一种新的文件查验方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
首先,对本发明实施例提供的文件查验方法进行说明。
需要说明的是,本发明实施例提供的文件查验方法可以应用于电子设备,所述电子设备可以为终端设备,用于对本地化文件进行查验,以确定本地化文件中是否存在不规范的使用,达到在应用工程做国际化输出以及SDK输出时规避多语言适配方面的问题的目的。
参见图1,图1是本发明实施例提供的文件查验方法的流程图之一,如图1所示,包括以下步骤:
步骤101,获取应用工程目录下的本地化文件;
步骤102,对所述本地化文件进行解析,获得所述本地化文件的数据列表;其中,所述数据列表存储有所述本地化文件中各业务场景下的键值;
步骤103,基于所述数据列表中的键值对所述本地化文件进行规范性检查,输出检查结果。
在步骤101中,所述应用工程目录可以理解为应用开发过程中的项目工程目录,其中,所述应用工程目录中可以包括至少一个SDK,且SDK中可以包括至少一个本地化文件。
所述至少一个本地化文件中可以包括多个语言类型的本地化文件,且每个本地化文件中包括一业务场景下的键值和内容。比如,一SDK中包括中文类型的本地化文件1和本地化文件2,以及英文类型的本地化文件3和本地化文件4;其中,本地化文件1中包括业务场景A下为中文类型的键值和内容,本地化文件2中包括业务场景B下为中文类型的键值和内容。本地化文件C也包括业务场景A下为英文类型的键值和内容,本地化文件D包括业务场景B下为英文类型的键值和内容。
也就是说,针对每个语言类型,可以关联至少一个本地化文件,且该语言类型关联的各本地化文件中所涉及的业务场景不同。针对每一业务场景,也可以关联至少一个本地化文件,且该业务场景关联的各本地化文件中的键值和内容所涉及的语言类型不同。
步骤101的具体实现中,可以获取应用工程目录下各SDK中strings类型的所有本地化文件。
在步骤102中,可以遍历读取每个本地化文件内容,对每个本地化文件内容进行正则过滤,以过滤掉本地化文件中的所有格式以及无效信息,比如,过滤掉空格和换行等格式,过滤掉单行注释代码和多行注释代码等无效信息,最终输出一个不包含任何格式以及无效信息的纯文本。
对正则过滤后输出的纯文本进行分割解析,提取纯文本中的键值和内容,获得应用工程目录下的本地化文本的数据列表。其中,所述数据列表关联存储有应用工程目录下的本地化文件中各业务场景下的键值和内容。
在步骤103中,可以基于所述数据列表中关联存储的键值和内容,对所述本地化文件进行规范性检查,以检查出应用工程目录下的本地化文件中存在的不规范使用,并输出本地化文件中不规范使用的键值。
其中,可以对本地化文件进行多种规范性检查,比如,对本地化文件中键值和内容的重复声明情况进行规范性检查,又比如,对本地化文件中的键值调用情况进行规范性检查,还比如,对本地化文件中的键值对齐情况进行规范性检查。以下分别对各种规范性检查进行详细说明。
本实施例中,通过获取应用工程目录下的本地化文件;对所述本地化文件进行解析,获得所述本地化文件的数据列表;其中,所述数据列表存储有所述本地化文件中各业务场景下的键值;基于所述数据列表中的键值对所述本地化文件进行规范性检查,输出检查结果。如此,可以查验出本地化文件中的不规范使用,从而可以在应用工程做国际化输出以及SDK输出时规避多语言适配方面的问题。
可选的,基于实施例一,所述本地化文件的数量包括至少一个,所述步骤102具体包括:
针对每个所述本地化文件,对所述本地化文件进行解析,生成所述本地化文件的第一数据列表;
在第一语言类型关联至少两个本地化文件的情况下,对所述第一语言类型关联的至少两个本地化文件的第一数据列表进行合并,得到所述第一语言类型对应的第二数据列表,所述第一语言类型为所述应用工程目录下的任一语言类型。
针对每个所述本地化文件,对所述本地化文件进行解析,生成所述本地化文件的第一数据列表;其中,对所述本地化文件进行解析的方式与上述实施例类似,这里不再对其赘述。
所述第一数据列表中关联存储有所述本地化文件中业务场景下的键值和内容,其数据结构可以表示成{file1:[key1,value1]}。
在一可选实施例中,若一语言类型关联有至少两个本地化文件,可以对该语言类型关联的至少两个本地化文件的第一数据列表进行合并,得到该语言类型对应的第二数据列表。其数据结构可以表示成{{file1:[key1,value1]},{file2:[key2,value2]}…}。
本实施例中,通过将同一语言类型关联的本地化文件的第一数据列表进行合并,得到第二数据列表,从而后续可以基于第二数据列表,对同一语言类型关联的本地化文件中各业务场景下的键值和内容的重复声明情况进行规范性检查。
可选的,基于上述实施例,所述步骤103具体包括:
确定每一语言类型对应的目标数据列表中是否存在第一键值;其中,所述第一键值包括与至少两个不同内容关联的同一键值,或者所述第一键值包括与同一内容关联的不同键值,在所述语言类型仅关联一个本地化文件的情况下,所述语言类型对应的目标数据列表为所述第一数据列表,在所述语言类型关联至少两个本地化文件的情况下,所述语言类型对应的目标数据列表为所述第二数据列表;
在存在所述第一键值的情况下,输出检查结果;其中,所述检查结果包括所述第一键值。
本实施例中,遍历检查每一语言类型对应的目标数据列表中,是否有重复的键值,或者键值不同但是对应的内容相同。其中,所述目标数据列表为第一数据列表或第二数据列表。
在存在第一键值的情况下,输出检查结果,其中,所述检查结果包括所述第一键值。
本实施例中,通过确定每一语言类型对应的目标数据列表中是否存在第一键值,从而可以对本地化文件中键值和内容的重复声明情况进行规范性检查,并在存在第一键值的情况下,输出检查结果。
可选的,所述针对每个所述本地化文件,对所述本地化文件进行解析,生成所述本地化文件的第一数据列表之后,所述方法还包括:
在第一业务场景关联至少两个不同语言类型的本地化文件的情况下,对所述第一业务场景关联的至少两个不同语言类型的本地化文件的第一数据列表进行合并,得到所述第一业务场景对应的第三数据列表,所述第一业务场景为所述应用工程目录下的任一业务场景。
在一可选实施例中,若一业务场景关联有至少两个不同语言类型的本地化文件,可以对该业务场景关联的至少两个不同语言类型的本地化文件的第一数据列表进行合并,得到该业务场景对应的第三数据列表。其数据结构可以表示成{{file1:[key1,value1]},{file2:[key2,value2]}…}。
本实施例中,通过将同一业务场景关联的至少两个不同语言类型的本地化文件的第一数据列表进行合并,得到第三数据列表,从而后续可以基于第三数据列表,对同一业务场景关联的至少两个不同语言类型的本地化文件中的键值对齐情况进行规范性检查。
可选的,基于上述实施例,所述步骤103具体包括:
针对每一业务场景对应的第三数据列表,将各语言类型的本地化文件中的键值进行并集运算,获得第一运算列表;
针对每一业务场景对应的第三数据列表,将各语言类型的本地化文件中的键值进行交集运算,获得第二运算列表;
输出检查结果;其中,所述检查结果包括所述第一运算列表中除第二键值之外的键值,所述第二键值为所述第二运算列表中的键值。
本实施例中,通过确定第一运算列表中是否存在除第二运算列表中的键值之外的键值,从而可以对本地化文件中键值对齐情况进行规范性检查,并在第一运算列表中存在除第二运算列表中的键值之外的键值的情况下,输出检查结果。
可选的,所述应用工程目录下包括至少一个软件开发工具包,所述步骤103具体包括:
针对每一所述软件开发工具包,将所述数据列表中的每个键值与预先获取的第一命令结果进行匹配,获得第一匹配结果;其中,所述第一命令结果为对所述软件开发工具包中的第一预设文件执行预设命令所获得的结果;
在所述第一匹配结果表明存在第三键值的情况下,输出检查结果;其中,所述检查结果包括所述第三键值,所述第三键值为所述数据列表中与所述第一命令结果匹配失败的键值。
所述第一预设文件可以为SDK中的静态文件,所述预设命令可以为字符串strings命令。
对本地化文件中的键值调用情况进行规范性检查可以包括两种情况,在一可选实施例中,对本地化文件中的键值进行未调用检查,核心逻辑是将SDK中的静态文件执行strings命令,获得第一命令结果。将第一命令结果保存下来,针对该SDK,将数据列表中该SDK的本地化文件中的每个键值与第一命令结果进行一一匹配,如匹配失败,则表明存在第三键值,该第三键值表明该SDK中存在未调用的键值。
本实施例中,针对每一SDK,通过将所述数据列表中的每个键值与预先获取的第一命令结果进行匹配,获得第一匹配结果,确定第一匹配结果中是否存在匹配失败的情况,从而可以对本地化文件中的键值调用情况进行规范性检查。并在第一匹配结果表明存在第三键值的情况下,输出检查结果。
可选的,所述应用工程目录下包括至少一个软件开发工具包,所述步骤103具体包括:
针对每一所述软件开发工具包,获取所述软件开发工具包对应的调用检查列表;其中,所述调用检查列表中包括所述数据列表中除第四键值之外的键值,所述第四键值为所述软件开发工具包中本地化文件的键值;
针对每一所述软件开发工具包,将所述调用检查列表中的每个键值与预先获取的第一命令结果进行匹配,获得第二匹配结果;其中,所述第一命令结果为对所述软件开发工具包中的预设文件执行预设命令所获得的结果;
在所述第二匹配结果表明存在第五键值的情况下,输出检查结果;其中,所述检查结果包括所述第五键值,所述第五键值为所述调用检查列表中与所述第一命令结果匹配成功的键值。
在另一可选实施例中,对本地化文件中的键值进行调用位置检查,核心逻辑是先获取应用工程目录中所有的本地化文件中的键值,减去要检查的SDK中的键值就是需要去该SDK中检查的调用检查列表。对该SDK中的静态文件执行strings命令,获得第二命令结果,将调用检查列表中的键值逐一去第二命令结果中匹配,若能匹配到,则标记为异常调用。
本实施例中,针对每一SDK,通过获取该SDK对应的调用检查列表,该调用检查列表包括其他SDK的本地化文件中的键值,确定调用检查列表中的键值在本SDK是否存在调用,从而可以对本地化文件中的键值调用情况进行规范性检查。并在第二匹配结果表明存在第五键值的情况下,即确定调用检查列表中的键值在本SDK存在调用的情况下,输出检查结果。
为了更好的理解整个过程,以下举例对本发明实施例提供的文件查验方法进行详细说明。
参见图2,图2是本发明实施例提供的文件查验方法的流程图之二,如图2所示,流程如下:
首先,搜索应用工程目录下的所有本地化文件。
然后,对应用工程目录下的本地化文件进行解析,获得数据列表。
其中,针对每个所述本地化文件,对每一本地化文件进行解析,生成所述本地化文件的第一数据列表。在第一语言类型关联至少两个本地化文件的情况下,对所述第一语言类型关联的至少两个本地化文件的第一数据列表进行合并,得到所述第一语言类型对应的第二数据列表,所述第一语言类型为所述应用工程目录下的任一语言类型。在第一业务场景关联至少两个不同语言类型的本地化文件的情况下,对所述第一业务场景关联的至少两个不同语言类型的本地化文件的第一数据列表进行合并,得到所述第一业务场景对应的第三数据列表,所述第一业务场景为所述应用工程目录下的任一业务场景。
接着,对数据列表中的键值进行未调用检查,在存在键值未调用的情况下,输出检查结果,流程如图3所示。
接着,对目标数据列表中的键值和内容进行重复声明情况检查,在键值和/或内容存在重复声明的情况下,输出检查结果,流程如图4所示。
其中,在一语言类型仅关联一个本地化文件的情况下,所述目标数据列表为第一数据列表,在一语言类型关联有至少两个本地化文件的情况下,所述目标数据列表为第二数据列表。
接着,对第三数据列表中的键值进行对齐检查,在存在键值不对齐的情况下,输出检查结果,流程如图5所示。
接着,针对每一SDK,获取该SDK对应的调用检查列表,基于该调用检查列表,对调用检查列表中的键值进行调用位置检查,在存在其他SDK中的键值在本SDK存在调用的情况下,输出检查结果,流程如图6所示。
参见图3,图3是键值未调用检查的细化流程图,如图3所示,流程如下:
首先,取出SDK中任一语言类型关联的所有本地化文件的键值,获得该语言类型的数据列表,记为KeyList。
然后,对SDK中的静态文件framework文件执行strings命令。
接着,解析strings命令的结果为stingsList。
接着,遍历KeyList中的当前键值。
接着,确定stingsList中是否包含该键值。
若是,则遍历KeyList中的下一个键值;若否,则将该键值标记为未调用。
参见图4,图4是键值重复声明检查的细化流程图,如图4所示,流程如下:
首先,取出任一语言类型对应的数据列表中的键值集合和内容集合,分别记为KeySet和ValueSet。
然后,新建KeyHashSet,ValueHashSet,Keyduplication,Valueduplication。
接着,遍历KeySet中键值和ValueSet中内容。
接着,确定KeyHashSet是否包含键值或ValueHashSet是否包含内容。
若是,则将键值存入Keyduplication中,或将内容存入Valueduplication;若否,则将键值存入KeyHashSet中,或将内容存在ValueHashSet。
参见图5,图5是键值对齐检查的细化流程图,如图5所示,流程如下:
首先,分别取出SDK中任一业务场景关联的不同语言类型的本地化文件的数据列表,记为KeyList1。
接着,取多个KeyList1的并集。
接着,取多个KeyList1的交集。
接着,将并集减去交集,获得检查结果。
最后,保存检查结果。
参见图6,图6是键值调用位置检查的细化流程图,如图6所示,流程如下:
首先,获取应用工程目录中所有本地化文件的键值,去重之后记为allKeyList。
接着,应用工程目录中的所有SDK进行遍历。
接着,对遍历中的单个SDK的静态文件执行strings命令并保存结果为sdkstringsList。
接着,取遍历中的SDK对应的本地化文件的所有键值,记为sdkKeyList。
接着,使用allKeyList减去sdkKeyList,作为待检查的调用检查列表,记为needCheckKeyList。
接着,循环取出needCheckKeyList中的键值。
接着,确定sdkstringsList是否包含该键值。
若是,则将该键值标记为异常调用;若否,遍历needCheckKeyList中的下一个键值。
下面对本发明实施例提供的文件查验装置进行说明。
参见图7,图7是本发明实施例提供的文件查验装置的结构图,能实现上述文件查验方法的细节,并达到相同的效果。如图7所示,文件查验装置700包括:
获取模块701,用于获取应用工程目录下的本地化文件;
解析模块702,用于对所述本地化文件进行解析,获得所述本地化文件的数据列表;其中,所述数据列表存储有所述本地化文件中各业务场景下的键值;
检查模块703,用于基于所述数据列表中的键值对所述本地化文件进行规范性检查,输出检查结果。
可选的,所述本地化文件的数量包括至少一个;所述解析模块702,具体用于针对每个所述本地化文件,对所述本地化文件进行解析,生成所述本地化文件的第一数据列表;在第一语言类型关联至少两个本地化文件的情况下,对所述第一语言类型关联的至少两个本地化文件的第一数据列表进行合并,得到所述第一语言类型对应的第二数据列表,所述第一语言类型为所述应用工程目录下的任一语言类型。
可选的,所述检查模块703,具体用于确定每一语言类型对应的目标数据列表中是否存在第一键值;其中,所述第一键值包括与至少两个不同内容关联的同一键值,或者所述第一键值包括与同一内容关联的不同键值,在所述语言类型仅关联一个本地化文件的情况下,所述语言类型对应的目标数据列表为所述第一数据列表,在所述语言类型关联至少两个本地化文件的情况下,所述语言类型对应的目标数据列表为所述第二数据列表;在存在所述第一键值的情况下,输出检查结果;其中,所述检查结果包括所述第一键值。
可选的,所述解析模块702,还用于在第一业务场景关联至少两个不同语言类型的本地化文件的情况下,对所述第一业务场景关联的至少两个不同语言类型的本地化文件的第一数据列表进行合并,得到所述第一业务场景对应的第三数据列表,所述第一业务场景为所述应用工程目录下的任一业务场景。
可选的,所述检查模块703,还用于针对每一业务场景对应的第三数据列表,将各语言类型的本地化文件中的键值进行并集运算,获得第一运算列表;针对每一业务场景对应的第三数据列表,将各语言类型的本地化文件中的键值进行交集运算,获得第二运算列表;输出检查结果;其中,所述检查结果包括所述第一运算列表中除第二键值之外的键值,所述第二键值为所述第二运算列表中的键值。
可选的,所述应用工程目录下包括至少一个软件开发工具包,所述检查模块703,还用于针对每一所述软件开发工具包,将所述数据列表中的每个键值与预先获取的第一命令结果进行匹配,获得第一匹配结果;其中,所述第一命令结果为对所述软件开发工具包中的第一预设文件执行预设命令所获得的结果;在所述第一匹配结果表明存在第三键值的情况下,输出检查结果;其中,所述检查结果包括所述第三键值,所述第三键值为所述数据列表中与所述第一命令结果匹配失败的键值。
可选的,所述应用工程目录下包括至少一个软件开发工具包,所述检查模块703,还用于针对每一所述软件开发工具包,获取所述软件开发工具包对应的调用检查列表;其中,所述调用检查列表中包括所述数据列表中除第四键值之外的键值,所述第四键值为所述软件开发工具包中本地化文件的键值;针对每一所述软件开发工具包,将所述调用检查列表中的每个键值与预先获取的第一命令结果进行匹配,获得第二匹配结果;其中,所述第一命令结果为对所述软件开发工具包中的预设文件执行预设命令所获得的结果;在所述第二匹配结果表明存在第五键值的情况下,输出检查结果;其中,所述检查结果包括所述第五键值,所述第五键值为所述调用检查列表中与所述第一命令结果匹配成功的键值。
上述文件查验装置700能实现上述文件查验方法实施例中电子设备实现的各个过程,并能达到相同的技术效果,为避免重复,这里不再赘述。
参见图8,图8是本发明实施提供的电子设备的结构图,如图8所示的电子设备包括:处理器801、存储器802及存储在所述存储器802上并可在所述处理器上运行的计算机程序,电子设备中的各个组件通过总线接口803耦合在一起,所述计算机程序被所述处理器801执行时实现如下步骤:
获取应用工程目录下的本地化文件;
对所述本地化文件进行解析,获得所述本地化文件的数据列表;其中,所述数据列表存储有所述本地化文件中各业务场景下的键值;
基于所述数据列表中的键值对所述本地化文件进行规范性检查,输出检查结果。
可选的,所述本地化文件的数量包括至少一个;所述处理器801,具体用于:
针对每个所述本地化文件,对所述本地化文件进行解析,生成所述本地化文件的第一数据列表;
在第一语言类型关联至少两个本地化文件的情况下,对所述第一语言类型关联的至少两个本地化文件的第一数据列表进行合并,得到所述第一语言类型对应的第二数据列表,所述第一语言类型为所述应用工程目录下的任一语言类型。
可选的,所述处理器801,具体用于:
确定每一语言类型对应的目标数据列表中是否存在第一键值;其中,所述第一键值包括与至少两个不同内容关联的同一键值,或者所述第一键值包括与同一内容关联的不同键值,在所述语言类型仅关联一个本地化文件的情况下,所述语言类型对应的目标数据列表为所述第一数据列表,在所述语言类型关联至少两个本地化文件的情况下,所述语言类型对应的目标数据列表为所述第二数据列表;
在存在所述第一键值的情况下,输出检查结果;其中,所述检查结果包括所述第一键值。
可选的,所述处理器801,具体用于:
在第一业务场景关联至少两个不同语言类型的本地化文件的情况下,对所述第一业务场景关联的至少两个不同语言类型的本地化文件的第一数据列表进行合并,得到所述第一业务场景对应的第三数据列表,所述第一业务场景为所述应用工程目录下的任一业务场景。
可选的,所述处理器801,具体用于:
针对每一业务场景对应的第三数据列表,将各语言类型的本地化文件中的键值进行并集运算,获得第一运算列表;
针对每一业务场景对应的第三数据列表,将各语言类型的本地化文件中的键值进行交集运算,获得第二运算列表;
输出检查结果;其中,所述检查结果包括所述第一运算列表中除第二键值之外的键值,所述第二键值为所述第二运算列表中的键值。
可选的,所述应用工程目录下包括至少一个软件开发工具包,所述处理器801,具体用于:
针对每一所述软件开发工具包,将所述数据列表中的每个键值与预先获取的第一命令结果进行匹配,获得第一匹配结果;其中,所述第一命令结果为对所述软件开发工具包中的第一预设文件执行预设命令所获得的结果;
在所述第一匹配结果表明存在第三键值的情况下,输出检查结果;其中,所述检查结果包括所述第三键值,所述第三键值为所述数据列表中与所述第一命令结果匹配失败的键值。
可选的,所述应用工程目录下包括至少一个软件开发工具包,所述处理器801,具体用于:
针对每一所述软件开发工具包,获取所述软件开发工具包对应的调用检查列表;其中,所述调用检查列表中包括所述数据列表中除第四键值之外的键值,所述第四键值为所述软件开发工具包中本地化文件的键值;
针对每一所述软件开发工具包,将所述调用检查列表中的每个键值与预先获取的第一命令结果进行匹配,获得第二匹配结果;其中,所述第一命令结果为对所述软件开发工具包中的预设文件执行预设命令所获得的结果;
在所述第二匹配结果表明存在第五键值的情况下,输出检查结果;其中,所述检查结果包括所述第五键值,所述第五键值为所述调用检查列表中与所述第一命令结果匹配成功的键值。
优选的,本发明实施例还提供一种电子设备,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述任一方法实施例的文件查验方法的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述文件查验方法的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种文件查验方法,其特征在于,所述方法包括:
获取应用工程目录下的本地化文件;
对所述本地化文件进行解析,获得所述本地化文件的数据列表;其中,所述数据列表存储有所述本地化文件中各业务场景下的键值;
基于所述数据列表中的键值对所述本地化文件进行规范性检查,输出检查结果。
2.根据权利要求1所述的方法,其特征在于,所述本地化文件的数量包括至少一个;所述对所述本地化文件进行解析,获得所述本地化文件的数据列表,包括:
针对每个所述本地化文件,对所述本地化文件进行解析,生成所述本地化文件的第一数据列表;
在第一语言类型关联至少两个本地化文件的情况下,对所述第一语言类型关联的至少两个本地化文件的第一数据列表进行合并,得到所述第一语言类型对应的第二数据列表,所述第一语言类型为所述应用工程目录下的任一语言类型。
3.根据权利要求2所述的方法,其特征在于,所述基于所述数据列表中的键值对所述本地化文件进行规范性检查,输出检查结果,包括:
确定每一语言类型对应的目标数据列表中是否存在第一键值;其中,所述第一键值包括与至少两个不同内容关联的同一键值,或者所述第一键值包括与同一内容关联的不同键值,在所述语言类型仅关联一个本地化文件的情况下,所述语言类型对应的目标数据列表为所述第一数据列表,在所述语言类型关联至少两个本地化文件的情况下,所述语言类型对应的目标数据列表为所述第二数据列表;
在存在所述第一键值的情况下,输出检查结果;其中,所述检查结果包括所述第一键值。
4.根据权利要求2所述的方法,其特征在于,所述针对每个所述本地化文件,对所述本地化文件进行解析,生成所述本地化文件的第一数据列表之后,所述方法还包括:
在第一业务场景关联至少两个不同语言类型的本地化文件的情况下,对所述第一业务场景关联的至少两个不同语言类型的本地化文件的第一数据列表进行合并,得到所述第一业务场景对应的第三数据列表,所述第一业务场景为所述应用工程目录下的任一业务场景。
5.根据权利要求4所述的方法,其特征在于,所述基于所述数据列表中的键值对所述本地化文件进行规范性检查,输出检查结果,包括:
针对每一业务场景对应的第三数据列表,将各语言类型的本地化文件中的键值进行并集运算,获得第一运算列表;
针对每一业务场景对应的第三数据列表,将各语言类型的本地化文件中的键值进行交集运算,获得第二运算列表;
输出检查结果;其中,所述检查结果包括所述第一运算列表中除第二键值之外的键值,所述第二键值为所述第二运算列表中的键值。
6.根据权利要求1所述的方法,其特征在于,所述应用工程目录下包括至少一个软件开发工具包,所述基于所述数据列表中的键值对所述本地化文件进行规范性检查,输出检查结果,包括:
针对每一所述软件开发工具包,将所述数据列表中的每个键值与预先获取的第一命令结果进行匹配,获得第一匹配结果;其中,所述第一命令结果为对所述软件开发工具包中的第一预设文件执行预设命令所获得的结果;
在所述第一匹配结果表明存在第三键值的情况下,输出检查结果;其中,所述检查结果包括所述第三键值,所述第三键值为所述数据列表中与所述第一命令结果匹配失败的键值。
7.根据权利要求1所述的方法,其特征在于,所述应用工程目录下包括至少一个软件开发工具包,所述基于所述数据列表中的键值对所述本地化文件进行规范性检查,输出检查结果,包括:
针对每一所述软件开发工具包,获取所述软件开发工具包对应的调用检查列表;其中,所述调用检查列表中包括所述数据列表中除第四键值之外的键值,所述第四键值为所述软件开发工具包中本地化文件的键值;
针对每一所述软件开发工具包,将所述调用检查列表中的每个键值与预先获取的第一命令结果进行匹配,获得第二匹配结果;其中,所述第一命令结果为对所述软件开发工具包中的预设文件执行预设命令所获得的结果;
在所述第二匹配结果表明存在第五键值的情况下,输出检查结果;其中,所述检查结果包括所述第五键值,所述第五键值为所述调用检查列表中与所述第一命令结果匹配成功的键值。
8.一种文件查验装置,其特征在于,所述装置包括:
获取模块,用于获取应用工程目录下的本地化文件;
解析模块,用于对所述本地化文件进行解析,获得所述本地化文件的数据列表;其中,所述数据列表存储有所述本地化文件中各业务场景下的键值;
检查模块,用于基于所述数据列表中的键值对所述本地化文件进行规范性检查,输出检查结果。
9.一种电子设备,其特征在于,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至7中任一项所述的文件查验方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的文件查验方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010300643.3A CN111522531B (zh) | 2020-04-16 | 2020-04-16 | 文件查验方法、装置、电子设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010300643.3A CN111522531B (zh) | 2020-04-16 | 2020-04-16 | 文件查验方法、装置、电子设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111522531A true CN111522531A (zh) | 2020-08-11 |
CN111522531B CN111522531B (zh) | 2023-09-05 |
Family
ID=71904198
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010300643.3A Active CN111522531B (zh) | 2020-04-16 | 2020-04-16 | 文件查验方法、装置、电子设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111522531B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112989795A (zh) * | 2021-02-09 | 2021-06-18 | 苏宁金融科技(南京)有限公司 | 一种文本信息提取方法、装置、计算机设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040186857A1 (en) * | 2003-03-18 | 2004-09-23 | Apple Computer Inc. | Localized viewing of file system names |
CN102279847A (zh) * | 2011-08-17 | 2011-12-14 | 瑞斯康达科技发展股份有限公司 | 软件系统国际化方法和装置 |
CN106598628A (zh) * | 2016-12-27 | 2017-04-26 | 竞技世界(北京)网络技术有限公司 | 一种国际化配置文件编辑方法及装置 |
US20180307683A1 (en) * | 2017-04-19 | 2018-10-25 | Salesforce.Com, Inc. | Web application localization |
CN108776639A (zh) * | 2018-04-26 | 2018-11-09 | 福建天泉教育科技有限公司 | 语言校验测试方法及计算机可读存储介质 |
CN109582414A (zh) * | 2018-11-06 | 2019-04-05 | 福建天泉教育科技有限公司 | 应用国际化的方法、存储介质 |
CN110647371A (zh) * | 2019-08-22 | 2020-01-03 | 深圳联友科技有限公司 | 一种基于业务配置的多语言资源文件解析方法和系统 |
-
2020
- 2020-04-16 CN CN202010300643.3A patent/CN111522531B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040186857A1 (en) * | 2003-03-18 | 2004-09-23 | Apple Computer Inc. | Localized viewing of file system names |
CN102279847A (zh) * | 2011-08-17 | 2011-12-14 | 瑞斯康达科技发展股份有限公司 | 软件系统国际化方法和装置 |
CN106598628A (zh) * | 2016-12-27 | 2017-04-26 | 竞技世界(北京)网络技术有限公司 | 一种国际化配置文件编辑方法及装置 |
US20180307683A1 (en) * | 2017-04-19 | 2018-10-25 | Salesforce.Com, Inc. | Web application localization |
CN108776639A (zh) * | 2018-04-26 | 2018-11-09 | 福建天泉教育科技有限公司 | 语言校验测试方法及计算机可读存储介质 |
CN109582414A (zh) * | 2018-11-06 | 2019-04-05 | 福建天泉教育科技有限公司 | 应用国际化的方法、存储介质 |
CN110647371A (zh) * | 2019-08-22 | 2020-01-03 | 深圳联友科技有限公司 | 一种基于业务配置的多语言资源文件解析方法和系统 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112989795A (zh) * | 2021-02-09 | 2021-06-18 | 苏宁金融科技(南京)有限公司 | 一种文本信息提取方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111522531B (zh) | 2023-09-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107704479B (zh) | 文件生成方法和装置 | |
US10713437B2 (en) | Method and apparatus for identifying questionable line break characters in an application | |
CN107092554B (zh) | 一种应用程序的故障代码确认方法及装置 | |
CN112015430A (zh) | JavaScript代码翻译方法、装置、计算机设备及存储介质 | |
US9195653B2 (en) | Identification of in-context resources that are not fully localized | |
CN114168190A (zh) | 接口文档生成方法、装置、计算机设备和存储介质 | |
CN115080406A (zh) | 代码日志生成方法、装置、设备和存储介质 | |
CN110659210A (zh) | 一种信息获取方法、装置、电子设备及存储介质 | |
CN111708673A (zh) | 一种日志数据压缩方法、装置、设备和存储介质 | |
US20150161160A1 (en) | Application Localization | |
CN111522531A (zh) | 文件查验方法、装置、电子设备及计算机可读存储介质 | |
CN114489950A (zh) | 一种组件适配方法、装置、电子设备及存储介质 | |
CN114003269A (zh) | 组件处理方法、装置、电子设备及存储介质 | |
CN110162729B (zh) | 建立浏览器指纹以及识别浏览器类型的方法、装置 | |
CN116841906A (zh) | 智能合约的检测方法、装置及电子设备 | |
CN111241096A (zh) | 一种excel文档的文本提取方法、系统、终端及存储介质 | |
CN109948251B (zh) | 基于cad的数据处理方法、装置、设备及存储介质 | |
CN112733199A (zh) | 数据处理方法、装置、电子设备及可读存储介质 | |
CN113805861A (zh) | 基于机器学习的代码生成方法、代码编辑系统及存储介质 | |
WO2020211371A1 (zh) | 图像恢复方法、装置、设备和存储介质 | |
CN110806896A (zh) | 基于maven插件实现软件开发中国际化信息提取方法 | |
JP7073431B2 (ja) | ソースコード解析システムおよびソースコード解析方法 | |
CN113031959B (zh) | 变量替换方法、装置、系统及存储介质 | |
CN111046841A (zh) | 一种PowerPoint文件的文字提取方法、系统、终端及存储介质 | |
JP2017207876A (ja) | ダンプマスクプログラム、ダンプマスク方法、および情報処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |