WO2020206838A1 - 代码片段翻译方法、装置、计算机设备和存储介质 - Google Patents
代码片段翻译方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- WO2020206838A1 WO2020206838A1 PCT/CN2019/091823 CN2019091823W WO2020206838A1 WO 2020206838 A1 WO2020206838 A1 WO 2020206838A1 CN 2019091823 W CN2019091823 W CN 2019091823W WO 2020206838 A1 WO2020206838 A1 WO 2020206838A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- translated
- code
- translation
- segment
- code segment
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
Abstract
公开了一种代码片段翻译方法,包括:获取待翻译分析结果集;待翻译分析结果集中包含待翻译代码片段,及与待翻译代码片段对应的上下文代码片段;根据待翻译代码片段的编程语言类型查找与待翻译代码片段匹配的代码处理器;通过代码处理器根据上下文代码片段,识别待翻译代码片段的目标语言类型以及翻译策略;及通过代码处理器调用翻译器系统的翻译器接口,翻译器系统部署于翻译服务器上,翻译器系统基于翻译策略将待翻译代码片段翻译为对应的目标语言类型的翻译后代码片段。
Description
本申请要求于2019年4月12日提交中国专利局,申请号为2019102961275,申请名称为“代码片段翻译方法、装置、计算机设备和存储介质”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
本申请涉及一种代码片段翻译方法、装置、计算机设备和存储介质。
随着国际化的日益深入发展,已开发的软件系统会面临面向世界不同地区和国家的需求,因此需要将软件系统的源代码从原始语言翻译为特定语言。传统方式中,通常是由业务分析人员收集翻译需求并写入文档,然后交与程序开发人员依据文档对源代码进行修改。然而,发明人意识到,传统的代码国际化翻译过程需要业务分析人员与开发人员进行合作完成,时间成本和人力成本高,且开发人员将业务分析人员的翻译思路落实到实践中时容易出现翻译错误,通过人工进行大量翻译工作,难以保证代码翻译的统一性,从而导致翻译结果可靠性差。
发明内容
根据本申请公开的各种实施例,提供一种代码片段翻译方法、装置、计算机设备和存储介质。
一种代码片段翻译方法,应用于代码服务器,所述方法包括:
获取待翻译分析结果集;所述待翻译分析结果集中包含待翻译代码片段,及与所述待翻译代码片段对应的上下文代码片段;
根据所述待翻译代码片段的编程语言类型查找与所述待翻译代码片段匹配的代码处理器;
通过所述代码处理器根据所述上下文代码片段,识别待翻译代码片段的目标语言类型以及翻译策略;及
通过所述代码处理器调用翻译器系统的翻译器接口,所述翻译器系统部署于翻译服务器上,所述翻译系统基于所述翻译策略将所述待翻译代码片段翻译为对应的目标语言类型的翻译后代码片段。
一种代码片段翻译装置,包括:
获取模块,用于获取待翻译分析结果集;所述待翻译分析结果集中包含待翻译代码片段,及与所述待翻译代码片段对应的上下文代码片段;
查找模块,用于根据所述待翻译代码片段的编程语言类型查找与所述待翻译代码片段匹配的代码处理器;
识别模块,用于通过所述代码处理器根据所述上下文代码片段,识别待翻译代码片段的目标语言类型以及翻译策略;及
翻译模块,用于通过所述代码处理器调用翻译器系统的翻译器接口,所述翻译器系统部署于翻译服务器上,所述翻译系统基于所述翻译策略将所述待翻译代码片段翻译为对应的目标语言类型的翻译后代码片段。
一种计算机设备,包括存储器及一个或多个处理器,所述存储器中储存有计算机可读指令,所述计算机可读指令被所述一个或多个处理器执行时,使得所述一个或多个处理器执行以下步骤:
获取待翻译分析结果集;所述待翻译分析结果集中包含待翻译代码片段,及与所述待翻译代码片段对应的上下文代码片段;
根据所述待翻译代码片段的编程语言类型查找与所述待翻译代码片段匹配的代码处理器;
通过所述代码处理器根据所述上下文代码片段,识别待翻译代码片段的目标语言类型以及翻译策略;及
通过所述代码处理器调用翻译器系统的翻译器接口,所述翻译器系统部署于翻译服务器上,所述翻译系统基于所述翻译策略将所述待翻译代码片段翻译为对应的目标语言类型的翻译后代码片段。
一个或多个存储有计算机可读指令的非易失性计算机可读存储介质,所述计算机可读指令被一个或多个处理器执行时,使得所述一个或多个处理器执行以下步骤:
获取待翻译分析结果集;所述待翻译分析结果集中包含待翻译代码片段,及与所述待翻译代码片段对应的上下文代码片段;
根据所述待翻译代码片段的编程语言类型查找与所述待翻译代码片段匹配的代码处理器;
通过所述代码处理器根据所述上下文代码片段,识别待翻译代码片段的目标语言类型以及翻译策略;及
通过所述代码处理器调用翻译器系统的翻译器接口,所述翻译器系统部署于翻译服务器上,所述翻译系统基于所述翻译策略将所述待翻译代码片段翻译为对应的目标语言类型的翻译后代码片段。
本申请的一个或多个实施例的细节在下面的附图和描述中提出。本申请的其它特征和优点将从说明书、附图以及权利要求书变得明显。
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为根据一个或多个实施例中代码片段翻译方法的应用场景图;
图2为根据一个或多个实施例中代码片段翻译方法的流程示意图;
图3为另一个实施例中代码片段翻译方法的流程示意图;
图4为根据一个或多个实施例中代码片段翻译装置的结构框图;
图5为根据一个或多个实施例中计算机设备的内部结构图。
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的代码片段翻译方法,可以应用于如图1所示的应用环境中。其中,代码服务器102与翻译服务器104通过网络进行通信。其中,代码服务器102与翻译服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。代码服务器102获取包含待翻译代码片段及与待翻译代码片段对应的上下文代码片段的待翻译分析结果集之后,可查找与待翻译代码片段匹配的代码处理器。代码服务器102通过代码处理器根据上下文代码片段,识别待翻译代码片段的目标语言类型以及翻译策略。代码服务器102通过代码处理器调用翻译器接口,可将待翻译代码片段发送至翻译器对应的翻译服务器104进行翻译,得到基于翻译策略翻译的与待翻译代码片段对应的目标语言类型的翻译后代码片段。
在其中一个实施例中,如图2所示,提供了一种代码片段翻译方法,以该方法应用于图1中的代码服务器102为例进行说明,包括以下步骤:
步骤202,获取待翻译分析结果集;待翻译分析结果集中包含待翻译代码片段,及与待翻译代码片段对应的上下文代码片段。
待翻译分析结果集是指对待翻译源代码文件进行解析之后得到的,包含与多个待翻译代码片段对应的分别对应的待翻译分析结果的集合。待翻译分析结果包括待翻译源代码文件中待翻译代码片段及其相关信息。待翻译分析结果集中可包含一个或多个待翻译代码片段。待翻译源代码文件是指需要进行翻译的源代码文件。源代码文件是指未编译的按照一定的程序设计语言规范书写的文本文件。待翻译代码片段是指待翻译源代码文件中为原始语言类 型的、需要翻译成目标语言类型的代码片段。上下文代码片段是指待翻译代码片段在待翻译源代码文件中前后预设字符长度的代码片段。比如说,可以获取待翻译代码片段的前后50个字符长度的代码片段,作为待翻译代码片段的上下文代码片段。
步骤204,查找与待翻译代码片段匹配的代码处理器。
代码处理器是指用于对待翻译代码片段进行语法识别、风险识别、翻译处理及状态标注等操作的处理器。可预先对不同编程语言类型的待翻译代码片段设置不同的代码处理器,从而使得代码处理器能够更有针对性地对待翻译代码片段进行准确的操作,以实现更为精准的代码片段翻译。
在其中一个实施例中,查找与待翻译代码片段匹配的代码处理器,包括:识别待翻译代码片段的编程语言类型;查找与编程语言类型对应的代码处理器集合;将待翻译代码片段与代码处理器集合中的每个代码处理器对应的匹配条件进行匹配;将匹配的匹配条件对应的代码处理器,作为与待翻译代码片段匹配的代码处理器。
编程语言类型包括但不限于JS(JavaScript)、JSX(JavaScript XML,一种在React组建内部构建标签的类XML语法)等,不限于此。可基于正则表达式来识别待翻译代码片段的变成语言类型。正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”可用来表达对字符串的一种过滤逻辑。每一种编程语言类型都有相应的一个或多个正则表达式。
可对于每一种编程语言类型,预定义对应的代码处理器集合。每一个代码处理器都有自定义的匹配条件。匹配条件包括但不限于待翻译代码片段涉及字符串类型的条件、待翻译代码片段涉及业务逻辑的条件,以及待翻译代码片段涉及配置文件中配置项属性的条件,不限于此。根据匹配条件,可从代码处理器集合中查找到与翻译代码片段匹配的代码处理器。
步骤206,通过代码处理器根据上下文代码片段,识别待翻译代码片段的目标语言类型以及翻译策略。
代码处理器可结合上下文代码片段对待翻译代码片段的语法进行分析,从而识别待翻译代码片段所对应的翻译策略。针对不同的待翻译代码片段可预设不同的翻译策略。翻译策略包括是否进行替换操作、对应于不同语法的待翻译代码片段进行不同的翻译操作等。通过得到的上下文代码片段能够更准确地对待翻译代码片段进行语法分析。
在其中一个实施例中,翻译策略包括是否进行替换操作。举例来说,当待翻译代码片段为与业务逻辑相关代码时,比如涉及判断条件(if/switch)以及拆分(split)等业务逻辑的待翻译代码片段,不进行替换操作。当待翻 译代码片段为对于用户无意义的相关代码时,比如代码注释及控制台输出涉及的待翻译代码片段时,不进行替换操作。翻译策略还可包括对应于不同语法的待翻译代码片段进行不同的翻译方式,比如对于JS中的string类型,用双引号包括,而对于JS中的字符串模板和JSX TEXT类型,不用双引号包括。翻译测策略还可基于涉及配置文件中配置项属性进行翻译方式。比如当配置文件设置的directReplace配置项属性为true时,说明采用直接修改待翻译源代码文件的方式;当配置项属性为false时,说明采用不直接替换而使用翻译字典方式,则使用预定制的翻译策略,比如将翻译后代码片段存储至资源配置文件中。还可基于第三方插件确定翻译策略,比如针对react(JSX)的待翻译代码片段,采用react-intl-universal插件提供的翻译策略,通过预先定制替换规则,使得替换后的翻译后代码片段满足第三方插件对应的语法规则。
步骤208,通过代码处理器调用翻译器接口,得到基于翻译策略翻译的与待翻译代码片段对应的目标语言类型的翻译后代码片段。
翻译器接口是指翻译器系统提供的、可用于通过调用实现翻译功能的接口。翻译器系统可部署于翻译服务器上。翻译器系统包括但不限于百度翻译器或谷歌翻译器等其中一种或多种。翻译器系统可基于翻译策略将待翻译代码片段翻译为对应的目标语言类型的翻译后代码片段。目标语言类型包括但不限于中文、高棉语、泰语、缅甸语及老挝语等其中一种或多种语言类型。
上述代码片段翻译方法中,代码服务器获取待翻译分析结果集之后,可查找待翻译分析结果集中包含的待翻译代码片段匹配的代码处理器,并通过待翻译代码片段对应的上下文代码片段,识别待翻译代码片段的目标语言类型以及翻译策略。代码服务器可通过代码处理器调用翻译器接口,得到基于翻译策略翻译的与待翻译代码片段对应的目标语言类型的翻译后代码片段。结合待翻译代码片段本身的语法,通过预设针对性的代码处理器对待翻译代码片段进行处理,得到针对性的翻译策略,从而能够通过调用翻译器接口实现待翻译代码片段的自动化统一翻译,保证了翻译结果的可靠性。
在其中一个实施例中,获取待翻译分析结果集,包括:获取待翻译源代码文件;读取待翻译源代码文件中的源代码目录;待翻译源代码目录中包含多个初始文件名;遍历每个初始文件名对应的初始代码子文件,筛选出待翻译代码子文件;待翻译代码子文件与预设语言类型相匹配;查找与预设语言类型匹配的解析器;通过解析器对待翻译代码子文件进行解析,得到待翻译分析结果集;待翻译分析结果集中包含待翻译代码子文件中的待翻译代码片段及与待翻译代码片段对应的上下文代码片段。
待翻译源代码可预存在代码服务器的数据库中,代码服务器可直接从本 地数据库中获取待翻译源代码文件;代码服务器也可接收终端上传的待翻译代码文件或其他服务器发送的待翻译源代码文件。初始代码子文件是指待翻译源代码文件中最小粒度的、无法进一步展开的源代码文件。待翻译代码子文件是指与预设语言类型相匹配的、需要翻译成目标语言类型的初始代码子文件。通过解析器可对待翻译代码子文件进行解析,对待翻译代码子文件中的待处理代码进行语法分析,可得到待处理代码中的待翻译代码片段。
在其中一个实施例中,代码服务器可检测待翻译代码子文件中的待翻译代码片段;划分待翻译代码片段在待翻译代码子文件中的片段定位信息;片段定位信息包括起始位置信息和结束位置信息;基于起始位置信息和结束位置信息提取待翻译代码片段;根据待翻译代码片段、起始位置信息和结束位置信息生成待翻译分析结果集。待翻译分析结果集中可包含多个待翻译代码片段以及与每个待翻译代码片段对应的片段定位信息。每个待翻译代码片段以及与相应待翻译代码片段对应的片段定位信息可作为一项待翻译分析结果。
在其中一个实施例中,待翻译分析结果集中还包含片段定位信息;在通过代码处理器根据上下文代码片段,识别待翻译代码片段的目标语言类型以及翻译策略之后,还包括:根据翻译策略确定翻译操作;当翻译操作为替换操作时,基于片段定位信息,将翻译后代码片段对应替换待翻译源代码文件中的待翻译代码片段;输出目标语言类型的翻译后源代码文件。
翻译操作是指对待翻译源代码文件中的待翻译代码片段进行处理的操作。翻译操作可为替换操作、标注操作等其中一种或多种。代码服务器可基于相应待翻译分析结果中的待翻译源代码文件路径、待翻译代码片段在相应待翻译代码子文件中的位置信息等片段定位信息,将翻译后代码片段信息对待翻译源代码文件中的待翻译代码片段进行替换,以实现待翻译源代码文件的翻译;输出翻译后的目标语言类型对应的翻译后源代码文件。
在其中一个实施例中,通过代码处理器调用翻译器接口,得到基于翻译策略翻译的与待翻译代码片段对应的目标语言类型的翻译后代码片段,包括:获取用户标识;根据用户标识、待翻译代码片段、目标语言类型以及翻译策略生成翻译请求;将翻译请求通过翻译器接口发送至翻译服务器;翻译请求用于指示翻译服务器在对用户标识验证通过之后,采用翻译策略将待翻译代码片段翻译为目标语言类型;接收翻译服务器返回的目标语言类型的翻译后代码片段。
用户标识是指用于标识代码服务器身份的标识,用户标识包括但不限于代码服务器方在翻译器系统中注册的用户账号。代码服务器生成翻译请求之后,调用翻译器接口,使得翻译服务器可基于翻译请求对待翻译代码片段进 行翻译处理。翻译服务器可将按照翻译策略翻译得到的目标语言类型的翻译后代码片段返回至代码服务器。
在其中一个实施例中,根据用户标识、待翻译代码片段、目标语言类型以及翻译策略生成翻译请求;将用户标识、待翻译代码片段、目标语言类型以及翻译策略拼接生成初始字符串;对初始字符串进行加密处理,得到请求字符串;根据请求字符串生成翻译请求。
比如说,可以对初始字符串按照MD5(Message-Digest Algorithm,信息摘要)加密算法进行加密,从而防止初始字符串的泄露风险,保证初始字符串的安全性。当待翻译分析结果集中包含多个待翻译代码片段时,可以根据每个待翻译代码片段生成一个翻译请求,逐一发送至翻译服务器进行翻译。还可以根据多个待翻译代码片段生成翻译请求,以降低总体翻译请求的调用数量,提高对多个待翻译代码片段翻译的执行稳定性。
在其中一个实施例中,代码处理器处理每一段匹配的待翻译代码片段之后,都会生成一个唯一的处理步骤标识,还可以通过处理步骤标识来标注待翻译分析结果集中处理后的待翻译代码片段,以便于后续的处理步骤查询。比如,当获取到搜索关键词时,则可以查找搜索关键词对应的唯一搜索结果。处理步骤标识可为由字母、数字、标点符号等其中一种或多种构成的字符串。比如处理步骤标识可以P开头,中间是递增的整数,以E结尾。以E结尾可以提高搜索的效率。比如,当搜索关键词为P10时,则搜索结果可以是P10,P101,P1000等,这将降低搜索效率。但当搜索关键词为P10E时,则搜索结果为单一的P10E。
在其中一个实施例中,通过执行代码处理器对待翻译分析结果集中的待翻译代码片段进行处理之后,可以对每段待翻译代码片段的翻译结果进行风险等级评估,还可以对处理状态进行记录。根据选取的代码处理器对应的自定义风险规则,对该段代码翻译结果进行风险等级评估。
风险等级包括但不限于低风险等级、潜在风险等级以及高风险等级等。当经过对上下文代码片段进行检查后发现,该段待翻译代码片段是某个字符串拼接的一部分,则说明这种情况下的自动翻译往往不正确,可将该待翻译代码片段标注为潜在风险等级。或当对翻译结果进行检查后发现翻译后代码片段中仍然包含原始语言类型的字符串,则说明翻译器系统没有进行准确翻译,可将该待翻译代码片段标注为潜在风险等级。当检测到翻译器接口调用失败导致翻译没有完成时,可将该待翻译代码片段标注为高风险等级。或当未查找到与待翻译代码片段匹配的代码处理器时,可将该待翻译代码片段标注为高风险等级。
处理状态包括但不限于未处理状态、不替换状态、预警状态以及已处理 状态等。未处理状态包括未查找到待翻译代码片段匹配的代码处理器。不替换状态包括待翻译代码片段为代码注释及控制台输出,无需进行替换操作。预警状态包括待翻译代码片段涉及到业务逻辑,不可轻易进行替换操作。已处理状态包括待翻译代码片段已经进行了翻译、替换操作。
在其中一个实施例中,可以对翻译后代码片段进行标注处理。每一段经过处理器处理过的翻译后代码片段,可以对该段翻译后代码片段进行标注,标注可以采用代码注释的手段,以达到提示和快速定位的目的。标注的信息包括但不限于处理步骤标识、代码处理器标识、处理状态、及风险等级等信息。通过该注释,能快速帮助开发人员了解翻译后代码片段的处理经过。
在其中一个实施例中,翻译之后还可执行定制化的收尾处理。可预先针对不同编程语言类型的待翻译源代码文件预设不同的收尾处理。比如对于react(JSX)语言,可以执行以下的收尾处理:根据参数传入值判断是否使用资源文件化的定制方案,若否,则不作处理;若是,则按照预定的路径写入预设的资源文件,每个资源文件对应一种语言类型,资源文件内存储有所有的翻译后代码片段。资源文件可为两个,其一对应于原始语言类型,另一对应于原始语言类型。
在其中一个实施例中,当将待翻译分析结果集中的多个待翻译代码片段都翻译得到目标语言类型的翻译后代码片段之后,可根据翻译结果输出目标语言类型的翻译后源代码文件以及翻译细节报表。翻译细节报表中可包含每个待翻译代码片段对应的上下文代码片段、翻译后代码片段、风险等级、处理状态等。
在其中一个实施例中,如图3所示,提供了另一种代码片段翻译方法,以该方法应用于图1中的代码服务器102为例进行说明,包括以下步骤:
步骤302,获取待翻译源代码文件。
步骤304,读取待翻译源代码文件中的源代码目录;待翻译源代码目录中包含多个初始文件名。
步骤306,遍历每个初始文件名对应的初始代码子文件,筛选出待翻译代码子文件;待翻译代码子文件与预设语言类型相匹配。
步骤308,查找与预设语言类型匹配的解析器。
步骤310,通过解析器对待翻译代码子文件进行解析,得到待翻译分析结果集;待翻译分析结果集中包含待翻译代码子文件中的待翻译代码片段及与待翻译代码片段对应的上下文代码片段。
步骤312,识别待翻译代码片段的编程语言类型。
步骤314,查找与编程语言类型对应的代码处理器集合。
步骤316,将待翻译代码片段与代码处理器集合中的每个代码处理器对 应的匹配条件进行匹配。
步骤318,将匹配的匹配条件对应的代码处理器,作为与待翻译代码片段匹配的代码处理器。
步骤320,通过代码处理器根据上下文代码片段,识别待翻译代码片段的目标语言类型以及翻译策略。
步骤322,通过代码处理器调用翻译器接口,得到基于翻译策略翻译的与待翻译代码片段对应的目标语言类型的翻译后代码片段。
上述代码片段翻译方法中,代码服务器待翻译源代码文件之后,通过匹配的解析器对待翻译代码子文件进行解析得到包含待翻译代码片段的待翻译分析结果集。按照待翻译代码片段的编程语言类型,从代码处理器集合中查找与待翻译分析结果集中包含的待翻译代码片段匹配的代码处理器,并通过待翻译代码片段对应的上下文代码片段,识别待翻译代码片段的目标语言类型以及翻译策略。代码服务器可通过代码处理器调用翻译器接口,得到基于翻译策略翻译的与待翻译代码片段对应的目标语言类型的翻译后代码片段。结合待翻译代码片段本身的语法,通过预设针对性的代码处理器对待翻译代码片段进行处理,得到针对性的翻译策略,从而能够通过调用翻译器接口实现待翻译代码片段的自动化统一翻译,保证了翻译结果的可靠性。
应该理解的是,虽然图2和3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2和3中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在其中一个实施例中,如图4所示,提供了一种代码片段翻译装置400,包括:获取模块402,用于获取待翻译分析结果集;待翻译分析结果集中包含待翻译代码片段,及与待翻译代码片段对应的上下文代码片段;查找模块404,用于查找与待翻译代码片段匹配的代码处理器;识别模块406,用于通过代码处理器根据上下文代码片段,识别待翻译代码片段的目标语言类型以及翻译策略;翻译模块408,用于通过代码处理器调用翻译器接口,得到基于翻译策略翻译的与待翻译代码片段对应的目标语言类型的翻译后代码片段。
在其中一个实施例中,获取模块402还用于获取待翻译源代码文件;读取待翻译源代码文件中的源代码目录;待翻译源代码目录中包含多个初始文 件名;遍历每个初始文件名对应的初始代码子文件,筛选出待翻译代码子文件;待翻译代码子文件与预设语言类型相匹配;查找与预设语言类型匹配的解析器;通过解析器对待翻译代码子文件进行解析,得到待翻译分析结果集;待翻译分析结果集中包含待翻译代码子文件中的待翻译代码片段及与待翻译代码片段对应的上下文代码片段。
在其中一个实施例中,待翻译分析结果集中还包含片段定位信息;该装置还包括输出模块,用于根据翻译策略确定翻译操作;当翻译操作为替换操作时,基于片段定位信息,将翻译后代码片段对应替换待翻译源代码文件中的待翻译代码片段;输出目标语言类型的翻译后源代码文件。
在其中一个实施例中,查找模块404还用于识别待翻译代码片段的编程语言类型;查找与编程语言类型对应的代码处理器集合;将待翻译代码片段与代码处理器集合中的每个代码处理器对应的匹配条件进行匹配;将匹配的匹配条件对应的代码处理器,作为与待翻译代码片段匹配的代码处理器。
在其中一个实施例中,翻译模块408还用于获取用户标识;根据用户标识、待翻译代码片段、目标语言类型以及翻译策略生成翻译请求;将翻译请求通过翻译器接口发送至翻译服务器;翻译请求用于指示翻译服务器在对用户标识验证通过之后,采用翻译策略将待翻译代码片段翻译为目标语言类型;接收翻译服务器返回的目标语言类型的翻译后代码片段。
在其中一个实施例中,翻译模块408还用于将用户标识、待翻译代码片段、目标语言类型以及翻译策略拼接生成初始字符串;对初始字符串进行加密处理,得到请求字符串;根据请求字符串生成翻译请求。
关于代码片段翻译装置的具体限定可以参见上文中对于代码片段翻译方法的限定,在此不再赘述。上述代码片段翻译装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在其中一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图5所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机可读指令和数据库。该内存储器为非易失性存储介质中的操作系统和计算机可读指令的运行提供环境。该计算机设备的数据库用于存储待翻译分析结果集等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机可读指令被处理器执行时以实现一种代码片段翻译方法。
本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在其中一个实施例中,提供了一种计算机设备,包括存储器及一个或多个处理器,所述存储器中储存有计算机可读指令,所述计算机可读指令被所述一个或多个处理器执行时,使得所述一个或多个处理器实现上述各个实施例中的代码片段定位方法的步骤。
在其中一个实施例中,提供了一个或多个存储有计算机可读指令的非易失性计算机可读存储介质,所述计算机可读指令被一个或多个处理器执行时,使得所述一个或多个处理器实现上述各个实施例中的代码片段定位方法的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机可读指令来指令相关的硬件来完成,所述的计算机可读指令可存储于一非易失性计算机可读取存储介质中,该计算机可读指令在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (20)
- 一种代码片段翻译方法,应用于代码服务器,所述方法包括:获取待翻译分析结果集;所述待翻译分析结果集中包含待翻译代码片段,及与所述待翻译代码片段对应的上下文代码片段;根据所述待翻译代码片段的编程语言类型查找与所述待翻译代码片段匹配的代码处理器;通过所述代码处理器根据所述上下文代码片段,识别待翻译代码片段的目标语言类型以及翻译策略;及通过所述代码处理器调用翻译器系统提供的翻译器接口,所述翻译器系统部署于翻译服务器上,所述翻译系统基于所述翻译策略将所述待翻译代码片段翻译为对应的目标语言类型的翻译后代码片段。
- 根据权利要求1所述的方法,其特征在于,所述获取待翻译分析结果集包括:获取待翻译源代码文件;读取所述待翻译源代码文件中的源代码目录;所述待翻译源代码目录中包含多个初始文件名;遍历每个所述初始文件名对应的初始代码子文件,筛选出待翻译代码子文件;所述待翻译代码子文件与预设语言类型相匹配;查找与所述预设语言类型匹配的解析器;及通过所述解析器获取待翻译代码片段在所述待翻译代码子文件中的片段定位信息,基于所述片段定位信息提取待翻译代码片段,根据所述待翻译代码片段和所述片段定位信息生成待翻译分析结果集;所述待翻译分析结果集中包含所述待翻译代码子文件中的待翻译代码片段及与待翻译代码片段对应的上下文代码片段。
- 根据权利要求2所述的方法,其特征在于,在所述通过所述代码处理器根据所述上下文代码片段,识别待翻译代码片段的目标语言类型以及翻译策略之后还包括:通过代码处理器根据所述翻译策略确定翻译操作;当所述翻译操作为替换操作时,基于所述片段定位信息,将所述翻译后代码片段对应替换所述待翻译源代码文件中的待翻译代码片段;及输出目标语言类型的翻译后源代码文件。
- 根据权利要求1所述的方法,其特征在于,所述查找与所述待翻译代码片段匹配的代码处理器包括:基于正则表达式识别所述待翻译代码片段的编程语言类型;查找与所述编程语言类型对应的代码处理器集合;将所述待翻译代码片段与代码处理器集合中的每个代码处理器对应的匹配条件进行匹配;及将匹配的匹配条件对应的代码处理器,作为与所述待翻译代码片段匹配的代码处理器。
- 根据权利要求1所述的方法,其特征在于,所述通过所述代码处理器调用翻译器系统的翻译器接口包括:获取用户标识;根据所述用户标识、所述待翻译代码片段、所述目标语言类型以及所述翻译策略生成翻译请求;将所述翻译请求通过翻译器接口发送至翻译服务器;所述翻译请求用于指示所述翻译服务器在对所述用户标识验证通过之后,采用所述翻译策略将所述待翻译代码片段翻译为所述目标语言类型;及接收所述翻译服务器返回的目标语言类型的翻译后代码片段。
- 根据权利要求5所述的方法,其特征在于,所述根据所述用户标识、待翻译代码片段、目标语言类型以及翻译策略生成翻译请求包括;将所述用户标识、待翻译代码片段、目标语言类型以及翻译策略拼接生成初始字符串;对所述初始字符串进行加密处理,得到请求字符串;及当所述待翻译分析结果集中包含多个待翻译片段代码时,根据多个待翻译片段代码对应的请求字符串生成翻译请求。
- 根据权利要求1至6任一项所述的方法,其特在于,所述方法还包括:通过对上下文代码片段进行检查,对每段待翻译代码片段的翻译结果进行风险等级评估;及对每段待翻译代码片段的处理状态进行记录。
- 一种代码片段翻译装置,包括:获取模块,用于获取待翻译分析结果集;所述待翻译分析结果集中包含待翻译代码片段,及与所述待翻译代码片段对应的上下文代码片段;查找模块,用于根据所述待翻译代码片段的编程语言类型查找与所述待翻译代码片段匹配的代码处理器;识别模块,用于通过所述代码处理器根据所述上下文代码片段,识别待翻译代码片段的目标语言类型以及翻译策略;及翻译模块,用于通过所述代码处理器调用翻译器系统的翻译器接口,所述翻译器系统部署于翻译服务器上,所述翻译系统基于所述翻译策略将所述待翻译代码片段翻译为对应的目标语言类型的翻译后代码片段。
- 一种计算机设备,包括存储器及一个或多个处理器,所述存储器中储 存有计算机可读指令,所述计算机可读指令被所述一个或多个处理器执行时,使得所述一个或多个处理器执行以下步骤:获取待翻译分析结果集;所述待翻译分析结果集中包含待翻译代码片段,及与所述待翻译代码片段对应的上下文代码片段;根据所述待翻译代码片段的编程语言类型查找与所述待翻译代码片段匹配的代码处理器;通过所述代码处理器根据所述上下文代码片段,识别待翻译代码片段的目标语言类型以及翻译策略;及通过所述代码处理器调用翻译器系统的翻译器接口,所述翻译器系统部署于翻译服务器上,所述翻译系统基于所述翻译策略将所述待翻译代码片段翻译为对应的目标语言类型的翻译后代码片段。
- 根据权利要求9所述的计算机设备,其特征在于,所述计算机可读指令被所述一个或多个处理器执行时,使得所述一个或多个处理器还执行以下步骤:获取待翻译源代码文件;读取所述待翻译源代码文件中的源代码目录;所述待翻译源代码目录中包含多个初始文件名;遍历每个所述初始文件名对应的初始代码子文件,筛选出待翻译代码子文件;所述待翻译代码子文件与预设语言类型相匹配;查找与所述预设语言类型匹配的解析器;及通过所述解析器获取待翻译代码片段在所述待翻译代码子文件中的片段定位信息,基于所述片段定位信息提取待翻译代码片段,根据所述待翻译代码片段和所述片段定位信息生成待翻译分析结果集;所述待翻译分析结果集中包含所述待翻译代码子文件中的待翻译代码片段及与待翻译代码片段对应的上下文代码片段。
- 根据权利要求10所述的计算机设备,其特征在于,所述计算机可读指令被所述一个或多个处理器执行时,使得所述一个或多个处理器还执行以下步骤:通过代码处理器根据所述翻译策略确定翻译操作;当所述翻译操作为替换操作时,基于所述片段定位信息,将所述翻译后代码片段对应替换所述待翻译源代码文件中的待翻译代码片段;及输出目标语言类型的翻译后源代码文件。
- 根据权利要求9所述的计算机设备,其特征在于,所述计算机可读指令被所述一个或多个处理器执行时,使得所述一个或多个处理器还执行以下步骤:基于正则表达式识别所述待翻译代码片段的编程语言类型;查找与所述编程语言类型对应的代码处理器集合;将所述待翻译代码片段与代码处理器集合中的每个代码处理器对应的匹配条件进行匹配;及将匹配的匹配条件对应的代码处理器,作为与所述待翻译代码片段匹配的代码处理器。
- 根据权利要求9所述的计算机设备,其特征在于,所述计算机可读指令被所述一个或多个处理器执行时,使得所述一个或多个处理器还执行以下步骤:获取用户标识;根据所述用户标识、所述待翻译代码片段、所述目标语言类型以及所述翻译策略生成翻译请求;将所述翻译请求通过翻译器接口发送至翻译服务器;所述翻译请求用于指示所述翻译服务器在对所述用户标识验证通过之后,采用所述翻译策略将所述待翻译代码片段翻译为所述目标语言类型;及接收所述翻译服务器返回的目标语言类型的翻译后代码片段。
- 根据权利要求13所述的计算机设备,其特征在于,所述计算机可读指令被所述一个或多个处理器执行时,使得所述一个或多个处理器还执行以下步骤:将所述用户标识、待翻译代码片段、目标语言类型以及翻译策略拼接生成初始字符串;对所述初始字符串进行加密处理,得到请求字符串;及当所述待翻译分析结果集中包含多个待翻译片段代码时,根据多个待翻译片段代码对应的请求字符串生成翻译请求。
- 根据权利要求9至14任一项所述的计算机设备,其特征在于,所述计算机可读指令被所述一个或多个处理器执行时,使得所述一个或多个处理器还执行以下步骤:通过对上下文代码片段进行检查,对每段待翻译代码片段的翻译结果进行风险等级评估;及对每段待翻译代码片段的处理状态进行记录。
- 一个或多个存储有计算机可读指令的非易失性计算机可读存储介质,所述计算机可读指令被一个或多个处理器执行时,使得所述一个或多个处理器执行以下步骤:获取待翻译分析结果集;所述待翻译分析结果集中包含待翻译代码片段,及与所述待翻译代码片段对应的上下文代码片段;根据所述待翻译代码片段的编程语言类型查找与所述待翻译代码片段匹配的代码处理器;通过所述代码处理器根据所述上下文代码片段,识别待翻译代码片段的目标语言类型以及翻译策略;及通过所述代码处理器调用翻译器系统的翻译器接口,所述翻译器系统部署于翻译服务器上,所述翻译系统基于所述翻译策略将所述待翻译代码片段翻译为对应的目标语言类型的翻译后代码片段。
- 根据权利要求16所述的计算机可读存储介质,其特征在于,所述计算机可读指令被一个或多个处理器执行时,使得所述一个或多个处理器还执行以下步骤:获取待翻译源代码文件;读取所述待翻译源代码文件中的源代码目录;所述待翻译源代码目录中包含多个初始文件名;遍历每个所述初始文件名对应的初始代码子文件,筛选出待翻译代码子文件;所述待翻译代码子文件与预设语言类型相匹配;查找与所述预设语言类型匹配的解析器;及通过所述解析器获取待翻译代码片段在所述待翻译代码子文件中的片段定位信息,基于所述片段定位信息提取待翻译代码片段,根据所述待翻译代码片段和所述片段定位信息生成待翻译分析结果集;所述待翻译分析结果集中包含所述待翻译代码子文件中的待翻译代码片段及与待翻译代码片段对应的上下文代码片段。
- 根据权利要求16所述的计算机可读存储介质,其特征在于,所述计算机可读指令被一个或多个处理器执行时,使得所述一个或多个处理器还执行以下步骤:基于正则表达式识别所述待翻译代码片段的编程语言类型;查找与所述编程语言类型对应的代码处理器集合;将所述待翻译代码片段与代码处理器集合中的每个代码处理器对应的匹配条件进行匹配;及将匹配的匹配条件对应的代码处理器,作为与所述待翻译代码片段匹配的代码处理器。
- 根据权利要求16所述的计算机可读存储介质,其特征在于,所述计算机可读指令被一个或多个处理器执行时,使得所述一个或多个处理器还执行以下步骤:获取用户标识;根据所述用户标识、所述待翻译代码片段、所述目标语言类型以及所述 翻译策略生成翻译请求;将所述翻译请求通过翻译器接口发送至翻译服务器;所述翻译请求用于指示所述翻译服务器在对所述用户标识验证通过之后,采用所述翻译策略将所述待翻译代码片段翻译为所述目标语言类型;及接收所述翻译服务器返回的目标语言类型的翻译后代码片段。
- 根据权利要求16至19任一项所述的计算机可读存储介质,其特征在于,所述计算机可读指令被一个或多个处理器执行时,使得所述一个或多个处理器还执行以下步骤:通过对上下文代码片段进行检查,对每段待翻译代码片段的翻译结果进行风险等级评估;及对每段待翻译代码片段的处理状态进行记录。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
SG11201907251RA SG11201907251RA (en) | 2019-04-12 | 2019-06-19 | Methods and apparatuses for code snippet translation, computer devices and storage mediums |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910296127.5 | 2019-04-12 | ||
CN201910296127.5A CN110134397A (zh) | 2019-04-12 | 2019-04-12 | 代码片段翻译方法、装置、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2020206838A1 true WO2020206838A1 (zh) | 2020-10-15 |
Family
ID=67569805
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2019/091823 WO2020206838A1 (zh) | 2019-04-12 | 2019-06-19 | 代码片段翻译方法、装置、计算机设备和存储介质 |
Country Status (3)
Country | Link |
---|---|
CN (1) | CN110134397A (zh) |
SG (1) | SG11201907251RA (zh) |
WO (1) | WO2020206838A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110704042A (zh) * | 2019-10-15 | 2020-01-17 | 恩亿科(北京)数据科技有限公司 | 程序代码处理方法和装置、服务器及存储介质 |
CN113190233B (zh) * | 2021-04-15 | 2023-06-20 | 中国海洋大学 | 一种面向多源异构编程语言的智能源码翻译方法及系统 |
CN113342437B (zh) * | 2021-06-10 | 2023-03-24 | 网易(杭州)网络有限公司 | 一种软件翻译方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101253476A (zh) * | 2005-08-10 | 2008-08-27 | 微软公司 | 句法程序语言翻译 |
CN104899010A (zh) * | 2014-03-04 | 2015-09-09 | 北京金山云网络技术有限公司 | 源代码的多语言化方法及系统 |
CN107391499A (zh) * | 2017-08-03 | 2017-11-24 | 深圳Tcl新技术有限公司 | 自动导入翻译方法、文字显示终端及计算机可读存储介质 |
CN107451128A (zh) * | 2017-08-04 | 2017-12-08 | 深圳Tcl新技术有限公司 | 多语言代码适配方法、设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109284145A (zh) * | 2018-08-28 | 2019-01-29 | 北京城市网邻信息技术有限公司 | 多语言配置文件的生成和展示方法及装置、设备和介质 |
-
2019
- 2019-04-12 CN CN201910296127.5A patent/CN110134397A/zh active Pending
- 2019-06-19 WO PCT/CN2019/091823 patent/WO2020206838A1/zh active Application Filing
- 2019-06-19 SG SG11201907251RA patent/SG11201907251RA/en unknown
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101253476A (zh) * | 2005-08-10 | 2008-08-27 | 微软公司 | 句法程序语言翻译 |
CN104899010A (zh) * | 2014-03-04 | 2015-09-09 | 北京金山云网络技术有限公司 | 源代码的多语言化方法及系统 |
CN107391499A (zh) * | 2017-08-03 | 2017-11-24 | 深圳Tcl新技术有限公司 | 自动导入翻译方法、文字显示终端及计算机可读存储介质 |
CN107451128A (zh) * | 2017-08-04 | 2017-12-08 | 深圳Tcl新技术有限公司 | 多语言代码适配方法、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110134397A (zh) | 2019-08-16 |
SG11201907251RA (en) | 2020-11-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111522816B (zh) | 基于数据库引擎的数据处理方法、装置、终端及介质 | |
US10169337B2 (en) | Converting data into natural language form | |
KR102289995B1 (ko) | 데이터 저장, 데이터 검사 및 데이터 연계 방법 및 장치 | |
WO2020206840A1 (zh) | 代码翻译方法、装置、计算机设备和存储介质 | |
KR101755365B1 (ko) | 레코드 포맷 정보의 관리 | |
CN109800258B (zh) | 数据文件部署方法、装置、计算机设备及存储介质 | |
WO2020206837A1 (zh) | 代码片段定位方法、装置、计算机设备和存储介质 | |
WO2020206838A1 (zh) | 代码片段翻译方法、装置、计算机设备和存储介质 | |
US20210150060A1 (en) | Automated data anonymization | |
CN108984612B (zh) | 目标sql语句的获取方法、装置、计算机设备及存储介质 | |
CN113220782A (zh) | 多元测试数据源生成方法、装置、设备及介质 | |
WO2022227314A1 (zh) | 动态同步测试方法、装置、设备及存储介质 | |
WO2020232883A1 (zh) | 脚本缺陷扫描方法、装置、计算机设备和存储介质 | |
CN109325042B (zh) | 处理模版获取方法、表格处理方法、装置、设备及介质 | |
CN112559526A (zh) | 数据表导出方法、装置、计算机设备及存储介质 | |
WO2019062132A1 (zh) | 业务规则管理方法、装置、存储介质和计算机设备 | |
CN113271237A (zh) | 工控协议的解析方法、装置、存储介质及处理器 | |
CN116226170A (zh) | 一种数据库语句转换方法、装置、电子设备及存储介质 | |
CN112580363A (zh) | 需求文档处理方法、装置、计算机设备及存储介质 | |
CN112882713B (zh) | 一种日志解析的方法、装置、介质及计算机设备 | |
CN111324375A (zh) | 代码管理方法、装置、计算机设备和存储介质 | |
CN113778852B (zh) | 一种基于正则表达式的代码分析方法 | |
US10782942B1 (en) | Rapid onboarding of data from diverse data sources into standardized objects with parser and unit test generation | |
CN114416847A (zh) | 一种数据转换的方法、装置、服务器及存储介质 | |
CN113672512A (zh) | 代码检查规则生成方法、代码检查方法、装置、介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 19923737 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
32PN | Ep: public notification in the ep bulletin as address of the adressee cannot be established |
Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205 DATED 02/02/2022) |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 19923737 Country of ref document: EP Kind code of ref document: A1 |