代码字符串翻译方法、装置、设备、存储介质及产品与流程

摘要: 本技术涉及数据处理,尤其涉及代码字符串翻译方法、装置、设备、存储介质及产品。背景技术:1、在全球化背景下,多语言的软件开发有助于提升产品的国际竞争力和用户体验,...
代码字符串翻译方法、装置、设备、存储介质及产品与流程

本技术涉及数据处理,尤其涉及代码字符串翻译方法、装置、设备、存储介质及产品。

背景技术:

1、在全球化背景下,多语言的软件开发有助于提升产品的国际竞争力和用户体验,尤其是针对golang这一现代且高效的编程语言来说,该golang在构建高性能、高并发的web服务和后端系统方面有着广泛的应用。然而,在开发过程中,开发者可能会为了方便调试和记录,会在源代码文件中使用所在国的代码字符串,而在国际化部署时,这些代码字符串就会存在技术障碍,无法编译,导致整个代码无法正常运行,基于此,目前,用于翻译代码字符串代码的常用方式是开发者额外手动编译多语言翻译代码,但是在编写过程中需要在源代码中添加特定标记或注释,这样不仅耗时费力,还容易出现或多或少的错误。因此,上述方式翻译代码字符串的准确性和效率较低。

2、上述内容仅用于辅助理解本技术的技术方案,并不代表承认上述内容是现有技术。

技术实现思路

1、本技术的主要目的在于提供一种代码字符串翻译方法、装置、设备、存储介质及产品,旨在解决现有技术翻译代码字符串的准确性和效率的技术问题。

2、为实现上述目的,本技术提出一种代码字符串翻译方法,所述方法包括:

3、响应于在软件开发页面中触发的字符串翻译指令,根据所述字符串翻译指令确定当前编程语言的源代码文件和目标语言;

4、根据所述源代码文件生成目标抽象语法树,并根据所述目标抽象语法树确定当前语言的待翻译字符串;

5、对所述待翻译字符串进行翻译,得到所述目标语言的字符串。

6、在一实施例中,所述根据所述字符串翻译指令确定当前编程语言的源代码文件和目标语言的步骤,包括:

7、对所述字符串翻译指令进行结构解析,得到指令头信息;

8、根据所述指令头信息确定当前编程语言类型;

9、根据所述当前编程语言类型从源代码文件集合中遍历当前编程语言的源代码文件;

10、根据所述指令头信息确定目标语言。

11、在一实施例中,所述根据所述指令头信息确定目标语言的步骤,包括:

12、根据所述指令头信息确定源代码文件应用目标;

13、通过调用语言规则接口获取所述源代码文件应用目标所使用的编程语言规则;

14、根据所述编程语言规则确定目标语言。

15、在一实施例中,所述根据所述源代码文件生成目标抽象语法树的步骤,包括:

16、根据当前编程语言确定目标语法解析器;

17、基于所述目标语法解析器对所述源代码文件进行语法解析;

18、根据语法解析结果确定源代码关键特征点和源代码参数逻辑关系;

19、基于抽象语法结构,根据所述源代码关键特征点和所述源代码参数逻辑关系生成目标抽象语法树。

20、在一实施例中,所述根据所述目标抽象语法树确定当前语言的待翻译字符串的步骤,包括:

21、对所述目标抽象语法树进行节点遍历,得到各语法树节点;

22、获取与所述各语法树节点关联的源代码,并确定所述源代码的执行逻辑;

23、计算所述执行逻辑与代码字符串翻译逻辑的关联程度特征值,并将所述关联程度特征值大于或等于预设阈值的源代码从与所述各语法树节点关联的源代码中剔除;

24、根据剔除后的源代码确定当前语言的待翻译字符串。

25、在一实施例中,所述根据剔除后的源代码确定当前语言的待翻译字符串的步骤,包括:

26、对剔除后的源代码进行字符串识别;

27、对各代码字符串进行语言识别,得到各语言的代码字符串;

28、根据目标语言对所述各语言的代码字符串进行筛选,得到当前语言的待翻译字符串。

29、在一实施例中,所述对所述待翻译字符串进行翻译,得到所述目标语言的字符串的步骤,包括:

30、在当前编程语言的源代码文件的配置信息中设置工具执行代理参数;

31、在检测到与外部多语言翻译工具建立连接后,根据所述当前语言和所述目标语言对所述外部多语言翻译工具进行参数配置;

32、通过设置工具执行代理参数的配置信息调用配置后的外部多语言翻译工具对所述待翻译字符串进行翻译,得到所述目标语言的字符串。

33、在一实施例中,所述通过设置工具执行代理参数的配置信息调用配置后的外部多语言翻译工具对所述待翻译字符串进行翻译,得到所述目标语言的字符串的步骤,包括:

34、通过设置工具执行代理参数的配置信息对内部翻译工具进行锁止;

35、获取所述外部多语言翻译工具的参数输入接口;

36、基于所述参数输入接口将所述待翻译字符串输入至所述配置后的外部多语言翻译工具,并获取所述配置后的外部多语言翻译工具输出的目标语言的字符串。

37、在一实施例中,所述对所述待翻译字符串进行翻译,得到所述目标语言的字符串的步骤之后,还包括:

38、获取所述待翻译字符串在所述源代码文件中的当前索引;

39、根据所述当前索引和所述目标语言的字符串对所述待翻译字符串进行替换,得到目标源代码文件;

40、对所述目标源代码文件进行编译,得到目标语言的部署二进制;

41、在所述目标语言的部署二进制的运行结果满足预设要求时,根据源代码文件应用目标对所述目标源代码文件进行应用。

42、在一实施例中,所述根据所述当前索引和所述目标语言的字符串对所述待翻译字符串进行替换,得到目标源代码文件的步骤,包括:

43、根据所述当前索引和所述目标语言的字符串对所述待翻译字符串进行替换,得到当前源代码文件;

44、根据当前编程语言确定目标静态分析设备;

45、对所述当前源代码文件进行格式化,并基于所述目标静态分析设备对格式化后的当前源代码文件进行有效性检测;

46、根据有效性检测结果得到目标源代码文件。

47、在一实施例中,所述在所述目标语言的部署二进制的运行结果满足预设要求时,根据源代码文件应用目标对所述目标源代码文件进行应用的步骤,包括:

48、对所述目标语言的部署二进制进行运行;

49、在所述目标语言的部署二进制的运行结果满足预设要求时,根据所述源代码文件应用目标确定目标源代码文件的应用环境;

50、根据所述应用环境配置环境参数,并根据配置的环境参数和所述源代码文件应用目标对所述目标源代码文件进行应用。

51、此外,为实现上述目的,本技术还提出一种代码字符串翻译装置,所述代码字符串翻译装置包括:

52、确定模块,用于响应于在软件开发页面中触发的字符串翻译指令,根据所述字符串翻译指令确定当前编程语言的源代码文件和目标语言;

53、生成模块,用于根据所述源代码文件生成目标抽象语法树,并根据所述目标抽象语法树确定当前语言的待翻译字符串;

54、翻译模块,用于对所述待翻译字符串进行翻译,得到所述目标语言的字符串。

55、在一实施例中,所述确定模块,还用于对所述字符串翻译指令进行结构解析,得到指令头信息;根据所述指令头信息确定当前编程语言类型;根据所述当前编程语言类型从源代码文件集合中遍历当前编程语言的源代码文件;根据所述指令头信息确定目标语言。

56、在一实施例中,所述确定模块,还用于根据所述指令头信息确定源代码文件应用目标;通过调用语言规则接口获取所述源代码文件应用目标所使用的编程语言规则;根据所述编程语言规则确定目标语言。

57、在一实施例中,所述生成模块,还用于对所述目标抽象语法树进行节点遍历,得到各语法树节点;获取与所述各语法树节点关联的源代码,并确定所述源代码的执行逻辑;计算所述执行逻辑与代码字符串翻译逻辑的关联程度特征值,并将所述关联程度特征值大于或等于预设阈值的源代码从与所述各语法树节点关联的源代码中剔除;根据剔除后的源代码确定当前语言的待翻译字符串

58、在一实施例中,所述生成模块,还用于对剔除后的源代码进行字符串识别;对各代码字符串进行语言识别,得到各语言的代码字符串;根据目标语言对所述各语言的代码字符串进行筛选,得到当前语言的待翻译字符串。

59、在一实施例中,所述翻译模块,还用于在当前编程语言的源代码文件的配置信息中设置工具执行代理参数;在检测到与外部多语言翻译工具建立连接后,根据所述当前语言和所述目标语言对所述外部多语言翻译工具进行参数配置;通过设置工具执行代理参数的配置信息调用配置后的外部多语言翻译工具对所述待翻译字符串进行翻译,得到所述目标语言的字符串。

60、此外,为实现上述目的,本技术还提出一种代码字符串翻译设备,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序配置为实现如上文所述的代码字符串翻译方法的步骤。

61、此外,为实现上述目的,本技术还提出一种存储介质,所述存储介质为计算机可读存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上文所述的代码字符串翻译方法的步骤。

62、此外,为实现上述目的,本技术还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现如上文所述的代码字符串翻译方法的步骤。

63、本技术提出的一个或多个技术方案,至少具有以下技术效果:通过响应于在软件开发页面中触发的字符串翻译指令,根据所述字符串翻译指令确定当前编程语言的源代码文件和目标语言;根据所述源代码文件生成目标抽象语法树,并根据所述目标抽象语法树确定当前语言的待翻译字符串;对所述待翻译字符串进行翻译,得到所述目标语言的字符串。通过上述方式,在根据字当前编程语言的源代码文件生成目标抽象语法树后,通过遍历目标抽象语法树的节点确定源代码文件符合翻译规则的字符串,即当前语言的待翻译字符串,然后根据字符串翻译指令确定的目标语言对待翻译字符串进行翻译,从而能够有效提高翻译代码字符串的准确性和效率,以及适用于各种翻译场景。