基于网页浏览器引擎的网页多语言动态切换方法及系统的制作方法

文档序号:6340353阅读:233来源:国知局
专利名称:基于网页浏览器引擎的网页多语言动态切换方法及系统的制作方法
技术领域
本发明涉及网页语言切换领域,尤其一种基于浏览器内核引擎的网页多语动态切换方法。本发明还涉及实现该方法的系统。
背景技术
在手持设备的浏览器界面中要实现多语言动态切换,目前通常采用的方法是在设备端存储多国语言的字符串,然后在浏览器加载的页面中运行JavMcript脚本,根据当前语言设置,对网页中出现的本地化字符串进行动态替换。这种方法的缺点是,浏览器每次加载网页时,都需要额外执行脚本进行替换,这给系统带来了额外的开销,减慢了网页载入与显示的速度,而且,JavaScript脚本从外部载入本地化字符串,势必要涉及到运行环境的切换,即脚本解释环境与多语存储环境之间的频繁跳转,因此,语言切换效率比较低。

发明内容
本发明要解决的技术问题是提供一种基于网页浏览器引擎的网页多语言动态切换方,它可以提高网页语言切换的效率。为解决上述技术问题,本发明的基于网页浏览器引擎的网页多语言动态切换方法,包括以下步骤1)定义HTML网页的多语化标签,该标签内的文本是需要进行多语言动态切换的文本;2)在浏览器引擎构建HTML网页的DOM树之前,插入以下步骤当浏览器引擎解析到多语化标签时,记录该标签,并拦截该标签内的文本;根据该文本的当前语言,查找该文本的翻译字符串,并用该翻译字符串替换该文本原来的字符串。本发明要解决的另一技术问题是提供一种用于实现权利要求1所述方法的系统。为解决上述技术问题,本发明的基于网页浏览器引擎的网页多语言动态切换系统,包括有拦截模块,内嵌在浏览器引擎中,用于在浏览器引擎解析网页时,对需要进行多语言动态切换的文本进行拦截,并传送给多语存储查询模块;多语存储查询模块,内嵌在浏览器引擎中,用于接收拦截模块传送来的文本,并根据该文本的当前语言,对文本内容进行翻译和更新。所述多语存储查询模块中包含一个多语种词表,用于存储不同语种的词条。本发明通过修改浏览器引擎的底层代码,对其HTML解析过程进行拦截,在浏览器引擎进行网页解析,获取网页字符串时,进行多语查询与动态替换,与传统的运行 JavaScript脚本进行字符串动态切换的方法相比,本发明只需在HTML页面解析时替换一次,无须在页面重载时再次切换并执行脚本,从而使显示效率提升了一倍以上。


图1是现有的WfelDkit解析HTML的流程图;图2是插入本发明的替换流程后,Webkit解析HTML的流程图。
具体实施例方式为对本发明的技术内容、特点与功效有更具体的了解,现结合本发明一可行实施例及附图,详述如下Webkit是一个开源的浏览器内核引擎,其源码结构清晰,易于维护,是目前主流的浏览器内核之一,在PC平台和手持设备上,应用十分广泛,尤其是基于Android平台的手持设备,往往首选WeWdt作为其浏览器的内核引擎。本实施例即选择了 Androidl. 5作为实施平台。Webkit原有的解析HTML的流程请参阅图1所示,包括以下步骤Dffebkit使用其自带的加载器,从网络或者本地加载HTML源码。 2) Webkit的HTMLTokenizer (HTML分词器)对该HTML源码进行词法分析,获得各段标签(Tag)与文字对象。3) Webkit的HTMLParser (HTML解析器)接收步骤2)分析得到的词法对象,并进行解析和处理,然后以这些词法对象为节点,生成DOM树。4) Webkit对DOM树进行渲染,并绘制到显示屏幕上。本实施例对WeWdt的底层代码进行了修改,在WeWdt中新嵌入了拦截模块和多语存储查询模块,拦截模块用于在HTMLParser解析时,对需要进行多语翻译的文本进行拦截,并传送给多语存储查询模块进行翻译。多语存储查询模块中存储有多语种词表, 用于将拦截模块传送过来的文本翻译成指定的语言。另外,在修改WeWdt底层代码前, 本发明对HTML网页中需要进行多语翻译的内嵌文本的标签做了约定,本实施例中约定为 < multilang >,例如,源代码< multilang > text < /multilang >中,“text”就是需要进行多语翻译的字符串。Webkit底层代码修改后,Webkit解析HTML的流程也发生相应变化,新的解析流程可参阅图2所示。在WfelDkit加载HTML源码,并使用HTMUTokenizer对其进行词法分析后, Webkit的HTMLParser对每一个文字节点进行解析。当HTMLParser解析到< multilang >标签时,将该标签插入到DOM树中,拦截模块就在此处进行拦截,记录下该标签,然后,在 HTMLParser解析到纯文本“text”时,拦截模块就将该字符串“text”传送给多语存储查询模块。多语存储查询模块根据当前的语言设置(例如,中文),在多语种词表中查找搜寻翻译字符串,得到“文本” 二字。多语存储查询模块把该翻译字符串返回至WeWdt被拦截处, 将原来的字符串“text”替换为“文本”,然后,HTMLParser将替换后的字符串插入到DOM树中,由WeWdt对DOM树进行渲染并绘制显示到屏幕上,如此,便完成了对原有文字节点的动态替换。
权利要求
1.一种基于网页浏览器引擎的网页多语言动态切换方法,其特征在于,包括以下步骤1)定义HTML网页的多语化标签,该标签内的文本是需要进行多语言动态切换的文本;2)在浏览器引擎构建HTML网页的DOM树之前,插入以下步骤当浏览器引擎解析到多语化标签时,记录该标签,并拦截该标签内的文本; 根据该文本的当前语言,查找该文本的翻译字符串,并用该翻译字符串替换该文本原来的字符串。
2.一种实现权利要求1所述方法的网页多语言动态切换系统,其特征在于,包括有 拦截模块,内嵌在浏览器引擎中,用于在浏览器引擎解析网页时,对需要进行多语言动态切换的文本进行拦截,并传送给多语存储查询模块;多语存储查询模块,内嵌在浏览器引擎中,用于接收拦截模块传送来的文本,并根据该文本的当前语言,对文本内容进行翻译和更新。
3.如权利要求2所述的网页多语言动态切换系统,其特征在于所述多语存储查询模块中包含有一个多语种词表,用于存储不同语种的词条。
全文摘要
本发明公开了一种基于网页浏览器引擎的网页多语言动态切换方法,在浏览器引擎加载网页并解析到约定的多语化标签时,拦截标签内的文本,进行翻译与动态替换。本发明还公开了实现该方法的系统,包括拦截模块和多语存储查询模块,均内嵌在浏览器引擎中,拦截模块用于在网页浏览器引擎进行页面解析时,拦截多语化标签内的文本,传送给多语存储查询模块;多语存储查询模块用于将拦截的文本翻译成指定语言,并对文本内容进行更新。该多语言动态切换方法及系统,通过修改浏览器引擎的底层代码,使网页语言只需在HTML页面解析时替换一次,无须在页面重载时再次替换,从而提高了网页语言动态切换的效率。
文档编号G06F17/30GK102567384SQ20101061150
公开日2012年7月11日 申请日期2010年12月29日 优先权日2010年12月29日
发明者刘啸, 刘超 申请人:盛乐信息技术(上海)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1