应用程序的语言转换方法、装置、计算机设备和存储介质制造方法及图纸

技术编号:31561866 阅读:15 留言:0更新日期:2021-12-25 10:43
一种应用程序的语言转换方法,包括:获取应用程序的源码,对源码进行编译获得编译文件;识别编译文件中的待翻译字符串;待翻译字符串包括应用程序运行时需显示的字符串;获取待翻译字符串被翻译为目标语言的翻译后字符串;将翻译后字符串内置进应用程序的源码,以及在应用程序的源码中注入的用于转换显示语言的目标代码,获得更新后应用程序代码;重新编译更新后应用程序代码,获得应用程序的更新后编译文件。通过上述方法获得的应用程序在启动时终端将会根据应用程序代码中的目标代码将与显示相关的操作指令指向的显示文件修改为当前语言环境下的目标语言显示文件,包括各翻译后字符串,对于已有的不支持某种特定语言的应用程序,改造成本低。改造成本低。改造成本低。

【技术实现步骤摘要】
应用程序的语言转换方法、装置、计算机设备和存储介质


[0001]本申请涉及计算机
,特别是涉及一种应用程序的语言转换方法、装置、计算机设备和存储介质。

技术介绍

[0002]应用程序面向多种语言的用户时,同一款应用程序需要开发多种不同语言,以供不同语言的用户使用。
[0003]应用程序开发时,对于要展示给用户的文案信息,开发者要先定义一个key值,并提取到单独的字符串文件中,并根据支持的语言分目录存放,最后在调用系统API渲染时,先根据当前语言环境,用这个key取到对应的值之后再进行渲染。而支持多种语言的应用程序需开发者在开发阶段对该应用程序定义多个key值。因此若应用程序已被开发为仅支持某特定语言,需要将该应用程序改造成为支持其它语言时需重新编码获得新的应用程序,改造成本大。

技术实现思路

[0004]基于此,有必要针对上述将仅支持某特定语言的应用程序改造成为支持其它语言时,改造成本大的技术问题,提供一种应用程序的语言转换方法、装置、计算机设备和存储介质。
[0005]一种应用程序的语言转换方法,所述方法包括:
[0006]获取所述应用程序的源码,对所述源码进行编译获得编译文件;
[0007]识别所述编译文件中的待翻译字符串;所述待翻译字符串包括所述应用程序运行时需显示的字符串;
[0008]获取所述待翻译字符串被翻译为目标语言的翻译后字符串;
[0009]将所述翻译后字符串内置进所述应用程序的源码,以及在所述应用程序的源码中注入的用于转换显示语言的目标代码,获得更新后应用程序代码;
[0010]重新编译所述更新后应用程序代码,获得所述应用程序的更新后编译文件。
[0011]在一个实施例中,所述预设字符串列表的确定过程包括步骤:
[0012]获取测试应用程序的测试源码;所述测试源码不包含应用程序的待显示字符串;
[0013]根据所述测试源码获得对应的测试编译文件;
[0014]读取所述测试编译文件中的字符串,根据所述测试编译文件中的字符串生成所述预设字符串列表。
[0015]在一个实施例中,所述对所述不属于所述预设字符串列表的字符串执行冗余数据处理,获得所述待翻译字符串,包括:
[0016]获取预设特定字符串,所述预设特定字符串包括所述应用程序的待显示字符串中无需翻译的字符串;
[0017]将所述不属于所述预设字符串列表的字符串中不属于所述预设特定字符串,确定
为所述待翻译字符串。
[0018]一种应用程序的语言转换方法,所述方法包括:
[0019]接收应用程序启动指令,启动所述应用程序启动指令对应的应用程序;所述应用程序的代码中包含注入的用于转换显示语言的目标代码;
[0020]基于所述目标代码,将与显示关联的操作指令指向的初始语言显示文件修改为指向目标语言显示文件;其中,所述目标语言显示文件包括:所述应用程序的待翻译字符串经过翻译获得的翻译后字符串,所述待翻译字符串为从所述应用程序的源码对应的编译文件中识别得到;
[0021]在接收到与显示关联的操作指令时,在所述目标语言显示文件中查找所述与显示关联的操作指令对应的目标文字,显示所述目标文字。
[0022]一种应用程序的语言转换装置,所述装置包括:
[0023]第一编译模块,用于获取所述应用程序的源码,对所述源码进行编译获得编译文件;
[0024]识别模块,用于识别所述编译文件中的待翻译字符串;
[0025]字符串获取模块,用于获取所述待翻译字符串被翻译为目标语言的翻译后字符串;
[0026]代码更新模块,用于将所述翻译后字符串内置进所述应用程序的源码,以及在所述应用程序的源码中注入的用于转换显示语言的目标代码,获得更新后应用程序代码;
[0027]第二编译模块,用于重新编译所述更新后应用程序代码,获得所述应用程序的更新后编译文件。
[0028]一种应用程序的语言转换装置,所述装置包括:
[0029]启动指令接收模块,用于接收应用程序启动指令,启动应用程序启动指令对应的应用程序;应用程序的代码中包含注入的用于转换显示语言的目标代码;
[0030]指向修改模块,用于基于所述目标代码,将与显示关联的操作指令指向的初始语言显示文件修改为指向目标语言显示文件;其中,目标语言显示文件包括:应用程序的待翻译字符串经过翻译获得的翻译后字符串,待翻译字符串为从应用程序的源码对应的编译文件中识别得到;
[0031]显示模块,用于在接收到与显示关联的操作指令时,在目标语言显示文件中查找与显示关联的操作指令对应的目标文字,显示目标文字。
[0032]一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述应用程序的语言转换方法或者应用程序的语言转换方法的步骤。
[0033]一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述应用程序的语言转换方法或者应用程序的语言转换方法的步骤。
[0034]上述应用程序的语言转换方法、装置、计算机设备和存储介质,获取应用程序的源码,对源码进行编译获得编译文件,从编译文件中识别出应用程序运行时需要显示的待翻译字符串,进一步地获取待翻译字符串被翻译为目标语言的翻译后字符串,然后将翻译后字符串内置到应用程序的源码,以及在所述应用程序的源码中注入的用于转换显示语言的目标代码,获得更新后应用程序代码,对更新后应用程序代码进行重新编译,获得应用程序
的更新后编译文件。上述方法由于在应用程序中预先注入了用于转换显示语言的目标代码而后经过编译,且从源码的编译文件中识别到需显示的待翻译字符串,并将对应的翻译后字符串内置到应用程序的源码,获得的应用程序代码重新编译后得到应用程序,用户安装该应用程序并启动时,将会根据目标代码将显示相关的操作指令指向的显示文件修改为当前语言环境下的目标语言显示文件,包括各翻译后字符串;对于已有的不支持某种特定语言的应用程序,改造成本低。
附图说明
[0035]图1为一个实施例中应用程序的语言转换方法的流程示意图;
[0036]图2为一个实施例中识别编译文件中的待翻译字符串的流程示意图;
[0037]图3为一个具体实施例中mach-o文件中ustring的TEXT Segment的示意图;
[0038]图4为一个具体实施例中mach-o文件中cstring的TEXT Segment的示意图;
[0039]图5为一个实施例中预设字符串列表的确定过程的流程示意图;
[0040]图6为一个实施例中应用程序的语言转换方法的流程示意图;
[0041]图7为一个具体实施例中应用程序的语言转换方法的流程示意图;
[0042]图8为一个具体实施例中扫描mach-o文件得到待翻译字符串的流程示意图
[0043]图9为另一个具体实施例中应用程序的语言转换方法本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种应用程序的语言转换方法,其特征在于,所述方法包括:获取所述应用程序的源码,对所述源码进行编译获得编译文件;识别所述编译文件中的待翻译字符串;所述待翻译字符串包括所述应用程序运行时需显示的字符串;获取所述待翻译字符串被翻译为目标语言的翻译后字符串;将所述翻译后字符串内置进所述应用程序的源码,以及在所述应用程序的源码中注入用于转换显示语言的目标代码,获得更新后应用程序代码;重新编译所述更新后应用程序代码,获得所述应用程序的更新后编译文件。2.根据权利要求1所述的应用程序的语言转换方法,其特征在于,在所述识别所述编译文件中的待翻译字符串之后,还包括:将所述待翻译字符串按照预设格式进行转换,获得所述待翻译字符串对应的待翻译文本;所述获取所述待翻译字符串被翻译为目标语言的翻译后字符串,包括:获取所述待翻译文本被翻译为目标语言的翻译后字符串。3.根据权利要求1所述的应用程序的语言转换方法,其特征在于,所述对所述源码进行编译获得编译文件,包括:接收编译指令,根据所述编译指令将所述源码编译为mach-o文件,所述编译文件包括所述mach-o文件。4.根据权利要求3所述的应用程序的语言转换方法,其特征在于,所述识别所述编译文件中的待翻译字符串,包括:读取所述mach-o文件中的字符串集;获取预设字符串列表,所述预设字符串列表中不包含应用程序的待显示字符串;将所述编译文件中的字符串与所述预设字符串列表进行对比,将不属于所述预设字符串列表的字符串确定为所述编译文件中的待翻译字符串。5.根据权利要求4所述的应用程序的语言转换方法,其特征在于,在将所述编译文件中的字符串与所述预设字符串列表对比之后,还包括:对所述不属于所述预设字符串列表的字符串执行冗余数据处理,获得所述待翻译字符串。6.根据权利要求4所述的应用程序的语言转换方法,其特...

【专利技术属性】
技术研发人员:何兆林张赛朱海军
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:

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

1