CN113296754A - 基于xml的脚本语言转换方法、编辑器、设备及存储介质 - Google Patents
基于xml的脚本语言转换方法、编辑器、设备及存储介质 Download PDFInfo
- Publication number
- CN113296754A CN113296754A CN202110853511.8A CN202110853511A CN113296754A CN 113296754 A CN113296754 A CN 113296754A CN 202110853511 A CN202110853511 A CN 202110853511A CN 113296754 A CN113296754 A CN 113296754A
- Authority
- CN
- China
- Prior art keywords
- translation
- tag
- current
- image
- node
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/425—Lexical analysis
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Document Processing Apparatus (AREA)
Abstract
本申请涉及一种基于xml的脚本语言转换方法、编辑器、设备及存储介质,其中,所述方法包括:响应于用户选择当前译文环境的操作,基于原始脚本中的所有xml节点生成虚拟语法树;从所述虚拟语法树中提取所有译文标签,对于任一译文标签,判断该译文标签是否具有包含符合所述当前译文环境的第一译文信息的子标签;若是,则基于所述第一译文信息为该译文标签的属性赋值;若否,则从本地查找是否存在与该译文标签对应且符合所述当前译文环境的第二译文信息;若查找到,则基于所述第二译文信息为该译文标签的属性赋值;基于赋值后的译文标签生成翻译脚本。本申请具有降低与脚本语言相关工具的开发成本的效果。
Description
技术领域
本申请涉及脚本编程的技术领域,尤其是涉及一种基于xml的脚本语言转换方法、编辑器、设备及存储介质。
背景技术
脚本语言是一种为了缩短传统的编写-编译-链接-运行过程而创建的计算机编程语言,其只在被调用时进行解释或编译。脚本语言通常都有简单、易学、易用的特性,其目的是让程序员快速完成程序的编写工作。
脚本语言有很多,一般采用纯文本+约定格式来组织代码。使用纯文本,对于用户直接阅读有一定帮助,但是对于与该语言相关的工具,其开发难度较大,比如python,它支持以对齐位置来确定代码关联逻辑,对于将python代码转换成虚拟语法树的过程,要考虑空格符号跟tab符号。另外,使用纯文本组织的脚本,对于代码国际化有天生缺陷,因为一段文本是关键词还是变量名,应当如何翻译,都需要大量工作,相关工具的开发成本非常高。
发明内容
为了降低与脚本语言相关工具的开发成本,本申请提供一种基于xml的脚本语言转换方法、编辑器、设备及存储介质。
第一方面,本申请提供一种基于xml的脚本语言转换方法,采用如下的技术方案:
一种基于xml的脚本语言转换方法,包括:
响应于用户选择当前译文环境的操作,基于原始脚本中的所有xml节点生成虚拟语法树;
从所述虚拟语法树中提取所有译文标签,对于任一译文标签,判断该译文标签是否具有包含符合所述当前译文环境的第一译文信息的子标签;
若是,则基于所述第一译文信息为该译文标签的属性赋值;
若否,则从本地查找是否存在与该译文标签对应且符合所述当前译文环境的第二译文信息;
若查找到,则基于所述第二译文信息为该译文标签的属性赋值;
基于赋值后的译文标签生成翻译脚本。
可选的,在所述基于所述第一译文信息为该译文标签的属性赋值之前,还包括:
基于所述所有译文标签生成翻译树;
所述基于所述第一译文信息为该译文标签的属性赋值包括:
从所述虚拟语法树中获取根节点到该译文标签的路径;
基于所述根节点到该译文标签的路径查找所述翻译树中与该译文标签匹配度最高的第一译文信息;
将该译文标签的属性赋值为所述与该译文标签匹配度最高的第一译文信息。
可选的,所述基于所述所有译文标签生成翻译树包括:
创建所述翻译树的根节点;
按照层级关系将各译文标签的文本作为所述翻译树的树节点的标识。
可选的,所述基于原始脚本中的所有xml节点生成虚拟语法树包括:
遍历所述原始脚本中的xml节点;
若当前xml节点是声明节点,则以所述当前xml节点的元素为当前语法树节点的标识,向所述当前语法树节点插入声明枝叶;
若当前xml节点是操作节点,则以所述当前xml节点的属性为当前语法树节点的标识,向所述当前语法树节点插入操作枝叶。
可选的,对于任一译文标签,若该译文标签具有包含图像ID的子标签,则所述方法还包括:
基于所述图像ID获取图像;
按照预设规则调整所述图像的尺寸;
将该译文标签的属性赋值为调整后的图像。
可选的,所述按照预设规则调整所述图像的尺寸包括:
将所述图像按等比例缩放,使缩放后的图像宽度不超过图像宽度上限,且缩放后的图像长度不超过图像高度上限;其中,所述图像宽度上限基于预设字宽和预设字间距计算得到,所述图像高度上限基于预设字高和预设行间距计算得到。
第二方面,本申请提供一种脚本编辑器,采用如下的技术方案:
一种脚本编辑器,包括:
语法树生成模块,用于响应于用户选择当前译文环境的操作,基于原始脚本中的所有xml节点生成虚拟语法树;
判断模块,用于从所述虚拟语法树中提取所有译文标签,对于任一译文标签,判断该译文标签是否具有包含符合所述当前译文环境的第一译文信息的子标签;若是,则转入第一赋值模块,否则转入查找模块;
所述第一赋值模块,用于基于所述第一译文信息为该译文标签的属性赋值;
所述查找模块,用于从本地查找是否存在与该译文标签对应且符合所述当前译文环境的第二译文信息;若是,则转入第二赋值模块;
所述第二赋值模块,用于基于所述第二译文信息为该译文标签的属性赋值;以及,
脚本生成模块,用于基于赋值后的译文标签生成翻译脚本。
第三方面,本申请提供一种电子设备,采用如下的技术方案:
一种电子设备,包括存储器和处理器;所述存储器上存储有能够被所述处理器加载并执行第一方面任一项所述的方法的计算机程序。
第四方面,本申请提供一种计算机可读存储介质,采用如下的技术方案:
一种计算机可读存储介质,存储有能够被处理器加载并执行第一方面任一项所述的方法的计算机程序。
通过采用上述技术方案,采用具有“标签+属性+纯文本”结构的xml来组织代码逻辑,xml标签之间的空白字符对结构无影响,将这种结构按照自然语言的规律进行组织排版比纯文本容易,因此能够极大地降低脚本语言相关工具开发的难度,该方案设计的脚本语言的语法结构和以此结构为基础实现代码国际化的方法以及衍生权利,将代码国际化变得更容易,使写代码不再单独以某种自然语言为基础,而是可自由转换,降低了工程师与工程师、设计师之间的沟通成本,甚至可以使语言不通的两个人共同完成一个软件项目成为可能,极大地提高了代码的可阅读性和可传播性。
附图说明
图1是本申请实施例的一种基于xml的脚本语言转换方法的流程示意图。
图2是本申请实施例的一种脚本编辑器200的结构框图。
图3是本申请实施例的一种电子设备300的结构框图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
图1为本实施例提供的一种基于xml的脚本语言转换方法的流程示意图。该基于xml的脚本语言转换方法可以由电子设备执行,该电子设备可以为服务器也可以为终端设备,其中,该服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云计算服务的云服务器。终端设备可以是智能手机、平板电脑、笔记本电脑、台式计算机等,但并不局限于此。
如图1所示,该方法的主要流程描述如下(步骤S101~S106):
步骤S101,响应于用户选择当前译文环境的操作,基于原始脚本中的所有xml节点生成虚拟语法树;
本实施例中,当前译文环境是指各类自然语言环境,例如简体中文、繁体中文、英文、韩文、日文等,用户可根据自身母语或擅长自然语言来选择当前译文环境。根据本地存储或外部导入的语言包,可提供相适应的功能按键,通过鼠标、键盘、触屏等方式触发相应功能按键,选择将原始脚本语言转换为用户触发的功能按键所对应的自然语言。
除此之外,还可以通过语音方式选择当前译文环境,此时需要具备语音识别功能,能够从采集的用户语音中识别出所对应的当前译文环境,进而完成用户选择当前译文环境的操作。
本实施例中,原始脚本采用xml来组织代码逻辑,所涉及的xml标签有以下几类:
(1)脚本标签 <flag-script />;
(2)译文标签 <translate />;
(3)导入标签 <import />;
(4)代码声明标签:
占位声明 <ph-n /> 其中n 为 0,1,2... 自然数;
特征声明 <trait />;
类型声明 <class />;
任意引用声明 <any />;
常用类型变量声明:<bit /> <bool /> <byte /> <char /> <uchar /> <short/> <ushort /> <int /> <uint /> <float /> <double /> <long /> <ulong /> <bits/>;
(5)代码控制标签:
<for /> <switch /> <case /> <break /> <continue /> <if /> <else-if /><else /> <is-true /> <asyn /> <wait /> <then />;
(6)常用操作标签:
<add /> <sub /> <divide /> <multiply /> <remainder /> <or /> <and /><not /> <may />。
原始脚本中,每个xml标签均可添加一个translate的属性,该属性值指向译文,也就是译文标签 <translate />。
以下示出了一组基于xml格式的原始脚本的代码:
<flag-script />
<import id=“translate”type=“translate” origin=http://mirror.somewhere.com/flag-script/ translate/0.01/>
<translate id=“if”/>
<zh-cn>如果(<ph-0 />)</zh-cn>
<en-us>if(<ph-0 />)</en-us>
<zh-tw>假設<ph-0 />發生</zh-tw>
</translate>
<translate id=“check_value”>
<zh-cn>比较结果</zh-cn>
</translate>
<bool id=“check_value”>false</bool>
<func id=“main”>
<check_value>
<add>
<float>1.0</float>
<int>-2</int>
</add>
</check_value>
<if><is-true><check_value /></is-true>
<console.log><string origin=“值为真”/></console.log>
</if>
<else>
<console.log><string origin=“值为假”/></console.log>
</else>
</func>
</flag-script>。
在导入原始脚本后以及用户选择当前译文环境后,需要执行基于原始脚本中的所有xml节点生成虚拟语法树的步骤。遍历原始脚本中的各xml节点;若不存在根节点,则创建虚拟语法树的根节点;若当前xml节点是声明节点,则以当前xml节点的元素为当前语法树节点的标识,向当前语法树节点插入声明枝叶;若当前xml节点是操作节点,则以当前xml节点的属性为当前语法树节点的标识,向当前语法树节点插入操作枝叶。
步骤S102,从虚拟语法树中提取所有译文标签,对于任一译文标签,判断该译文标签是否具有包含符合当前译文环境的第一译文信息的子标签,若是,则执行步骤S103,否则执行步骤S104;
步骤S103,基于第一译文信息为该译文标签的属性赋值;
步骤S104,从本地查找是否存在与该译文标签对应且符合当前译文环境的第二译文信息,若是,则执行步骤S105;
步骤S105,基于第二译文信息为该译文标签的属性赋值;
步骤S106,基于赋值后的译文标签生成翻译脚本。
上述代码示例中,<translate id=“if”/>、<translate id=“check_value”>为原始脚本中的译文标签。对于<translate id=“if”/>,其具有三个包含第一译文信息的子标签,第一译文信息分别指向简体中文译文“如果”、英文译文“if”和繁体中文译文“假設”;对于<translate id=“check_value”>,其具有一个包含第一译文信息的子标签,该第一译文信息指向简体中文译文“比较结果”。
若用户选择的当前译文环境为简体中文,简体中文对应xml标签<zh-cn>,则通过查找虚拟语法树,提取译文标签<translate id=“if”/>、<translate id=“check_value”>的子标签<zh-cn>,并基于子标签的第一译文信息为对应的译文标签的属性赋值。其翻译脚本如下:
变量 比较结果 初始为 假
比较结果=1.0 + -2
如果 (比较结果) 为真
控制台 输出 日志 “值为假”
否则
控制台 输出 日志 “值为假”。
若用户选择的当前译文环境为繁体中文,繁体中文对应xml标签<zh-tw>,此时通过查找虚拟语法树,仅能找到<translate id=“if”/>具有标签名为<zh-tw>的子标签,无法为<translate id=“check_value”>找到标签名为<zh-tw>的子标签,因此,对于<translateid=“if”/>,可以基于第一译文信息“假設”为其属性进行赋值,而对于<translate id=“check_value”>,则需要查找本地是否存储有文本“check_value”对应的繁体中文译文,也就是第二译文信息。若查找到,则将查找到的第二译文信息为<translate id=“check_value”>的属性赋值;若未查找到,则不对文本“check_value”进行翻译,以原始文本显示。
本实施例中,对于基于第一译文信息为该译文标签的属性赋值的情况,需要先基于所有译文标签生成翻译树。先创建翻译树的根节点,然后按照层级关系将各译文标签的文本作为翻译树的树节点的标识。
然后,从虚拟语法树中获取根节点到该译文标签的路径;基于根节点到该译文标签的路径查找翻译树中与该译文标签匹配度最高的第一译文信息;将该译文标签的属性赋值为与该译文标签匹配度最高的第一译文信息。
以下示出了一种当前译文环境为中文简体的翻译树结构的代码:
<translate-root>
<translate id=“if”>
<zh-cn>假如</zh-cn>
</translate>
<translate id=“functionA”>
<zh-cn>方法1</zh-cn>
<translate id=“if”>
<zh-cn>如果</zh-cn>
</translate>
<translate id=“varTimeNow”>
<zh-cn>现在</zh-cn>
</translate>
</translate>
<translate id=“varTimeNow”>
<zh-cn>当前时间</zh-cn>
</translate>
</translate-root>。
上述代码示例中,对于文本“if”和“varTimeNow”,原始脚本中均有两个简体中文译文,但是其对应的译文标签的层级不同。根据译文标签的层级通过查找翻译树,可以找到对应的第一译文信息,也就是说,如果原始脚本中对不同层级的译文标签的相同文本有不同的第一译文信息,那么在脚本语言转换过程中,不会出现翻译成同一第一译文信息的错误,而是实现一一对应的翻译。
一些实施例中,除了可以对原始文本进行自然语言的转换,还可将自然语言转换为预设图像进行显示。例如译文标签的文本为“月亮”,设置该译文标签的一子标签的文本为图像ID,该图像ID指向预设的“月亮”图像,使用户通过该“月亮”图像能直观了解到该文本是月亮的意思,实现脚本代码的可视化。
对于任一译文标签,若该译文标签具有包含图像ID的子标签,则方法还包括:基于图像ID获取图像,将该译文标签的属性赋值为图像。
若本地缓存有该图像ID对应的图像资源,则直接获取图像;若本地缓存没有该图像ID对应的图像资源,则需要基于图像ID通过网络下载,并对下载后的图像进行缓存;若无法从本地缓存和网络下载获取图像资源,则向用户提示,且不对该译文标签的属性进行赋值操作。
进一步地,需要对获取的图像尺寸进行调整,以适配屏幕显示。因此,对译文标签的属性进行赋值前,按照预设规则调整图像的尺寸。
具体的,将图像按等比例缩放,使缩放后的图像宽度不超过图像宽度上限,且缩放后的图像长度不超过图像高度上限;其中,图像宽度上限基于预设字宽和预设字间距计算得到,图像高度上限基于预设字高和预设行间距计算得到。
通过上述预设规则,可以使图像尺寸很好地与脚本代码的尺寸相适配,然后将译文标签的属性赋值为调整后的图像。
需要说明的是,图像资源可以是静态图片,也可以是动态图片,对此本实施例不做具体限定。
本申请实施例中,由于xml具有“标签+属性+纯文本”的结构,xml标签之间的空白字符对结构无影响,因此将这种结构按照自然语言的规律进行组织排版比纯文本容易,能够极大地降低脚本语言相关工具开发的难度;另外,为xml标签增加translate属性,通过译文标签给予自然语言的翻译,使写代码不再单独以某种自然语言为基础,而是可自由转换,降低了工程师与工程师、设计师之间的沟通成本,甚至可以使语言不通的两个人共同完成一个软件项目成为可能,极大地提高了代码的可阅读性和可传播性。
图2为本申请实施例提供的一种脚本编辑器200的结构框图。如图2所示,该脚本编辑器200主要包括:语法树生成模块201,用于响应于用户选择当前译文环境的操作,基于原始脚本中的所有xml节点生成虚拟语法树;判断模块202,用于从虚拟语法树中提取所有译文标签,对于任一译文标签,判断该译文标签是否具有包含符合当前译文环境的第一译文信息的子标签;若是,则转入第一赋值模块203,否则转入查找模块204;第一赋值模块203,用于基于第一译文信息为该译文标签的属性赋值;查找模块204,用于从本地查找是否存在与该译文标签对应且符合当前译文环境的第二译文信息;若是,则转入第二赋值模块205;第二赋值模块205,用于基于第二译文信息为该译文标签的属性赋值;以及,脚本生成模块206,用于基于赋值后的译文标签生成翻译脚本。
作为本实施例的一种可选实施方式,脚本编辑器200还包括翻译树生成模块,用于在基于第一译文信息为该译文标签的属性赋值之前,基于所有译文标签生成翻译树;第一赋值模块具体用于从虚拟语法树中获取根节点到该译文标签的路径;基于根节点到该译文标签的路径查找翻译树中与该译文标签匹配度最高的第一译文信息;将该译文标签的属性赋值为与该译文标签匹配度最高的第一译文信息。
本可选实施方式中,翻译树生成模块可具体用于创建翻译树的根节点;按照层级关系将各译文标签的文本作为翻译树的树节点的标识。
作为本实施例的一种可选实施方式,语法树生成模块具体用于遍历原始脚本中的xml节点;若当前xml节点是声明节点,则以当前xml节点的元素为当前语法树节点的标识,向当前语法树节点插入声明枝叶;若当前xml节点是操作节点,则以当前xml节点的属性为当前语法树节点的标识,向当前语法树节点插入操作枝叶。
作为本实施例的一种可选实施方式,脚本编辑器200还包括第三赋值模块;第三赋值模块包括:获取模块,用于对于任一译文标签,若该译文标签具有包含图像ID的子标签,则基于图像ID获取图像;调整模块,用于按照预设规则调整图像的尺寸;图像赋值模块,用于将该译文标签的属性赋值为调整后的图像。
本可选实施方式中,调整模块可具体用于将图像按等比例缩放,使缩放后的图像宽度不超过图像宽度上限,且缩放后的图像长度不超过图像高度上限;其中,图像宽度上限基于预设字宽和预设字间距计算得到,图像高度上限基于预设字高和预设行间距计算得到。
可以理解的是,本实施例中的脚本编辑器的上述各模块具有实现上述实施例中的基于xml的脚本语言转换方法相应步骤的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。上述模块可以是软件和/或硬件,上述各模块可以单独实现,也可以多个模块集成实现。
本实施例提供的方法中的各种变化方式和具体实例同样适用于本实施例提供的一种脚本编辑器,通过前述对基于xml的脚本语言转换方法的详细描述,本领域技术人员可以清楚的知道本实施例中的脚本编辑器的实施方法,为了说明书的简洁,在此不再赘述。
图3为本申请实施例提供的一种电子设备300的结构框图。电子设备300可以是移动电话、平板电脑、笔记本电脑等移动终端,还可以是台式计算机、服务器等固定终端。如图3所示,电子设备300包括存储器301、处理器302和通信总线303。
存储器301可用于存储指令、程序、代码、代码集或指令集。存储器301可以包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令以及用于实现上述实施例提供的基于xml的脚本语言转换方法的指令等;存储数据区可存储上述实施例提供的基于xml的脚本语言转换方法中涉及到的数据等。
处理器302可以包括一个或者多个处理核心。处理器302通过运行或执行存储在存储器301内的指令、程序、代码集或指令集,调用存储在存储器301内的数据,执行本申请的各种功能和处理数据。处理器302可以为特定用途集成电路(Application SpecificIntegrated Circuit,ASIC)、数字信号处理器(Digital Signal Processor,DSP)、数字信号处理装置(Digital Signal Processing Device,DSPD)、可编程逻辑装置(ProgrammableLogic Device,PLD)、现场可编程门阵列(Field Programmable Gate Array,FPGA)、中央处理器(Central Processing Unit,CPU)、控制器、微控制器和微处理器中的至少一种。可以理解地,对于不同的设备,用于实现上述处理器302功能的电子器件还可以为其它,本申请实施例不作具体限定。
通信总线303可包括一通路,在上述组件之间传送信息。通信总线303可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA (ExtendedIndustry Standard Architecture,扩展工业标准结构)总线等。通信总线303可以分为地址总线、数据总线、控制总线等。为便于表示,图3中仅用一个双箭头表示,但并不表示仅有一根总线或一种类型的总线。
本申请实施例还提供一种计算机可读存储介质,存储有能够被处理器加载并执行如上述实施例提供的基于xml的脚本语言转换方法的计算机程序。
本实施例中,计算机可读存储介质可以是保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质可以是但不限于电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意组合。具体的,计算机可读存储介质可以是便携式计算机盘、硬盘、U盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、讲台随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、光盘、磁碟、机械编码设备以及上述任意组合。
本实施例中的计算机程序包含用于执行图1所示的方法的程序代码,程序代码可包括对应执行上述实施例提供的方法步骤对应的指令。计算机程序可从计算机可读存储介质下载到各个计算/处理设备,或者通过网络(例如因特网、局域网、广域网和/或无线网)下载到外部计算机或外部存储设备。计算机程序可完全地在用户计算机上执行、作为一个独立的软件包执行。
在本申请所提供的实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,需要理解的是,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或者操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (9)
1.一种基于xml的脚本语言转换方法,其特征在于,包括:
响应于用户选择当前译文环境的操作,基于原始脚本中的所有xml节点生成虚拟语法树;
从所述虚拟语法树中提取所有译文标签,对于任一译文标签,判断该译文标签是否具有包含符合所述当前译文环境的第一译文信息的子标签;
若是,则基于所述第一译文信息为该译文标签的属性赋值;
若否,则从本地查找是否存在与该译文标签对应且符合所述当前译文环境的第二译文信息;
若查找到,则基于所述第二译文信息为该译文标签的属性赋值;
基于赋值后的译文标签生成翻译脚本。
2.根据权利要求1所述的方法,其特征在于,在所述基于所述第一译文信息为该译文标签的属性赋值之前,还包括:
基于所述所有译文标签生成翻译树;
所述基于所述第一译文信息为该译文标签的属性赋值包括:
从所述虚拟语法树中获取根节点到该译文标签的路径;
基于所述根节点到该译文标签的路径查找所述翻译树中与该译文标签匹配度最高的第一译文信息;
将该译文标签的属性赋值为所述与该译文标签匹配度最高的第一译文信息。
3.根据权利要求2所述的方法,其特征在于,所述基于所述所有译文标签生成翻译树包括:
创建所述翻译树的根节点;
按照层级关系将各译文标签的文本作为所述翻译树的树节点的标识。
4.根据权利要求1所述的方法,其特征在于,所述基于原始脚本中的所有xml节点生成虚拟语法树包括:
遍历所述原始脚本中的xml节点;
若当前xml节点是声明节点,则以所述当前xml节点的元素为当前语法树节点的标识,向所述当前语法树节点插入声明枝叶;
若当前xml节点是操作节点,则以所述当前xml节点的属性为当前语法树节点的标识,向所述当前语法树节点插入操作枝叶。
5.根据权利要求1至4任一项所述的方法,其特征在于,对于任一译文标签,若该译文标签具有包含图像ID的子标签,则所述方法还包括:
基于所述图像ID获取图像;
按照预设规则调整所述图像的尺寸;
将该译文标签的属性赋值为调整后的图像。
6.根据权利要求5所述的方法,其特征在于,所述按照预设规则调整所述图像的尺寸包括:
将所述图像按等比例缩放,使缩放后的图像宽度不超过图像宽度上限,且缩放后的图像长度不超过图像高度上限;其中,所述图像宽度上限基于预设字宽和预设字间距计算得到,所述图像高度上限基于预设字高和预设行间距计算得到。
7.一种脚本编辑器,其特征在于,包括:
语法树生成模块,用于响应于用户选择当前译文环境的操作,基于原始脚本中的所有xml节点生成虚拟语法树;
判断模块,用于从所述虚拟语法树中提取所有译文标签,对于任一译文标签,判断该译文标签是否具有包含符合所述当前译文环境的第一译文信息的子标签;若是,则转入第一赋值模块,否则转入查找模块;
所述第一赋值模块,用于基于所述第一译文信息为该译文标签的属性赋值;
所述查找模块,用于从本地查找是否存在与该译文标签对应且符合所述当前译文环境的第二译文信息;若是,则转入第二赋值模块;
所述第二赋值模块,用于基于所述第二译文信息为该译文标签的属性赋值;以及,
脚本生成模块,用于基于赋值后的译文标签生成翻译脚本。
8.一种电子设备,其特征在于,包括存储器和处理器;所述存储器上存储有能够被所述处理器加载并执行如权利要求1至6中任一种方法的计算机程序。
9.一种计算机可读存储介质,其特征在于,存储有能够被处理器加载并执行如权利要求1至6中任一种方法的计算机程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110853511.8A CN113296754B (zh) | 2021-07-28 | 2021-07-28 | 基于xml的脚本语言转换方法、编辑器、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110853511.8A CN113296754B (zh) | 2021-07-28 | 2021-07-28 | 基于xml的脚本语言转换方法、编辑器、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113296754A true CN113296754A (zh) | 2021-08-24 |
CN113296754B CN113296754B (zh) | 2021-11-12 |
Family
ID=77331155
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110853511.8A Active CN113296754B (zh) | 2021-07-28 | 2021-07-28 | 基于xml的脚本语言转换方法、编辑器、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113296754B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102693322A (zh) * | 2012-06-01 | 2012-09-26 | 杭州海康威视数字技术股份有限公司 | 支持多国语言的网页处理方法、网页加载方法及其系统 |
US20170131980A1 (en) * | 2015-11-06 | 2017-05-11 | rift.IO, Inc. | Model driven architecture for network management and configuration |
CN108334481A (zh) * | 2018-03-01 | 2018-07-27 | 四川语言桥信息技术有限公司 | 文档处理方法以及装置 |
CN110688863A (zh) * | 2019-09-25 | 2020-01-14 | 六维联合信息科技(北京)有限公司 | 一种文档翻译系统及文档翻译方法 |
CN111695002A (zh) * | 2020-06-05 | 2020-09-22 | 苏州瑞云信息技术有限公司 | 一种基于xml语句的数据库无关的查询语言 |
-
2021
- 2021-07-28 CN CN202110853511.8A patent/CN113296754B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102693322A (zh) * | 2012-06-01 | 2012-09-26 | 杭州海康威视数字技术股份有限公司 | 支持多国语言的网页处理方法、网页加载方法及其系统 |
US20170131980A1 (en) * | 2015-11-06 | 2017-05-11 | rift.IO, Inc. | Model driven architecture for network management and configuration |
CN108334481A (zh) * | 2018-03-01 | 2018-07-27 | 四川语言桥信息技术有限公司 | 文档处理方法以及装置 |
CN110688863A (zh) * | 2019-09-25 | 2020-01-14 | 六维联合信息科技(北京)有限公司 | 一种文档翻译系统及文档翻译方法 |
CN111695002A (zh) * | 2020-06-05 | 2020-09-22 | 苏州瑞云信息技术有限公司 | 一种基于xml语句的数据库无关的查询语言 |
Also Published As
Publication number | Publication date |
---|---|
CN113296754B (zh) | 2021-11-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102557681B1 (ko) | 시계열 지식그래프 생성 방법, 장치, 기기 및 매체 | |
CN107402746B (zh) | 一种自动生成代码文件的方法及装置 | |
CN108108342B (zh) | 结构化文本的生成方法、检索方法及装置 | |
CN112015430A (zh) | JavaScript代码翻译方法、装置、计算机设备及存储介质 | |
US20120072831A1 (en) | Method for creating a multi-lingual web page | |
CN106874163B (zh) | 一种显示软件错误码信息的方法及系统 | |
CN110502520B (zh) | 一种数据入库的方法、系统、设备及计算机可读存储介质 | |
CN111736840A (zh) | 小程序应用的编译方法、运行方法、存储介质及电子设备 | |
US20180157646A1 (en) | Command transformation method and system | |
CN113139390A (zh) | 一种应用于代码字符串的语言转换方法和装置 | |
US11403078B2 (en) | Interface layout interference detection | |
TWI420327B (zh) | 可提升網頁相容性的方法及其相關電子裝置及網頁存取系統 | |
CN116028028A (zh) | 请求函数生成方法、装置、设备及存储介质 | |
CN113641433A (zh) | 基于i18n技术的前端国际化多语言文件的多语言页面转换方法和单元 | |
CN113296754B (zh) | 基于xml的脚本语言转换方法、编辑器、设备及存储介质 | |
US20230153550A1 (en) | Machine Translation Method and Apparatus, Device and Storage Medium | |
CN111142871A (zh) | 一种前端页面开发系统、方法、设备、介质 | |
WO2019148797A1 (zh) | 自然语言处理方法、装置、计算机设备和存储介质 | |
US11687735B2 (en) | Method, apparatus, device and storage medium for outputting information | |
JP2015095182A (ja) | 文字列処理装置、方法、及びプログラム | |
CN113391806A (zh) | 一种将颜色代码进行转换的方法、装置、设备和可读介质 | |
EP3255558A1 (en) | Syntax analyzing device, learning device, machine translation device and recording medium | |
JP2007279795A (ja) | プログラムによって表示される画面が仕様を満たすか判断するシステム | |
CN117075912B (zh) | 用于程序语言转换的方法、编译方法及相关设备 | |
CN111443979B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |