一种代码翻译方法及装置制造方法及图纸

技术编号:38054088 阅读:13 留言:0更新日期:2023-06-30 11:19
本申请公开了一种代码翻译方法及装置,涉及代码翻译技术领域,主要目的在于提高代码翻译效率;主要技术方案包括:确定应用程序源代码中的待翻译字符串对应的位置信息和译文,其中,所述位置信息用于描述对应的待翻译字符串在所述源代码中的起止位置;在确定需要对所述源代码进行翻译时,基于所述源代码中的待翻译字符串对应的位置信息,将待翻译字符串替换为对应的译文。对应的译文。对应的译文。

【技术实现步骤摘要】
一种代码翻译方法及装置


[0001]本申请涉及代码翻译
,特别是涉及一种代码翻译方法及装置。

技术介绍

[0002]随着国际化的不断发展,应用程序会服务不同语言的用户,因此为了使应用程序满足不同用户的不同语言需求,需要对应用程序的源代码进行国际化翻译。
[0003]目前,现有的代码翻译方法通常为:采用预设的正则表达式从应用程序的源代码中查询到待翻译字符串,然后将待翻译字符串从源代码的原始语言替换为用户所需语言的译文。此种方式,由于每查询到一个待翻译字符串便执行一次相应的字符串替换操作,字符串的多次替换操作导致代码翻译的时间消耗和对执行代码翻译操作的设备内存的占用都很高,从而导致代码翻译效率低下。

技术实现思路

[0004]有鉴于此,本申请提出了一种代码翻译方法及装置,主要目的在于提高代码翻译效率。
[0005]为了达到上述目的,本申请主要提供了如下技术方案:
[0006]第一方面,本申请提供了一种代码翻译方法,该代码翻译方法包括:
[0007]确定应用程序源代码中的待翻译字符串对应的位置信息和译文,其中,所述位置信息用于描述对应的待翻译字符串在所述源代码中的起止位置;
[0008]在确定需要对所述源代码进行翻译时,基于所述源代码中的待翻译字符串对应的位置信息,将待翻译字符串替换为对应的译文。
[0009]在一些实施例中,确定应用程序源代码中的待翻译字符串对应的位置信息,包括:获取目标格式的源代码;其中,所述目标格式的源代码中的目标代码文本的每一个字符均存在对应的位置标号,且所述位置标号用于表示字符在对应的目标代码文本中的位置;将待翻译字符串所在的目标代码文本的文本标识、待翻译字符串的起始字符对应的起始位置标号和结束字符对应的结束位置标号,确定为待翻译字符串对应的位置信息。
[0010]在一些实施例中,确定需要对所述源代码进行翻译,包括:若检测到所述应用程序在使用目标语言的语言环境下开始运行,则确定需要对所述源代码进行翻译。
[0011]在一些实施例中,基于所述源代码中的待翻译字符串对应的位置信息,将待翻译字符串替换为对应的译文,包括:若基于文本标识确定待翻译字符串所在的目标代码文本进行代码输出,且确定所述目标代码文本中位置标号位于待翻译字符串的起始位置标号前一位的字符已输出完成,则输出待翻译字符串对应的且与所述目标语言匹配的译文;若确定待翻译字符串对应的译文输出完成,则输出所述目标代码文本中位置标号位于待翻译字符串的结束位置标号之后的字符。
[0012]在一些实施例中,确定需要对所述源代码进行翻译,包括:若获取到将所述源代码翻译为目标语言的翻译指令,则确定需要对所述源代码进行翻译。
[0013]在一些实施例中,基于所述源代码中的待翻译字符串对应的位置信息,将待翻译字符串替换为对应的译文,包括:基于待翻译字符串所在目标代码文本的文本标识、待翻译字符串的起始字符对应的起始位置标号和结束字符对应的结束位置标号,在所述源代码中定位待翻译字符串,并将定位出的待翻译字符串替换为对应的且与所述目标语言匹配的译文。
[0014]在一些实施例中,该代码翻译方法还包括:确定预设起始字符和预设结束字符;其中,所述预设起始字符和所述预设结束字符为所述应用程序运行时需要显示的字符串所具有的字符;选取所述源代码中包括所述预设起始字符和所述预设结束字符的目标代码文本,并基于所述预设起始字符和所述预设结束字符在所选取的目标代码文本中的位置,确定所选取的目标代码文件中包括的待翻译字符串。
[0015]在一些实施例中,确定应用程序源代码中的待翻译字符串对应的译文,包括:确定至少一个翻译库;其中,不同的翻译库用于将待翻译字符串翻译为不同语言的译文;从所述至少一个翻译库提取所述应用程序源代码中的待翻译字符串对应的译文。
[0016]在一些实施例中,从所述至少一个翻译库提取所述应用程序源代码中的待翻译字符串对应的译文,包括:对于包括有预设字符的待翻译字符串,从所述待翻译字符串提取除所述预设字符之外的字符串,基于所提取的字符串从所述至少一个翻译库提取所述待翻译字符串对应的译文。
[0017]第二方面,本申请提供了一种代码翻译装置,该代码翻译装置包括:
[0018]确定模块,用于确定应用程序源代码中的待翻译字符串对应的位置信息和译文,其中,所述位置信息用于描述对应的待翻译字符串在所述源代码中的起止位置;
[0019]翻译模块,用于在确定需要对所述源代码进行翻译时,基于所述源代码中的待翻译字符串对应的位置信息,将待翻译字符串替换为对应的译文。第三方面,本申请提供了一种计算机可读存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行第一方面的代码翻译方法。
[0020]第四方面,本申请提供了一种电子设备,所述电子设备包括:存储器,用于存储程序;处理器,耦合至所述存储器,用于运行所述程序以执行第一方面的代码翻译方法。
[0021]本申请提供的代码翻译方法及装置,在对应用程序进行国际化翻译时,首先确定应用程序源代码中的待翻译字符串对应的位置信息和译文,这里的位置信息用于描述对应的待翻译字符串在源代码中的起止位置。在确定需要对源代码进行翻译时,基于所述源代码中的待翻译字符串对应的位置信息,将待翻译字符串替换为对应的译文。可见,本申请提供的方案为了实现对应用程序源代码中的待翻译字符串进行统一翻译,在代码翻译之前提前确定了应用程序源代码中的待翻译字符串对应的位置信息和译文。在确定需要对源代码进行翻译时,才通过待翻译字符串对应的位置信息和译文,对应用程序源代码中的待翻译字符串统一进行翻译。这样,能够避免了多次访问执行代码翻译操作的设备内存,因此能够减少代码翻译对内存的开销和代码翻译的时间消耗,从而能够提高代码翻译的效率。
[0022]上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。
附图说明
[0023]为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0024]图1示出了本申请一个实施例提供的一种代码翻译方法的流程图;
[0025]图2示出了本申请一个实施例提供的一种字符数组的示意图;
[0026]图3示出了本申请一个实施例提供的一种待翻译字符串的替换情况示意图;
[0027]图4示出了本申请一个实施例提供的一种代码翻译装置的结构示意图;
[0028]图5示出了本申请另一个实施例提供的一种代码翻译装置的结构示意图。
具体实施方式
[0029]下面将参照附图更加详细地描述本公开的示例性实施例。本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种代码翻译方法,其特征在于,所述方法包括:确定应用程序源代码中的待翻译字符串对应的位置信息和译文,其中,所述位置信息用于描述对应的待翻译字符串在所述源代码中的起止位置;在确定需要对所述源代码进行翻译时,基于所述源代码中的待翻译字符串对应的位置信息,将待翻译字符串替换为对应的译文。2.根据权利要求1所述的方法,其特征在于,确定应用程序源代码中的待翻译字符串对应的位置信息,包括:获取目标格式的源代码;其中,所述目标格式的源代码中的目标代码文本的每一个字符均存在对应的位置标号,且所述位置标号用于表示字符在对应的目标代码文本中的位置;将待翻译字符串所在的目标代码文本的文本标识、待翻译字符串的起始字符对应的起始位置标号和结束字符对应的结束位置标号,确定为待翻译字符串对应的位置信息。3.根据权利要求2所述的方法,其特征在于,确定需要对所述源代码进行翻译,包括:若检测到所述应用程序在使用目标语言的语言环境下开始运行,则确定需要对所述源代码进行翻译。4.根据权利要求3所述的方法,其特征在于,基于所述源代码中的待翻译字符串对应的位置信息,将待翻译字符串替换为对应的译文,包括:若基于文本标识确定待翻译字符串所在的目标代码文本进行代码输出,且确定所述目标代码文本中位置标号位于待翻译字符串的起始位置标号前一位的字符已输出完成,则输出待翻译字符串对应的且与所述目标语言匹配的译文;若确定待翻译字符串对应的译文输出完成,则输出所述目标代码文本中位置标号位于待翻译字符串的结束位置标号之后的字符。5.根据权利要求2所述的方法,其特征在于,确定需要对所述源代码进行翻译,包括:若获取到将所述源代码翻译为目标语言的翻译指令,则确定需要对所述源代码进行翻译。6.根据权利要求5所述的方法,其特征在于,基于所述源代码中的待翻译字符串对应的位置信息,将待翻译字符串替换为对应的译文,包括:基于待翻译字符串所在目标代码文本的文本标识、待翻译字符串的起始字符对应的起始位置标号和结束字符对应的结束位置标号,在所述源代码中定位待翻译字符串...

【专利技术属性】
技术研发人员:张孝龙
申请(专利权)人:奇安信科技集团股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1