CN112130952A - 多语言显示方法、装置、设备及产品 - Google Patents
多语言显示方法、装置、设备及产品 Download PDFInfo
- Publication number
- CN112130952A CN112130952A CN202011065809.4A CN202011065809A CN112130952A CN 112130952 A CN112130952 A CN 112130952A CN 202011065809 A CN202011065809 A CN 202011065809A CN 112130952 A CN112130952 A CN 112130952A
- Authority
- CN
- China
- Prior art keywords
- language
- content
- plug
- code
- webpage
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
- G06F9/454—Multi-language systems; Localisation; Internationalisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/40—Processing or translation of natural language
- G06F40/58—Use of machine translation, e.g. for multi-lingual retrieval, for server-side translation for client devices or for real-time translation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Human Computer Interaction (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Machine Translation (AREA)
- Information Transfer Between Computers (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本申请公开了一种多语言显示方法、装置、设备及产品,所述方法包括:显示网页内容,所述网页内容包括第一语言格式的文字内容;通过所述插件在所述网页内容的网页代码中,遍历提取所述第一语言格式的所述文字内容对应的代码字段;通过所述插件生成所述代码字段的唯一标识符和第二语言格式的所述文字内容,以及将所述唯一标识符注入所述代码字段;响应于语言切换操作,通过所述唯一标识符将所述网页内容中的所述第一语言格式的文字内容,切换显示为所述第二语言格式的所述文字内容。该方法依赖于插件进行,在语言转换的过程中,不会改变硬盘中的网页代码,即可实现多语言显示。
Description
技术领域
本申请涉及计算机翻译领域,特别涉及一种网页内容的多语言显示方法、装置、设备及产品。
背景技术
多语言显示指在浏览器或具有网页浏览能力的应用程序中,可以将显示的文本内容的语言种类翻译成其他语言种类,例如,浏览器显示的文本内容为中文,有多语言显示能力的浏览器可以将中文格式的文字内容翻译为英文格式的文字内容。
在相关技术中,为使浏览器可以实现多语言显示,先由开发人员找出网页代码中所有与网页内容的文字内容对应的代码字段,再对前述的代码字段进行改写,使得修改后的代码字段可以实现多语言显示。
但是相关技术会改写硬盘中的网页代码,对网页代码的结构造成破坏。
发明内容
本申请实施例提供了一种多语言显示方法、装置、设备及产品,应用于具有插件的浏览器中,该方法可以通过插件实现多语言显示,不会破坏硬盘中的代码结构,而且该方法由插件自动寻找不需要人为的参与,此外无需重复加载网页代码。所述技术方案如下:
根据本申请的一个方面,提供了一种多语言显示方法,所述方法包括:
显示网页内容,所述网页内容包括第一语言格式的文字内容;
通过所述插件在所述网页内容的网页代码中,遍历提取所述文本内容对应的代码字段;
通过所述插件生成所述代码字段的唯一标识符和第二语言格式的所述文字内容,以及将所述唯一标识符注入所述代码字段;
响应于语言切换操作,通过所述唯一标识符显示所述网页内容,所述网页内容包括采用所述第二语言格式的所述文字内容。
根据本申请的另一方面,提供了一种多语言显示装置,所述装置包括:
显示模块,用于显示网页内容,所述网页内容包括第一语言格式的文字内容;
提取模块,用于通过所述插件在所述网页内容的网页代码中,遍历提取所述文本内容对应的代码字段;
注入模块,用于通过所述插件生成所述代码字段的唯一标识符和第二语言格式的所述文字内容,以及将所述唯一标识符注入所述代码字段;
所述显示模块,还用于响应于语言切换操作,通过所述唯一标识符显示所述网页内容,所述网页内容包括采用所述第二语言格式的所述文字内容。
可选地,所述注入模块包括:
标识符生成子模块,用于通过所述插件生成所述代码字段的唯一标识符和第二语言包,所述第二语言包包括所述唯一标识符和所述第二语言格式的所述文字内容之间的对应关系;
存储子模块,用于通过所述插件将所述第二语言包存储至所述网页代码对应的指定目录。
可选地,所述注入模块还包括:
参数获取子模块,用于获取所述网页代码中的语言配置参数,所述语言配置参数用于指示所述第二语言格式;
可选地,所述注入模块还包括:
翻译子模块,用于通过所述插件根据所述语言配置参数的指示,对所述第一语言格式的文本内容进行翻译,得到所述第二语言格式的所述文本内容。
可选地,所述提取模块包括:
扫描子模块,用于通过所述插件扫描所述网页内容在内存中已加载的网页代码;
语法树生成子模块,用于通过所述插件根据扫描结果生成所述网页代码的抽象语法树;
字段提取子模块,用于通过所述插件在所述抽象语法树中遍历提取所述文本内容对应的代码字段。
可选地,所述字段提取子模块,还用于通过所述插件在所述抽象语法树中遍历提取具有所述第一语言格式的文本内容对应的代码字段。
可选地,所述语法树生成子模块,还用于在所述网页代码发生改变的情况下,通过所述插件扫描所述网页代码中发生改变的代码字段;通过所述插件根据扫描结果更新所述网页代码的抽象语法树。
根据本申请的另一方面,提供了一种计算机设备,所述计算机设备包括:处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上方面所述的多语言显示方法。
根据本申请的另一方面,提供了一种计算机产品程序,所述产品程序中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上方面所述的多语言显示方法。
本申请实施例提供的技术方案带来的有益效果至少包括:
通过插件遍历提取文本内容对应的代码字段,并在代码字段上注入唯一标识符,并通过语言切换操作实现多语言显示。该方法依赖于插件进行,在语言转换的过程中,不需要开发人员修改硬盘中的代码,而且该方法由插件自动寻找不需要人为的参与,此外无需重复加载网页代码。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一个示例性实施例提供的计算机设备的结构框图;
图2是本申请一个示例性实施例提供的多语言显示方法的流程图;
图3是本申请一个示例性实施例提供的多语言显示方法的界面示意图;
图4是本申请一个示例性实施例提供的多语言显示方法的界面示意图;
图5是本申请一个示例性实施例提供的多语言显示方法的界面示意图;
图6是本申请一个示例性实施例提供的多语言显示方法的流程图;
图7是本申请一个示例性实施例提供的第一语言包的界面显示图;
图8是本申请一个示例性实施例提供的一种文字内容更新方法的流程图;
图9是本申请一个示例性实施例提供的浏览器的界面示意图;
图10是本申请一个示例性实施例提供的应用程序的界面示意图;
图11是本申请一个示例性实施例提供的多语言显示装置的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
首先,对本申请实施例中涉及的名词进行介绍:
插件:指依托浏览器而运行的程序。浏览器可以调用插件,利用插件实现多语言显示。在本申请中,浏览器可以是常规意义上的浏览器,例如xx浏览器、yy浏览器和zz浏览器等;也可以指具有网页浏览功能的应用程序,例如,使用“xyz”应用程序实现网页浏览、使用“abc”应用程序实现网页浏览等。
抽象语法树(Abstract Syntax Tree,AST):或简称语法树,是代码语法结构的一种抽象表示。抽象语法树以树状图的形式表现源代码的语法结构,在树状图的每个节点上均存放着代码中的一种代码结构或代码字段。每个节点上存放的内容可以相同,也可以不相同。
Javascript:一种高级编程语言。
Babel:一种工具链,用于将新版本的计算机代码转换为向后兼容的JavaScript语言,以便新版本的计算机代码可以运行在当前版本或旧版本的浏览器或其他非浏览器环境中。
I18n:指国际化,其来源英文单词“internationalization”的首和末字符i和n。18为中间的字符数。
图1示出了本申请一个示例性实施例提供的计算机设备的结构框图。该结构框图包括:中央处理器(Central Processing Unit,CPU)101、存储器102、输出设备103和输入设备104。其中,存储器102包括内存106和硬盘107。
在输入设备104接收到语言切换操作后,输入设备104生成相应的语言切换指令并将语言切换指令送入内存106。由中央处理器101从内存106中读取语言切换指令。中央处理器101根据语言切换指令,控制硬盘107将网页代码送入内存106。中央处理器101从内存103中读取网页代码和插件的代码。由中央处理器101对网页代码进行相应的处理。处理完成后,中央处理器101将处理结果输出至内存106,内存106再将处理结果输出至输出设备103。
中央处理器101是计算机系统的运算核心和控制核心,用于信息处理和程序运行。中央处理器不仅用于控制计算机中各个部件单元的工作,还用于执行计算机内各种算数和逻辑运算操作。中央处理器至少包括控制器和运算器中的至少一种。
存储器102至少存储有带有插件的浏览器。其中,硬盘107用于存放硬盘107可以是固态硬盘(Solid State Drive,HSD)、混合硬盘(Hybrid Hard Drive,HHD)和机械硬盘(Hard Disk Drive,HDD)中的至少一种。内存106用于暂时存放中央处理器中的运算数据,当计算机开始运行时,相应需要被运算的数据会从内存中被调到中央处理器中进行运算,内存106可以是同步动态随机存储器(Synchronous Dynamic Random-Access Memory,SDRAM)、双倍速率同步动态随机存储器(Double Data Rate Synchronous DynamicRandom-Access Memory,DDR SDRAM)和RDRAM(Rambus Dynamic Random-Access Memory,由Rambus公司开发的动态随机存储器)中的至少一种。
输出设备103用于输出计算机处理后的结果。输出设备103包括:显示器、打印机、绘图仪、影像输出系统、语音输出系统和磁记录设备中的至少一种。示例性的,在显示器上显示网页内容,网页内容包括第二语言形式的文本内容。
图2示出了本申请一个示例性实施例提供的多语言显示方法的流程图,该方法可由图1中所示的计算机设备100实施,该方法运用于开发者开发阶段。该方法包括如下步骤:
步骤201,显示网页内容,网页内容包括第一语言格式的文字内容。
网页内容指在网页上显示的各类元素,示例性的,网页内容包括文字内容、图像内容、视频内容、网页链接和音频内容中的至少一种。
第一语言格式指在网页内容中显示语言所用的格式。示例性的,第一语言格式为中文格式。值得说明的是,在网页内容的显示内容中,用于显示的语言可能不止一种,此时第一语言格式指其中一种显示语言。示例性的,网页内容同时显示了中文、英文和俄文,将中文格式确定为第一语言格式。
示例性的参考图3,浏览器显示网页内容301,图3示出了本申请一个示例性实施例提供的多语言显示方法的界面示意图。在网页内容301中,其白色圆圈内为第一语言格式的文本内容“点击改变”、“测试文字”和“学习React”。网页301共显示了两种语言格式:中文格式和英文格式,将中文格式确定为第一语言格式。
步骤202,通过插件在网页内容的网页代码中,遍历提取文字内容对应的代码字段。
计算机设备通过插件在网页内容的网页代码中,遍历提取文字内容对应的代码字段。
网页代码用于构造网页,网页代码中的代码字段可以构造网页中的文字内容、图像内容、视频内容、网页链接和音频内容中的至少一种。
网页内容和网页代码中的代码字段呈一一对应关系。示例性的,网页内容为显示“中文文案”这四个汉字,则存在代码字段“const text='中文文案'”与网页内容相对应。
步骤203,通过插件生成代码字段的唯一标识符和第二语言格式的文字内容,以及将唯一标识符注入代码字段。
计算机设备通过插件生成代码字段的唯一标识符和第二语言格式的文字内容,以及将唯一标识符注入代码字段。
唯一标识符用于标识出代码字段,该唯一标识符具有唯一性,即不同的代码字段所对应的唯一标识符不同。该唯一标识符可以是字符,也可以是字符串。示例性的,某一代码字段为“中文文案”,其唯一标识符为“fakdfsa4”;另一代码字段为“内部斗争”,其唯一标识符为“fs564dfs”,这两者的唯一标识符所用的字符串不同,故这两个唯一标识符不同。
唯一标识符可以按照插件内置的规则生成,也可以随机生成。
第二语言格式和第一语言格式不同。示例性的,第一语言格式为中文格式,第二语言格式为英文格式。
将唯一标识符注入代码字段指将唯一标识符添加到代码字段中的,但这种方式不会影响代码字段的结构和功能。示例性的,将唯一标识符“fakdfsa4”注入到代码字段“中文文案”中,该唯一标识符不会影响代码字段的结构和功能。
步骤204,响应于语言切换操作,通过唯一标识符显示网页内容,网页内容包括采用第二语言格式的文字内容。
计算机设备响应于语言切换操作通过唯一标识符显示网页内容,网页内容包括采用第二语言格式的文字内容。
语言切换操作用于将网页内容第一语言格式的文字内容切换为第二语言格式的文字内容。该语言切换操作包括:点击虚拟按键、双击虚拟按键、长按虚拟按键、拖动虚拟按键、点击键盘按键、双击键盘按键、长按键盘按键、预设手势、摇晃计算机设备中的至少一种。
浏览器根据唯一标识符,获取第二语言格式的文本内容,并渲染第二语言格式的文本内容,将其显示在网页内容上。示例性的,第二语言格式的文字内容为“Excuse me”,其对应的唯一标识符为“nfafb4d”;另一第二语言格式的文字内容为“Thank you”,其对应的唯一标识符为“sa1c4sd4”,两者的唯一标识符不同。
在图3中,语言切换操作为点击“点击改变”所在虚拟按键,完成语言切换操作后,网页301变为网页302。其中,网页301中白色圆圈内的文字内容“点击改变”、“测试文字”和“学习React”转换为网页302中白色圆圈内的文字内容“Click to change”、“Test text”和“Learn React”。在语言切换的过程中,在网页301中除上述文字内容“点击改变”、“测试文字”和“学习React”发生变化以外,网页301的其他的网页内容均未发生改变。
综上所述,本方法通过插件遍历提取文本内容对应的代码字段,并在代码字段上注入唯一标识符,并通过语言切换操作实现多语言显示。该方法不需要开发人员硬盘中的代码结构,而且该方法由插件自动寻找不需要人为的参与,此外无需重复加载网页代码。
为进一步说明本申请方案多语言显示的特点,参考图4和图5,图4示出了本申请一个示例性实施例提供的多语言显示方法的界面示意图。图5示出了本申请一个示例性实施例提供的多语言显示方法的界面示意图。
请参考图4,在图4中,网页内容401为响应语言切换操作前的网页内容。其中,黑色圆圈内为第一语言格式的文字内容。响应语言切换操作后,网页内容401变为网页内容402。在网页402内容内容中,黑色圆圈内为第二语言格式的文字内容。在语言切换的过程中,仅有网页内容401中黑色圆圈内的第一语言格式的文字内容变为了网页内容402中黑色圆圈内的第二语言格式的文字内容,网页内容401中的其他网页内容没有发生改变。
请参考图5,在图5中,网页内容501为响应语言切换操作前的网页内容。其中,所有黑色圆圈内为第一语言格式的文字内容。响应语言切换操作后,网页内容501变为网页内容502。在网页内容502中,所有黑色圆圈内为第二语言格式的文字内容。在语言切换的过程中,仅有网页内容401中所有黑色圆圈内的第一语言格式的文字内容变为了网页内容402中所有黑色圆圈内的第二语言格式的文字内容,网页内容501中的其他网页内容没有发生改变。
综上所述,本申请方案可以做到在语言切换时,仅使文字内容发生变化,而其他网页内容不需要刷新和二次加载。
图6示出了本申请一个示例性实施例提供的多语言显示方法的流程图,该方法可由图1中所示的计算机设备100实施。该方法包括如下步骤:
步骤601,显示网页内容,网页内容包括第一语言格式的文字内容。
计算机设备显示网页内容,网页内容包括第一语言格式的文字内容。
计算机设备从服务器加载网页代码到本计算机设备的内存中,计算机设备根据内存中的网页代码渲染网页内容。其中网页内容中的文本由网页代码中的代码片段渲染得到。
步骤602,通过插件扫描网页内容在内存中已加载的网页代码。
计算机设备通过插件扫描网页内容在内存中已加载的网页代码。
内存用于暂时存放中央处理器中的数据。当计算机设备获取到从服务器加载的网页代码后,将获取到的网页代码存入内存中并根据网页代码渲染网页内。计算机设备通过插件扫描内存中已加载的网页代码。
已加载的网页代码指网页代码已经经过计算机设备处理,将该网页代码所对应的网页已经显示在输出设备上。
步骤603,通过插件根据扫描结果生成网页代码的抽象语法树。
计算机设备通过插件根据扫描结果生成网页代码的抽象语法树。
网页代码的抽象语法树指根据网页代码的语法,将网页代码拆分为不同的类型,并将拆分后的网页代码以树状图的形式表示。示例性的,该类型包括jsx(一种Javascript的语法扩展,可以被转换为合法的Javascript)文本、模板元素、调用表达式和字符串文本中的至少一种。示例性的,某一段网页代码为“const abc='中文文案'”,在生成抽象语法树的过程中,会将该网页代码拆分为类型“const”,变量名“abc”,字符“中文文案”。
示例性的,插件根据Babel工具链的抽象语法树规范和解析器,对Javascript代码以及react(一种架构的名称)中的jsx或tsx(用到jsx语法的文件)进行遍历扫描。
示例性的,对于vue(用于构建用户界面的框架)这种模板结构的代码,可以使用vue官方解析器对vue中的template(vue中的一种标签名)部分网页代码会进行解析。而对于script(vue中的一种标签名)部分网页代码,使用Babel工具链的抽象语法树规范和解析器进行遍历扫描。
步骤604,通过插件在抽象语法树中遍历提取文本内容对应的代码字段。
计算机设备通过插件在抽象语法树中遍历提取文本内容对应的代码字段。
在抽象语法树中,树上的每个节点都是网页代码中的代码字段,每种结构都和网页内容相对应。示例性的,抽象语法树的一个节点上是“切换语言”,则该该节点与网页内容中的文字内容“切换翻译”相对应。
可选地,计算机设备通过插件在所述抽象语法树中遍历提取具有所述第一语言格式的文本内容对应的代码字段。在开发人员进行开发的过程中,会使用不同的开发语言进行开发。示例性的,开发语言可以是C语言、JavaScript、Java语言和结构化查询语言(Structured Query Language,SQL)中的至少一种。其中,第一语言格式的文本内容在抽象语法树中会有对应的代码字段。
步骤605,获取网页代码中的语言配置参数,语言配置参数用于指示第二语言格式。
计算机设备获取网页代码中的语言配置参数,语言配置参数用于指示第二语言格式。
语言配置参数与第二语言格式相对应。示例性的,语言配置参数“En”用于指示英文格式,语言配置参数“Ch”用于指示中文格式。
在一个具体的实施例中,示例性的,语言配置参数存储于网页代码中,由计算机设备加载。
步骤606,通过插件生成代码字段的唯一标识符和第二语言包,第二语言包包括唯一标识符和第二语言格式的文字内容之间的对应关系。
计算机设备通过插件生成代码字段的唯一标识符和第二语言包,第二语言包包括唯一标识符和第二语言格式的文字内容之间的对应关系。
第二语言包中存储了唯一标识符和第二语言格式的文字内容之间的对应关系。存储形式可以是“唯一标识符:第二语言格式的文字内容”,也可以是“第二语言格式的文字内容:唯一标识符”。示例性的,第二语言包中存储的唯一标识符和第二语言格式的文字内容之间的对应关系为“i8szga”:“点击改变”,“7c7wt8”:“测试文字”,“33jxcq”:“学习React”。
在不存在第二语言包的情况下,通过插件新建一个空语言包作为初始化的第二语言包。该初始化的空语言包中未存储唯一标识符和第二语言格式的文字内容之间的对应关系。
步骤607,通过插件将第二语言包存储至网页代码对应的指定目录。
计算机设备通过插件将第二语言包存储至网页代码对应的指定目录。
网页代码对应的指定目录指网页的代码目录,该代码目录存储于硬盘上。示例性的,该代码目录为“demo>src>locales>cn.json”。
在不存在指定目录的情况下,通过插件新建指定目录,将第二语言包存储至该新建指定目录。新建指定目录的地址可以是插件默认的,也可以由用户决定。
在一个具体的实施例中,计算机设备中还存储有第一语言包,第一语言包包括所述唯一标识符和所述第一语言格式的所述文字内容之间的对应关系。
在不存在第一语言包时,计算机设备通过插件生成所述代码字段的所述第一语言包,所述第一语言包包括所述唯一标识符和所述第一语言格式的所述文字内容之间的对应关系。
请参照图7,图7示出了一个示例性实施例提供的第一语言包的界面示意图。其中,在示出的界面上,左侧的白色圆圈内为第一语言包的名称及后缀,右侧的圆圈内为第一语言包存储的唯一标识符和所述第一语言格式的文字内容之间的对应关系。示例性的,图7中的所示出第一语言包的名称及后缀可以是“cn.json”、“en.json”和“zh-TW.json”,唯一标识符和所述第一语言格式的文字内容之间的对应关系可以是“l8szga”:“点击改变”、“7c7wt8”:“测试文字”和“33jxcq”:“学习React”。
通过所述插件将所述第一语言包存储至所述网页代码对应的指定目录。
步骤608,将唯一标识符注入代码字段。
计算机设备将唯一标识符注入内存中的代码字段。
计算机设备将生成的唯一标识符添加到相应的代码字段中,这种方式不会影响代码的结构和功能。示例性的,在代码字段“const abc='中文文案'”中注入唯一标识符“duiajf321”,原代码字段变为“const abc='中文文案',<duiajf321>”。
步骤609,响应于语言切换操作,通过唯一标识符显示网页内容,网页内容包括采用第二语言格式的文字内容。
计算机设备响应于语言切换操作通过唯一标识符显示网页内容,网页内容包括采用第二语言格式的文字内容。
计算机设备根据唯一标识符,获取第二语言格式的文本内容,并渲染第二语言格式的文本内容,将其显示在网页内容上。示例性的,第二语言格式的文字内容为“Excuseme”,其对应的唯一标识符为“nfafb4d”;另一第二语言格式的文字内容为“Thank you”,其对应的唯一标识符为“sa1c4sd4”,两者的唯一标识符不同。
需要说明的是,该方法应用于开发者的开发阶段。
综上所述,本方法通过插件遍历提取文本内容对应的代码字段,并在代码字段上注入唯一标识符,并使用第二语言包存储唯一标识符和第二语言格式的文字内容之间的对应关系以实现多语言显示。该方法依赖于插件进行,开发人员可以使用简易的代码编写方式,避免对代码结构的破坏,而且该方法可以实现多种语言的翻译,此外,插件可以对第一语言包和第二语言包进行维护,减少无用数据。
在上一个实施例中,说明了一种多语言显示的方法,接下来介绍一种网页中的文字内容发生更新的方法。图8示出了本申请一个示例性实施例提供的一种文字内容更新方法的流程图。该方法可运用于图1所示的计算机设备100中。该方法包括如下步骤:
步骤801,网页代码发生改变。
本地服务器中的网页代码发生改变。
网页代码存储于服务器的硬盘中。
发生变化的原因可以是开发人员修改网页代码,也可以是网页代码的部分代码字段发生错误。
网页代码发生改变可以认为是网页代码中的代码字段发生改变。
步骤802,通过插件扫描网页代码中发生改变的代码字段。
计算机设备通过插件扫描网页代码中发生改变的代码字段。
计算机设备仅扫描发生改变的代码字段。示例性的,原代码字段为“const abc='中文文案'”,改变后的代码字段为“const abc='更换配件'”。对于改变后的代码字段,中央处理器仅扫描“更换配件”这一代码字段。而对“const”和“abc”字段则不会进行扫描。
在步骤802之前还包括:计算机设备侦听到网页代码发生改变。计算机设备可以配合开发模式对服务器硬盘中的网页代码进行侦听,判断网页代码是否发生变化。示例性的,中央处理器侦听网页代码的方式可以是启动另一个本地服务器,通过本地服务器确认网页代码是否发生改变。
步骤803,通过插件根据扫描结果更新网页代码的抽象语法树。
计算机设备通过插件根据扫描结果更新网页代码的抽象语法树。
更新网页代码的抽象语法树的方法包括:修改抽象语法树的节点、删除抽象语法树的节点、增加抽象语法树的节点。示例性的,原代码字段为“const abc='中文文案'”,改变后的代码字段为“const xyz='中文文案'”,其中代码字段“abc”变为代码字段“xyz”,则在抽象语法树的相应节点中“abc”变为“xyz”。
步骤804,通过插件根据更新后的抽象语法树,确定网页内容的文字内容。
计算机设备通过插件根据更新后的抽象语法树,确定网页内容的文字内容,包括:通过插件生成改变后的代码字段的唯一标识符和第二语言格式的文字内容,以及将唯一标识符注入发生改变的代码字段。
步骤805,显示更新后的文字内容。
计算机设备显示更新后的文字内容。
计算机设备根据改变后的代码字段,重新渲染与其对应的文字内容,其中,网页上除文字内容以外的网页内容均不会发生变化。
需要说明的是,该方法应用于开发者的开发阶段。
综上所述,本实施例在网页代码发生变化时,通过插件确定改变的网页代码,只需要扫描已经改变的网页代码就可以完成对抽象语法树的更新。该方法减少了计算量,而且只会改变网页内容中的文字内容。
图9示出了本申请的一个示例性实施例提供的浏览器的界面示意图。网页内容901中包括中文格式的文字内容,其中,左上角的黑色圆圈内有“一键切换中英文”的控件,点击该控件,网页内容901变为网页内容902,网页内容901中中文格式的文字内容均切换为英文格式的文字内容,在这过程中,除文字内容外,其它网页内容未发生变化。
图10示出了本申请的一个示例性实施例提供的应用程序的界面示意图。网页内容1001中包括中文格式的文字内容,其中,左上角的黑色圆圈内有“中英文切换”的控件,点击该控件,网页内容1001变为网页内容1002,网页内容1001中中文格式的文字内容均切换为英文格式的文字内容,在这过程中,除文字内容外,其它网页内容未发生变化。
以下为本申请的装置实施例,对于装置实施例中未详细描述的细节,可以结合参考上述方法实施例中相应的记载,本文不再赘述。
图11示出了本申请的一个示例性实施例提供的多语言显示装置的结构示意图。该装置1100可以通过软件、硬件或者两者的结合实现成为终端的全部或一部分,该装置具有插件,该装置1100包括:
显示模块1101,用于显示网页内容,所述网页内容包括第一语言格式的文字内容;
提取模块1102,用于通过所述插件在所述网页内容的网页代码中,遍历提取所述文本内容对应的代码字段;
注入模块1103,用于通过所述插件生成所述代码字段的唯一标识符和第二语言格式的所述文字内容,以及将所述唯一标识符注入所述代码字段;
所述显示模块1101,还用于响应于语言切换操作,通过所述唯一标识符显示所述网页内容,所述网页内容包括采用所述第二语言格式的所述文字内容。
可选地,所述注入模块1103包括:
标识符生成子模块1104,用于通过所述插件生成所述代码字段的唯一标识符和第二语言包,所述第二语言包包括所述唯一标识符和所述第二语言格式的所述文字内容之间的对应关系;
存储子模块1105,用于通过所述插件将所述第二语言包存储至所述网页代码对应的指定目录。
可选地,所述注入模块1103还包括:
参数获取子模块1106,用于获取所述网页代码中的语言配置参数,所述语言配置参数用于指示所述第二语言格式;
可选地,所述注入模块还包括:
翻译子模块1107,用于通过所述插件根据所述语言配置参数的指示,对所述第一语言格式的文本内容进行翻译,得到所述第二语言格式的所述文本内容。
可选地,所述提取模块1102包括:
扫描子模块11011,用于通过所述插件扫描所述网页内容在内存中已加载的网页代码;
语法树生成子模块1109,用于通过所述插件根据扫描结果生成所述网页代码的抽象语法树;
字段提取子模块1110,用于通过所述插件在所述抽象语法树中遍历提取所述文本内容对应的代码字段。
可选地,所述字段提取子模块1110,还用于通过所述插件在所述抽象语法树中遍历提取具有所述第一语言格式的文本内容对应的代码字段。
可选地,所述语法树生成子模块1109,还用于在所述网页代码发生改变的情况下,通过所述插件扫描所述网页代码中发生改变的代码字段;通过所述插件根据扫描结果更新所述网页代码的抽象语法树。
本申请实施例提供的技术方案带来的有益效果至少包括:
通过插件遍历提取文本内容对应的代码字段,并在代码字段上注入唯一标识符,并通过语言切换操作实现多语言显示。该方法依赖于插件进行,在语言转换的过程中,不需要开发人员修改硬盘中的代码,而且该方法由插件自动寻找不需要人为的参与,此外无需重复加载网页代码。
本申请还提供了一种计算机设备,该计算机设备包括:处理器和存储器,该存储器中存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现上述各方法实施例提供的多语言显示方法。
本申请还提供了一种计算机程序产品,该程序产品中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现上述各方法实施例提供的多语言显示方法。
应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种多语言显示方法,其特征在于,应用于具有插件的浏览器中,所述方法包括:
显示网页内容,所述网页内容包括第一语言格式的文字内容;
通过所述插件在所述网页内容的网页代码中,遍历提取所述第一语言格式的所述文字内容对应的代码字段;
通过所述插件生成所述代码字段的唯一标识符和第二语言格式的所述文字内容,以及将所述唯一标识符注入所述代码字段;
响应于语言切换操作,通过所述唯一标识符将所述网页内容中的所述第一语言格式的文字内容,切换显示为所述第二语言格式的所述文字内容。
2.根据权利要求1所述的方法,其特征在于,所述通过所述插件生成所述代码字段的唯一标识符和第二语言格式的所述文字内容,包括:
通过所述插件生成所述代码字段的唯一标识符和第二语言包,所述第二语言包包括所述唯一标识符和所述第二语言格式的所述文字内容之间的对应关系;
通过所述插件将所述第二语言包存储至所述网页代码对应的指定目录。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
获取所述网页代码中的语言配置参数,所述语言配置参数用于指示所述第二语言格式;
所述通过所述插件生成所述代码字段的第二语言包,包括:
通过所述插件根据所述语言配置参数的指示,对所述第一语言格式的文本内容进行翻译,得到所述第二语言格式的所述文本内容。
4.根据权利要求2所述的方法,其特征在于,所述方法还包括:
在不存在第一语言包时,通过所述插件生成所述代码字段的所述第一语言包,所述第一语言包包括所述唯一标识符和所述第一语言格式的所述文字内容之间的对应关系;
通过所述插件将所述第一语言包存储至所述网页代码对应的指定目录。
5.根据权利要求1至3任一所述的方法,其特征在于,所述通过所述插件在所述网页内容的网页代码中,遍历提取所述文本内容对应的代码字段,包括:
通过所述插件扫描所述网页内容在内存中已加载的网页代码;
通过所述插件根据扫描结果生成所述网页代码的抽象语法树;
通过所述插件在所述抽象语法树中遍历提取所述文本内容对应的代码字段。
6.根据权利要求5所述的方法,其特征在于,所述通过所述插件在所述抽象语法树中遍历提取所述文本内容对应的代码字段,包括:
获取所述网页代码中的语言配置参数,所述语言配置参数用于指示所述第一语言格式;
所述通过所述插件在所述抽象语法树中遍历提取所述文本内容对应的代码字段,包括:
通过所述插件在所述抽象语法树中遍历提取具有所述第一语言格式的文本内容对应的代码字段。
7.根据权利要求1至3任一所述的方法,其特征在于,所述方法还包括:
在所述网页代码发生改变的情况下,通过所述插件扫描所述网页代码中发生改变的代码字段;
通过所述插件根据扫描结果更新所述网页代码的抽象语法树。
8.一种多语言显示装置,其特征在于,所述装置具有插件,所述装置包括:
显示模块,用于显示网页内容,所述网页内容包括第一语言格式的文字内容;
提取模块,用于通过所述插件在所述网页内容的网页代码中,遍历提取所述文本内容对应的代码字段;
通过所述插件生成所述代码字段的唯一标识符和第二语言格式的所述文字内容,以及将所述唯一标识符注入所述代码字段;
所述显示模块,还用于响应于语言切换操作,通过所述唯一标识符显示所述网页内容,所述网页内容包括采用所述第二语言格式的所述文字内容。
9.一种计算机设备,其特征在于,所述计算机设备包括:处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1至7任一项所述的多语言显示方法。
10.一种计算机程序产品,其特征在于,所述程序产品中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1至7任一项所述的多语言显示方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011065809.4A CN112130952A (zh) | 2020-09-30 | 2020-09-30 | 多语言显示方法、装置、设备及产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011065809.4A CN112130952A (zh) | 2020-09-30 | 2020-09-30 | 多语言显示方法、装置、设备及产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112130952A true CN112130952A (zh) | 2020-12-25 |
Family
ID=73843735
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011065809.4A Pending CN112130952A (zh) | 2020-09-30 | 2020-09-30 | 多语言显示方法、装置、设备及产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112130952A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113704101A (zh) * | 2021-08-23 | 2021-11-26 | 辽宁振兴银行股份有限公司 | 一种基于网关异步复制的分布式系统兼容测试方法 |
CN113761171A (zh) * | 2021-01-26 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 一种辅助编程方法、装置、电子设备及存储介质 |
CN113805874A (zh) * | 2021-09-10 | 2021-12-17 | 上海得帆信息技术有限公司 | 适用于多框架语言的前端代码片段动态渲染方法和系统 |
-
2020
- 2020-09-30 CN CN202011065809.4A patent/CN112130952A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113761171A (zh) * | 2021-01-26 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 一种辅助编程方法、装置、电子设备及存储介质 |
CN113704101A (zh) * | 2021-08-23 | 2021-11-26 | 辽宁振兴银行股份有限公司 | 一种基于网关异步复制的分布式系统兼容测试方法 |
CN113805874A (zh) * | 2021-09-10 | 2021-12-17 | 上海得帆信息技术有限公司 | 适用于多框架语言的前端代码片段动态渲染方法和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101183355B (zh) | 复制和粘贴处理方法及装置 | |
US7937688B2 (en) | System and method for context-sensitive help in a design environment | |
US9256584B2 (en) | Rich text handling for a web application | |
CN112130952A (zh) | 多语言显示方法、装置、设备及产品 | |
US8533288B2 (en) | Interactive server side components | |
CN111831384B (zh) | 语言切换方法和装置、设备及存储介质 | |
Zaytsev et al. | Parsing in a broad sense | |
US9817811B2 (en) | Web server system, dictionary system, dictionary call method, screen control display method, and demonstration application generation method | |
JPH0383153A (ja) | メツセージ処理システム及び方法 | |
CN113139390A (zh) | 一种应用于代码字符串的语言转换方法和装置 | |
JPH1083289A (ja) | プログラミング・エイド | |
Wadge et al. | Intensional html | |
CN118245050B (zh) | 前端框架组件自动转换方法、系统、电子设备及存储介质 | |
CN102193789B (zh) | 一种实现可配置跳转链接的方法和设备 | |
Wielemaker et al. | Why It's Nice to be Quoted: Quasiquoting for Prolog | |
CN112948734A (zh) | 项目样式整合适配方法、装置、设备及存储介质 | |
Andrews et al. | The formal definition of Modula-2 and its associated interpreter | |
CN115618887B (zh) | 动态长文本国际化方法、装置、设备及存储介质 | |
JP2007279795A (ja) | プログラムによって表示される画面が仕様を満たすか判断するシステム | |
CN113741900B (zh) | 一种前端页面应用的开发方法、装置及相关设备 | |
Vysoký et al. | INGRID: Creating Languages in MPS from ANTLR Grammars | |
Strömfors | Editing large programs using a structure-oriented text editor | |
CN116841538A (zh) | 控件的处理方法、装置、处理设备及存储介质 | |
JP2005070879A (ja) | プログラム生成装置およびプログラム生成方法およびプログラムおよび記録媒体 | |
CN117075959A (zh) | 富文本大笔记网页源代码拆分方法以及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |