CN114416035A - 一种数据处理方法、装置、电子设备及存储介质 - Google Patents

一种数据处理方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN114416035A
CN114416035A CN202210052775.8A CN202210052775A CN114416035A CN 114416035 A CN114416035 A CN 114416035A CN 202210052775 A CN202210052775 A CN 202210052775A CN 114416035 A CN114416035 A CN 114416035A
Authority
CN
China
Prior art keywords
processed
target
character string
file
character strings
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.)
Pending
Application number
CN202210052775.8A
Other languages
English (en)
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.)
Guahao Net Hangzhou Technology Co Ltd
Original Assignee
Guahao Net Hangzhou Technology Co 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 Guahao Net Hangzhou Technology Co Ltd filed Critical Guahao Net Hangzhou Technology Co Ltd
Priority to CN202210052775.8A priority Critical patent/CN114416035A/zh
Publication of CN114416035A publication Critical patent/CN114416035A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • G06F16/90348Query processing by searching ordered data, e.g. alpha-numerically ordered data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种数据的方法、装置、电子设备及存储介质,其中,该方法包括:获取与目标项目相对应的待处理代码文件;确定与待处理代码文件相对应的抽象语法树;其中,抽象语法树中包括根节点和叶子节点,根节点和叶子节点对应于待处理代码文件中的待处理字符串;获取抽象语法树中各节点所对应的待处理字符串,并根据预先设置的配置文件,确定与待处理字符串相对应的至少一种类型的目标字符串;将各待处理字符串所对应的目标字符串,更新至目标词条文件中,以基于目标词条文件中存储的各目标字符串进行显示。本发明实例提供的方案解决了国际化词条的创建不能自动完成的问题,实现了自动生成国际化词条。

Description

一种数据处理方法、装置、电子设备及存储介质
技术领域
本发明实施例涉及数据处理技术领域,尤其涉及一种数据处理方法、装置、电子设备及存储介质。
背景技术
国际化是设计和制造容易适应不同区域要求的产品的一种方式。它要求从产品中抽离所有地域语言,国家/地区和文化相关的元素。换言之,应用程序的功能和代码设计考虑在不同地区运行的需要,其代码简化了不同本地版本的生产,开发这样的应用程序的过程,就称为国际化。
目前,在应用程序的国际化中,主要是通过创建与应用程序的代码文件相对应的国际化词条来实现,但是国际化词条的创建过程中,往往需要开发者手动创建,不能自动完成。国际化词条的创建,一般的实现方式是通过正则匹配代码文件中的字符串,需要遍历全部的代码文件,当项目数量比较庞大的时候,遍历时间会很长。此外,使用正则来匹配的字符串存在一定的误差,且不够灵活,因而不能满足所有的情况。因此,需要对现有国际化词条的创建方式进行改进。
发明内容
本发明提供一种数据处理方法、装置、电子设备及存储介质,以实现国际化词条的自动创建,提高开发者的开发效率。
第一方面,本发明实施例提供了一种一种数据处理方法,包括:
获取与目标项目相对应的待处理代码文件;
确定与所述待处理代码文件相对应的抽象语法树;其中,所述抽象语法树中包括根节点和叶子节点,所述根节点和所述叶子节点对应于所述待处理代码文件中的待处理字符串;
获取所述抽象语法树中各节点所对应的待处理字符串,并根据预先设置的配置文件,确定与所述待处理字符串相对应的至少一种类型的目标字符串;
将各待处理字符串所对应的目标字符串,更新至目标词条文件中,以基于所述目标词条文件中存储的各目标字符串进行显示。
第二方面,本发明实施例还提供了一种数据处理装置,包括:
代码文件获取模块,用于获取与目标项目相对应的待处理代码文件;
抽象语法树确定模块,用于确定与所述待处理代码文件相对应的抽象语法树;其中,所述抽象语法树中包括根节点和叶子节点,所述根节点和所述叶子节点对应于所述待处理代码文件中的待处理字符串;
目标字符串确定模块,用于获取所述抽象语法树中各节点所对应的待处理字符串,并根据预先设置的配置文件,确定与所述待处理字符串相对应的至少一种类型的目标字符串;
词条文件更新模块,用于将各待处理字符串所对应的目标字符串,更新至目标词条文件中,以基于所述目标词条文件中存储的各目标字符串进行显示。
第三方面,本发明实施例还提供了一种电子设备,所述电子设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明实施例任一所述的数据处理方法。
第四方面,本发明实施例还提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如本发明实施例任一所述的数据处理方法。
本实施例的技术方案,通过获取与目标项目相对应的待处理代码文件,构建与待处理代码文件所对应的抽象语法树,根据语法树中各个节点所对应的待处理字符串来确定是否是国际化的词条,进而根据预先设置的配置文件生成与国际化词条所对应的多种语言类型下的词条。进一步,将生成的多种语言类型下的词条存储在目标词条文件中,以在使用时,可以从词条文件中获取某种语言下的词条,并直接替换待处理代码文件中的国际化词条,解决了现有技术中国际化词条的创建需要开发者手动创建,不能自动生成,而且当目标项目数量比较庞大的时候,国际化词条文件创建效率低、存在误差、不够灵活的问题,实现了自动生成国际化词条,在使用时可以直接将国际化词条替换为某种语言下的词条,简化了多语言软件版本的开发,提高开发者的开发效率。
附图说明
为了更加清楚地说明本发明示例性实施例的技术方案,下面对描述实施例中所需要用到的附图做一简单介绍。显然,所介绍的附图只是本发明所要描述的一部分实施例的附图,而不是全部的附图,对于本领域普通技术人员,在不付出创造性劳动的前提下,还可以根据这些附图得到其他的附图。
图1为本发明实施例一所提供的一种数据处理方法的流程示意图;
图2为本发明实施例二所提供的一种数据处理方法的流程示意图;
图3为本发明实施例三所提供的一种数据处理方法的流程示意图;
图4为本发明实施例四所提供的一种数据处理装置的结构示意图;
图5为本发明实施例五所提供的一种电子设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1为本发明实施例一所提供的一种数据处理的方法流程示意图,本实施例可适用于确定各个项目所对应的国际化词条,并进行存储以备使用的情形,该方法可以由数据处理装置来执行,该装置可以通过软件和/或硬件的形式实现,硬件可以是电子设备,如,移动终端或PC端等。
随着计算机应用在全球的发展,用户软件的一大需求就是对本地语言文字的支持,因此大量已有软件产品需要实现国际化。国际化是设计和制造容易适应不同区域要求的产品的一种方式。它要求从产品中抽离所有地域语言,国家/地区和文化相关的元素。换言之,应用程序的功能和代码设计考虑在不同地区运行的需要,其代码简化了不同本地版本的生产。开发这样的程序的过程,就称为国际化。
如图1所示,该方法包括:
S110、获取与目标项目相对应的待处理代码文件。
其中,目标项目可以理解为是开发者开发多语言版本的应用程序。开发人员可以编写与目标项目所对应的代码文件。将编写的某种语言下的代码文件作为所述待处理代码文件。基于所述待处理代码文件可以确定需要国际化处理的词条,从而对词条进行处理。在该应用程序的多语言版本的开发过程中,开发人员需要使用与该目标项目相对应的代码文件。通过获取目标项目的开发所需要使用的代码文件,将获取到的代码文件作为与目标项目对应的待处理代码文件。
具体的,所述与目标项目对应的待处理代码文件的获取方式可以是基于在命令行中编写命令信息来获取待处理代码文件,命令信息中包含了待处理代码文件的存储位置,通过在命令行中编写命令信息,并按下Ctrl键,可以自动根据命令信息中包含的存储位置获取待处理代码文件。还可以是开发人员对移动终端或PC端的触发操作,将被开发人员触发的文件作为待处理代码文件。示例性的,移动终端或PC端的显示界面显示有文件列表,开发人员可以通过触摸或点击PC端的显示界面,从文件列表中选择其中一个或多个文件作为待处理代码文件。
S120、确定与所述待处理代码文件相对应的抽象语法树。
在计算机科学中,抽象语法树(Abstract Syntax Tree,AST),或简称语法树(Syntax tree),是源代码语法结构的一种抽象表示。它以树状的形式表现编程语言的语法结构,树上的每个节点都表示源代码中的一种结构。所述抽象语法树中包括根节点和叶子节点,所述根节点和所述叶子节点对应于所述待处理代码文件中的待处理字符串。
具体的,通过将待处理代码文件抽象成抽象语法树的结构,待处理代码文件包含待处理字符串,用抽象语法树中的根节点和叶子结点来表示待处理代码文件中的待处理字符串,所述根节点和所述叶子节点与所述待处理代码文件中的各个待处理字符串是相对应的。
可选的,所述确定与所述待处理代码文件相对应的抽象语法树,还可以包括:根据预先设置的字符串后缀信息对所述待处理代码文件中的代码信息进行过滤处理,得到待使用代码文件;基于目标工具链对所述待使用代码文件编译处理,确定与所述待使用代码文件相对应的抽象语法树。
具体的,开发人员在编写待处理代码文件时,可以将待处理代码文件中需要被国际化的字符串添加字符串后缀信息,示例性的,将待处理代码文件中需要被国际化的字符串添加后缀信息为html。进一步的,可以预先设置一些字符串后缀信息,将待处理代码文件中不符合预先设置的字符串后缀信息的代码文件进行过滤,保留与预设字符串后缀信息相同的代码文件作为待使用代码文件。示例性的,可以将待处理代码文件中后缀信息不符合html格式的代码文件进行过滤。本实施例在此只是对代码文件中的后缀信息进行举例,并不做限制。具体的,还可以选择一些只专注于界面显示的代码文件所对应的后缀信息作为预先设置的字符串后缀信息,基于预先设置的字符串后缀信息将待处理代码文件中不符合预先设置的字符串后缀信息的代码文件进行过滤,保留用于页面展示的代码文件作为待使用代码文件。
其中,在根据预先设置的字符串后缀信息,对待处理代码文件进行过滤,得到待使用代码文件以后,可以基于目标工具链对待使用代码文件进行编译处理,确定出与所述待使用代码文件相对应的抽象语法树。示例性的,可以采用基于Visual Studio Code的babel插件中的parse和traverse来遍历待使用代码文件,并将待使用代码文件解析为抽象语法树。其中,Visual Studio Code是Microsoft在2015年4月30日Build开发者大会上正式宣布一个运行于Mac OS X、Windows和Linux之上的,针对于编写现代Web和云应用的跨平台源代码编辑器。可在桌面上运行,并且可用于Windows,macOS和Linux。它具有对JavaScript,TypeScript和Node.js的内置支持,并具有丰富的其他语言(例如C++,C#,Java,Python,PHP,Go)和运行时(例如.NET和Unity)扩展的生态***。
S130、获取所述抽象语法树中各节点所对应的待处理字符串,并根据预先设置的配置文件,确定与所述待处理字符串相对应的至少一种类型的目标字符串。
其中,各节点指的是上述所提及的根节点和叶子结点。所述配置文件中可以包含语言转换类型信息。语言转换类型信息可以以键值对的方式存储,可选的,class类。Class(key value),其中,key可以表示字符串的唯一标识,value对应于不同的语言类型。基于预先设置的算法对待处理字符串进行处理,得到相应的key值,将待处理字符串转换为某种语言类型下的字符串,得到value。目标字符串是与待处理字符串相对应的某种语言类型下的字符串。
具体的,可以通过babel遍历抽象语法树中的各个根节点和叶子结点,根据每个节点对应的待选择字符串的属性信息判断该字符串是否是待处理字符串。如果是,则根据预先设置的配置文件中包含的语言转换类型将待处理字符串转换为某种语言类型下的字符串,将该语言类型下的字符串作为目标字符串。示例性的,语言转换类型可以为法语、日语、英语、汉语等,具体的语言类型在此不作限制。
可选的,获取所述抽象语法树中各节点所对应的待处理字符串,包括:遍历所述抽象语法树上的各根节点和叶子节点的待选择字符串的属性信息;根据各属性信息和预先设置的白名单信息,从所述待选择字符串中确定出待处理字符串;
具体的,可以通过目标工具链遍历抽象语法树上各个根节点和叶子结点,确定各个节点对应的待选择的字符串的属性信息。其中,待选择字符串的属性信息可以为字符串的类型、字符串的长度、字符串的索引信息等,具体在此不做限制。开发人员可以预先设置白名单信息,其中,白名单信息可以是某种字符串的类型,将待选择字符串的属性信息中的字符串类型与白名单信息中的字符串类型进行对比,把与白名单信息中的字符串类型相同的字符串确定为待处理字符串。
可选的,所述根据预先设置的配置文件,确定与所述待处理字符串相对应的至少一种类型的目标字符串,包括;根据所述配置文件中的生成规则,确定与各待处理字符串相对应的目标标识,并将所述各待处理字符串转换为与所述生成规则中的至少一种语言类型相对应的目标字符串;所述待处理字符串为国际化字符串,所述目标字符串为所述待处理字符串在不同语言类型下的字符串。
其中,目标标识是根据各个待处理字符串进行国际化转换的顺序生成的,还可以是采用雪花算法的方式,在各个待处理字符串转换为目标字符串后,生成的一个随机数。
具体的,开发人员可以预先设置配置文件,配置文件中包含了生成规则,该生成规则可以是开发者在Visual Studio Code中配置的自定义规则,也可以是目标字符串的存储规则、待处理字符串需要转换的语言类型。示例性的,开发人员可以配置目标字符串的存储规则为键值对的存储方式,待处理字符串需要转换的语言类型为英语。其中,在计算机科学中,名值对,也可以称为键值对或属性值对,是一种基本的数据表示在计算***和应用程序中。本实施例可以将各个目标字符串设置与之对应的目标标识,目标标识与目标字符串相关联。具体的,可以按照待处理字符串转换为目标字符串的先后顺序依次设置各个目标字符串的目标标识号,即目标标识。将待处理字符串对应的目标标识作为键值对中的键,将目标字符串作为键值对中的值,根据配置文件生成规则中的语言转换类型,将待处理字符串转换为英语下的字符串。
具体的,也可以将语言转换类型设置为汉语,即可将待处理字符串转换为汉语下的字符串。具体的,转换语言的类型和数量,不做限制,可以是将待处理字符串转换为多种语言下的目标字符串。
S140、将各待处理字符串所对应的目标字符串,更新至目标词条文件中,以基于所述目标词条文件中存储的各目标字符串进行显示。其中,可以建立与每个目标项目对应的词条文件,目标词条文件是用于存储需要国际化转换的字符串转换后的字符串,好处在于,当需要对目标项目对应的待处理代码文件中的待处理字符串进行国际化转换时,可以直接从目标词条文件中获取与待处理字符串所对应的目标字符串,提高了语言类型转换的便捷性,解决了现有技术中需要人工转换存在效率较低以及人力成本较高的问题。
可选的,所述将各待处理字符串所对应的目标字符串,更新至目标词条文件中,包括:将各待处理字符串的目标标识和相应的目标字符串,对应存储至所述目标词条文件中。
其中,目标标识可以是根据各个待处理字符串进行国际化转换的顺序生成的,还可以是采用雪花算法的方式,在各个待处理字符串转换为目标字符串后,生成的一个随机数。
示例性的,可以将目标标识和语言类型按照键值对的存储方式进行存储和更新至词条文件中,词条文件中包含了待处理字符串对应的标识与语言类型的关系。其中,键值对中的KEY用来表示目标标识,键值对中的VALUE用来表示语言类型。
示例性的,目标标识1对应三种语言下的目标字符串分别为字符串A、字符串B、字符串C,建立目标字符串与目标标识的对应关系,将对应关系、目标字符串存储在词条文件中。
应用程序的显示页面可以基于目标词条文件中存储的各目标字符串进行显示,显示的是经过国际化后的词条文件。适用于所有需要多语言版本的软件开发,让开发者只需要专注于开发工作,提高开发者的开发效率。
本实施例的技术方案,通过获取与目标项目相对应的待处理代码文件,构建与待处理代码文件所对应的抽象语法树,根据语法树中各个节点所对应的待处理字符串来确定是否是国际化的词条,进而根据预先设置的配置文件生成与国际化词条所对应的多种语言类型下的词条。进一步,将生成的多种语言类型下的词条存储在目标词条文件中,以在使用时,可以从词条文件中获取某种语言下的词条,并直接替换待处理代码文件中的国际化词条。解决了现有技术中国际化词条的创建需要开发者手动创建,不能自动生成,而且当目标项目数量比较庞大的时候,国际化词条文件创建效率低、存在误差、不够灵活的问题,实现了自动生成国际化词条,在使用时可以直接将国际化词条替换为某种语言下的词条,简化了多语言软件版本的开发,提高开发者的开发效率。
实施例二
图2为本发明实施例二所提供的一种数据处理方法的流程示意图。在前述实施例的基础上,在确定目标词条文件后,可以根据用户的触发操作,从目标词条文件中调取相应的目标字符串,以得到某种语言类型下的代码文件,其具体的实施方式可以参见本技术方案的详细阐述。其中,与上述实施例相同或者相应的技术术语不再赘述。
如图2所示,该方法包括:
S210、获取与目标项目相对应的待处理代码文件。
S220、确定与所述待处理代码文件相对应的抽象语法树;其中,所述抽象语法树中包括根节点和叶子节点,所述根节点和所述叶子节点对应于所述待处理代码文件中的待处理字符串。
S230、获取所述抽象语法树中各节点所对应的待处理字符串,并根据预先设置的配置文件,确定与所述待处理字符串相对应的至少一种类型的目标字符串。
S240、将各待处理字符串所对应的目标字符串,更新至目标词条文件中,以基于所述目标词条文件中存储的各目标字符串进行显示。
S250、当接收到语言类型切换操作时,确定切换至的目标语言类型;
具体的,开发人员可以通过移动终端或者PC端触发语言类型切换的操作,示例性的,开发人员在UI界面输入需要切换的语言类型,即目标语言类型,可以是:汉语、日语、德语等,在此不做限制。
S260、从所述词条文件中调取各待处理字符串在所述目标语言类型下的目标字符串,并将所述目标字符串替换至所述待处理代码文件中。
具体的,在开发人员在移动终端或PC端输入了目标语言类型后,本发明实施例的数据处理装置从词条文件中调取各待处理字符串在目标语言类型下的目标字符串,并将待处理代码文件中的各个待处理字符串替换为与之对应的目标字符串。示例性的,开发人员设置目标语言类型中文,待处理的字符串1为“function”,可以通过查询词条文件中与待处理字符串1“function”对应的目标字符串1为“函数”,将待处理代码文件中的待处理字符串1“function”替换为“函数”。按照此方式即可实现将目标字符串替换至所述待处理代码文件中。
需要说明的是,在语言类型转换之前需要先复制一份待处理代码文件,以保留原始的待处理代码文件。
本实施例的技术方案,通过获取与目标项目相对应的待处理代码文件,构建与待处理代码文件所对应的抽象语法树,根据语法树中各个节点所对应的待处理字符串来确定是否是国际化的词条,进而根据预先设置的配置文件生成与国际化词条所对应的多种语言类型下的词条。进一步,将生成的多种语言类型下的词条存储在目标词条文件中,在接收到语言切换操作时,确定需要转换的语言类型,从词条文件中获取该语言下的词条,并直接替换待处理代码文件中的国际化词条。解决了现有技术中国际化词条的创建需要开发者手动创建,不能自动生成,而且当目标项目数量比较庞大的时候,国际化词条文件创建效率低、存在误差、不够灵活的问题,实现了自动生成国际化词条,在使用时可以直接将国际化词条替换为某种语言下的词条,简化了多语言软件版本的开发,提高开发者的开发效率。
实施例三
作为上述实施例的一优选实施例,本技术方案具体可以为:
参见图3,先遍历所有代码文件。具体的,使用babel的parse和traverse来遍历所有代码文件,将根据后缀来对代码文件进行过滤,只专注于用于界面展示的代码文件。选择一些只专注于界面显示的代码文件所对应的后缀信息作为预先设置的字符串后缀信息,基于预先设置的字符串后缀信息将待处理代码文件中不符合预先设置的字符串后缀信息的代码文件进行过滤,保留用于页面展示的代码文件作为待使用代码文件。文件过滤类型是可以配置的,能大大节约代码文件遍历所需时间。
再次,将文件解析为抽象语法树。将上一步骤中遍历过的文件,通过解析遍历生成抽象语法树。
进一步的、遍历语法树上的字符串节点。具体的,遍历语法树上的所有字符串类型的节点,确定根节点和叶子结点对应的字符串,即待处理字符串。
再进一步的,抽离出需要被国际化的字符串。通过节点所处类型来判断该字符串最终是否会显示到软件界面中。具体的,遍历语法树上的所有字符串类型的节点,通过节点所处类型来判断该字符串最终是否会显示到软件界面中。其中,待选择字符串的属性信息可以为字符串的类型、字符串的长度、字符串的索引信息等,具体在此不做限制。开发人员可以预先设置白名单信息,其中,白名单信息可以是某种字符串的类型,将待选择字符串属性信息中的字符串类型与白名单信息中的字符串类型进行对比,把与白名单信息中的字符串类型相同的字符串确定为待处理字符串。
最后,根据规则生成对应的词条,并写入词条文件。将抽离出的需要被国际化的字符串,通过一定的规则生成国际化词条,或者是根据开发者在Visual Studio Code中配置的自定义规则来生成国际化词条。将生成好的国际化词条,通过文件写入的方式,写入对应的文件当中,完成整个国际化词条创建过程。
本实施例的技术方案通过遍历所有代码文件,根据后缀来对代码文件进行过滤,只保留专注于用于界面展示的代码文件;将遍历过的文件通过解析遍历生成抽象语法树;遍历语法树上的所有字符串类型的节点,通过节点所处类型来判断该字符串最终是否会显示到软件界面中。将这些字符串,通过一定的规则生成国际化词条,或者是根据开发者在Visual Studio Code中配置的自定义规则来生成国际化词条,将生成好的国际化词条,通过文件写入的方式,写入对应的文件当中,完成整个国际化词条创建过程。解决了在国际化词条创建的过程中,往往需要开发者手动创建,不能自动完成。一般的实现方式是通过正则来匹配字符串,来遍历全部文件,当项目数量比较庞大的时候,遍历时间会很长。使用正则来匹配会有一定的误差而且不够灵活不能满足所有情况问题,实现了自动完成国际化词条创建,通过定义白名单,和对已有词条规则进行学习的方式来提高扫描词条的准确率,筛选出需要被国际化的字符串字段,帮助开发者直接生成国际化词条,适用于所有需要多语言版本的软件开发,让开发者只需要专注于开发工作,解决了现有技术中国际化词条的创建需要开发者手动创建,不能自动生成,而且当目标项目数量比较庞大的时候,国际化词条文件创建效率低、存在误差、不够灵活的问题,实现了自动生成国际化词条,在使用时可以直接将国际化词条替换为某种语言下的词条,简化了多语言软件版本的开发,提高开发者的开发效率。
实施例四
图4为本发明实施例四提供的一种数据处理的装置,该装置包括:代码文件获取模块410,抽象语法树确定模块420,目标字符串确定模块430,词条文件更新模块430。
代码文件获取模块410,用于获取与目标项目相对应的待处理代码文件;
抽象语法树确定模块420,用于确定与所述待处理代码文件相对应的抽象语法树;其中,所述抽象语法树中包括根节点和叶子节点,所述根节点和所述叶子节点对应于所述待处理代码文件中的待处理字符串;
目标字符串确定模块430,用于获取所述抽象语法树中各节点所对应的待处理字符串,并根据预先设置的配置文件,确定与所述待处理字符串相对应的至少一种类型的目标字符串;
词条文件更新模块430,用于将各待处理字符串所对应的目标字符串,更新至目标词条文件中,以基于所述目标词条文件中存储的各目标字符串进行显示。
本实施例提供的一种数据处理置可用于执行上述任一实施例提供的数据处理方法,具有相应的功能和有益效果。
在本发明实施例中任一可选技术方案的基础上,可选地,所述抽象语法树确定模块,包括:
待使用代码文件获取单元,用于根据预先设置的字符串后缀信息对所述待处理代码文件中的代码信息进行过滤处理,得到待使用代码文件;
抽象语法树确定单元,用于基于目标工具链对所述待使用代码文件编译处理,确定与所述待使用代码文件相对应的抽象语法树。
在本发明实施例中任一可选技术方案的基础上,可选地,所述目标字符串确定模块,包括:
遍历模块,用于遍历所述抽象语法树上的各根节点和叶子节点的待选择字符串的属性信息;
待处理字符串确定模块,用于根据各属性信息和预先设置的白名单信息,从所述待选择字符串中确定出待处理字符串。
在本发明实施例中任一可选技术方案的基础上,可选地,所述目标字符串确定模块,还包括:
待处理字符串转换模块,用于根据所述配置文件中的生成规则,确定与各待处理字符串相对应的目标标识,并将所述各待处理字符串转换为与所述生成规则中的至少一种语言类型相对应的目标字符串。
在本发明实施例中任一可选技术方案的基础上,可选地,所述词条文件更新模块,还用于:
将各待处理字符串的目标标识和相应的目标字符串,对应存储至所述目标词条文件中。
在本发明实施例中任一可选技术方案的基础上,可选地,所述待处理字符串为国际化字符串,所述目标字符串为所述待处理字符串在不同语言类型下的字符串。
本实施例的技术方案,通过获取与目标项目相对应的待处理代码文件,构建与待处理代码文件所对应的抽象语法树,根据语法树中各个节点所对应的待处理字符串来确定是否是国际化的词条,进而根据预先设置的配置文件生成与国际化词条所对应的多种语言类型下的词条。进一步,将生成的多种语言类型下的词条存储在目标词条文件中,以在使用时,可以从词条文件中获取某种语言下的词条,并直接替换待处理代码文件中的国际化词条。解决了现有技术中国际化词条的创建需要开发者手动创建,不能自动生成,而且当目标项目数量比较庞大的时候,国际化词条文件创建效率低、存在误差、不够灵活的问题,实现了自动生成国际化词条,在使用时可以直接将国际化词条替换为某种语言下的词条,简化了多语言软件版本的开发,提高开发者的开发效率。
本发明实施例所提供的数据处理装置可执行本发明任意实施例所提供的一种数据处理方法,具备执行方法相应的功能模块和有益效果。
值得注意的是,上述装置所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明实施例的保护范围。
实施例五
图5为本发明实施例五提供的一种电子设备的结构示意图。图5示出了适于用来实现本发明实施例实施方式的示例性电子设备50的框图。图5显示的电子设备50仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图5所示,电子设备50以通用计算设备的形式表现。电子设备50的组件可以包括但不限于:一个或者多个处理器或者处理单元501,***存储器502,连接不同***组件(包括***存储器502和处理单元501)的总线503。
总线503表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,***总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及***组件互连(PCI)总线。
电子设备50典型地包括多种计算机***可读介质。这些介质可以是任何能够被电子设备50访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
***存储器502可以包括易失性存储器形式的计算机***可读介质,例如随机存取存储器(RAM)504和/或高速缓存存储器505。电子设备50可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机***存储介质。仅作为举例,存储***506可以用于读写不可移动的、非易失性磁介质(图5未显示,通常称为“硬盘驱动器”)。尽管图5中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线503相连。存储器502可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块507的程序/实用工具508,可以存储在例如存储器502中,这样的程序模块507包括但不限于操作***、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块507通常执行本发明所描述的实施例中的功能和/或方法。
电子设备50也可以与一个或多个外部设备509(例如键盘、指向设备、显示器510等)通信,还可与一个或者多个使得用户能与该电子设备50交互的设备通信,和/或与使得该电子设备50能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口511进行。并且,电子设备50还可以通过网络适配器512与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器512通过总线503与电子设备50的其它模块通信。应当明白,尽管图5中未示出,可以结合电子设备50使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID***、磁带驱动器以及数据备份存储***等。
处理单元501通过运行存储在***存储器502中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的数据处理的方法。
实施例六
本发明实施例六还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种数据处理的方法,该方法包括:
获取与目标项目相对应的待处理代码文件;
确定与所述待处理代码文件相对应的抽象语法树;其中,所述抽象语法树中包括根节点和叶子节点,所述根节点和所述叶子节点对应于所述待处理代码文件中的待处理字符串;
获取所述抽象语法树中各节点所对应的待处理字符串,并根据预先设置的配置文件,确定与所述待处理字符串相对应的至少一种类型的目标字符串;
将各待处理字符串所对应的目标字符串,更新至目标词条文件中,以基于所述目标词条文件中存储的各目标字符串进行显示。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明实施例操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言——诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (10)

1.一种数据处理方法,其特征在于,包括:
获取与目标项目相对应的待处理代码文件;
确定与所述待处理代码文件相对应的抽象语法树;其中,所述抽象语法树中包括根节点和叶子节点,所述根节点和所述叶子节点对应于所述待处理代码文件中的待处理字符串;
获取所述抽象语法树中各节点所对应的待处理字符串,并根据预先设置的配置文件,确定与所述待处理字符串相对应的至少一种类型的目标字符串;
将各待处理字符串所对应的目标字符串,更新至目标词条文件中,以基于所述目标词条文件中存储的各目标字符串进行显示。
2.根据权利要求1所述的方法,其特征在于,所述确定与所述待处理代码文件相对应的抽象语法树,包括:
根据预先设置的字符串后缀信息对所述待处理代码文件中的代码信息进行过滤处理,得到待使用代码文件;
基于目标工具链对所述待使用代码文件编译处理,确定与所述待使用代码文件相对应的抽象语法树。
3.根据权利要求1所述的方法,其特征在于,所述获取所述抽象语法树中各节点所对应的待处理字符串,包括:
遍历所述抽象语法树上的各根节点和叶子节点的待选择字符串的属性信息;
根据各属性信息和预先设置的白名单信息,从所述待选择字符串中确定出待处理字符串。
4.根据权利要求1所述的方法,其特征在于,所述根据预先设置的配置文件,确定与所述待处理字符串相对应的至少一种类型的目标字符串,包括;
根据所述配置文件中的生成规则,确定与各待处理字符串相对应的目标标识,并将所述各待处理字符串转换为与所述生成规则中的至少一种语言类型相对应的目标字符串。
5.根据权利要求4所述的方法,其特征在于,所述将各待处理字符串所对应的目标字符串,更新至目标词条文件中,包括:
将各待处理字符串的目标标识和相应的目标字符串,对应存储至所述目标词条文件中。
6.根据权利要求1-5中任一所述的方法,其特征在于,所述待处理字符串为国际化字符串,所述目标字符串为所述待处理字符串在不同语言类型下的字符串。
7.根据权利要求6所述的方法,其特征在于,还包括:
当接收到语言类型切换操作时,确定切换至的目标语言类型;
从所述词条文件中调取各待处理字符串在所述目标语言类型下的目标字符串,并将所述目标字符串替换至所述待处理代码文件中。
8.一种数据处理装置,其特征在于,包括:
代码文件获取模块,用于获取与目标项目相对应的待处理代码文件;
抽象语法树确定模块,用于确定与所述待处理代码文件相对应的抽象语法树;其中,所述抽象语法树中包括根节点和叶子节点,所述根节点和所述叶子节点对应于所述待处理代码文件中的待处理字符串;
目标字符串确定模块,用于获取所述抽象语法树中各节点所对应的待处理字符串,并根据预先设置的配置文件,确定与所述待处理字符串相对应的至少一种类型的目标字符串;
词条文件更新模块,用于将各待处理字符串所对应的目标字符串,更新至目标词条文件中,以基于所述目标词条文件中存储的各目标字符串进行显示。
9.一种电子设备,其特征在于,所述电子设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的数据处理方法。
10.一种包含计算机可执行指令的存储介质,其特征在于,所述计算机可执行指令在由计算机处理器执行时用于执行如权利要求1-7中任一所述的数据处理方法。
CN202210052775.8A 2022-01-18 2022-01-18 一种数据处理方法、装置、电子设备及存储介质 Pending CN114416035A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210052775.8A CN114416035A (zh) 2022-01-18 2022-01-18 一种数据处理方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210052775.8A CN114416035A (zh) 2022-01-18 2022-01-18 一种数据处理方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN114416035A true CN114416035A (zh) 2022-04-29

Family

ID=81274164

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210052775.8A Pending CN114416035A (zh) 2022-01-18 2022-01-18 一种数据处理方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN114416035A (zh)

Similar Documents

Publication Publication Date Title
US20210406033A1 (en) Method for running applets, and electronic device
CN107402746B (zh) 一种自动生成代码文件的方法及装置
CN113139390A (zh) 一种应用于代码字符串的语言转换方法和装置
CN113076167A (zh) 一种代码处理方法及相关设备
WO2019042349A1 (zh) 操作***框架的翻译方法、移动终端和存储装置
US20190187973A1 (en) Method and system for updating legacy software
CN114327492A (zh) 一种代码翻译方法、装置及设备
CN116150527A (zh) 组件样式隔离方法、装置、设备、存储介质及产品
CN114416035A (zh) 一种数据处理方法、装置、电子设备及存储介质
CN115629763A (zh) 目标代码的生成方法、npu指令的显示方法及装置
CN111273913B (zh) 一种输出规范表示的应用程序接口数据的方法及装置
CN111443979B (zh) 文档处理方法、装置、计算机设备及存储介质
CN109948251B (zh) 基于cad的数据处理方法、装置、设备及存储介质
CN114089980A (zh) 编程处理方法、装置、解释器及非易失性存储介质
CN113918254A (zh) 语言文本管理方法、装置、存储介质及电子设备
CN112181429A (zh) 信息处理方法、装置以及电子设备
CN112306493A (zh) 热修复补丁生成方法、装置、存储介质及计算机设备
CN113361286A (zh) 信息提示方法和装置
CN111736840B (zh) 小程序应用的编译方法、运行方法、存储介质及电子设备
CN113296754B (zh) 基于xml的脚本语言转换方法、编辑器、设备及存储介质
CN115618887B (zh) 动态长文本国际化方法、装置、设备及存储介质
CN111736840A (zh) 小程序应用的编译方法、运行方法、存储介质及电子设备
US12032941B2 (en) Method and system for updating legacy software
CN116521169A (zh) 代码处理方法、设备、存储介质及程序产品
CN114048175A (zh) 多语言文件生成方法及装置

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