一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于对网页进行翻译的方法及其相关产品与流程

2022-03-09 00:42:42 来源:中国专利 TAG:


1.本发明的实施方式涉及互联网技术领域,更具体地,本发明的实施方式涉及用于对网页进行翻译的方法、用于执行前述方法的设备和计算机可读存储介质。


背景技术:

2.本部分旨在为权利要求书中陈述的本发明的实施方式提供背景或上下文。此处的描述可包括可以探究的概念,但不一定是之前已经想到或者已经探究的概念。因此,除非在此指出,否则在本部分中描述的内容对于本技术的说明书和权利要求书而言不是现有技术,并且并不因为包括在本部分中就承认是现有技术。
3.为了快速将网站进行国际化,一般会将中文网页翻译成不同的语言(比如英文、法文、俄文等)。由于存在大多数服务器端翻译应用程序接口(api)仅支持纯文本翻译、不同的网站中的网页结构复杂且不同网页在规划和设计初期很可能未考虑国际化以及网页的内容无特殊的标记等问题,使得现有的网页翻译技术很难兼顾翻译展示效果和准确性。
4.例如,目前在将网页翻译成目标语言过程中,一般需要等待网页加载以及渲染完毕后,从网页中提取所有文本节点且对每一个文本节点进行逐一翻译。这种翻译方式虽然能确保翻译的展示效果,但其仅是对文本节点的翻译结果进行拼凑而并未对句子或者段落进行翻译,使得整体翻译结果表达不通顺且语义不准确。
5.又例如,为了提高翻译结果的准确性,还可以在制作或生成网页超文本标记语言(hyper text markup language,html)时,在可整体翻译的节点上做特殊标记,根据特殊标记来对每一个需要翻译的节点进行翻译。这种翻译方式虽然能够确保翻译结果的准备性,但是需要投入大量人力来进行标记设置工作,特别是当有大量的网站以及网页需要翻译时,会大大增加开发成本。


技术实现要素:

6.已知的对网页的翻译效果不理想且准确性差,这是非常令人烦恼的过程。
7.为此,非常需要一种改进的用于对网页进行翻译的方法及其相关产品,无需借助特殊标识即可实现对网页的准确翻译。
8.在本上下文中,本发明的实施方式期望提供一种用于对网页进行翻译的方法及其相关产品。
9.在本发明实施方式的第一方面中,提供了一种用于对网页进行翻译的方法,包括:获取关于网页中文本内容的一个或多个翻译单元,其中每个所述翻译单元包括所述文本内容中待翻译内容;响应于对所述文本内容的翻译需求,以翻译单元为单位调用预定翻译接口对所述翻译单元进行翻译处理,以得到关于所述文本内容的翻译结果;以及在所述网页中展示所述翻译结果。
10.在本发明的一个实施例中,其中获取关于网页中文本内容的翻译单元包括:获取关于所述网页的文档结构;以及通过对所述文档结构进行遍历,确定所述翻译单元。
11.在本发明的另一个实施例中,其中所述文档结构包括html文档的文档对象模型树,其中确定所述翻译单元包括:对所述文档对象模型树进行遍历,以得到文本节点;以及根据所述文本节点确定所述翻译单元。
12.在本发明的又一个实施例中,其中对所述文档对象模型树进行遍历以得到文本节点包括:从所述文档对象模型树中提取具有同一最近祖先块级元素、相同块级深度以及连续相邻的文本节点,其中所述文本节点的块级深度是指从所述文档对象模型树的根节点到达所述文本节点所经过的块级元素的数量。
13.在本发明的再一个实施例中,其中提取连续相邻的文本节点包括:将直接关联于同一最近祖先块级元素下的文本节点以及经由行内元素间接关联于所述同一最近祖先块级元素下的文本节点确定为连续相邻的文本节点。
14.在本发明的一个实施例中,其中对所述文档对象模型树进行遍历以得到文本节点还包括:从所述文档对象模型树中提取独处一块级元素下且无相邻节点的文本节点。
15.在本发明的另一个实施例中,还包括:在解析所述文档对象模型树过程中,根据元素的标签名和显示样式属性信息,确定所述文档对象模型树中文本节点所关联的元素节点是块级元素还是行内元素。
16.在本发明的又一个实施例中,其中在所述网页中展示所述翻译结果包括:获取所述翻译单元中的指定文本节点的显示样式;以及在所述网页中复用所述显示样式来展示所述翻译结果。
17.在本发明的再一个实施例中,其中所述显示样式包括继承自祖先元素的显示样式,在所述网页中复用所述显示样式来展示所述翻译结果包括:将所述网页中的文本内容替换为所述翻译结果,且复用所述祖先元素的显示样式展示所述翻译结果;或在所述网页中同时展示所述文本内容和所述翻译结果,且复用所述祖先元素的显示样式展示所述翻译结果。
18.在本发明的一个实施例中,还包括:响应于将第一目标语言的所述翻译结果切换为第二目标语言的需求,再次调用所述预定翻译接口将所述翻译单元翻译成所述第二目标语言。
19.在本发明实施方式的第二方面中,提供了一种设备,包括:处理器;以及存储器,其存储有用于对网页进行翻译的计算机指令,当所述计算机指令由所述处理器运行时,使得所述设备执行根据前文以及下文多个实施例所述的方法。
20.在本发明实施方式的第三方面中,提供了一种计算机可读存储介质,包含用于对网页进行翻译的程序指令,当所述程序指令由处理器执行时,使得所述设备执行根据前文以及下文多个实施例所述的方法。
21.根据本发明实施方式的用于对网页进行翻译的方法及其相关产品,可以利用与网页中文本内容相关的一个或多个翻译单元实现对文本内容的翻译,从而能够确保翻译结果的语义完整性并且提高翻译结果的准确性。另外,整个翻译过程不依赖于网页中的特殊标记,使得本发明的方案通用性强,不仅适用于不同类型的网页,而且能够有效降低开发成本。在本发明的一些实施例中,还可以利用文档对象模型树来实现对翻译单元的精准获取,有利于提高翻译结果的准确度。在本发明的另一些实施例中,可以复用祖先元素的显示式样对翻译结果进行展示,从而在确保翻译结果准确度的同时,能够最大程度上地确保翻译
后的展示效果接近原始网页。此外,在本发明的再一些实施例中,可以直接调用预定翻译接口将翻译单元翻译成所需的语言,使得在无需刷新网页的情况下,可以实现不同目标语言的切换,从而有效提高网页的翻译效率。
附图说明
22.通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:
23.图1示意性地示出了适于实现本发明实施方式的示例性计算系统100的框图;
24.图2示意性地示出了根据本发明一个实施例的用于对网页进行翻译的方法流程图;
25.图3示意性地示出了根据本发明实施例的获取翻译单元的方法流程图;
26.图4示意性地示出了根据本发明实施例的遍历文档对象模型树的示意图;
27.图5示意性地示出了根据本发明另一个实施例的用于对网页进行翻译的方法流程图;以及
28.图6示意性地示出了根据本发明实施例的设备的示意框图。
29.在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
30.下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
31.图1示出了适于实现本发明实施方式的示例性计算系统100的框图。如图1所示,计算系统100可以包括:中央处理单元(cpu)101、随机存取存储器(ram)102、只读存储器(rom)103、系统总线104、硬盘控制器105、键盘控制器106、串行接口控制器107、并行接口控制器108、显示控制器109、硬盘110、键盘111、串行外部设备112、并行外部设备113和显示器114。这些设备中,与系统总线104耦合的有cpu 101、ram 102、rom 103、硬盘控制器105、键盘控制器106、串行控制器107、并行控制器108和显示控制器109。硬盘110与硬盘控制器105耦合,键盘111与键盘控制器106耦合,串行外部设备112与串行接口控制器107耦合,并行外部设备113与并行接口控制器108耦合,以及显示器114与显示控制器109耦合。应当理解,图1所述的结构框图仅仅是为了示例的目的,而不是对本发明范围的限制。在某些情况下,可以根据具体情况增加或减少某些设备

32.本领域技术技术人员知道,本发明的实施方式可以实现为一种系统、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式,本文一般称为“电路”、“模块”“单元”或“系统”。此外,在一些实施例中,本发明还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
33.可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算
机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是,但不限于,电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举示例)例如可以包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
34.计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
35.计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、rf等等,或者上述的任意合适的组合。
36.可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c ,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络(包括局域网(lan)或广域网(wan))连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
37.下面将参照本发明实施例的方法的流程图和设备(或系统)的框图描述本发明的实施方式。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,这些计算机程序指令通过计算机或其它可编程数据处理装置执行,产生了实现流程图和/或框图中的方框中规定的功能/操作的装置。
38.也可以把这些计算机程序指令存储在能使得计算机或其它可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令就产生出一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置的产品。
39.也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
40.根据本发明的实施方式,提出了一种用于对网页进行翻译的方法及其相关产品。
41.在本文中,需要理解的是,所涉及的翻译单元可以理解为网页中语义完整的待翻译内容。此外,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
42.下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。
43.发明概述
44.本发明人发现,由于不同网站的网页不同,且网页结构复杂以及可能无特殊标记,使得现有的翻译技术无法兼顾展示效果和翻译准确性。现有翻译技术通常在网页加载以及渲染完毕后,遍历网页以提取出网页中的所有文本节点。然后,对每个文本节点进行逐一翻译而并不对句子或者段落进行翻译,最后对每个文本节点的翻译结果进行拼凑。
45.例如,采用这种翻译方法对网页中“我/昨天/去了一趟/故宫”进行翻译(其中斜线“/”可以表示对文本节点的分割),各个文本内容的翻译结果如表1所示:
46.文本内容服务端翻译api翻译结果(英文)我i昨天yesterday去了一趟went to a trip故宫the palace museum
47.表1
48.根据表1可知,最后的翻译结果为“i yesterday went to a trip the palace museum”。可以看出,采用该方法对网页翻译后明显表达不通顺,语义不准确。
49.发明人还发现,相关技术还可以采用在制作或生成html时,在可整体翻译的节点上做特殊标记,然后待网页加载以及渲染完毕后,可以根据特殊标记来对每一个需要翻译的节点进行翻译。可以看出,这种方式虽然能够提高翻译的准确性,但是需要依赖人工添加特殊标记,特别是当有大量的网站以及网页需要翻译时,会大大增加开发成本且通用性较差。
50.基于此,发明人发现若要保证翻译结果的准确性,翻译网页的关键问题在于如何提取网页内容。具体地,在对网页进行翻译过程中,通过以语义完整的翻译单元为单位来实现对网页的翻译,能够有效确保翻译结果的准确性。
51.在介绍了本发明的基本原理之后,下面具体介绍本发明的各种非限制性实施方式。
52.示例性方法
53.下面参考图2来描述根据本发明示例性实施方式的用于对网页进行翻译的方法。需要注意的是,本发明的实施方式可以应用于适用的任何场景。
54.图2示意性地示出了根据本发明一个实施例的用于对网页进行翻译的方法200流程图。如图2中所示,方法200可以包括:在步骤s201处,可以获取关于网页中文本内容的一个或多个翻译单元。在一些实施例中,每个翻译单元可以包括文本内容中待翻译内容,而待翻译内容可以理解为语义完整的内容。在一些实施例中,前述的文本内容可以理解为是纯文本内容。需要说明的是,这里对文本内容可以包含的内容并不进行限制,随着翻译接口功能的更新,根据翻译接口所能识别的内容可以扩充该文本内容,例如不局限于纯文本。
55.接着,在步骤s202处,可以响应于对前述的文本内容的翻译需求,以翻译单元为单位调用预定翻译接口对翻译单元进行翻译处理,从而得到关于文本内容的翻译结果。在一些实施例中,对前述的文本内容的翻译需求可以包括所要翻译的目标语言以及内容。例如,可以是对整个网页文本内容的翻译,也可以是对网页中某段文本内容的翻译,具体的翻译
需求可以根据实际设计要求进行调整。
56.在实际翻译处理过程中,可能需要对至少一个翻译单元进行翻译。因此,通过以翻译单元为单位调用预定翻译接口对翻译单元进行翻译处理,可以最大程度上保证整体翻译结果的语义完整性。在一些实施例中,前述的预定翻译接口可以采用通用的翻译接口(例如服务器端api等)。
57.在完成前述的翻译处理后,接着在步骤s203处,可以在网页中展示前述的翻译结果。基于此,本发明的方案通过与网页中文本内容相关的一个或多个翻译单元实现对文本内容的翻译,不仅能够确保翻译结果的语义完整性并且提高翻译结果的准确性。同时整个翻译过程不依赖于网页中的特殊标记,使得本发明的方案通用性强,不仅适用于不同类型的网页,而且能够有效降低开发成本。
58.以下对图2中各个步骤的一些可能的示例性实现方式进一步说明。本发明的上下文中的翻译单元可以有多种获取方式。图3示出了在一些实施例中获取前述翻译单元的具体步骤。如图3所示,在步骤s301处,可以获取关于前述网页的文档结构。在一些实施场景中,前述的文档结构可以包括html文档的文档对象模型树。需要说明的是这里并不对文档结构的类型进行限制,例如还可以是其他类型的能够描述网页的文档结构。接着,在步骤s302处,可以通过对文档结构进行遍历以确定翻译单元。需要说明的是,翻译单元的具体获取方式可以根据文档结构的类型来调整,这里所描述的获取过程仅是一种示例性说明。
59.在一些实施例中,如前所述,文档结构可以是html文档的文档对象模型树(其可由浏览器根据html文档解析出),可通过该文档对象模型树(也称为dom树)确定翻译单元。具体地,在步骤s302-1处,可以对文档对象模型树进行遍历以得到文本节点。例如,可以采用通用的遍历方式(例如从左至右的方式)来实现对文档对象模型树的遍历。接着,在步骤s302-2处,可以根据前述的文本节点确定翻译单元。例如,需要对“我/昨天/去了一趟/故宫”进行翻译(其中斜线“/”可以表示对文本节点的分割)时,其中“我”“昨天”、“去了一趟”和“故宫”因语义不完整,均不能视为一个翻译单元,只有“我昨天去了一趟故宫”才可被视为一翻译单元。关于翻译单元的确定和翻译结果如表2所示:
[0060][0061]
表2
[0062]
由表2可以看出,网页内容被提取成一个或若干个翻译单元后进行翻译,可以有效提高整个网页翻译的准确性。
[0063]
在一些实施例中,前述的对文本节点的获取具体可以涉及从文档对象模型树中提
取具有同一最近祖先块级元素、相同块级深度以及连续相邻的文本节点,或者从文档对象模型树中提取独处一块级元素下且无相邻节点的文本节点。前述的文档对象模型树包括dom树,可以通过对网页的html文档进行解析(例如利用浏览器来解析)来获取dom节点,而dom节点也被称为dom树。dom树可以包括多种类型的节点,例如元素节点(element node)、文本节点(text node)、注释节点(comment node)和文档节点(document node)。其中,元素节点一般可以分为块级元素和行内元素。具体地,可以在遍历dom树过程中,根据元素的标签名(tagname)和显示样式属性信息(例如层叠样式表css的属性值或其他影响元素显示效果的属性值等)来确定dom树中文本节点所关联的元素节点是块级元素还是行内元素。
[0064]
前述的文本节点的块级深度(block depth)可以理解为从dom树的根节点到达该文本节点所经过的块级元素的数量。前述的祖先块级元素可以理解为是该节点所经过的所有块级元素。前述的连续相邻的文本节点可以理解为直接关联于同一最近祖先块级元素下的文本节点以及经由行内元素间接关联于同一最近祖先块级元素下的文本节点。
[0065]
需要说明的是,文本节点未必有文字内容或者文字内容为空字符串,因此一个有文本内容的文本节点才是有效文本节点,而有效的文本节点也可以称为翻译节点(translation node)。在一些实施例中,同时满足以下条件的一组翻译节点可以被抽象为一翻译单元:1.最近的祖先块级元素是同一个;2.块级深度相等;3.忽略行内元素后,在dom树结构中可被视为连续相邻。需要说明的是,若该组翻译节点中仅有一个翻译节点,也可被视为符合要求;若该组翻译节点中有多个翻译节点,则必须连续且相邻,才能被视为符合要求。以下结合图4对上述内容进一步说明。
[0066]
图4是根据一段html代码文档所解析成的dom树。其中,图4中的实线表示直接的节点关系,虚线表示忽略行内元素后的节点关系;「div」、「h1」、「p」以及「h3」表示块级元素,且「div」表示根节点;「span」和「em」表示行内元素;图中文字如「日记」、「天气」、「今天」、

、「瓦」表示文本节点(也可以称为翻译节点)。
[0067]
如图4所示,「日记」单独在块级元素「h1」下且无相邻的节点,可被抽象为一个翻译单元。「日记」不能与后续的文本节点「天气」、「不错」一起被抽象为一个翻译单元,因为「日记」在块级元素「h1」下,而「天气」、「不错」在块级元素「p」下,最近的祖先块级元素不是同一个。而「天气」和「不错」都在块级元素「p」下,块级深度相等(都为2),且是相邻的,可被抽象为一个翻译单元。
[0068]
「今天」、「我」、「去了一」、「趟」、「故宫」都在块级元素「div」下,块级深度相等(均为1),且是连续相邻的,可被抽象为一个翻译单元。但这些文本节点不能与后续的文本节点「红」、「墙」、「黄」、「瓦」一起被抽象为一个翻译单元,因为「故宫」和「红」中间有块级元素「h3」相隔,「故宫」和「红」不是相邻的。
[0069]
另外,「故宫很美」单独在块级元素「h3」下,且无相邻的节点,其可被抽象为一个翻译单元。而「红」、「墙」、「黄」、「瓦」都在块级元素「div」下,块级深度相等(均为1),且是连续相邻的,可被抽象为一个翻译单元。
[0070]
此外,发明人还发现若要保证良好的展示结果,翻译网页的关键还在于如何将翻译结果替换原始内容。具体地,可以复用祖先元素的显示式样对翻译结果进行展示,从而能够确保翻译后的展示效果接近原始网页。例如,可以将网页中的文本内容替换为翻译结果,且复用祖先元素的显示样式展示翻译结果。又例如,还可以在网页中同时展示文本内容和
翻译结果,且复用祖先元素的显示样式展示翻译结果。基于此,本发明方案中的不同展示方式可以满足多样化的展示需求。
[0071]
图5示意性地示出了根据本发明另一个实施例的用于对网页进行翻译的方法500流程图。可以理解的是,图5可以是前文结合图2和图3所描述的各个步骤的一种示例性的实现方式。因此,前文结合图2和图3中对各个步骤的细节性描述同样适用于下文。
[0072]
为了更便于理解本发明方案,以下将采用数据结构来描述翻译节点和翻译单元。具体地,翻译单元可以用文本节点node和文本节点的块级深度blockdepth来描述。其中,node为文本节点类型,blockdepth为整数类型。而翻译单元(translation unit)可以采用以下结构来描述:
[0073]
1、nodes:表示数组类型,数组中的每一项为一文本节点(即翻译节点);一个翻译单元包含数组内的所有文本节点。
[0074]
2、hooknode:表示文本节点类型;翻译结果需要在该节点上挂载以便展示。前述的数组nodes中包含该hooknode。具体地,可以将数组nodes中的第一个文本节点作为hooknode,也可以将数组nodes中的最后一个文本节点作为hooknode;或者使用其他规则可以将nodes中的其他任一文本节点作为hooknode。
[0075]
3、textfromnodes:表示字符串类型,由数组nodes生成的文本内容。具体地,可以遍历数组nodes下的每一个文本节点以获取节点的文本内容,然后将每一个节点的textcontent逐一追加到textfromnodes。在一些实施例中,获取文本节点的文本内容时,可以使用textcontent属性、nodevalue属性或其他能获取文本节点内容的属性或方法,这里并不对此进行限制。
[0076]
4、translationresult:表示字符串类型,其存储由textfromnodes调用服务器端翻译api返回的翻译结果。
[0077]
如图5所示,实际应用过程中,在步骤s501处,可以创建空数组translationunitlist。该translationunitlist可以用于存储从网页中提取的翻译单元。然后,可以将网页中指定的dom节点根节点,并判断根节点的类型。
[0078]
接着,在步骤s502处,若确定根节点为块级元素(其块级深度为1),可以遍历其子节点。具体地,可以涉及计算自身的块级深度(具体可以在父节点的块级深度的基础上 1)、创建一个用于存储翻译节点的数据translationnodelist以及遍历子节点。在一些实施例中,若子节点为块级元素,从左到右扫描translationnodelist。若translationnodelist为空,表示无待处理的翻译节点,可以直接执行步骤s505。若translationnodelist不为空,则表示有待处理的翻译节点。此时可以将相邻且块级深度相等的翻译节点创建成一个翻译单元(具体仅需要对翻译单元的nodes、hooknode、textfromnodes进行赋值),然后将创建好的翻译单元push到数组translationunitlist(其中使用translationnodelist可以创建若干个翻译单元)。接着将已处理的翻译节点从translationnodelist中移除,重复前述操作直至translationnodelist中的所有翻译节点被处理完(此时translationnodelist为空)。最后,执行步骤s505。
[0079]
在另一些实施例中,若子节点为行内元素可以执行步骤s503;若子节点为其他类型节点(例如注释节点等)或者无子节点可以不做处理。
[0080]
接着,在步骤s503处,若确定自身为行内元素(其块级深度为0),可以遍历其子节
点。具体地,可以涉及计算自身的块级深度(为父节点的块级深度)、遍历子节点并处理每一个子节点。在一些实施例中,若子节点为块级元素,可以执行步骤s502;若子节点为行内元素,仍执行步骤s503;若子节点为文本节点,可以执行步骤s504;若子节点为其他类型节点或无子节点可以不做处理。
[0081]
接着,在步骤s504处,若确定自身为文本节点,可以创建翻译节点和翻译单元。在一些实施例中,若翻译节点创建成功,可根据翻译节点创建翻译单元(此时仅需要对翻译单元的nodes、hooknode、textfromnodes进行赋值),然后将翻译单元push到translationunitlist后,执行步骤s505。若自身文本节点无内容,无法创建翻译节点,或自身为其他节点(例如注释节点等无效节点),此时可以不做处理或者直接执行步骤s505。
[0082]
接着,在步骤s505处,可以调用服务器端翻译api来进行翻译。具体地,可以异步调用服务器api对translationunitlist数组中的每个翻译单元进行翻译,并将翻译结果赋值给对应翻译单元的translationresult属性。在一些实施例中,若服务器翻译api支持批量处理,可将translationunitlist中每个翻译单元的textfromnodes取出,并作为批量数据参数调用服务器翻译api;若服务器翻译api不支持批量处理,可对translationunitlist的每个翻译单元逐一调用服务器翻译api。需要说明的是,这里对翻译单元的翻译过程仅是示例性说明,本发明的方案并不受此限制。
[0083]
接着,在步骤s506处,可以展示翻译结果。在一些实施例中,可以遍历translationunitlist中的每一个翻译单元,并将当前翻译单元nodes中除了hooknode外的文本节点都从网页中删除(此步骤中被删除部分的文本节点,可能会导致页面展示时,不能展示该处的样式)。然后,将当前翻译单元的translationresult赋值给hooknode.textcontent以展示翻译结果,从而能够让翻译结果复用hooknode处的样式(包括从祖先元素继承的样式)。
[0084]
可替换地,在另一些实施例中,还可以遍历translationunitlist中的每一个翻译单元,并将当前翻译单元的translationresult赋值给hooknode.textcontent以展示翻译结果。基于此,不仅能够让翻译结果复用hooknode处的样式,而且可以实现原文本和翻译结果的同时展示。
[0085]
此外,本发明方案中的数组translationunitlist中的每一个翻译单元都存储了textfromnodes。因此,可以在无需刷新网页的情况下,将网页翻译成不同的目标语言,提高了翻译效率。例如,先将网页翻译成英文,再次直接调用服务器端翻译api将原始网页翻译成法文。另外,由于数组translationunitlist中的每一个翻译单元都存储了textfromnodes和translationresult,使得在无需刷新网页的情况下,可以自由切换显示翻译结果与原始文本内容,从而能够满足多元化需求。
[0086]
示例性设备
[0087]
在介绍了本发明示例性实施方式的方法之后,接下来,参考图6对本发明示例性实施方式的用于对网页进行翻译的相关产品进行描述。
[0088]
图6示意性地示出了根据本发明实施例的设备600的示意框图。如图6所示,设备600可以包括处理器601和存储器602。其中存储器602存储有用于对网页进行翻译的计算机指令,当所述计算机指令由处理器601运行时,使得设备600执行根据前文结合图2和图3所描述的方法。例如,在一些实施例中,设备600可以执行对翻译单元的获取、对翻译单元的翻
译处理、对翻译结果的展示等。基于此,通过设备600可以以较低的开发成本兼顾翻译结果的语义完整性和准确性。
[0089]
在一些实施场景中,设备600可以包括终端设备(例如个人pc机、电脑、手机、助学设备以及其他能够支持网页浏览的设备等)。
[0090]
应当注意,尽管在上文详细描述中提及了用于对网页进行翻译的设备的若干装置或子装置,但是这种划分仅仅并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多装置的特征和功能可以在一个装置中具体化。反之,上文描述的一个装置的特征和功能可以进一步划分为由多个装置来具体化。
[0091]
此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。相反,流程图中描绘的步骤可以改变执行顺序。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
[0092]
申请文件中提及的动词“包括”、“包含”及其词形变化的使用不排除除了申请文件中记载的那些元素或步骤之外的元素或步骤的存在。元素前的冠词“一”或“一个”不排除多个这种元素的存在。
[0093]
虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。所附权利要求的范围符合最宽泛的解释,从而包含所有这样的修改及等同结构和功能。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献