网站的翻译方法和装置与流程

文档序号:11950252阅读:263来源:国知局
网站的翻译方法和装置与流程

本发明涉及数据处理领域,特别是涉及一种网站的翻译方法和装置。



背景技术:

随着计算机技术和网络技术的迅速发展,全球越来越多的用户使用网络从事社交活动。为此,提供服务的网站需要有不同国家语言版本以满足不同国家的用户需求。传统的网站提供者会针对每种语言开发对应的一套版本,需要投入大量的人力来整理和翻译增量的文本、开发或复制多套代码及校验多版本功能的一致性等,造成极大的成本消耗。



技术实现要素:

基于此,有必要针对传统的网站针对每种语言开发一套版本,需要开发人员对每套版本进行单独维护,极大消耗成本的问题,提供一种网站的翻译方法和装置,不需要开发人员维护多套版本,降低了成本。

一种网站的翻译方法,包括:

获取网站的脚本源码、超文本标记语言结构数据和数据获取层接收的返回数据;

查找所述脚本源码中包含指定语言字符串的源码节点,将所述源码节点中的指定语言字符串进行翻译;

查找所述超文本标记语言结构数据中包含指定语言字符串的超文本结构节点,将所述超文本结构节点中的指定语言字符串进行翻译;

查找所述返回数据中包含指定语言字符串的返回数据,将所述返回数据中的指定语言字符串进行翻译。

一种网站的翻译装置,包括:

数据获取模块,用于获取网站的脚本源码、超文本标记语言结构数据和数据获取层接收的返回数据;

第一翻译模块,用于查找所述脚本源码中包含指定语言字符串的源码节点,将所述源码节点中的指定语言字符串进行翻译;

第二翻译模块,用于查找所述超文本标记语言结构数据中包含指定语言字符串的超文本结构节点,将所述超文本结构节点中的指定语言字符串进行翻译;

第三翻译模块,用于查找所述返回数据中包含指定语言字符串的返回数据,将所述返回数据中的指定语言字符串进行翻译。

上述网站的翻译方法和装置,通过获取网站的脚本源码、超文本标记语言结构数据和数据获取层接收的返回数据,查找其中的指定语言字符串进行翻译,开发人员只需维护一个语言版本的网站即可,转化成其他语言时,将网站的脚本源码、超文本标记语言结构数据和返回数据中的指定语言字符串进行翻译,即可快速翻译成其他语言的网站,降低了成本。

附图说明

图1A为一个实施例中终端的内部结构示意图;

图1B为一个实施例中服务器的内部结构示意图;

图2为一个实施例中网站的翻译方法的流程图;

图3为一个实施例中查找该脚本源码中包含指定语言字符串的源码节点,将该源码节点中的指定语言字符串进行翻译的步骤的流程图;

图4为一个实施例中网站的翻译装置的结构框图;

图5为一个实施例中第一翻译模块的内部结构框图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

可以理解,本发明所使用的术语“第一”、“第二”等可在本文中用于描述各种元件,但这些元件不受这些术语限制。这些术语仅用于将第一个元件与另一个元件区分。举例来说,在不脱离本发明的范围的情况下,可以将第一客户端称为第二客户端,且类似地,可将第二客户端称为第一客户端。第一客户端和第二客户端两者都是客户端,但其不是同一客户端。

图1A为一个实施例中终端的内部结构示意图。如图1A所示,该终端包括通过系统总线连接的处理器、非易失性存储介质、内存储器、网络接口、显示屏和输入装置。其中,终端的非易失性存储介质存储有操作系统,还包括一种网站的翻译装置,该网站的翻译装置用于实现一种网站的翻译方法。该处理器用于提供计算和控制能力,支撑整个终端的运行。终端中的内存储器为非易失性存储介质中的网站的翻译装置的运行提供环境,该内存储器中可储存有计算机可读指令,该计算机可读指令被所述处理器执行时,可使得所述处理器执行一种网站的翻译方法。网络接口用于与服务器进行网络通信。终端的显示屏可以是液晶显示屏或者电子墨水显示屏等,输入装置可以是显示屏上覆盖的触摸层,也可以是终端外壳上设置的按键、轨迹球或触控板,也可以是外接的键盘、触控板或鼠标等。该终端可以是手机、平板电脑或者个人数字助理或穿戴式设备等。本领域技术人员可以理解,图1A中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的终端的限定,具体的终端可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

图1B为一个实施例中服务器(或云端等)的内部结构示意图。如图1B所示,该服务器包括通过系统总线连接的处理器、非易失性存储介质、内存储器和网络接口。其中,该服务器的非易失性存储介质存储有操作系统、数据库和网站的翻译装置,数据库中存储有各种语言之间的对应关系的翻译词典,该网站的翻译装置用于实现适用于服务器的一种网站的翻译方法。该服务器的处理器用于提供计算和控制能力,支撑整个服务器的运行。该服务器的内存储器为非易失性存储介质中的网站的翻译装置的运行提供环境,该内存储器中可储存有计算机可读指令,该计算机可读指令被所述处理器执行时,可使得所述处理器执行一种网站的翻译方法。该服务器的网络接口用于据以与外部的终端通过网络连接通信等。服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。本领域技术人员可以理解,图1B中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的服务器的限定,具体的服务器可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

图2为一个实施例中网站的翻译方法的流程图。如图2所示,一种网站的翻译方法,运行于终端或服务器上,包括:

步骤202,获取网站的脚本源码、超文本标记语言结构数据和数据获取层接收的返回数据。

本实施例中,网站是在因特网上根据一定的规则,使用HTML(Hyper TextMarkup Language,超文本标记语言)等工具制作的用于展示特定内容的网页集合。网站数据包括脚本源码、超文本标记语言结构数据和数据获取层接收的后端(后端是指网站后台)返回数据等。

通常网站有需要翻译的内容散落在JavaScript(脚本源码)、HTML结构数据和后端Ajax(数据获取层)返回数据中。

HTML结构数据可包含图片、链接、文本、音乐、程序等元素。超文本标记语言结构包括头部分和主体部分,头部分用于提供关于网页的信息,主体部分用于提供网页的具体内容。

步骤204,查找该脚本源码中包含指定语言字符串的源码节点,将该源码节点中的指定语言字符串进行翻译。

具体地,源码节点是指脚本源码中的节点。脚本源码中节点可包括第一节点类型的源码节点和第二节点类型的源码节点。第一节点类型可为BinaryExpression,表示包含“+”、“-”、“*”和“/”等连接运算的节点。第二节点类型可为Literal,表示单文本节点。

通过递归遍历查找脚本源码中的节点,查找到包含指定语言字符串的源码节点,再对该指定语言字符串按照词典中记载的指定语言与目标语言之间的对应关系进行翻译,得到对应的目标语言。其中,指定语言为根据需要设定的人类语言。例如,脚本源码由中国人开发设计,其中可能包含中文,该中文可作为指定语言。脚本源码由美国人开发设计,其中可能包含英文,该英文可作为指定语言。目标语言是指需要转化得到的人类语言。例如,网站显示的是中文版,需要显示英文版,则需要将中文转化为英文,则网站中的中文为指定语言,英文为目标语言,则将网站中的指定语言字符串进行翻译,得到目标语言字符串。

递归遍历是指从根目录逐级获取节点。

根据不同的翻译需求,采用不同的词典进行翻译。词典可记录各种语言之间的对应关系。

步骤206,查找该超文本标记语言结构数据中包含指定语言字符串的超文本结构节点,将该超文本结构节点中的指定语言字符串进行翻译。

本实施例中,超文本结构节点是指超文本语言结构数据中的节点。超文本语言结构数据中可包括元素节点、文本节点、属性节点、注释节点等。元素节点是指包含完整信息的节点。文本节点包含在元素节点内。属性节点是记录元素属性信息的节点。元素有一些属性,属性的作用是对元素进行详细描述,如元素名称、元素标识等。注释节点是指注释。

查找超文本标记语言结构数据中包含指定语言字符串的超文本结构节点,将该超文本结构节点中的指定语言字符串按照词典中的记载的指定语言与目标语言之间的对应关系进行翻译,得到对应的目标语言。

步骤208,查找该返回数据中包含指定语言字符串的返回数据,将该返回数据中的指定语言字符串进行翻译。

本实施例中,数据获取层中接收返回数据,在返回数据中可能包含指定语言字符串,通过递归遍历可查找到返回数据中的指定语言字符串,将指定语言字符串按照词典中的记载的指定语言与目标语言之间的对应关系进行翻译,得到对应的目标语言。

上述网站的翻译方法,通过获取网站的脚本源码、超文本标记语言结构数据和数据获取层接收的返回数据,查找其中的指定语言字符串进行翻译,开发人员只需维护一个语言版本的网站即可,转化成其他语言时,将网站的脚本源码、超文本标记语言结构数据和返回数据中的指定语言字符串进行翻译,即可快速翻译成其他语言的网站,降低了成本。

在一个实施例中,如图3所示,该查找该脚本源码中包含指定语言字符串的源码节点,将该源码节点中的指定语言字符串进行翻译的步骤包括:

步骤302,解析该脚本源码,生成抽象语法树。

具体地,抽象语法树是脚本源码抽象语法的树状表现形式。

步骤304,递归遍历该抽象语法树,得到第一节点类型的源码节点和第二节点类型的源码节点。

具体地,源码节点是指脚本源码中的节点。脚本源码中节点可包括第一节点类型的源码节点和第二节点类型的源码节点。第一节点类型可为BinaryExpression,表示包含“+”、“-”、“*”和“/”等连接运算的节点。第二节点类型可为Literal,表示单文本节点。

步骤306,递归遍历该第一节点类型的源码节点,从该第一节点类型的源码节点中查找到属于第二节点类型且节点属性中包含指定语言字符串的源码子节点时,将该源码子节点中的变量替换为占位符,将该源码子节点中的指定语言字符串与占位符形成完整字符串,为该完整字符串分配索引标识,将该源码子节点替换为函数类型节点,将该函数类型节点中的完整字符串进行翻译,在翻译之后,将该翻译后的完整字符串中的占位符替换为变量,得到翻译结果。

本实施例中,对第一节点类型BinaryExpression的源码节点进行递归遍历,若查找到类型为第二节点类型Literal且Value(节点属性)中包含指定语言字符串的源码子节点,则将源码子节点中的变量替换为占位符,将源码子节点中的指定语音字符与占位符形成完整字符串,为该完整字符串分配索引标识,在脚本源码头部为该源码子节点建立索引标识与完整字符串的映射关系。

将该源码子节点替换为函数类型节点,如callexpression类型,通过函数类型节点可以包含值为数组的arguments节点属性,用于传递函数变量。Arguments数组中的值可包括索引标识、占位符等。

第一节点类型的源码节点中包含拼接字符串,即包括指定语言字符串和变量等。

例如,指定语言字符串为:var tips=‘你输入的字符超出’+length+’个’。将指定语音字符串中的变量“+length+”替换为占位符“()”,将占位符与指定语言字符串形成完整字符串。为该完整字符串分配索引标识10001。

索引标识:10001:你输入的字符超出()个

源码:var tips=_f8e02fb18b140036(10001,[length],‘()’);

对完整字符串进行翻译得到目标语言(这里是英文)字符串The charactersyou entered are more than()。

则索引标识:10001:The characters you entered are more than()

源码:var tips=_f8e02fb18b140036(10001,[length],‘()’);

再将翻译后的完整字符串中占位符替换为对应的变量,即The characters youentered are more than‘+length+’。再将替换为变量后的翻译结果进行修正处理,得到修正后的翻译结果,如The characters you entered are more than length。

步骤308,获取该第二节点类型的源码节点中包含的指定语言字符串,将该指定语言字符串直接进行翻译。

本实施例中,第二节点类型Literal的源码节点中指定语言字符串,按照词典中的指定语言和目标语言之间的对应关系进行翻译,得到目标语言字符串。

上述对脚本源码进行解析得到抽象语法树,通过递归遍历抽象语法树得到第一节点类型的源码节点和第二节点类型的源码节点,针对包含指定语言字符串和变量的字符串的源码节点,通过对变量采用占位符替换,对该源码节点采用函数类型节点进行替换,在翻译后,实现函数返回,确保翻译后的语句通顺、正确。

在一个实施例中,查找该超文本标记语言结构数据中包含指定语言字符串的超文本结构节点,将该超文本结构节点中的指定语言字符串进行翻译,包括查找该超文本标记语言结构数据中包含指定语言字符串的超文本结构节点,将该超文本结构节点中的指定语言字符串按照词典中指定语言与目标语言之间的对应关系进行翻译,得到对应的目标语言字符串。

具体地,预先建立了各种词典,词典中记录有各种语言相互之间的对应关系。

在一个实施例中,该查找该返回数据中包含指定语言字符串的返回数据,将该返回数据中的指定语言字符串进行翻译,包括:查找该返回数据中包含指定语言字符串的返回数据,将该返回数据中的指定语言字符串按照词典中指定语言与目标语言之间的对应关系进行翻译,得到对应的目标语言字符串。

在一个实施例中,该查找该返回数据中包含指定语言字符串的返回数据,将该返回数据中的指定语言字符串进行翻译,包括:通过该数据获取层和数据处理层中插入的中间件,对该返回数据进行递归遍历,对该返回数据中的指定语言字符串进行翻译。

本实施例中,中间件是指设置在数据获取层Ajax和数据处理层之间的过滤层。通过中间件对返回数据进行递归遍历,查找到返回数据中的指定语言字符串,按照词典中指定语言与目标语言之间的对应关系进行翻译得到目标语言字符串。

此外,可根据指定语言代码自动生成或手动整理得到数据的对照表,对照表中记录有指定语音字符串到指定语言字符串的映射。在翻译过程中,将对照表中映射关系替换为指定语言字符串到目标语言字符串的映射。

在一个实施例中,上述网站的翻译方法还包括:获取待翻译的增量文件及待翻译的增量文件对应的翻译文件,将增量文件与对应的翻译文件更新到词典。

本实施例中,查找到网站的脚本源码、超文件标记语言结构数据和返回数据中的指定语言字符串,判断指定语言字符串在词典中是否存在对应的目标语言字符串,若不存在,则指定语言字符串为增量字符串,将增量字符串聚集在一起形成待翻译的增量文件,将待翻译的增量文件进行翻译得到对应的翻译文件,将增量文件和翻译文件更新到词典中。

翻译人员可在翻译项目下配置好输入、输出及词典路径,启动执行程序,程序会根据词典分析源码进行文本或变量转换,输出翻译后的网站版本。其中,输入为待翻译的源码文件存储路径,输出为完成翻译后的源码文件存储路径。有增量文件时,由翻译人员对增量文件进行翻译得到翻译文件。

翻译人员在网站入口处根据语言环境或者参数来引入对应版本的资源文件,完成网站的语言版本的切换。

图4为一个实施例中网站的翻译装置的结构框图。如图4所示,一种网站的翻译装置,包括数据获取模块402、第一翻译模块404、第二翻译模块406和第三翻译模块408。其中:

数据获取模块402用于获取网站的脚本源码、超文本标记语言结构数据和数据获取层接收的返回数据。

本实施例中,通常网站有需要翻译的内容散落在JavaScript、HTML结构数据和后端Ajax返回数据中。HTML结构数据可包含图片、链接、文本、音乐、程序等元素。超文本标记语言结构包括头部分和主体部分,头部分用于提供关于网页的信息,主体部分用于提供网页的具体内容。

第一翻译模块404用于查找该脚本源码中包含指定语言字符串的源码节点,将该源码节点中的指定语言字符串进行翻译。

具体地,源码节点是指脚本源码中的节点。脚本源码中节点可包括第一节点类型的源码节点和第二节点类型的源码节点。第一节点类型可为BinaryExpression,表示包含“+”、“-”、“*”和“/”等连接运算的节点。第二节点类型可为Literal,表示单文本节点。

第二翻译模块406用于查找该超文本标记语言结构数据中包含指定语言字符串的超文本结构节点,将该超文本结构节点中的指定语言字符串进行翻译。

本实施例中,超文本结构节点是指超文本语言结构数据中的节点。超文本语言结构数据中可包括元素节点、文本节点、属性节点、注释节点等。元素节点是指包含完整信息的节点。文本节点包含在元素节点内。属性节点是记录元素属性信息的节点。元素有一些属性,属性的作用是对元素进行详细描述,如元素名称、元素标识等。注释节点是指注释。

第三翻译模块408用于查找该返回数据中包含指定语言字符串的返回数据,将该返回数据中的指定语言字符串进行翻译。

本实施例中,数据获取层中接收返回数据,在返回数据中可能包含指定语言字符串,通过递归遍历可查找到返回数据中的指定语言字符串,将指定语言字符串按照词典中的记载的指定语言与目标语言之间的对应关系进行翻译,得到对应的目标语言。

上述网站的翻译装置,通过获取网站的脚本源码、超文本标记语言结构数据和数据获取层接收的返回数据,查找其中的指定语言字符串进行翻译,开发人员只需维护一个语言版本的网站即可,转化成其他语言时,将网站的脚本源码、超文本标记语言结构数据和返回数据中的指定语言字符串进行翻译,即可快速翻译成其他语言的网站,降低了成本。

图5为一个实施例中第一翻译模块的内部结构框图。如图5所示,第一翻译模块404包括解析单元4041、递归单元4042、第一翻译单元4043和第二翻译单元4044。其中:

解析单元4041用于解析该脚本源码,生成抽象语法树。

具体地,抽象语法树是脚本源码抽象语法的树状表现形式。

递归单元4042用于递归遍历该抽象语法树,得到第一节点类型的源码节点和第二节点类型的源码节点。

具体地,源码节点是指脚本源码中的节点。脚本源码中节点可包括第一节点类型的源码节点和第二节点类型的源码节点。第一节点类型可为BinaryExpression,表示包含“+”、“-”、“*”和“/”等连接运算的节点。第二节点类型可为Literal,表示单文本节点。

第一类翻译单元4043用于递归遍历该第一节点类型的源码节点,从该第一节点类型的源码节点中查找到属于第二节点类型且节点属性中包含指定语言字符串的源码子节点时,将该源码子节点中的变量替换为占位符,将该源码子节点中的指定语言字符串与占位符形成完整字符串,为该完整字符串分配索引标识,将该源码子节点替换为函数类型节点,将该函数类型节点中的完整字符串进行翻译,在翻译之后,将该翻译后的完整字符串中的占位符替换为变量,得到翻译结果。

本实施例中,对第一节点类型BinaryExpression的源码节点进行递归遍历,若查找到类型为第二节点类型Literal且Value(节点属性)中包含指定语言字符串的源码子节点,则将源码子节点中的变量替换为占位符,将源码子节点中的指定语音字符与占位符形成完整字符串,为该完整字符串分配索引标识,在脚本源码头部为该源码子节点建立索引标识与完整字符串的映射关系。

将该源码子节点替换为函数类型节点,如callexpression类型,通过函数类型节点可以包含值为数组的arguments节点属性,用于传递函数变量。Arguments数组中的值可包括索引标识、占位符等。

第一节点类型的源码节点中包含拼接字符串,即包括指定语言字符串和变量等。

第二类翻译单元4044用于获取该第二节点类型的源码节点中包含的指定语言字符串,将该指定语言字符串直接进行翻译。

本实施例中,第二节点类型Literal的源码节点中指定语言字符串,按照词典中的指定语言和目标语言之间的对应关系进行翻译,得到目标语言字符串。

上述对脚本源码进行解析得到抽象语法树,通过递归遍历抽象语法树得到第一节点类型的源码节点和第二节点类型的源码节点,针对包含指定语言字符串和变量的字符串的源码节点,通过对变量采用占位符替换,对该源码节点采用函数类型节点进行替换,在翻译后,实现函数返回,确保翻译后的语句通顺、正确。

在一个实施例中,该第二翻译模块406还用于查找该超文本标记语言结构数据中包含指定语言字符串的超文本结构节点,将该超文本结构节点中的指定语言字符串按照词典中指定语言与目标语言之间的对应关系进行翻译,得到对应的目标语言字符串。

具体地,预先建立了各种词典,词典中记录有各种语言相互之间的对应关系。

在一个实施例中,第三翻译模块408还用于查找该返回数据中包含指定语言字符串的返回数据,将该返回数据中的指定语言字符串按照词典中指定语言与目标语言之间的对应关系进行翻译,得到对应的目标语言字符串。

在一个实施例中,该第三翻译模块408还用于通过该数据获取层和数据处理层中插入的中间件,根据对照表,对该返回数据进行递归遍历,对该返回数据中的指定语言字符串进行翻译。

本实施例中,中间件是指设置在数据获取层Ajax和数据处理层之间的过滤层。通过中间件对返回数据进行递归遍历,查找到返回数据中的指定语言字符串,按照词典中指定语言与目标语言之间的对应关系进行翻译得到目标语言字符串。

在一个实施例中,上述网站的翻译装置还包括:更新模块,用于获取待翻译的增量文件及待翻译的增量文件对应的翻译文件,将增量文件与对应的翻译文件更新到词典。

本实施例中,查找到网站的脚本源码、超文件标记语言结构数据和返回数据中的指定语言字符串,判断指定语言字符串在词典中是否存在对应的目标语言字符串,若不存在,则指定语言字符串为增量字符串,将增量字符串聚集在一起形成待翻译的增量文件,将待翻译的增量文件进行翻译得到对应的翻译文件,将增量文件和翻译文件更新到词典中。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1