《用于翻译应用程序的文本信息的方法和系统.pdf》由会员分享,可在线阅读,更多相关《用于翻译应用程序的文本信息的方法和系统.pdf(21页完整版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 104346153 A (43)申请公布日 2015.02.11 CN 104346153 A (21)申请号 201310328433.5 (22)申请日 2013.07.31 G06F 9/44(2006.01) (71)申请人 国际商业机器公司 地址 美国纽约阿芒克 (72)发明人 韩彪 (74)专利代理机构 北京市金杜律师事务所 11256 代理人 酆迅 李峥宇 (54) 发明名称 用于翻译应用程序的文本信息的方法和系统 (57) 摘要 本发明公开了一种用于翻译应用程序的文本 信息的方法和系统。在一个实施方式中, 公开了 一种用于翻译应用程序的文本信息的方法,。
2、 包括 : 基于源语言运行所述应用程序 ; 接收将所述文本 信息从源语言翻译成目标语言的请求 ; 以及响应 于所述请求, 获取所述应用程序的文本信息的文 本位置标识符, 并且根据文本位置标识符 - 目标 语言内容映射表, 将所述文本信息从源语言翻译 成目标语言。本发明的具体实施方式可以翻译成 本较低和翻译结果相对准确地翻译应用程序的文 本信息。 (51)Int.Cl. 权利要求书 3 页 说明书 10 页 附图 7 页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书3页 说明书10页 附图7页 (10)申请公布号 CN 104346153 A CN 104346153 。
3、A 1/3 页 2 1. 一种用于翻译应用程序的文本信息的方法, 包括 : 基于源语言运行所述应用程序 ; 接收将所述文本信息从源语言翻译成目标语言的请求 ; 以及 响应于所述请求, 获取所述应用程序的文本信息的文本位置标识符, 并且根据文本位置标识符 - 目标语言内容映射表, 将所述文本信息从源语言翻译成目 标语言。 2. 一种根据权利要求 1 所述的方法, 还包括 : 基于所述应用程序的文本信息的文本位置标识符、 该文本信息对应的文本键、 以及该 文本键在目标语言资源文件中对应的目标语言内容, 生成所述文本位置标识符 - 目标语言 内容映射表。 3. 一种根据权利要求 1 或 2 所述的方。
4、法, 还包括 : 监听所述应用程序的加载 ; 响应于文本节点添加到所述应用程序的对象结构描述文件, 记录该文本节点在该对象 结构描述文件中的路径信息 ; 以及 将该路径信息确定为该文本节点的文本信息的所述文本位置标识符。 4. 一种根据权利要求 1 或 2 所述的方法, 还包括 : 基于所述应用程序的应用程序接口, 获取应用程序的文本节点与应用程序的其它控件 之间的继承关系 ; 以及 将所述继承关系确定为所述文本节点的文本信息的所述文本位置标识符。 5. 一种根据权利要求 1-4 任一项所述的方法, 还包括 : 基于该文本节点的文本信息, 在源语言资源文件中查询该文本信息对应的文本键 ; 以 。
5、及 响应于查询到该文本键, 记录该文本键。 6. 一种根据权利要求 5 所述的方法, 还包括 : 基于所述文本信息对应的文本键, 在目标语言资源文件中查询该文本键对应的目标语 言内容 ; 以及 响应于查询到该目标语言内容, 基于所述文本位置标识符和该目标语言内容建立所述 文本位置标识符 - 目标语言内容映射表。 7. 一种根据权利要求 6 所述的方法, 还包括 : 监听所述对象结构描述文件的变化 ; 响应于所述对象结构描述文件中的文本节点发生变化, 修改所述文本位置标识符 - 目 标语言内容映射表。 8. 一种根据权利要求 3 所述的方法, 其中所述应用程序为网络应用, 所述对象结构描 述文件。
6、为文档对象化模型树。 9. 一种根据权利要求 1 所述的方法, 其中所述获取所述应用程序中的文本信息的文本 位置标识符还包括 : 监听预定的输入设备事件 ; 以及 响应于用户选择所述文本信息, 确定该文本信息的文本位置标识符。 10. 一种根据权利要求 1 所述的方法, 其中所述文本信息是位于应用程序的用户界面 权 利 要 求 书 CN 104346153 A 2 2/3 页 3 上的文本信息, 所述方法还包括 : 将已翻译成目标语言的所述文本信息显示在所述用户界面上。 11.一种根据权利要求1所述的方法, 其中所述根据文本位置标识符-目标语言内容映 射表, 将所述文本信息从源语言翻译成目标语。
7、言包括 : 用所述文本位置标识符在文本位置标识符 - 目标语言内容映射表中检索对应的目标 语言内容 ; 以及 响应于检索到所述目标语言内容, 以该目标语言内容确定为所述文本信息的翻译结 果。 12. 一种用于翻译应用程序的文本信息的系统, 包括 : 运行装置, 被配置用于基于源语言运行所述应用程序 ; 接收装置, 被配置用于接收将所述文本信息从源语言翻译成目标语言的请求 ; 以及 翻译装置, 被配置用于响应于所述请求, 获取所述应用程序的文本信息的文本位置标 识符, 并且根据文本位置标识符 - 目标语言内容映射表, 将所述文本信息从源语言翻译成 目标语言。 13. 一种根据权利要求 12 所述。
8、的系统, 还包括 : 映射表生成装置, 被配置用于基于所述应用程序的文本信息的文本位置标识符、 该文 本信息对应的文本键、 以及该文本键在目标语言资源文件中对应的目标语言内容, 生成所 述文本位置标识符 - 目标语言内容映射表。 14. 一种根据权利要求 12 或 13 所述的系统, 还包括 : 监听装置, 被配置用于监听所述应用程序的加载 ; 路径信息记录装置, 被配置用于响应于文本节点添加到所述应用程序的对象结构描述 文件, 记录该文本节点在该对象结构描述文件中的路径信息 ; 以及 文本位置标识符确定装置, 被配置用于将该路径信息确定为该文本节点的文本信息的 所述文本位置标识符。 15. 。
9、一种根据权利要求 12 或 13 所述的系统, 还包括 : 继承关系获取装置, 被配置用于基于所述应用程序的应用程序接口, 获取应用程序的 文本节点与应用程序的其它控件之间的继承关系 ; 以及 第二文本位置标识符确定装置, 将所述继承关系确定为所述文本节点的文本信息的所 述文本位置标识符。 16. 一种根据权利要求 12-15 任一项所述的系统, 还包括 : 查询装置, 被配置用于基于该文本节点的文本信息, 在源语言资源文件中查询该文本 信息对应的文本键 ; 以及 文本键记录装置, 被配置用于响应于查询到该文本键, 记录该文本键。 17. 一种根据权利要求 16 所述的系统, 还包括 : 目标。
10、语言内容查询装置, 被配置用于基于所述文本信息对应的文本键, 在目标语言资 源文件中查询该文本键对应的目标语言内容 ; 以及 建立装置, 被配置用于响应于查询到该目标语言内容, 基于所述文本位置标识符和该 目标语言内容建立所述文本位置标识符 - 目标语言内容映射表。 18. 一种根据权利要求 17 所述的系统, 还包括 : 权 利 要 求 书 CN 104346153 A 3 3/3 页 4 变化监听装置, 被配置用于监听所述对象结构描述文件的变化 ; 修改装置, 被配置用于响应于所述对象结构描述文件中的文本节点发生变化, 修改所 述文本位置标识符 - 目标语言内容映射表。 19. 一种根据权。
11、利要求 14 所述的系统, 其中所述应用程序为网络应用, 所述对象结构 描述文件为文档对象化模型树。 20. 一种根据权利要求 12 所述的系统, 其中所述获取所述应用程序中的文本信息的文 本位置标识符还包括 : 事件监听装置, 被配置用于监听预定的输入设备事件 ; 以及 文本位置标识符获得装置, 被配置用于响应于用户选择所述文本信息, 获得该文本信 息的文本位置标识符。 21. 一种根据权利要求 12 所述的系统, 其中所述文本信息是位于应用程序的用户界面 上的文本信息, 所述系统还包括 : 显示装置, 被配置用于将已翻译成目标语言的所述文本信息显示在所述用户界面上。 22. 一种根据权利要。
12、求 12 所述的系统, 其中所述翻译装置包括 : 检索装置, 被配置用于用所述文本位置标识符在文本位置标识符 - 目标语言内容映射 表检索对应的目标语言内容 ; 以及 翻译确定装置, 被配置为响应于检索到所述目标语言内容, 以该目标语言内容确定为 所述文本信息的翻译结果。 权 利 要 求 书 CN 104346153 A 4 1/10 页 5 用于翻译应用程序的文本信息的方法和系统 技术领域 0001 本发明涉及信息处理技术, 更具体地, 涉及一种用于翻译应用程序的文本信息的 方法和系统。 背景技术 0002 在国际化软件开发过程中, 软件开发者经常需要处理特定语言环境下的软件问 题。比如图 。
13、2 所示, 一位只懂英文的软件工程师, 需要在德语的环境下重现一个测试发现的 问题或者顾客反映的问题。这样的工作难度很大。重现步骤往往很复杂, 工程师在完全不 熟悉的德语界面上执行这些步骤不仅费时而且容易出错。 而且对于程序没有按预定设计给 出的一些德语的提示信息, 工程师完全看不懂, 很难判断程序异常的原因。此外, 软件界面 设计师在设计软件界面时, 也需要考虑不同语言环境对软件界面布局的影响。比如一段文 本在英文环境下可能只要一行就能显示, 然而用希腊语可能要占用两行空间。为了解决这 些问题, 提高软件开发效率, 通常的解决办法是 : 0003 (1) 雇佣既懂英语又懂德语的工程师。无疑,。
14、 这会增加人力成本。而且, 既懂英语 又懂德语的人才可能比较好找, 但是既懂英语又懂德语还懂日语的工程师就很难找了。 0004 (2)使用谷歌翻译或者词典等翻译工具, 对显示出的德文界面做翻译。 这种方式虽 然比 (1) 方便, 但是翻译不准确的缺点也很明显。而且这些通用的翻译工具往往给出很多 种翻译结果, 仍然需要人工判断哪一种更适合当前语境。 0005 因此需要一种用于翻译应用程序的文本信息且翻译成本较低和翻译结果相对准 确的方法或系统。 发明内容 0006 根据本发明的一个方面, 提供了一种用于翻译应用程序的文本信息的方法, 包括 : 基于源语言运行所述应用程序 ; 接收将所述文本信息从。
15、源语言翻译成目标语言的请求 ; 以 及响应于所述请求, 获取所述应用程序的文本信息的文本位置标识符, 并且根据文本位置 标识符 - 目标语言内容映射表, 将所述文本信息从源语言翻译成目标语言。 0007 根据本发明的另一个方面, 提供了一种用于翻译应用程序的文本信息的系统, 包 括 : 运行装置, 被配置用于基于源语言运行所述应用程序 ; 接收装置, 被配置用于接收将所 述文本信息从源语言翻译成目标语言的请求 ; 以及 0008 翻译装置, 被配置用于响应于所述请求, 获取所述应用程序的文本信息的文本位 置标识符, 并且根据文本位置标识符 - 目标语言内容映射表, 将所述文本信息从源语言翻 译。
16、成目标语言。 0009 本发明的各个具体实施方式提供了用于翻译应用程序的文本信息且翻译成本较 低和翻译结果相对准确的方法或系统。 附图说明 说 明 书 CN 104346153 A 5 2/10 页 6 0010 通过结合附图对本公开示例性实施方式进行更详细的描述, 本公开的上述以及其 它目的、 特征和优势将变得更加明显, 其中, 在本公开示例性实施方式中, 相同的参考标号 通常代表相同部件。 0011 图 1 示出了适于用来实现本发明一种实施方式的示例性计算机系统 / 服务器 12 的框图。 0012 图 2 示出了软件测试人员面临的不同语言测试环境。 0013 图 3a、 3b、 3c 示。
17、出了各种语言资源文件的实例。 0014 图 4 示出了本发明用于翻译应用程序的文本信息的方法的一个具体实施方式。 0015 图 5 示出了本发明用于如何获知所述应用程序的文本信息的文本位置标识符的 一个具体实施方式。 0016 图 6 示出了文本信息与 DOM Tree 之间的对应关系实例。 0017 图 7 示出了获得文字信息的文本键的具体实施方式。 0018 图8示出了本发明建立所述文本位置标识符-目标语言内容映射表的具体实施方 式。 0019 图 9 示出了通过输入设备获取所述应用程序中的文本信息的文本位置标识符的 具体实施方式。 0020 图 10、 11 示出了如何获取应用程序的文本。
18、信息的文本位置标识符的另一个具体 实施方式。 0021 图 12 示出了本发明显示翻译结果的具体实施方式。 0022 图 13 示出了本发明用于翻译应用程序的文本信息的系统框架图 具体实施方式 0023 下面将参照附图更详细地描述本公开的优选实施方式。 虽然附图中显示了本公开 的优选实施方式, 然而应该理解, 可以以各种形式实现本公开而不应被这里阐述的实施方 式所限制。 相反, 提供这些实施方式是为了使本公开更加透彻和完整, 并且能够将本公开的 范围完整地传达给本领域的技术人员。 0024 所属技术领域的技术人员知道, 本发明可以实现为系统、 方法或计算机程序产品。 因此, 本公开可以具体实现。
19、为以下形式, 即 : 可以是完全的硬件、 也可以是完全的软件 ( 包 括固件、 驻留软件、 微代码等 ), 还可以是硬件和软件结合的形式, 本文一般称为 “电路” 、“模 块” 或 “系统” 。此外, 在一些实施例中, 本发明还可以实现为在一个或多个计算机可读介质 中的计算机程序产品的形式, 该计算机可读介质中包含计算机可读的程序代码。 0025 可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计 算机可读信号介质或者计算机可读存储介质。 计算机可读存储介质例如可以是但不限 于电、 磁、 光、 电磁、 红外线、 或半导体的系统、 装置或器件, 或者任意以上的组合。计算 机可读。
20、存储介质的更具体的例子(非穷举的列表)包括 : 具有一个或多个导线的电连接、 便 携式计算机磁盘、 硬盘、 随机存取存储器 (RAM)、 只读存储器 (ROM)、 可擦式可编程只读存储 器(EPROM或闪存)、 光纤、 便携式紧凑磁盘只读存储器(CD-ROM)、 光存储器件、 磁存储器件、 或者上述的任意合适的组合。在本文件中, 计算机可读存储介质可以是任何包含或存储程 序的有形介质, 该程序可以被指令执行系统、 装置或者器件使用或者与其结合使用。 说 明 书 CN 104346153 A 6 3/10 页 7 0026 计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号, 。
21、其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式, 包括但 不限于电磁信号、 光信号或上述的任意合适的组合。计算机可读的信号介质还可以是 计算机可读存储介质以外的任何计算机可读介质, 该计算机可读介质可以发送、 传播或者 传输用于由指令执行系统、 装置或者器件使用或者与其结合使用的程序。 0027 计算机可读介质上包含的程序代码可以用任何适当的介质传输, 包括但不限 于无线、 电线、 光缆、 RF 等等, 或者上述的任意合适的组合。 0028 可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机 程序代码, 所述程序设计语言包括面向对象的程序设计语言 - 诸如。
22、 Java、 Smalltalk、 C+, 还包括常规的过程式程序设计语言 - 诸如” C” 语言或类似的程序设计语言。程序代码可以 完全地在用户计算机上执行、 部分地在用户计算机上执行、 作为一个独立的软件包执行、 部 分在用户计算机上部分在远程计算机上执行、 或者完全在远程计算机或服务器上执行。在 涉及远程计算机的情形中, 远程计算机可以通过任意种类的网络包括局域网 (LAN) 或 广域网 (WAN)- 连接到用户计算机, 或者, 可以连接到外部计算机 ( 例如利用因特网服务提 供商来通过因特网连接 )。 0029 下面将参照本发明实施例的方法、 装置 ( 系统 ) 和计算机程序产品的流程。
23、图和 / 或框图描述本发明。应当理解, 流程图和 / 或框图的每个方框以及流程图和 / 或框图中各 方框的组合, 都可以由计算机程序指令实现。 这些计算机程序指令可以提供给通用计算机、 专用计算机或其它可编程数据处理装置的处理器, 从而生产出一种机器, 这些计算机程序 指令通过计算机或其它可编程数据处理装置执行, 产生了实现流程图和 / 或框图中的方框 中规定的功能 / 操作的装置。 0030 也可以把这些计算机程序指令存储在能使得计算机或其它可编程数据处理装置 以特定方式工作的计算机可读介质中, 这样, 存储在计算机可读介质中的指令就产生出一 个包括实现流程图和 / 或框图中的方框中规定的功。
24、能 / 操作的指令装置 (instruction means) 的制造品 (manufacture)。 0031 也可以把计算机程序指令加载到计算机、 其它可编程数据处理装置、 或其它设备 上, 使得在计算机、 其它可编程数据处理装置或其它设备上执行一系列操作步骤, 以产生计 算机实现的过程, 从而使得在计算机或其它可编程装置上执行的指令能够提供实现流程图 和 / 或框图中的方框中规定的功能 / 操作的过程。 0032 图 1 示出了适于用来实现本发明实施方式的示例性计算机系统 / 服务器 12 的框 图。图 1 显示的计算机系统 / 服务器 12 仅仅是一个示例, 不应对本发明实施例的功能和。
25、使 用范围带来任何限制。 0033 如图 1 所示, 计算机系统 / 服务器 12 以通用计算设备的形式表现。计算机系统 / 服务器 12 的组件可以包括但不限于 : 一个或者多个处理器或者处理单元 16, 系统存储器 28, 连接不同系统组件 ( 包括系统存储器 28 和处理单元 16) 的总线 18。 0034 总线 18 表示几类总线结构中的一种或多种, 包括存储器总线或者存储器控制器, 外围总线, 图形加速端口, 处理器或者使用多种总线结构中的任意总线结构的局域总线。 举 例来说, 这些体系结构包括但不限于工业标准体系结构 (ISA) 总线, 微通道体系结构 (MAC) 总线, 增强型。
26、 ISA 总线、 视频电子标准协会 (VESA) 局域总线以及外围组件互连 (PCI) 总线。 说 明 书 CN 104346153 A 7 4/10 页 8 0035 计算机系统 / 服务器 12 典型地包括多种计算机系统可读介质。这些介质可以是 任何能够被计算机系统 / 服务器 12 访问的可用介质, 包括易失性和非易失性介质, 可移动 的和不可移动的介质。 0036 系统存储器 28 可以包括易失性存储器形式的计算机系统可读介质, 例如随机存 取存储器 (RAM)30 和 / 或高速缓存存储器 32。计算机系统 / 服务器 12 可以进一步包括其 它可移动/不可移动的、 易失性/非易失性。
27、计算机系统存储介质。 仅作为举例, 存储系统34 可以用于读写不可移动的、 非易失性磁介质 ( 图 1 未显示, 通常称为 “硬盘驱动器” )。尽管 图 1 中未示出, 可以提供用于对可移动非易失性磁盘 ( 例如 “软盘” ) 读写的磁盘驱动器, 以及对可移动非易失性光盘 ( 例如 CD-ROM, DVD-ROM 或者其它光介质 ) 读写的光盘驱动器。 在这些情况下, 每个驱动器可以通过一个或者多个数据介质接口与总线18相连。 存储器28 可以包括至少一个程序产品, 该程序产品具有一组(例如至少一个)程序模块, 这些程序模 块被配置以执行本发明各实施例的功能。 0037 具有一组(至少一个)程。
28、序模块42的程序/实用工具40, 可以存储在例如存储器 28 中, 这样的程序模块 42 包括但不限于操作系统、 一个或者多个应用程序、 其它 程序模块以及程序数据, 这些示例中的每一个或某种组合中可能包括网络环境的实现。程 序模块 42 通常执行本发明所描述的实施例中的功能和 / 或方法。 0038 计算机系统 / 服务器 12 也可以与一个或多个外部设备 14( 例如键盘、 指向设备、 显示器 24 等 ) 通信, 还可与一个或者多个使得用户能与该计算机系统 / 服务器 12 交互的 设备通信, 和 / 或与使得该计算机系统 / 服务器 12 能与一个或多个其它计算设备进行通信 的任何设备。
29、 ( 例如网卡, 调制解调器等等 ) 通信。这种通信可以通过输入 / 输出 (I/O) 接 口 22 进行。并且, 计算机系统 / 服务器 12 还可以通过网络适配器 20 与一个或者多个网络 ( 例如局域网 (LAN), 广域网 (WAN) 和 / 或公共网络, 例如因特网 ) 通信。如图所示, 网络适 配器 20 通过总线 18 与计算机系统 / 服务器 12 的其它模块通信。应当明白, 尽管图中未示 出, 可以结合计算机系统 / 服务器 12 使用其它硬件和 / 或软件模块, 包括但不限于 : 微代 码、 设备驱动器、 冗余处理单元、 外部磁盘驱动阵列、 RAID 系统、 磁带驱动器以及。
30、数据备份存 储系统等。 0039 在当前软件多国语言支持实现中, 使用最广泛的方法是基于语言资源文件的标识 符映射法, 软件界面需要显示的文本信息被抽取到独立的语言资源文件中。每种语言都会 有自己的资源文件。 软件代码中, 原本需要显示文本信息的地方, 会被该文本信息对应的全 局唯一的文本键 (key) 所取代。语言资源文件中保存了文本键和文本信息的映射关系。同 一文本键在不同的语言资源文件中会对应不同的文本内容。 这些资源文件通过包含语言代 码信息的文件名, 或者通过存放至包含语言代码信息的不同目录来区分。 程序启动时, 会根 据用户当前的语言设置 ( 可以称之为源语言 ) 来确定应该加载哪。
31、一个语言资源文件。语言 资源文件被加载到应用程序中后, 往往以映射表 (Map) 的形式存在。程序界面渲染时, 会 读取此 Map 中文本键对应的文本内容, 然后显示到界面上。比如图 3a、 3b、 3c 中分别示出了 中的各种语言资源文件的实例。 申请人在长期的软件测试实践 中发现, 这些语言资源文件中对同一文本信息的表达在各种语言中是比较准确的, 而且这 些内容都已经存在于程序开发者或者测试者手中, 如果能够充分利用这些资源, 来解决测 试者在其不熟悉的语言环境中测试软件遇到的翻译问题, 就能做到事半功倍的效果。 由此, 说 明 书 CN 104346153 A 8 5/10 页 9 申请。
32、人以完全不同于现有技术的解决方案, 另辟蹊径地构思出下面基于已有的语言资源文 件来解决现有技术中至少一个技术缺陷的本发明的各个具体实施方式。 0040 图 4 示出了本发明用于翻译应用程序的文本信息的方法的第一具体实施方式。在 步骤 401 中, 基于源语言运行所述应用程序。在应用程序测试环境中, 有时应用程序测试人 员需要在其不熟悉的语言环境中测试该软件, 这种最初应用程序测试人员不熟悉或不熟练 的语言可以作为源语言, 应用程序测试人员有这个需求的原因在于软件测试人员希望在最 为真实的环境下再现软件可能出现的相关问题。 虽然本发明以应用程序测试作为详细介绍 本发明的各个实施方式, 但本发明的。
33、应用场景并不只限于应用程序测试环境, 比如, 一个应 用程序的普通用户有时也会需要在其不熟悉的语言环境中使用该应用程序 ( 尤其是对于 一些全球性的公司的员工 ), 即使该用户非常熟悉该应用程序, 其也可能存在需要将不熟悉 的源语言信息翻译成其更为熟悉的语言的需求。一般而言, 应用程序用户可以在应用程序 运行之前选择应用程序运行的源语言, 或者在应用程序运行后, 重新选择其运行的源语言。 在步骤 403 中, 接收将所述文本信息从源语言翻译成目标语言的请求。同样, 应用程序用户 可以在应用程序运行之前选择需要将应用程序运行的源语言翻译成目标语言, 也就是应用 程序用户更为熟练的语言或者是母语,。
34、 或者在应用程序运行后, 再选择要求翻译成的目标 语言。当然, 应用程序用户也可以选择性地对单个或者部分的应用程序的文本信息要求翻 译成目标语言。在步骤 405 中, 响应于所述请求, 获取所述应用程序的文本信息的文本位置 标识符 (ID), 并且根据文本位置标识符 - 目标语言内容映射表, 将所述文本信息从源语言 翻译成目标语言。在获得了文本信息的文本位置标识符后, 用所述文本位置标识符在文本 位置标识符 - 目标语言内容映射表检索到对应的目标语言内容 ; 以及以该目标语言内容确 定为所述文本信息的翻译结果。 其中文本位置标识符是指用于确定该文本信息在应用程序 的对象结构中的位置的标识符。 。
35、对于一个文本信息, 其存在全局唯一的文本位置标识符。 优 选地, 可以基于所述应用程序的文本信息的文本位置标识符、 该文本信息对应的文本键、 以 及该文本键在目标语言资源文件中对应的目标语言内容, 生成所述文本位置标识符 - 目标 语言内容映射表。 本具体实施方式正是巧妙地利用在语言资源文件中的文本键的唯一性和 应用程序中的文本位置标识符的唯一性, 从而可以找到文本信息对应的在目标语言资源文 件中的目标语言内容, 并基于此而生成所述文本位置标识符 - 目标语言内容映射表。至于 具体如何生成所述文本位置标识符 - 目标语言内容映射表, 本申请将通过下文具体实施方 式来进行说明。 0041 生成所。
36、述文本位置标识符 - 目标语言内容映射表需要基于所述应用程序的文本 信息的文本位置标识符、 该文本信息对应的文本键、 以及该文本键在目标语言资源文件中 对应的目标语言内容。图 5 示出了本发明用于如何获知所述应用程序的文本信息的文本位 置标识符的一个具体实施方式。在步骤 501 中, 监听所述应用程序的加载。本领域技术人 员理解, 有各种现有技术手段来监听应用程序的加载, 例如, 对于网络 web 应用程序浏览器 在 DOM Tree 的节点发生变化时会发布相应的事件, 可以使用 JavaScript 脚本编程来订阅 这些事件, 并实现相应的处理逻辑, 对于其他的界面程序, 比如 Java S。
37、wing 实现的界面, 同 样可以在界面组件添加、 更新和移除时发布相应的更新事件, 因此也可以使用编程方式来 订阅和处理这些事件, 对于 Windows 操作系统, 系统提供了动态链接库 dll 来渲染程序界 面, 实现中可以对这些 dll 暴露出的接口做封装, 以添加需要的监听逻辑。在步骤 503 中, 说 明 书 CN 104346153 A 9 6/10 页 10 响应于文本节点添加到所述应用程序的对象结构描述文件, 记录该文本节点在该对象结构 描述文件中的路径信息。 其中所谓路径信息是指某个文本信息在当前应用程序界面中的唯 一标识, 通过这个标识, 应用程序可快速方便的定位文本在应用。
38、程序中的位置。在 Web 应用 中, 路径信息的实现形式可以是 XPath(XML 路径语言 (XML Path Language), 它是一种用来 确定 XML 文档中某部分位置的语言 )。其中对象结构描述文件是用来描述程序界面布局, 各个组件位置和样式信息的数据结构。在 Web 应用中, 对象结构描述文件实现形式是 DOM Tree。在 Android 程序中, 对象结构描述文件的实现形式是位于 reslayout 目录下的一系 列 XML 文件。以 Web 应用程序为例, 每一个页面的加载, 其都对应生成一个对象结构描述文 件, 即文档对象化模型树 DOM Tree(Document O。
39、bject Model Tree)。由于本领域技术人员 熟悉 DOM Tree, 在此对其不再赘述。图 6 示出了文本节点 “Anmelden” (“Anmelden” 是该 节点用德文表述的文本信息 ( 内容 ) 与其对应的 DOM Tree 的关联关系。在该 DOM Tree, 该文本节点 “Anmelden” 的路径信息为 /*id pageTitle , 该路径信息在该 DOM Tree是唯一的, 同时也是全局唯一的。 在步骤505中, 将该路径信息确定为该文本节点的文 本信息的所述文本位置标识符。由于该路径信息是全局唯一的, 因此可以用其来表征该文 本节点的文本信息的所述文本位置标识。
40、符, 其表明了该文本信息在应用程序的结构中的位 置。如此就获得了文本信息的文本位置标识符。 0042 优选地, 可以进一步地确定该文本信息在语言资源文件中对应的全局唯一的文本 键。图 7 示出了获得文字信息的文本键的具体实施方式。在步骤 701 中, 基于该文本节点 的文本信息, 在源语言资源文件中查询该文本信息对应的文本键。 正如在前面指出的, 具体 的语言资源文件中采用文本键与采用该语言表达的文本信息一一对应的映射方式构成。 如 果已经知道采用源语言表达的文本信息, 就可以用该文本信息到该语言资源文件中寻找对 应的文本键。 一般而言, 源语言资源文件和目标语言资源文件都可以从本地加载, 或。
41、者从远 端服务器获取并在本地加载, 对于语言资源文件的部署本发明并没有特别的要求。在步骤 703 中, 响应于查询到该文本键, 记录该文本键。这样就获得该文本信息对应的文本键。 0043 优选地, 图 8 示出了本发明建立所述文本位置标识符 - 目标语言内容映射表的具 体实施方式。在步骤 801 中, 基于所述文本信息对应的文本键, 在目标语言资源文件中查询 该文本键对应的目标语言内容。由于文本信息对应着全局唯一的文本键, 而目标语言资源 文件同样是采用文本键与用目标语言表达的该文本信息的方式构造的, 因此可以采用文本 键作为索引在语言资源文件中进行查询。在步骤 803 中, 响应于查询到该目。
42、标语言内容, 基 于所述文本位置标识符和该目标语言内容建立所述文本位置标识符 - 目标语言内容映射 表。在确定了文本位置标识符与目标语言内容的一一对应关系, 就可以基于该一一对应关 系, 建立所述文本位置标识符 - 目标语言内容映射表的各个条目, 从而形成所述文本位置 标识符 - 目标语言内容映射表。优选地可以只对应用程序界面上的部分或者全部文本信息 建立该映射表, 也可以对应用程序的所有文本信息建立映射表。生成的映射表如表 1 所示 : 0044 表 1 0045 说 明 书 CN 104346153 A 10 7/10 页 11 0046 一般而言, 随着用户的相关操作, 应用程序的对象描。
43、述结构文件会不停地发生变 化。这时就需要对监听所述对象结构描述文件的变化, 并且响应于所述对象结构描述文件 中的文本节点发生变化, 修改所述文本位置标识符 - 目标语言内容映射表。从而保证该映 射表总是同步反应当前界面内容。其中所述修改所述文本位置标识符 - 目标语言内容映射 表包括更新、 添加和删除所述文本位置标识符-目标语言内容映射表中的条目。 下面以Web 应用程序为例, 对如何修改所述条目进行说明 : 0047 1. 添加条目 : 0048 在 Web 应用程序被浏览器加载时, 随着 DOM Tree 的初始化, 程序初始界面中使用 的文本节点会被逐一创建。节点创建时, 浏览器发布文本。
44、节点添加事件。通过订阅所有的 文本节点添加事件, 每当有节点创建时, 就能够从浏览器发布的事件中, 获取到此文本节点 文本位置标识符。同时, 还会在 Javascript 程序调用栈中读取到执行添加文本节点的程序 上下文。 从该上下文中, 可以获取文本键, 然后通过文本键, 可以去查询目标语言资源文件, 从而获取到该文本键对应的文本内容。有了文本位置标识符和目标语言文本内容后, 就可 以构造一条新的映射表条目。 0049 2. 更新条目 : 0050 在 Web 程序运行中, 有些文本节点的内容是会不断变化的。比如, 某个文本节点用 来显示用户操作提示信息, 那么每当用户有新的操作时都会更新此。
45、文本节点的内容。节点 内容更新时, 浏览器同样会发布文本节点更新事件。通过订阅这些事件, 每当有节点更新 时, 从浏览器发布的事件中, 获取到此文本节点文本位置标识符。同时, 还会在 Javascript 程序调用栈中读取到执行添加文本节点的程序上下文。从该上下文中, 可以获取新的文本 键, 然后通过新文本键, 去查询目标语言资源文件, 从而获取到该新文本键对应的文本内 容。有了文本位置标识符和新的目标语言文本内容后, 就可以对此文本位置标识符对应的 映射表条目进行更新。 0051 3. 删除条目 : 0052 在 Web 程序运行中, 有 DOM 节点会被删除。比如, 用户关闭了 Web 界。
46、面上的一个对 话框, 那么此对话框对应的 DOM 节点就需要从 DOM 树中移除, 相应的映射表条目也需要移 除。文本节点删除时, 浏览器同样会发布文本节点删除事件。通过订阅这些事件, 每当有文 本节点删除时, 从浏览器发布的事件中, 获取到此文本节点文本位置标识符。 有了文本位置 说 明 书 CN 104346153 A 11 8/10 页 12 标识符, 就可以对此文本位置标识符对应的映射表条目进行删除。 0053 本领域技术人员基于本申请, 也可以构思出对其它类型应用程序的所述映射表进 行修改。 0054 图 9 示出了通过输入设备获取所述应用程序中的文本信息的文本位置标识符的 具体实施。
47、方式。 在步骤901中, 监听预定的输入设备事件。 以web应用程序为例, 监听整个页 面中所有 DOM 节点的 onMouseOver, onMouseDown 和 onMouseUp 等鼠标事件。本领域技术人 员了解, 对于其它输入设备也有对应的相关事件, 在此不再赘述。在步骤 903 中, 响应于用 户选择所述文本信息, 确定该文本信息的文本位置标识符。当用户用输入设备选择相关文 本信息 ( 用户的选择可以是鼠标悬停在该文本信息处、 或者用鼠标点击或者双击该处等 ), 则会有对应的输入设备事件产生, 每当有对应事件发生时, 浏览器会封装一个事件对象 Event 给事件处理程序。以鼠标点击。
48、为例, 此事件对象中包含了鼠标点击的位置 (clientX 和 clientY), 点击位置所在的 DOM 节点对象 (target) 等信息。每个 DOM 节点对象可以获取 其父节点 (parentNode), 直至顶级的文档对象。这样, 通过事件对象封装的 DOM 节点对象, 我们就可以获取用户选择的文本信息的文本位置标识符。另外对于其它非 Web 应用程序, 在用户交互界面上也往往采用类似于 Web 的事件驱动模型, 比如 Java Swing。同样有类似 于事件对象, 事件监听者, 事件源的数据结构, 因此这种方法是通用的。 0055 在上文中结合图5主要以web应用程序为例示出了如何。
49、获取应用程序的文本信息 的文本位置标识符。图 10、 11 则示出了如何获取应用程序的文本信息的文本位置标识符的 另一个具体实施方式。 在步骤1001中, 基于所述应用程序的应用程序接口(API), 获取应用 程序的文本节点与应用程序的其它控件之间的继承关系。在步骤 1003 中, 将所述继承关系 确定为所述文本节点的文本信息的所述文本位置标识符。前面描述的是通过 DOM Tree 的 文本路径来描述文本位置 ID 的方法, 不仅仅适用于普通的 Web 应用开发, 而且适用于所有 用 HTML 技术来绘制用户交互界面的其它应用程序, 典型的包括使用 Web View 控件实现的 Android和iOS应用, 以及一些支持HTML渲染的传统Java GUI(图形用户接口)控件。 而对 于早期不支持HTML的GUI控件, 可以通过控件之间的继承关系来描述文本位置ID。 如图11 所示 : 在窗口 1Window1 中, 每一个控件都有自己的标识 ID。Window1 控件内部包含一个标 签导航Tab Naviga。