[go: up one dir, main page]

CN110134404A - 代码翻译方法、装置、计算机设备和存储介质 - Google Patents

代码翻译方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN110134404A
CN110134404A CN201910296123.7A CN201910296123A CN110134404A CN 110134404 A CN110134404 A CN 110134404A CN 201910296123 A CN201910296123 A CN 201910296123A CN 110134404 A CN110134404 A CN 110134404A
Authority
CN
China
Prior art keywords
code
translated
translation
corrected
segment
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
CN201910296123.7A
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.)
OneConnect Smart Technology Co Ltd
Original Assignee
OneConnect Smart 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 OneConnect Smart Technology Co Ltd filed Critical OneConnect Smart Technology Co Ltd
Priority to CN201910296123.7A priority Critical patent/CN110134404A/zh
Priority to SG11201907337XA priority patent/SG11201907337XA/en
Priority to PCT/CN2019/091851 priority patent/WO2020206840A1/zh
Publication of CN110134404A publication Critical patent/CN110134404A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/52Binary to binary

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Machine Translation (AREA)

Abstract

本申请涉及一种代码翻译方法、装置、计算机设备和存储介质。该方法包括:获取对待翻译源代码文件进行解析处理得到的待翻译分析结果集;待翻译分析结果集中包含待翻译代码片段及对应的片段定位信息;调用翻译器接口翻译待翻译代码片段,得到翻译后代码片段;按照翻译后代码片段对应的片段定位信息对待翻译源代码文件进行替换处理,生成待纠正源代码文件;获取针对待纠正源代码文件输入的目标翻译细节报表;目标翻译细节报表中包含目标纠正项目;按照目标纠正项目对应的片段定位信息对待纠正源代码文件进行纠正处理,生成纠正后源代码文件。采用本方法通过代码质量工具,能够提高代码翻译效率。

Description

代码翻译方法、装置、计算机设备和存储介质
技术领域
本申请涉及计算机技术领域,特别是涉及一种代码翻译方法、装置、计算机设备和存储介质。
背景技术
随着国际化的日益深入发展,已开发的软件系统会面临面向世界不同地区和国家的需求的情况,因此需要将软件系统的源代码从原始语言翻译为特定语言。传统方式中,通常是由业务分析人员收集翻译需求并写入文档,然后交与软件开发人员依据文档对源代码进行修改。然而传统的代码国际化翻译过程需要业务分析人员与开发人员进行合作完成,开发人员从代码中手动提取出待翻译的代码片段之后,由人工进行大量翻译工作,时间成本和人力成本高,通过人工进行代码国际化翻译难以准确全面地排查出所有需要翻译的代码片段,也难以保证代码翻译的统一性,从而导致翻译结果可靠性差,代码翻译效率较低。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高代码翻译效率的代码翻译方法、装置、计算机设备和存储介质。
一种代码翻译方法,所述方法包括:获取对待翻译源代码文件进行解析处理得到的待翻译分析结果集;所述待翻译分析结果集中包含待翻译代码片段及对应的片段定位信息;调用翻译器接口翻译所述待翻译代码片段,得到翻译后代码片段;按照所述翻译后代码片段对应的片段定位信息对所述待翻译源代码文件进行替换处理,生成待纠正源代码文件;获取针对所述待纠正源代码文件输入的目标翻译细节报表;所述目标翻译细节报表中包含目标纠正项目;按照所述目标纠正项目对应的片段定位信息对所述待纠正源代码文件进行纠正处理,生成纠正后源代码文件。
在其中一个实施例中,所述获取对待翻译源代码文件进行解析处理得到的待翻译分析结果集,包括:获取待翻译源代码文件;读取所述待翻译源代码文件中的源代码目录;所述待翻译源代码目录中包含多个初始文件名;遍历每个所述初始文件名对应的初始代码子文件,筛选出待翻译代码子文件;所述待翻译代码子文件与预设语言类型相匹配,所述待翻译代码子文件中包含翻译代码片段;查找与所述预设语言类型匹配的解析器;通过所述解析器对所述待翻译代码子文件进行解析处理,生成待翻译分析结果集。
在其中一个实施例中,所述遍历每个所述初始文件名对应的初始代码子文件,筛选出待翻译代码子文件,包括:获取多种预设语言类型分别对应的正则表达式;遍历每个所述初始文件名对应的初始代码子文件,通过所述正则表达式与每个初始代码子文件进行匹配;根据匹配的正则表达式确定每个初始代码子文件匹配的预设语言类型;筛选出包含任意一种预设语言类型的初始代码子文件,作为待翻译代码子文件。
在其中一个实施例中,所述待翻译分析结果集中还包含与所述待翻译代码片段对应的上下文代码片段,所述调用翻译器接口翻译所述待翻译代码片段,得到翻译后代码片段,包括:查找与所述待翻译代码片段匹配的代码处理器;通过所述代码处理器根据所述上下文代码片段,识别待翻译代码片段的目标语言类型以及翻译策略;通过所述代码处理器调用翻译器接口,得到基于所述翻译策略翻译的与待翻译代码片段对应的目标语言类型的翻译后代码片段。
在其中一个实施例中,所述查找与所述待翻译代码片段匹配的代码处理器,包括:识别所述待翻译代码片段的编程语言类型;查找与所述编程语言类型对应的代码处理器集合;将所述待翻译代码片段与代码处理器集合中的每个代码处理器对应的匹配条件进行匹配;将匹配的匹配条件对应的代码处理器,作为与所述待翻译代码片段匹配的代码处理器。
在其中一个实施例中,所述获取针对所述待纠正源代码文件输入的目标翻译细节报表,包括:根据所述待翻译代码片段及对应的上下文代码片段、翻译后代码片段和片段定位信息生成初始翻译细节报表;获取基于所述初始翻译细节报表输入的纠正后代码片段;将每个所述待纠正代码片段和相应的纠正后代码片段作为目标纠正项目;根据多个所述目标纠正项目生成目标翻译细节报表。
在其中一个实施例中,所述接收基于所述待纠正代码片段和对应的片段定位信息,输入的纠正后代码片段,包括:获取代码跳转指令;所述代码跳转指令对应于所述待纠正代码片段;基于代码跳转指令获取所述待纠正代码片段所属的待纠正代码文件;按照所述待纠正代码片段对应的片段定位信息,跳转展示所述待纠正源代码文件;检测作用于所展示的待纠正源代码文件的代码纠正操作;提取基于所述代码纠正操作得到的纠正后代码片段。
一种代码翻译装置,所述装置包括:获取模块,用于获取对待翻译源代码文件进行解析处理得到的待翻译分析结果集;所述待翻译分析结果集中包含待翻译代码片段及对应的片段定位信息;翻译模块,用于调用翻译器接口翻译所述待翻译代码片段,得到翻译后代码片段;替换模块,用于按照所述翻译后代码片段对应的片段定位信息对所述待翻译源代码文件进行替换处理,生成待纠正源代码文件;纠正模块,用于获取针对所述待纠正源代码文件输入的目标翻译细节报表;所述目标翻译细节报表中包含目标纠正项目;按照所述目标纠正项目对应的片段定位信息对所述待纠正源代码文件进行纠正处理,生成纠正后源代码文件。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述各个实施例中所述的代码翻译方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述各个实施例中所述的代码翻译方法的步骤。
上述代码翻译方法、装置、计算机设备和存储介质,代码服务器对待翻译源代码文件进行解析处理之后,可得到包含待翻译代码片段和对应的片段定位信息的待翻译分析结果集。代码服务器可调用翻译器接口将带翻译代码片段发送至翻译器对应的翻译服务器进行翻译,得到翻译后代码片段。接收到翻译后代码片段之后,可按照翻译后代码片段对应的片段定位信息对待翻译源代码文件进行替换处理,生成待纠正源代码文件。在获取针对待纠正源代码文件输入的目标翻译细节报表之后,还可按照目标翻译细节报表中包含的目标纠正项目对待纠正源代码文件进行纠正处理,生成纠正后源代码文件。通过对待翻译源代码文件进行自动化的解析、翻译及纠正,能够保证代码翻译的全面性、统一性和可靠性,从而提高代码翻译效率。
附图说明
图1为一个实施例中代码翻译方法的应用场景图;
图2为一个实施例中代码翻译方法的流程示意图;
图3为另一个实施例中代码翻译方法的流程示意图;
图4为一个实施例中代码翻译装置的结构框图;
图5为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的代码翻译方法,可以应用于如图1所示的应用环境中。其中,代码服务器102与翻译服务器104通过网络进行通信。其中,代码服务器102与翻译服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。代码服务器102对待翻译源代码文件进行解析处理之后,可得到包含待翻译代码片段和对应的片段定位信息的待翻译分析结果集。代码服务器102可调用翻译器接口将带翻译代码片段发送至翻译器对应的翻译服务器104进行翻译,得到翻译后代码片段。代码服务器102接收到翻译服务器104返回的翻译后代码片段之后,可按照翻译后代码片段对应的片段定位信息对待翻译源代码文件进行替换处理,生成待纠正源代码文件。代码服务器102在获取针对待纠正源代码文件输入的目标翻译细节报表之后,还可按照目标翻译细节报表中包含的目标纠正项目对待纠正源代码文件进行纠正处理,生成纠正后源代码文件。
在一个实施例中,如图2所示,提供了一种代码翻译方法,以该方法应用于图1中的代码服务器102为例进行说明,包括以下步骤:
步骤202,获取对待翻译源代码文件进行解析处理得到的待翻译分析结果集;待翻译分析结果集中包含待翻译代码片段及对应的片段定位信息。
待翻译源代码文件是指需要进行翻译的源代码文件。源代码文件是指未编译的按照一定的程序设计语言规范书写的文本文件。待翻译源代码文件可预存在代码服务器的数据库中,代码服务器可直接从本地数据库中获取待翻译源代码文件;代码服务器也可接收终端上传的待翻译代码文件或其他服务器发送的待翻译源代码文件。待翻译分析结果集是指对待翻译源代码文件进行解析之后得到的,包含与多个待翻译代码片段对应的分别对应的待翻译分析结果的集合。待翻译分析结果包括待翻译源代码文件中待翻译代码片段及其相关信息。待翻译分析结果集中可包含一个或多个待翻译代码片段。片段定位信息是指待翻译代码片段在待翻译源代码文件中的定位信息。
在一个实施例中,可通过解析器对待翻译源代码文件进行解析处理得到待翻译代码片段之后,在待翻译代码片段所处的待处理代码中划分出对应的片段定位信息。比如,特定语法的待翻译代码片段对应有特定的起始字符串和结束字符串,可分别检测起始字符串在待处理代码中的起始定位信息和结束字符串在在待处理代码中的结束定位信息,将起始定位信息和结束定位信息作为片段定位信息。还可以预先在待处理代码中划分定位多个代码片段,比如将待处理代码中预设字符长度的代码作为一个代码片段,当检测到代码片段中包含特定字符串时,则可将该代码片段作为待翻译代码片段。
步骤204,调用翻译器接口翻译待翻译代码片段,得到翻译后代码片段。
翻译器接口是指翻译器系统提供的、可用于通过调用实现翻译功能的接口。翻译器系统可部署于翻译服务器上。翻译器系统包括但不限于百度翻译器或谷歌翻译器等其中一种或多种。翻译器系统可基于翻译策略将待翻译代码片段翻译为对应的目标语言类型的翻译后代码片段。目标语言类型包括但不限于中文、高棉语、泰语、缅甸语及老挝语等其中一种或多种语言类型。
在一个实施例中,当待翻译分析结果集中包含多个待翻译代码片段时,可以根据每个待翻译代码片段生成一个翻译请求,逐一通过翻译器接口发送至翻译服务器进行翻译。还可以根据多个待翻译代码片段生成一个翻译请求,一次性实现多个待翻译代码片段的翻译处理,以降低总体翻译请求的调用数量,提高对多个待翻译代码片段翻译的执行稳定性。
步骤206,按照翻译后代码片段对应的片段定位信息对待翻译源代码文件进行替换处理,生成待纠正源代码文件。
可基于片段定位信息在待翻译源代码文件中查找到相应的待翻译代码片段,从而可将对应的翻译后代码片段替换相应的待翻译代码片段。待翻译源代码文件中可包含多个待翻译代码片段,可在当检测到对待翻译源代码文件中的所有待翻译代码片段都进行了替换操作之后,得到翻译后源代码文件。重写该翻译后源代码文件可生成待纠正源代码文件。
步骤208,获取针对待纠正源代码文件输入的目标翻译细节报表;目标翻译细节报表中包含目标纠正项目。
目标翻译细节报表是指记录了待翻译源代码文件经过翻译得到的翻译后源代码文件的具体翻译细节、以及需要进行纠正的具体翻译细节的报表。目标翻译细节报表中可包含多个目标纠正项目,一个目标纠正项目对应于待纠正源代码文件中需要进行纠正的一个待纠正代码片段。每个目标纠正项目中包括待纠正代码片段、纠正后代码片段、片段定位信息,还可以包括上下文代码片段等。由于在进行自动翻译的时候,翻译后代码片段的直接替换处理过程是没有考虑到待翻译源代码文件中待翻译代码片段的上下文,可导致翻译不准确的情况。因此需要对自动翻译后的带的待纠正源代码文件进行纠正。
步骤210,按照目标纠正项目对应的片段定位信息对待纠正源代码文件进行纠正处理,生成纠正后源代码文件。
可基于目标翻译细节报表中的每个目标纠正项目对应的片段定位信息,在待纠正源代码文件中查找定位到需要进行纠正的待纠正代码片段,从而基于目标纠正项目对定位到的待纠正代码片段进行纠正处理。通过对待纠正源代码文件中所有需要进行的待纠正代码片段进行纠正处理之后,可以生成纠正后源代码文件。
上述代码翻译方法中,代码服务器对待翻译源代码文件进行解析处理之后,可得到包含待翻译代码片段和对应的片段定位信息的待翻译分析结果集。代码服务器可调用翻译器接口将带翻译代码片段发送至翻译器对应的翻译服务器进行翻译,得到翻译后代码片段。接收到翻译后代码片段之后,可按照翻译后代码片段对应的片段定位信息对待翻译源代码文件进行替换处理,生成待纠正源代码文件。在获取针对待纠正源代码文件输入的目标翻译细节报表之后,还可按照目标翻译细节报表中包含的目标纠正项目对待纠正源代码文件进行纠正处理,生成纠正后源代码文件。通过对待翻译源代码文件进行自动化的解析、翻译及纠正,能够保证代码翻译的全面性、统一性和可靠性,从而提高代码翻译效率。
在一个实施例中,获取对待翻译源代码文件进行解析处理得到的待翻译分析结果集,包括:获取待翻译源代码文件;读取待翻译源代码文件中的源代码目录;待翻译源代码目录中包含多个初始文件名;遍历每个初始文件名对应的初始代码子文件,筛选出待翻译代码子文件;待翻译代码子文件与预设语言类型相匹配,待翻译代码子文件中包含翻译代码片段;查找与预设语言类型匹配的解析器;通过解析器对待翻译代码子文件进行解析处理,生成待翻译分析结果集。
源代码目录是指存储了多个初始代码子文件的初始文件名的目录。初始代码子文件是指待翻译源代码文件中最小粒度的、无法进一步展开的源代码文件。待翻译代码子文件是指与预设语言类型相匹配的、需要翻译成目标语言类型的初始代码子文件。待翻译代码子文件中包含待翻译的代码片段。通过仅将包含待翻译代码片段的待翻译代码子文件筛选出来,避免对无需进行翻译的初始代码子文件进行无效处理,以节约系统资源。
可以在代码服务器中预置安装多个与各种预设语言类型对应的解析器,通过匹配的解析器对待翻译代码子文件进行处理。解析器可为独立存在的应用程序,也可以为运行在特定系统平台下的插件。比如解析器可以是Babel parser(一种JavaScript源代码解析器)。还可针对不同文件格式类型的待翻译代码子文件,预置不同的解析器。检测待翻译代码子文件的文件名后缀之后,可基于待翻译代码子文件的文件名后缀对应的文件格式类型,查找与待翻译代码子文件的文件格式类型对应的多个解析器集合,从解析器集合中查找与待翻译代码子文件的预设语言类型匹配的解析器。比如说,可分别针对后缀为“.js”(JavaScript,一种直译式脚本语言)和“.jsx”(JavaScript XML,一种在React组建内部构建标签的类XML语法)的待翻译代码子文件预置不同的解析器。针对属于不同类型的待翻译源代码子文件通过特定的解析器进行特定的解析处理,能够使得解析结果更加准确。
在一个实施例中,遍历每个初始文件名对应的初始代码子文件,筛选出待翻译代码子文件,包括:获取多种预设语言类型分别对应的正则表达式;遍历每个初始文件名对应的初始代码子文件,通过正则表达式与每个初始代码子文件进行匹配;根据匹配的正则表达式确定每个初始代码子文件匹配的预设语言类型;筛选出包含任意一种预设语言类型的初始代码子文件,作为待翻译代码子文件。
正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”可用来表达对字符串的一种过滤逻辑。每一种预设语言类型都有相应的一个或多个正则表达式,通过正则表达式可以知道待处理代码中是否有需要进行翻译处理的待翻译代码片段,从而避免对不包含待翻译片代码段的初始代码子文件进行解析,减少解析的工作量,提高解析效率。
在一个实施例中,待翻译分析结果集中还包含与待翻译代码片段对应的上下文代码片段,调用翻译器接口翻译待翻译代码片段,得到翻译后代码片段,包括:查找与待翻译代码片段匹配的代码处理器;通过代码处理器根据上下文代码片段,识别待翻译代码片段的目标语言类型以及翻译策略;通过代码处理器调用翻译器接口,得到基于翻译策略翻译的与待翻译代码片段对应的目标语言类型的翻译后代码片段。
代码处理器是指用于对待翻译代码片段进行语法识别、风险识别、翻译处理及状态标注等操作的处理器。可预先对不同编程语言类型的待翻译代码片段设置不同的代码处理器,从而使得代码处理器能够更有针对性地对待翻译代码片段进行准确的操作,以实现更为精准的代码片段翻译。代码处理器可结合上下文代码片段对待翻译代码片段的语法进行分析,从而识别待翻译代码片段所对应的翻译策略。针对不同的待翻译代码片段可预设不同的翻译策略。翻译策略包括是否进行替换操作、对应于不同语法的待翻译代码片段进行不同的翻译操作等。通过得到的上下文代码片段能够更准确地对待翻译代码片段进行语法分析。
在一个实施例中,查找与待翻译代码片段匹配的代码处理器,包括:识别待翻译代码片段的编程语言类型;查找与编程语言类型对应的代码处理器集合;将待翻译代码片段与代码处理器集合中的每个代码处理器对应的匹配条件进行匹配;将匹配的匹配条件对应的代码处理器,作为与待翻译代码片段匹配的代码处理器。
可对于每一种编程语言类型,预定义对应的代码处理器集合。编程语言类型包括但不限于JS(JavaScript)、JSX(JavaScript XML,一种在React组建内部构建标签的类XML语法)等,不限于此。每一个代码处理器都有自定义的匹配条件。匹配条件包括但不限于待翻译代码片段涉及字符串类型的条件、待翻译代码片段涉及业务逻辑的条件,以及待翻译代码片段涉及配置文件中配置项属性的条件,不限于此。根据匹配条件,可从代码处理器集合中查找到与翻译代码片段匹配的代码处理器。
在一个实施例中,获取针对待纠正源代码文件输入的目标翻译细节报表,包括:根据待翻译代码片段及对应的上下文代码片段、翻译后代码片段和片段定位信息生成初始翻译细节报表;获取基于初始翻译细节报表输入的纠正后代码片段;将每个待纠正代码片段和相应的纠正后代码片段作为目标纠正项目;根据多个目标纠正项目生成目标翻译细节报表。
初始翻译细节报表是指待翻译源代码文件经过自动化翻译处理得到的、记录了翻译细节的报表。翻译细节包括但不限于待翻译代码片段及对应的上下文代码片段、翻译后代码片段和片段定位信息等。开发人员可基于初始翻译细节报表中的翻译细节输入纠正后代码片段。待纠正代码片段是指待纠正源代码文件中翻译不正确从而需要进行纠正处理的代码片段。开发人员可将需要进行纠正处理的翻译后代码片段标记为待纠正代码片段。纠正后代码片段是指用于纠正待纠正代码片段的代码片段。开发人员无需打开待纠正源代码文件,仅需根据目标翻译细节报表,便可通过查阅上下文代码片段对翻译后代码片段进行人工核查,从而能够更准确地从翻译后代码片段中筛选出待纠正代码片段减少了开发人员的浏览查找代码的时间。
在一个实施例中,当目标纠正项目为多个时,则提取目标翻译细节报表中的每个目标纠正项目对应的待纠正代码片段和相应的纠正后代码片段;按照每个目标纠正项目对应的片段定位信息,在待纠正源代码文件中查找待纠正代码片段;将待纠正源代码文件中的待纠正代码片段替换为相应的纠正后代码片段;当检测到执行完对应于所有目标纠正项目的纠正处理时,则重写经过纠正处理后的待纠正源代码文件,得到纠正后源代码文件。
在一个实施例中,初始翻译细节报表中还可包含与每个翻译后代码片段对应的风险等级。风险等级包括但不限于低风险等级、潜在风险等级以及高风险等级等。当经过对上下文代码片段进行检查后发现,该段待翻译代码片段是某个字符串拼接的一部分,则说明这种情况下的自动翻译往往不正确,可将该待翻译代码片段标注为潜在风险等级。或当对翻译结果进行检查后发现翻译后代码片段中仍然包含原始语言类型的字符串,则说明翻译器系统没有进行准确翻译,可将该待翻译代码片段标注为潜在风险等级。当检测到翻译器接口调用失败导致翻译没有完成时,可将该待翻译代码片段标注为高风险等级。或当未查找到与待翻译代码片段匹配的代码处理器时,可将该待翻译代码片段标注为高风险等级。开发人员可重点针对风险等级高的翻译后代码片段进行核验,以快速确定待纠正代码片段,从而针对待纠正代码片段输入纠正后代码片段。
在一个实施例中,接收基于待纠正代码片段和对应的片段定位信息,输入的纠正后代码片段,包括:获取代码跳转指令;代码跳转指令对应于待纠正代码片段;基于代码跳转指令获取待纠正代码片段所属的待纠正代码文件;按照待纠正代码片段对应的片段定位信息,跳转展示待纠正源代码文件;检测作用于所展示的待纠正源代码文件的代码纠正操作;提取基于代码纠正操作得到的纠正后代码片段。
当开发人员无法通过初始翻译细节报表确定待纠正代码片段的纠正后代码片段时,比如当出现代码逻辑问题或字符串拼接问题时,开发人员可通过触发代码跳转指令,代码服务器可基于代码跳转指令按照片段定位信息打开展示待纠正源代码文件,并跳转至包含该不确定的待纠正代码片段的部分。代码服务器还可在待纠正源代码文件中标注出该部分待纠正代码片段,以使得开发人员可快速浏览待纠正代码片段的上下文片段,从而对待纠正源代码文件进行代码纠正操作。代码纠正操作可以是开发人员直接在待纠正源代码文件进行代码修改,则代码服务器可比对修改前后的待纠正源代码文件,提取出待纠正代码片段和纠正后代码片段。还可以是开发人员在待纠正源代码文件中选择需要修改的部分作为待纠正代码片段,从而开发人员可在目标翻译细节报表的对应位置输入纠正后代码片段。通过快速的代码跳转,节约了开发人员在待纠正源代码文件中查找待纠正代码片段的时间,从而提高了目标翻译细节报表的生成效率。
在一个实施例中,如图3所示,提供了另一种代码翻译方法,以该方法应用于图1中的代码服务器102为例进行说明,包括以下步骤:
步骤302,获取待翻译源代码文件。
步骤304,读取待翻译源代码文件中的源代码目录;待翻译源代码目录中包含多个初始文件名。
步骤306,遍历每个初始文件名对应的初始代码子文件,筛选出待翻译代码子文件;待翻译代码子文件与预设语言类型相匹配,待翻译代码子文件中包含翻译代码片段。
步骤308,查找与预设语言类型匹配的解析器。
步骤310,通过解析器对待翻译代码子文件进行解析处理,生成待翻译分析结果集;待翻译分析结果集中包含待翻译代码片段及对应的片段定位信息和上下文代码片段。
步骤312,查找与待翻译代码片段匹配的代码处理器。
步骤314,通过代码处理器根据上下文代码片段,识别待翻译代码片段的目标语言类型以及翻译策略。
步骤316,通过代码处理器调用翻译器接口,得到基于翻译策略翻译的与待翻译代码片段对应的目标语言类型的翻译后代码片段。
步骤318,按照翻译后代码片段对应的片段定位信息对待翻译源代码文件进行替换处理,生成待纠正源代码文件。
步骤320,根据待翻译代码片段及对应的上下文代码片段、翻译后代码片段和片段定位信息生成初始翻译细节报表。
步骤322,获取基于初始翻译细节报表输入的纠正后代码片段。
步骤324,将每个待纠正代码片段和相应的纠正后代码片段作为目标纠正项目。
步骤326,根据多个目标纠正项目生成目标翻译细节报表。
步骤302,按照目标纠正项目对应的片段定位信息对待纠正源代码文件进行纠正处理,生成纠正后源代码文件。
上述代码翻译方法中,代码服务器对待翻译源代码文件进行解析处理之后,可得到包含待翻译代码片段和对应的片段定位信息的待翻译分析结果集。代码服务器可调用翻译器接口将带翻译代码片段发送至翻译器对应的翻译服务器进行翻译,得到翻译后代码片段。接收到翻译后代码片段之后,可按照翻译后代码片段对应的片段定位信息对待翻译源代码文件进行替换处理,生成待纠正源代码文件,且能得到初始翻译细节报表。使得开发人员能基于初始翻译细节报表输入包含目标纠正项目的目标翻译细节报表,基于目标纠正项目对待纠正源代码文件进行纠正处理之后可生成纠正后源代码文件。通过对待翻译源代码文件进行自动化的解析、翻译及纠正,能够保证代码翻译的全面性、统一性和可靠性,从而提高代码翻译效率。
应该理解的是,虽然图2和3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2和3中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图3所示,提供了一种代码翻译装置400,包括:获取模块402,用于获取对待翻译源代码文件进行解析处理得到的待翻译分析结果集;待翻译分析结果集中包含待翻译代码片段及对应的片段定位信息;翻译模块404,用于调用翻译器接口翻译待翻译代码片段,得到翻译后代码片段;替换模块406,用于按照翻译后代码片段对应的片段定位信息对待翻译源代码文件进行替换处理,生成待纠正源代码文件;纠正模块408,用于获取针对待纠正源代码文件输入的目标翻译细节报表;目标翻译细节报表中包含目标纠正项目;按照目标纠正项目对应的片段定位信息对待纠正源代码文件进行纠正处理,生成纠正后源代码文件。
在一个实施例中,获取模块402还用于获取待翻译源代码文件;读取待翻译源代码文件中的源代码目录;待翻译源代码目录中包含多个初始文件名;遍历每个初始文件名对应的初始代码子文件,筛选出待翻译代码子文件;待翻译代码子文件与预设语言类型相匹配,待翻译代码子文件中包含翻译代码片段;查找与预设语言类型匹配的解析器;通过解析器对待翻译代码子文件进行解析处理,生成待翻译分析结果集。
在一个实施例中,获取模块402还用于获取多种预设语言类型分别对应的正则表达式;遍历每个初始文件名对应的初始代码子文件,通过正则表达式与每个初始代码子文件进行匹配;根据匹配的正则表达式确定每个初始代码子文件匹配的预设语言类型;筛选出包含任意一种预设语言类型的初始代码子文件,作为待翻译代码子文件。
在一个实施例中,待翻译分析结果集中还包含与待翻译代码片段对应的上下文代码片段,翻译模块404还用于查找与待翻译代码片段匹配的代码处理器;通过代码处理器根据上下文代码片段,识别待翻译代码片段的目标语言类型以及翻译策略;通过代码处理器调用翻译器接口,得到基于翻译策略翻译的与待翻译代码片段对应的目标语言类型的翻译后代码片段。
在一个实施例中,翻译模块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 (10)

1.一种代码翻译方法,所述方法包括:
获取对待翻译源代码文件进行解析处理得到的待翻译分析结果集;所述待翻译分析结果集中包含待翻译代码片段及对应的片段定位信息;
调用翻译器接口翻译所述待翻译代码片段,得到翻译后代码片段;
按照所述翻译后代码片段对应的片段定位信息对所述待翻译源代码文件进行替换处理,生成待纠正源代码文件;
获取针对所述待纠正源代码文件输入的目标翻译细节报表;所述目标翻译细节报表中包含目标纠正项目;
按照所述目标纠正项目对应的片段定位信息对所述待纠正源代码文件进行纠正处理,生成纠正后源代码文件。
2.根据权利要求1所述的方法,其特征在于,所述获取对待翻译源代码文件进行解析处理得到的待翻译分析结果集,包括:
获取待翻译源代码文件;
读取所述待翻译源代码文件中的源代码目录;所述待翻译源代码目录中包含多个初始文件名;
遍历每个所述初始文件名对应的初始代码子文件,筛选出待翻译代码子文件;所述待翻译代码子文件与预设语言类型相匹配,所述待翻译代码子文件中包含翻译代码片段;
查找与所述预设语言类型匹配的解析器;
通过所述解析器对所述待翻译代码子文件进行解析处理,生成待翻译分析结果集。
3.根据权利要求2所述的方法,其特征在于,所述遍历每个所述初始文件名对应的初始代码子文件,筛选出待翻译代码子文件,包括:
获取多种预设语言类型分别对应的正则表达式;
遍历每个所述初始文件名对应的初始代码子文件,通过所述正则表达式与每个初始代码子文件进行匹配;
根据匹配的正则表达式确定每个初始代码子文件匹配的预设语言类型;
筛选出包含任意一种预设语言类型的初始代码子文件,作为待翻译代码子文件。
4.根据权利要求1所述的方法,其特征在于,所述待翻译分析结果集中还包含与所述待翻译代码片段对应的上下文代码片段,所述调用翻译器接口翻译所述待翻译代码片段,得到翻译后代码片段,包括:
查找与所述待翻译代码片段匹配的代码处理器;
通过所述代码处理器根据所述上下文代码片段,识别待翻译代码片段的目标语言类型以及翻译策略;
通过所述代码处理器调用翻译器接口,得到基于所述翻译策略翻译的与待翻译代码片段对应的目标语言类型的翻译后代码片段。
5.根据权利要求4所述的方法,其特征在于,所述查找与所述待翻译代码片段匹配的代码处理器,包括:
识别所述待翻译代码片段的编程语言类型;
查找与所述编程语言类型对应的代码处理器集合;
将所述待翻译代码片段与代码处理器集合中的每个代码处理器对应的匹配条件进行匹配;
将匹配的匹配条件对应的代码处理器,作为与所述待翻译代码片段匹配的代码处理器。
6.根据权利要求4所述的方法,其特征在于,所述获取针对所述待纠正源代码文件输入的目标翻译细节报表,包括:
根据所述待翻译代码片段及对应的上下文代码片段、翻译后代码片段和片段定位信息生成初始翻译细节报表;
获取基于所述初始翻译细节报表输入的纠正后代码片段;
将每个所述待纠正代码片段和相应的纠正后代码片段作为目标纠正项目;
根据多个所述目标纠正项目生成目标翻译细节报表。
7.根据权利要求5所述的方法,其特征在于,所述接收基于所述待纠正代码片段和对应的片段定位信息,输入的纠正后代码片段,包括:
获取代码跳转指令;所述代码跳转指令对应于所述待纠正代码片段;
基于代码跳转指令获取所述待纠正代码片段所属的待纠正代码文件;
按照所述待纠正代码片段对应的片段定位信息,跳转展示所述待纠正源代码文件;
检测作用于所展示的待纠正源代码文件的代码纠正操作;
提取基于所述代码纠正操作得到的纠正后代码片段。
8.一种代码翻译装置,其特征在于,所述装置包括:
获取模块,用于获取对待翻译源代码文件进行解析处理得到的待翻译分析结果集;所述待翻译分析结果集中包含待翻译代码片段及对应的片段定位信息;
翻译模块,用于调用翻译器接口翻译所述待翻译代码片段,得到翻译后代码片段;
替换模块,用于按照所述翻译后代码片段对应的片段定位信息对所述待翻译源代码文件进行替换处理,生成待纠正源代码文件;
纠正模块,用于获取针对所述待纠正源代码文件输入的目标翻译细节报表;所述目标翻译细节报表中包含目标纠正项目;按照所述目标纠正项目对应的片段定位信息对所述待纠正源代码文件进行纠正处理,生成纠正后源代码文件。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
CN201910296123.7A 2019-04-12 2019-04-12 代码翻译方法、装置、计算机设备和存储介质 Pending CN110134404A (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201910296123.7A CN110134404A (zh) 2019-04-12 2019-04-12 代码翻译方法、装置、计算机设备和存储介质
SG11201907337XA SG11201907337XA (en) 2019-04-12 2019-06-19 Code translation method, apparatus, computer equipment and storage medium
PCT/CN2019/091851 WO2020206840A1 (zh) 2019-04-12 2019-06-19 代码翻译方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910296123.7A CN110134404A (zh) 2019-04-12 2019-04-12 代码翻译方法、装置、计算机设备和存储介质

Publications (1)

Publication Number Publication Date
CN110134404A true CN110134404A (zh) 2019-08-16

Family

ID=67569806

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910296123.7A Pending CN110134404A (zh) 2019-04-12 2019-04-12 代码翻译方法、装置、计算机设备和存储介质

Country Status (3)

Country Link
CN (1) CN110134404A (zh)
SG (1) SG11201907337XA (zh)
WO (1) WO2020206840A1 (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110704042A (zh) * 2019-10-15 2020-01-17 恩亿科(北京)数据科技有限公司 程序代码处理方法和装置、服务器及存储介质
CN110853676A (zh) * 2019-11-18 2020-02-28 广州国音智能科技有限公司 一种音频比对方法、装置及设备
CN111160045A (zh) * 2019-12-27 2020-05-15 苏州亿歌网络科技有限公司 一种游戏资源文件翻译方法、装置及设备
CN111563389A (zh) * 2020-04-20 2020-08-21 富途网络科技(深圳)有限公司 一种用户原创内容的翻译方法和装置
CN112015430A (zh) * 2020-09-07 2020-12-01 平安国际智慧城市科技股份有限公司 JavaScript代码翻译方法、装置、计算机设备及存储介质
CN113342436A (zh) * 2021-06-10 2021-09-03 网易(杭州)网络有限公司 一种游戏翻译方法和装置
CN113342437A (zh) * 2021-06-10 2021-09-03 网易(杭州)网络有限公司 一种软件翻译方法和装置
CN113420569A (zh) * 2021-06-22 2021-09-21 康键信息技术(深圳)有限公司 代码翻译方法、装置、设备及存储介质
CN113687883A (zh) * 2020-05-18 2021-11-23 阿里巴巴集团控股有限公司 数据展示方法、装置、电子设备及计算机可读存储介质
CN119759480A (zh) * 2025-03-05 2025-04-04 深圳中维世纪科技有限公司 面向嵌入式系统的多语言支持框架及其实现方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130081004A1 (en) * 2002-11-20 2013-03-28 Byron D. Vargas System for Translating Diverse Programming Languages
CN103365838A (zh) * 2013-07-24 2013-10-23 桂林电子科技大学 基于多元特征的英语作文语法错误自动纠正方法
CN105242932A (zh) * 2015-10-21 2016-01-13 宁波三星医疗电气股份有限公司 一种基于delphi工具开发的软件的自动翻译方法
CN106919434A (zh) * 2017-03-22 2017-07-04 恒生电子股份有限公司 一种代码生成方法及装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090125295A1 (en) * 2007-11-09 2009-05-14 William Drewes Voice auto-translation of multi-lingual telephone calls
CN102073490B (zh) * 2009-11-25 2013-09-11 阿里巴巴集团控股有限公司 转译数据库语言的方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130081004A1 (en) * 2002-11-20 2013-03-28 Byron D. Vargas System for Translating Diverse Programming Languages
CN103365838A (zh) * 2013-07-24 2013-10-23 桂林电子科技大学 基于多元特征的英语作文语法错误自动纠正方法
CN105242932A (zh) * 2015-10-21 2016-01-13 宁波三星医疗电气股份有限公司 一种基于delphi工具开发的软件的自动翻译方法
CN106919434A (zh) * 2017-03-22 2017-07-04 恒生电子股份有限公司 一种代码生成方法及装置

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110704042A (zh) * 2019-10-15 2020-01-17 恩亿科(北京)数据科技有限公司 程序代码处理方法和装置、服务器及存储介质
CN110853676A (zh) * 2019-11-18 2020-02-28 广州国音智能科技有限公司 一种音频比对方法、装置及设备
CN111160045A (zh) * 2019-12-27 2020-05-15 苏州亿歌网络科技有限公司 一种游戏资源文件翻译方法、装置及设备
CN111563389A (zh) * 2020-04-20 2020-08-21 富途网络科技(深圳)有限公司 一种用户原创内容的翻译方法和装置
CN111563389B (zh) * 2020-04-20 2023-11-03 富途网络科技(深圳)有限公司 一种用户原创内容的翻译方法和装置
CN113687883A (zh) * 2020-05-18 2021-11-23 阿里巴巴集团控股有限公司 数据展示方法、装置、电子设备及计算机可读存储介质
CN112015430A (zh) * 2020-09-07 2020-12-01 平安国际智慧城市科技股份有限公司 JavaScript代码翻译方法、装置、计算机设备及存储介质
CN112015430B (zh) * 2020-09-07 2024-08-16 平安国际智慧城市科技股份有限公司 JavaScript代码翻译方法、装置、计算机设备及存储介质
CN113342437A (zh) * 2021-06-10 2021-09-03 网易(杭州)网络有限公司 一种软件翻译方法和装置
CN113342436B (zh) * 2021-06-10 2023-03-17 网易(杭州)网络有限公司 一种游戏翻译方法和装置
CN113342436A (zh) * 2021-06-10 2021-09-03 网易(杭州)网络有限公司 一种游戏翻译方法和装置
CN113420569A (zh) * 2021-06-22 2021-09-21 康键信息技术(深圳)有限公司 代码翻译方法、装置、设备及存储介质
CN119759480A (zh) * 2025-03-05 2025-04-04 深圳中维世纪科技有限公司 面向嵌入式系统的多语言支持框架及其实现方法

Also Published As

Publication number Publication date
SG11201907337XA (en) 2020-11-27
WO2020206840A1 (zh) 2020-10-15

Similar Documents

Publication Publication Date Title
CN110134404A (zh) 代码翻译方法、装置、计算机设备和存储介质
CN108932122B (zh) 接口文档生成方法、装置、计算机设备和存储介质
US10824404B2 (en) Methods and systems for uploading a program based on a target network platform
US9710243B2 (en) Parser that uses a reflection technique to build a program semantic tree
WO2020206837A1 (zh) 代码片段定位方法、装置、计算机设备和存储介质
US20160357519A1 (en) Natural Language Engine for Coding and Debugging
WO2020206838A1 (zh) 代码片段翻译方法、装置、计算机设备和存储介质
CN111367595B (zh) 数据处理方法、程序运行方法、装置及处理设备
US9304893B1 (en) Integrated software development and test case management system
CN112988595A (zh) 动态同步测试方法、装置、设备及存储介质
US20130125098A1 (en) Transformation of Computer Programs
CN108984612B (zh) 目标sql语句的获取方法、装置、计算机设备及存储介质
CN113778852A (zh) 一种基于正则表达式的代码分析方法
CN115640316A (zh) 数据查询的分页方法、拦截器、插件及服务器
CN113760291A (zh) 日志输出的方法和装置
CN113836451A (zh) 网页访问方法、装置、计算机设备和存储介质
CN114816364A (zh) 基于Swagger动态生成范本文件的方法、装置及应用
US9747085B2 (en) Source code generation from prototype source
CN110806896A (zh) 基于maven插件实现软件开发中国际化信息提取方法
CN113110952B (zh) 获取应用程序中的sdk异常信息的方法和装置
CN106033338A (zh) 基于fog数据的源代码导入及解析的方法和装置
JP2014519671A5 (zh)
CN114816437A (zh) 一种逆向生成Java实体类的方法、系统和设备
Anderson et al. Supporting analysis of SQL queries in PHP AiR
WO2020206839A1 (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
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20190816