本公开涉及前端,尤其涉及一种语言配置文件的生成方法及装置、语言处理方法及装置。
背景技术:
1、随着科技不断创新、业务的国际化发展,用户在web项目上提出了多语言转换的需求,使得web项目支持多语言的应用服务。
2、目前,在web项目开发中,通常采用的一种语言转换方法为:首先要求开发者在源代码中添加语言转换注释(即利用注释去指示出待转换文本),以便使用工具分析处理这些语言转换注释,从而确定源代码中存在的待转换文本;当web端提出语言转换的操作需求时,就可以利用另一种语言文本替换待转换文本,以基于另一种语言提供应用服务了。
3、但是,这种语言转换方法主要是依赖开发人员手动添加语言转换注释,如此不仅手动处理所花费人力和时间成本较高,并且一旦注释出错,将会出现某个待转换文本未转换语言的情况,使得web端语言转换失败,大大影响所提供的应用服务质量。
技术实现思路
1、本公开提供一种语言配置文件的生成方法及装置、语言处理方法及装置,主要目的在于将待转换文本的语言配置文件应用到web项目上多语言转换处理中,以自动且高效地定位到待转换文本在目标源代码中位置,从而辅助提高web项目上多语言转换处理效率和准确性。
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、划分单元,用于根据定位的待转换文本的数量,划分所述待转换文本为多组待转换文本;
64、第一获取单元,用于从所述多组待转换文本中获取至少一组待转换文本;
65、第一验证单元,用于利用正则表达式处理所述至少一组待转换文本,以验证所述至少一组待转换文本在所述目标源代码中的位置信息是否正确。
66、在一些变更实施例中,所述装置还包括:
67、第二获取单元,用于获取所述语言转换关键字对应的文本数据,所述文本数据包括所述待转换文本对应的不同语言文本,不同语言文本对应于其他语言标识,所述其他语言标识用于表征除所述待转换文本所对应的语言之外的语言;
68、构建单元,用于根据所述待转换文本对应的语言配置文件、所述语言转换关键字和所述文本数据,构建所述待转换文本对应的语言包数据;
69、关联单元,用于关联所述语言包数据与主应用单元,所述语言包数据应用于支持所述主应用单元和从应用单元的语言转换服务,所述从应用单元与所述主应用单元关联。
70、本公开第四方面提供了一种语言处理装置,该装置包括:
71、第三确定单元,用于响应于显示窗口中对待转换文本执行语言转换处理的操作请求,确定所述待转换文本对应所在的目标源代码,所述操作请求为将所述待转换文本转换成第一语言;
72、第三获取单元,用于获取所述待转换文本对应的语言配置文件,所述语言配置文件中至少存储有所述待转换文本在所述目标源代码中的位置信息,所述语言配置文件与语言转换关键字关联,所述语言转换关键字对应的文本数据中包括所述待转换文本对应的所述第一语言的目标语言文本;
73、第二转换单元,用于将所述目标源代码转换成抽象语法树;
74、替换单元,用于根据所述位置信息,在抽象语法树上将所述待转换文本替换成所述目标语言文本;
75、编译单元,用于编译替换所述目标语言文本后的所述抽象语法树,得到新源代码,所述新源代码应用于支持在所述第一语言上提供应用服务。
76、在一些变更实施例中,在所述将所述目标源代码转换成抽象语法树之前,所述装置还包括:
77、第一执行单元,用于若所述目标源代码的代码量达到预置阈值,则根据抽象语法树,修改所述目标源代码得到所述新源代码;
78、第二执行单元,用于若所述目标源代码的代码量未达到预置阈值,则定位所述待转换文本在所述目标源代码中的目标位置,在所述目标源代码中所述目标位置上将所述待转换文本替换成所述第一语言上对应的目标语言文本,得到所述新源代码。
79、在一些变更实施例中,在基于定位所述待转换文本在所述目标源代码中的目标位置以得到所述新源代码的情况下,所述装置还包括:
80、第四获取单元,用于从所述待转换文本对应的语言配置文件中获取所述待转换文本对应的校验信息和所述待转换文本在执行转换前对应在第二语言上的语言标识;
81、第四确定单元,用于在所述目标源代码中确定所述目标位置对应的待验证位置信息;
82、第二生成单元,用于根据所述待验证位置信息和所述语言标识,生成所述待转换文本对应的待验证信息;
83、第二验证单元,用于通过将所述待验证信息与所述校验信息进行比较,验证定位得到的所述目标位置是否与所述待转换文本匹配。
84、在一些变更实施例中,在将所述目标源代码转换成抽象语法树之前,所述装置还包括:
85、所述第一执行单元,还用于在所述目标源代码对应的文件类型符合预置文件类型的情况下,将所述目标源代码转换为抽象语法树,根据抽象语法树,修改所述目标源代码,得到所述新源代码;
86、第三执行单元,用于在所述目标源代码对应的文件类型不符合预置文件类型的情况下,若查找到所述待转换文本对应的语言配置文件,则根据所述语言配置文件中存储的所述待转换文本对应的位置信息,从所述目标源代码中确定所述待转换文本所在目标位置,在所述目标位置上将所述待转换文本替换成所述第一语言上对应的目标语言文本,得到所述新源代码。
87、本公开第五方面提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上的语言配置文件的生成方法;或者,所述计算机程序被处理器执行时实现如上所述的语言处理方法。
88、本公开第六方面提供了一种电子设备,所述设备包括至少一个处理器、以及与所述处理器连接的至少一个存储器、总线;其中,所述处理器、所述存储器通过所述总线完成相互间的通信;所述处理器用于调用所述存储器中的程序指令,以执行如上所述的语言配置文件的生成方法,或者,以执行如上所述的语言处理方法。
89、本公开第七方面提供了一种计算机程序产品,包括计算机程序/指令,所述计算机程序/指令被处理器执行时实现如上所述的语言配置文件的生成方法;或者,所述计算机程序/指令被处理器执行时实现如上所述的语言处理方法。
90、借由上述技术方案,本公开提供的技术方案至少具有下列优点:
91、本公开提供一种语言配置文件的生成方法及装置、语言处理方法及装置,本公开借助抽象语法树处理包含待转换文本的目标源代码,以定位待转换文本所在位置,以及确定出待转换文本为哪种语言,继而利用这些数据信息生成语言配置文件。生成的语言配置文件与语言转换关键字关联,并且语言转换关键字与其他语言文本组成键值对形式(即key-value形式),由此语言转换关键字可应用于将待转换文本转换成目标语言需求下的其他语言文本了。
92、另一方面,本公开利用语言配置文件在语言处理方法实现上,响应于显示窗口对待转换文本执行语言转换处理的操作请求,将待转换文本所在目标源代码转换成抽象语法树,再结合预先得到的语言配置文件,能够自动且高效地借助抽象语法树定位到待转换文本所在位置,并且基于语言配置文件所关联的语言转换关键字得到目标语言需求下的目标语言文本,继而在这个位置上将待转换文本替换成目标语言文本,并且重新编译替换目标语言文本后的抽象语法树,得到新源代码。可见,本公开还能够支持在其他语言上实现提供应用服务。
93、相较于现有技术依赖人工标注待转换文本导致的易出错、效率低等技术问题,本公开能够避免这些技术问题。本公开将待转换文本的语言配置文件应用到web项目上多语言转换处理中,使得定位待转换文本自动且高效,不依赖人工。并且本公开在语言处理方法的实现上,基于语言配置文件和语言转换关键字的关联,确保将基于语言转换关键字查找到的其他语言文本准确地替换到待转换文本所在位置,从而在通过加载新源代码向web端提供应用服务时,能够确保每个待转换文本都成功地以目标语言文本进行显示。以上,本公开能够有效辅助提高web项目上多语言转换处理效率和准确性,并且确保了web项目上多语言转换的应用服务质量。
94、上述说明仅是本公开技术方案的概述,为了能够更清楚了解本公开的技术手段,而可依照说明书的内容予以实施,并且为了让本公开的上述和其它目的、特征和优点能够更明显易懂,以下特举本公开的具体实施方式。
1.一种语言配置文件的生成方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述通过解析所述抽象语法树,定位所述待转换文本在所述目标源代码中的位置信息,包括:
3.根据权利要求1所述的方法,其特征在于,在所述生成所述待转换文本对应的语言配置文件之后,所述方法还包括:
4.根据权利要求1所述的方法,其特征在于,在将所述目标源代码转换为抽象语法树之前,所述方法还包括:
5.根据权利要求4所述的方法,其特征在于,在所述目标源代码对应的文件类型符合预置文件类型的情况下,若所述目标源代码中包含多个待转换文本,则在所述通过解析抽象语法树,定位所述待转换文本对应位置信息的过程中,所述方法包括:
6.根据权利要求1至5中任一项所述的方法,其特征在于,所述方法还包括:
7.一种语言处理方法,其特征在于,所述方法包括:
8.根据权利要求7所述的方法,其特征在于,在所述将所述目标源代码转换成抽象语法树之前,所述方法还包括:
9.根据权利要求8所述的方法,其特征在于,在基于定位所述待转换文本在所述目标源代码中的目标位置以得到所述新源代码的情况下,所述方法还包括:
10.根据权利要求7-9中任一项所述的方法,其特征在于,在将所述目标源代码转换成抽象语法树之前,所述方法还包括:
11.一种语言配置文件的生成装置,其特征在于,所述装置包括:
12.一种语言处理装置,其特征在于,所述装置包括:
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1-6中任一项所述的语言配置文件的生成方法;
14.一种电子设备,其特征在于,所述设备包括至少一个处理器、以及与所述处理器连接的至少一个存储器、总线;
15.一种计算机程序产品,其特征在于,包括计算机程序/指令,所述计算机程序/指令被处理器执行时实现如权利要求1-6中任一项所述的语言配置文件的生成方法;或者,所述计算机程序/指令被处理器执行时实现如权利要求8-10中任一项所述的语言处理方法。