CN111507086B - 本地化应用程序中翻译文本位置的自动发现 - Google Patents
本地化应用程序中翻译文本位置的自动发现 Download PDFInfo
- Publication number
- CN111507086B CN111507086B CN202010072152.8A CN202010072152A CN111507086B CN 111507086 B CN111507086 B CN 111507086B CN 202010072152 A CN202010072152 A CN 202010072152A CN 111507086 B CN111507086 B CN 111507086B
- Authority
- CN
- China
- Prior art keywords
- output
- unique identifier
- instance
- code library
- given context
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/31—Indexing; Data structures therefor; Storage structures
- G06F16/313—Selection or weighting of terms for indexing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/34—Browsing; Visualisation therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/35—Clustering; Classification
-
- 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/951—Indexing; Web crawling techniques
-
- 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/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
- G06F16/9566—URL specific, e.g. using aliases, detecting broken or misspelled links
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/134—Hyperlinking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/284—Lexical analysis, e.g. tokenisation or collocates
-
- 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
-
- 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
- G06F40/00—Handling natural language data
- G06F40/40—Processing or translation of natural language
- G06F40/42—Data-driven translation
- G06F40/49—Data-driven translation using very large corpora, e.g. the web
-
- 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/51—Translation evaluation
-
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Human Computer Interaction (AREA)
- Stored Programmes (AREA)
- User Interface Of Digital Computer (AREA)
- Document Processing Apparatus (AREA)
Abstract
本文涉及本地化应用程序中翻译文本位置的自动发现,公开了用于自动发现翻译文本的系统、方法和计算机可读存储介质实施例。实施例可以包括将用户界面(UI)输出与代码库索引中的相应本地化对象相关联,并将唯一标识符的第一实例与唯一标识符的第二实例相匹配。唯一标识符的第一实例可以位于对应于代码库索引的代码库中,并且唯一标识符的第二实例可以对应于UI输出。代码库可以被构造成包括给定上下文中的唯一标识符。进一步的操作可以包括响应于确定在给定上下文中UI输出不正确而检索对UI输出的相应本地化对象的引用,并将该引用输出到相应本地化对象。引用可以被复制到跟踪系统的标签中。
Description
相关申请的交叉引用
本专利申请涉及2018年4月27日提交的15/965,604号美国专利申请,该美国专利申请是2017年4月18日提交的序列号为15/490,852的美国专利申请的部分继续申请案。此外,15/965,604也是2017年4月19日提交的序列号为15/491,952的美国专利申请的部分继续申请案。以上所列的所有专利申请的全部内容出于所有目的通过引用合并于此。
背景技术
在软件本地化过程中,用户界面(UI)转换器可以受益于能够在字符串出现的上下文中看到文本字符串的翻译。在某些情况下,这种上下文可以有助于验证上下文中翻译的文本字符串的正确性,特别是通常当文本字符串可能对上下文敏感或依赖于上下文时。例如,在给定语言中的文本字符串可能需要语言上的一致性或和谐性的情况下,例如人、数字、性别、词形变化、词尾变化(案例)、方面、模式(情绪)等,可能需要上下文来确定给定字符串的翻译是否正确。
例如,在web应用程序中,确定上下文可能需要找到一准确的web页面和/或导航路径,以到达出现特定翻译字符串的位置。因此,对于国际化软件(包括web应用程序和网页)的用户界面,在应用程序中找到丢失或错误翻译的文本的特定源可能是困难的。对于具有较大尺寸代码库的应用程序来说,这一困难可能更大。
给定文本字符串的确切位置和上下文(例如在源代码存储库中)可能不清楚,或者仅仅只通过搜索存储库中的给定文本字符串很难确定。特定文本的字符串匹配可能会产生大量误报,并且对于非文本对象可能会失败。文本字段的唯一标识符的有效性可能有限。即使是用于测试web应用程序的自动调试工具或web爬虫程序(crawler),也可能难以定位文本字符串及其各自的上下文。
此外,某些应用程序中的导航可包含多个步骤,甚至包括例如将特定数据输入表单字段。在某些具有大量代码库的应用程序中,可能很难找到特定字符串的任何实例,在对内容和/或UI组件进行某些更改时,需要来自翻译人员和/或开发人员的大量的时间和劳动密集型资源。
发明内容
本文提供了根据一些实施例的用于自动发现(例如本地化应用程序中)翻译文本的位置的系统、装置、制品、方法和/或计算机程序产品实施例,和/或其组合和子组合。
一个实施例包括用于自动发现翻译文本的位置的计算机实现的方法。根据该实施例,至少一个计算机处理器可以被配置成执行诸如将用户界面(UI)输出与代码库索引中的对应本地化对象相关联,以及将唯一标识符的第一实例与唯一标识符的第二实例相匹配之类的操作。
唯一标识符的第一实例可以位于对应于代码库索引的代码库中,并且唯一标识符的第二实例可以对应于UI输出。代码库可以被构造成在给定上下文中包括唯一标识符。进一步的操作可以包括响应于对在给定上下文中UI输出不正确的确定而检索对UI输出的相应本地化对象的引用,并将该引用输出到相应本地化对象。
此外,一个实施例可以包括具有存储器和至少一个计算机处理器的系统,至少一个计算机处理器被配置成将用户界面(UI)输出与代码库索引中的相应本地化对象相关联,并且将唯一标识符的第一实例与唯一标识符的第二实例相匹配。
唯一标识符的第一实例可以位于对应于代码库索引的代码库中,并且唯一标识符的第二实例可以对应于UI输出。代码库可以被构造成在给定上下文中包括唯一标识符。所述至少一个计算机处理器可以进一步被配置为响应于对在给定上下文中UI输出不正确的确定而检索对UI输出的相应本地化对象的引用,并输出对相应本地化对象的引用。
进一步的实施例可以包括具有存储在其上的指令的计算机可读存储介质。当由至少一个计算机处理器执行时,该指令可使至少一个计算机处理器执行操作,包括:将用户界面(UI)输出与代码库索引中的相应本地化对象相关联,以及将唯一标识符的第一实例与唯一标识符的第二实例相匹配。
唯一标识符的第一实例可以位于对应于代码库索引的代码库中,并且唯一标识符的第二实例可以对应于UI输出。代码库可以被构造成在给定上下文中包括唯一标识符。进一步的操作可以包括响应于对在给定上下文中UI输出不正确的确定而检索对UI输出的相应本地化对象的引用,并输出对相应本地化对象的引用。
附图说明
附图被包含在本文中,并构成本说明书的一部分。
图1是示出根据一个实施例的可容纳web应用程序中的自动文本发现的示例架构的框图。
图2是示出根据一个实施例的自动文本发现过程的示例的流程图。
图3是示出根据一个实施例的国际化成熟度模型的示例的图表。
图4是示出根据一个实施例的被测web应用程序的成熟度的评估的图表。
图5是描绘用于实现各种实施例的示例计算机系统的图。
附图表示了本发明的实施例。在附图中,类似的参考标号通常表示相同或相似的元素。此外,通常参考标号最左边的数字表示参考标号第一次出现的图形。
具体实施方式
本文提供了根据一些实施例的用于实现(例如本地化应用程序中)翻译文本位置的自动发现的系统、方法和/或计算机程序产品实施例,和/或其组合和子组合。
文本发现
根据一些实施例,可以在代码库中搜索应用程序的文本,包括源代码文件或其他数据文件。例如,代码库可以是存储库,或者可以包括多个存储库,例如用于程序源代码的第一存储库和用于本地化数据、翻译文件、键-值对、配置文件等的第二存储库。在某些情况下,代码库或存储库可以是文件系统中的文件目录结构。
存储库还可以包括版本控制系统或其软件,或者可以由版本控制系统或其软件访问。举几个非限制性的例子,版本控制软件的一些例子包括源代码控制系统(SCCS)、修订控制系统(RCS)、并发版本系统(CVS)、子版本(SVN)、水银(Hg)、BitKeeper和Git。浏览存储库的其他方法可以包括存储库浏览器或文档管理系统(DMS),它们可以被定制为与特定版本控制系统一起工作,并同时浏览、搜索和/或比较给定文件的多个版本。另外,或者可选地,可以使用其他已知的搜索技术,例如递归文本搜索、模式匹配、元数据搜索等。
在给定的代码库或存储库中,可以在应用程序源代码的某个位置进行文本更改。例如,这些更改可以存储在版本控制系统中。这样的版本控制系统可以被配置为在给定的软件版本中创建变更报告。例如,报告可以包含进行特定更改的开发人员的名称、实际更改以及开发人员为每个更改添加的注释。
此类报告或更改日志可有助于确定给定文本字符串的出现,并从中查找给定文本字符串的给定更改的原因和上下文以及进行更改的开发人员。在一些实施例中,用于更改的提交可以包含对问题跟踪系统的引用,其可以提供附加信息。因此,可以创建和/或使用交叉引用程序来构建交叉引用索引,对于给定的更改,显示相应的开发人员、问题跟踪ID、更改的原因以及给定的被更改的文本字符串在更改之前和/或之后的状态。被更改的文本字符串的上下文信息可以用于跟踪所讨论的给定文本字符串的位置。其他方法和实施例可以为类似目的而实现,如下所述。
在一些实施例中,给定的应用程序可以配备调试(debug)模式。例如,如上所述并并入本文中的15/965,604号相关美国专利申请中所述的web应用程序可以使用与给定网页上的文本字符串相对应的唯一标识符(例如,键(key))来增加该文本字符串的某些指定外观;因此,每个字符串可以具有唯一的性质键。根据一些实施例,此类一个或更多个键可以具有未分配的值和/或在例如调试模式中按名称显示,并且不在正常运行模式中显示。虽然此调试信息可会分散web应用程序的人类用户或测试人员的注意力,他们可能试图在正常使用或测试过程中查看该页面,但此类调试信息可以有助于计算机程序(例如,自动测试工具、手动调试工具等)以编程方式加载网页以执行测试发现,例如,自动找到输出文本字符串并将其关联到源存储库中的相应位置。
该文本位置发现程序可以搜索出现在网页上的文本,然后自每个文本字符串的键到网页的地址或统一资源定位符(URL)建立交叉引用索引。此外,文本位置发现程序可以通过网页上的链接自动导航,或者递归地浏览后续网页上的多级链接、填写表单、单击/点击按钮等。这样,文本位置发现程序可以自己发现web应用程序的页面,其方式类似于搜索引擎中使用的web爬虫程序。
组合这些特性可以允许这样的文本位置发现程序生成代码库索引,该索引为每个被翻译的文本字符串显示文本字符串在web应用程序中显现的位置。在某些用例中,此功能和/或代码库索引可以允许质量保证(QA)人员快速定位翻译文本字符串,例如以在出现翻译文本字符串的网页的实际上下文中查看它们。使用相同的概念,在一些实施例中,可以实现用于web应用程序的测试套件,以导航到具有高度代码覆盖率的web应用程序的所有或大多数网页,以在页面上记录文本字符串和/或其他本地化对象,以及交叉引用或构建所描述的代码库索引。
除了15/965,604的调试模式或调试器之外,还可以添加功能,以允许在至少一个代码库中自动检测文本字符串及其各自的位置,而不需要人工用户与web应用程序调试器交互以导航到页面等。因此,通过自动化根据本文描述的增强技术的过程,自动调试器或测试工具可以到达额外的页面,这些页面可以是人类测试人员要耗费时间来访问的和/或是web爬虫程序难以或不可能检测到的(例如,依赖于相对长的动作序列或在特定表单字段中的特殊输入上的页面)。
图1是示出根据一个实施例的可以容纳web应用程序中的自动文本发现的示例架构的框图。可以容纳自动文本发现的此架构的其他变体也在本公开范围内。
例如web应用程序、平台、系统或程序的示例架构100可以包括代码库110、代码库索引120和UI 130。UI 130的一部分可以包括UI输出132。UI 130可以包括此处在图1中未示出的其它部分。代码库110可以包括本地化对象112,其可以包括至少一个本地化对象112a、112b等。每个本地化对象可以对应于唯一标识符(UID),例如,对应于本地化对象112a的UID142a、对应于本地化对象142b的UID 142b等等。
唯一标识符可以是键,在一些实施例中,该键可以具有唯一的描述性名称,并且可以包括地区标记(locale tag),其可以全局或本地设置,包括由例如用户和/或管理员设置。在其它实施例中,唯一标识符可以是符号、散列值或其它唯一参考。UID可以与对应于本地化对象的内容配对,例如,对应于UID 142a的本地化对象112a的内容144a,等等。在一些实施例中,内容144a、144b等可以包括文本字符串、图像、动画、视频、音频或其任意组合。
对应于本地化对象112,UI输出132可以包括通过其唯一标识符对本地化对象的引用。例如,UI输出132可以被配置为无条件地输出内容144b。例如,内容144b可以是文本字符串。通过具有可以引用UID 142b的输出或打印功能172b,输出的结果可以是内容144b(未在UI输出132中示出)。UI输出132也可以考虑条件。例如,如果存在无效的UI输入(未示出),则在这种情况下,输出功能172a可以被配置为作为引用UID 142a的结果打印内容144a(未在UI输出132中示出)。因此,代码库110包含UID 142a的第一实例和142b的第一实例,并且通过引用,UI输出132具有相应的UID 142a和UID 142b的第二实例,即使并非在每个用例中都满足某些条件。
根据一些实施例,代码库索引120可以被配置成跨代码库110和UI输出132交叉引用唯一标识符的这些第一和第二实例。为了提供一些非限制性示例,代码库位置可以包括例如给定的路径名、文件名、行号、列号、范围或其任何组合。为了提供一些非限制性示例,输出位置可包括例如统一资源定位符(URL)、统一资源标识符(URI)、面包屑(breadcrumb)、路径名、文件名、行号、列号、范围或其任何组合。在所描述的代码库索引120的示例中,路径152a对应于UID 142a,并且与URL 162a交叉引用;路径152b对应于UID 142b,并且与URL162b交叉引用;依此类推。如果更多的特殊性是优选或需要的,例如对于多个相应的唯一标识符,输出位置可能相同,则在一些实施例中,可以包括附加位置信息。
下面将进一步介绍这些元素、这些元素之间的交互以及对这些元素的其他处理。另外,类似元件的其他组合、配置和布置也是可能的,本文描述的增强技术不限于图1中所描述的配置。
图2示出了根据一个实施例的用于自动发现本地化应用程序中翻译文本的位置的示例性过程200的流程图。过程200可以通过处理逻辑来执行,该处理逻辑可以包括硬件(例如,电路、专用逻辑、可编程逻辑、微代码等)、软件(例如,在处理设备上执行的指令)或其组合。
应当理解,并非所有步骤都需要以执行本文提供的公开。此外,如本领域普通技术人员将理解的,一些步骤可以同时执行,或者以与图2中所示的不同的顺序执行。过程200将参考图2和图5进行描述。然而,过程200不限于那些示例性实施例。
在202中,至少一个处理器404可以将UI输出与代码库索引中的相应本地化对象相关联。在一个实施例中,代码库索引可以是文本文件、数据流、数据库或其他数据结构,其中填充了可用于交叉引用或索引UI输出(例如文本字符串、图像、动画、视频、声音等)的信息,并在代码库中具有相应的位置。
代码库可以是例如存储库,或者可以包括多个存储库,例如程序源代码的第一存储库和本地化数据、翻译文件、键-值对、配置文件等的第二存储库。在一些实施例中,本地化对象可以是此类本地化数据的内容的任何实例,例如,整个翻译文件或配置文件、给定的键-值对(例如翻译文件或配置文件中的键-值对),或其任何集合或组合。
在一些实施例中,该第二存储库的内容可以作为第一存储库中的(子)目录存在,或者可以存在于第一存储库的分支内。为了过程200的目的,本地化对象相对于其他程序代码的相对位置可以跨不同实施例变化,而不改变过程200的整体效果。
在一些实施例中,为了将UI输出与代码库索引中的相应本地化对象相关联,一个或更多个处理器404可以在代码库索引中创建、附加或修改至少一个条目,向代码库索引提供信息,该信息可以标识给定UI输出(例如,通过文本字符串的标识或内容,和/或通过到存储器位置的引用或指针),以及将识别出的给定UI输出链接到代码库中的至少一个特定位置。为了提供一些非限制性示例,代码库中的特定位置可以包括例如给定的路径名、文件名、行号、列号、范围或其任何组合。
在204中,处理器404可以将唯一标识符的对应于代码库索引的代码库中的第一实例与唯一标识符的对应于UI输出的第二实例相匹配。在一个实施例中,唯一标识符的第一实例可以存在于包含本地化数据的代码库中,在这种情况下,唯一标识符的第一实例可以是例如本地化配置文件或翻译文件中的键-值对的键。
另外,与UI输出相对应的唯一标识符的第二实例可以是可以被渲染以进行输出的代码中的调用或引用,例如,在网页、web应用程序、输出文件、打印输出或其他输出中,举几个例子,可以被渲染以用于此类对应输出的代码可以是超文本标记语言(HTML)、可扩展标记语言(XML)、用户界面语言(XUL)或采用几乎任何其他语言的调用(系统调用、库调用、函数调用等),以根据对应于唯一标识符的解引用值使能输出。
因此,在一个实施例中,唯一标识符的第二实例可以是输出函数或渲染字段的参数,并且匹配可以是针对本地化配置文件中对应键的文本字符串,其中对应键可以包括唯一标识符的第一实例。在这种情况下,例如,实际输出可以包括对应于本地化配置文件的键-值对中的匹配键的值。在这种情况下,键-值对可以被视为如上所述的本地化对象。
在206中,处理器404可以响应于对在给定上下文中UI输出不正确的确定来检索对UI输出的相应本地化对象的引用。在一个实施例中,该确定可以是由诸如校对者、翻译器、UI/UX(用户体验)设计者、软件测试员和/或软件开发人员等本地化专家的手动确定。在其他实施例中,该确定可以是基于多个潜在测试条件中的至少一个来识别UI输出的给定上下文中的错误或错误翻译文本的自动确定。
在一个实施例中,给定上下文中UI输出不正确的例子可以是缺少名词形容词一致性或主语动词一致性,例如,作为不匹配的词形变化情况、不匹配的数字、不匹配的性别等的结果。在一个实施例中,这种不正确的翻译可能在任何一个本地化对象自身中不存在,而是在本地化对象在一起的组合中存在,其中被组合的本地化对象的一个或更多个本地化对象可导致给定上下文(例如本地化对象组合的上下文)中UI输出不正确。
上下文可能有帮助的另一个例子是UI输出可包含多义词或多义词组。本地化可能需要上下文来消除源文本中使用的多义词的歧义。根据一些实施例,特殊处理可以用于术语“客户”,其可以指代公司的客户,例如另一业务,或可以单独指代电子商务站点的最终消费者——术语“客户”的这些含义可在一些地区区分,即使它们在开发应用程序所针对的本地源语言环境中以相同的方式被处理。如果没有在给定应用程序中实际出现的UI输出的足够上下文,在某些情况下,对某些本地化的有效和成功的审查可能会变得困难或不可能。
因此,在一些实施例中,可以通过模式匹配、启发式、神经网络、人工智能、机器学习、其他适用算法或其任意组合来自动进行定位测试,例如用于标记错误或潜在错误文本,例如对于针对给定本地化目标语言本地化UI输出中可能发现的字符串或其他上下文不匹配文本的上下文不敏感串接(concatenation),应用用于识别错误一致性的频繁模式的规则。除了可以被指定为预定的不明确文本字符串(其可与正在被测试的UI输出进行比较)的其他可能性之外,这种模式可以被认为是已知的模糊语言。
在进一步的实施例中,对UI输出在给定上下文中不正确的确定不需要该不正确性的完全确定,而是例如可以是文本不正确或可能不正确的置信度或概率水平超过阈值。在文本或翻译文本可以是图像、视频或音频输出的内容的实施例中,例如,处理器404可以使用元数据标记、光学字符识别(OCR)、基于内容的检索、基于内容的指纹或签名、语音到文本转换,或其他方法来标识本地化对象的内容以标记可能不正确的文本。
另外,在206中,为了检索对UI输出的相应本地化对象的引用,处理器404可以进一步被配置为标识可针对对应于本地化对象的UI输出呈现的源代码文件或标记文件中的至少一个,从而包含唯一标识符的对应于UI输出的第二实例。
在一个实施例中,源代码文件或标记文件的标识可以已经在代码库索引中被交叉引用,以解除对唯一标识符的与UI输出相对应的第一和第二实例的引用,从而检索对与UI输出相对应的相应本地化对象的引用。然而,在唯一标识符的第二实例尚未被交叉引用的情况下,可以对包含唯一标识符的第二实例的源文件或标记文件进行标识,例如,通过确定指向唯一标识符的第二实例的文件路径、文件名(文件名)、导航路径和/或URL。
如上文关于206所示,在一些实施例中,对UI输出的相应本地化对象的“引用”可以指对本地化对象的调用(例如,使用唯一标识符的第二实例的函数参数)和/或该调用的位置(例如,包含/调用该调用的源文件、标记文件、URL等的路径)。
因此,引用的检索可以包含确定(例如,从执行路径或检索路径解析)或加载(例如,从索引中的交叉引用条目)文本位置的标识符,例如在源代码存储库和/或本地化存储库中。例如,可以进一步探索或分析文本的这种位置,以确定给定本地化对象的上下文。在一些实施例中,文本(例如,原始文本或翻译文本)位置的标识符可以包括给定的路径名、文件名、行号、列号、范围或其任意组合。
在208中,处理器404可以输出对相应本地化对象的引用。在一些实施例中,输出可以是到web浏览器、调试工具、翻译工具或其任何组合,用于手动或自动处理不正确的UI输出。在一些实施例中,输出可以包括将对相应本地化对象的引用复制到跟踪系统、票务(ticketing)系统、漏洞报告系统或问题报告系统或问题跟踪系统的票证(ticket)中,例如一些非限制性示例包括Bugzilla、Trac、Jira、Redmine等。
在这种情况下,引用可以包括源代码或标记代码的副本,其包括唯一标识符的第二实例、本地化对象的文字或简略复制、找到唯一标识符的第二实例的相应源代码文件或标记文件的位置(路径、URL等),或以上的任何组合。在进一步的实施例中,还可以在相同或相似的输出中再现上下文。
为了206、208和/或过程200的其它方面的目的,代码库可以被构造为使得在给定上下文中包括唯一标识符(其任何实例)。然而,本地化对象的上下文是其实际显示的UI输出,但从唯一标识符本身的上下文来看,这可能不太明显,因为在代码库中可以找到它的引用。在一些实施例中,即使在代码库被构造成在给定上下文中包括唯一标识符的情况下,也可能需要对代码库或应用程序的测试来确定UI输出的上下文,从而执行或渲染任何相应的代码来确定本地化对象的UI输出上下文。
在包括基于图形用户界面(GUI)或web应用程序测试的实施例中,手动或自动测试可以进一步包括捕获与给定上下文中的UI输出相对应的屏幕截图。在某些情况下,还可以将这些捕获到的屏幕截图作为票证的一部分提交给票务、问题跟踪或漏洞跟踪系统。此外,这些捕获的屏幕截图可以包括例如从代码库中的任何源代码不容易获得的附加上下文。
在一些实施例中,某些本地化对象的其他示例只能通过将多个级别导航深入到菜单序列、网站或web应用程序来访问。然后,多层次导航路径可以产生某些本地化对象的特定上下文,例如,当上下文可能不容易从代码库中简单地通过文本搜索或近距离搜索来获得时。此外,这种多级导航路径可以用面包屑(breadcrumb)表示。代表给定测试的多级导航路径的面包屑可以由处理器404生成,例如以测试系统、调试工具的能力运行,或者作为被测网站或web应用程序的正常操作的一部分。
在一些实施例中,测试可以包括表单字段输入验证。例如,某些本地化对象可能无法通过应用程序的静态页面或默认输出直接访问。相反,这种本地化对象只能在处理某些输入(例如通过表单字段输入的有效和/或无效输入值)时才出现。在这种情况下,使用表单字段验证的自动测试可以改进测试时间和代码覆盖率,并且可以产生上下文信息,以其他方式很难从代码库直接访问这些上下文信息。
作为将本文所公开的增强技术应用于大约1300个HTML模板文件和28000个键的Web平台(例如,在字符串中有115000个单词)的一些好处的示例,根据一个实施例,在这种情况下可以显示给用户(或测试人员)的不同网页的数量可以是大约一千个,例如,考虑在多个页面中重用模板文件和/或跨多个模板文件的某些页面。一些页面可能有多个显示状态(例如,第一次导航到页面时的第一状态、输入无效数据并接收错误消息时的第二状态、输入有效数据时的第三状态等)。因此,为了测试给定的不同页面,平均而言,除了作为单独的交互导航到页面本身之外,web平台的测试可能还需要两个额外的交互。因此,对这个示例web平台的完整测试可能需要测试人员手动或自动进行三千次交互。
在手动测试的情况下,使用上面讨论的示例web平台,给定的交互平均每次可能需要大约一分钟。交互可以包括点击或敲击按钮、准备输入的有效和/或无效数据(包括用于上传的文本和/或文件)、复制输入数据、输入有效数据、输入无效数据、记录页面URL和/或面包屑、记录给定页面和/或输入的UI输出。除了记录UI输出本身之外,对于本地化的web应用程序,还可以记录相应的本地化键(例如,通过键的标识和/或键在代码库中的位置),以便将本地化对象标识为本地化的web应用程序的UI输出的一部分。由于在某些用例中,记录可能涉及将键信息和页面/位置信息复制到单独的数据库或电子表格中,因此记录键可能每个键花费额外的15秒。给定的页面可以引用例如平均30个键。
假设每个键花费15秒,则30个键大约花费450秒,即7.5分钟,才能完整记录平均页面的键。添加一分钟(60秒)来执行页面交互,然后对每个页面进行完整的审阅,平均花费510秒,即8.5分钟。因此,对于3000页的web平台,在某些情况下,例如由至少一名测试人员、开发人员、翻译人员或本地化专家或他们的组合作为审阅员来测试所支持的每种语言或地区的本地化web应用程序的给定安装,则完整的本地化审阅(测试)可能需要3000×8.5分钟=25500分钟,或425小时的手动审阅总时间。
此外,即使对给定web平台或web应用程序的更新没有完全修改整个代码库中的文本或图像,本地化测试可能仍然需要与初始开发阶段差不多的时间,因为可能无法知道修订的文本(或修订的翻译文本)可能出现在哪些页面上。因此,在执行更新时,测试人员可能需要浏览给定安装的大部分或所有页面,这在某些使用实例中会导致用于维护本地化应用程序的工作时间和成本的无法维持的增长。因此,如本文所公开的,使用与UI输出相对应的交叉引用本地化对象的自动测试可以为本地化应用程序的操作、维护和性能带来相当大的优势。
例如,可以使用各种工具、框架或方法来自动化测试。在一些实施例中,可以例如通过静态分析来验证代码库。在其他实施例中,在某些情况下,可以动态地分析所得出的应用程序,重点是实际输出。在web应用程序或某些其他GUI应用程序的情况下,举几个非限制性示例来说,可以使用用于测试自动化的专用框架,包括Selenium、Capybara、Watir、RobotFramework、xUnit或其任何组合。在进一步的实施例中,这种自动化测试可以作为包括连续集成、连续部署、连续输送或其任何组合的方法的一部分来执行。
根据给定应用程序的阶段和成熟度,或其在国际化能力或特定本地化方面的具体进展,例如,某些软件测试方法或范例可以并行或连续使用。下面将进一步描述评估国际化和一些特定本地化方面的此类项目成熟度或进度的其他示例。
用于全球软件开发评估的国际化成熟度模型
如果没有一种结构化的方法来评估其代码的成熟度以支持其产品的全球扩展,那么在特定于地区的市场中为全球市场生产软件的开发团队可能没有能力处理他们可能会遇到的各种技术。这种国际化成熟度模型可以让开发团队根据其代码在不同地区工作的能力来评估他们所处的位置,还可以作为自我指导的调查来帮助指导团队从一个级别到下一个级别。
对一般性问题(见下文)和有关编码使用、支持Unicode/CLDR或其他地区提供程序类、库等的每项技术的问题的回答,可以允许开发团队进行自我评估,并了解他们必须在哪些方面做出工作,才能以其他语言提供下一级别的全球支持。
作为一个示例实施例,国际化(i18n)成熟度模型可以如图3所示出现,例如,对于以美国为中心的开发团队。可以进行或自动生成任何不同维度的成熟度水平的任何评估或确定,例如多语言(m17n)能力、i18n能力、组织状态、本地化(l10n)状态等。在一些实施例中,集成到手动或自动测试的各个阶段中,包括自动标记可以指示应用程序中的给定模块或子项目的成熟度水平与应用程序或项目整体的成熟度水平不同的问题。虽然图3示出了一个非限制性示例,但是根据该示例,几乎任何数量的组合、类别、尺寸等都是可能的。
为评估项目的i18n/l10n成熟度而向开发团队提出的非穷举的、非限制性的一般性问题清单可以包括以下内容:
第1部分-评估总体I18n准备情况
1)您目前如何支持不同地区或语言的最终用户?
(a)是否有语言选择器或地区选择器?
(b)最终用户需要做什么才能看到所需的语言?
2)您区分用户界面语言和数据地区吗?
3)代码和语言或地区设置(l10n)是否被分为不同的存储库?
(a)如果对UI语言进行了更改,是否需要重建代码?
4)外语的部署如何工作?
5)语言是如何呈现的?
(a)在运行时使用语言包还是每种语言是一种代码版本?
6)在发布之前是否一致地使用伪本地化来限定特性?
7)开发人员是否了解并接受过i18n要求方面的培训?
8)如何跟踪i18n缺陷?
(a)它们与语言问题分离了吗?
9)有多少自动化(如果有的话)可用于支持适当的i18n?
10)l10n是否在持续集成和部署模型中得到考虑?
11)文本和图形是分开的吗?
(a)图形是否具有文化意识?
(b)对于不同的地区设置,是否可以支持不同的图形?
12)有没有针对外国用户的反馈机制?
(a)l10n问题是否有专门的反馈机制?
第2部分:特定于技术的水平评估和指导(图4)
图4示出了根据一个非限制性示例实施例的示出被测Java web应用程序的i18n成熟度的示例评估的图。在这个特定的例子中,提供了六个成熟度级别的模板,以及对应的Java应用程序配置设置列表,其最初为空白列表。
开发人员、测试人员或自动化测试工具或测试套件可以使用现有的配置设置或配置设置列表中对应于相应配置设置的适当成熟度级别的部分中的建议配置设置来填充配置设置空白列表中的适当条目。虽然图4示出了一个非限制性示例,但是根据该示例,几乎任何数量的组合、类别、尺寸等都是可能的。
示例计算机系统
例如,可以使用一个或更多个众所周知的计算机系统来实现各种实施例,例如图5所示的计算机系统500。例如,可以使用一个或更多个计算机系统500来实现本文所讨论的任何实施例以及它们的组合和子组合。
计算机系统500可以包括一个或更多个处理器(也被称为中央处理单元或CPU),例如处理器504。处理器504可以连接到总线或通信基础设施506。
计算机系统500还可以包括一个或更多个用户输入/输出设备503,例如监视器、键盘、指示设备等,其可以通过一个或更多个用户输入/输出接口502与通信基础设施506通信。
处理器504中的一个或更多个可以是图形处理单元(GPU)。在一个实施例中,GPU可以是设计用于处理数学密集型应用的专用电子电路的处理器。GPU可以具有高效用于并行处理大数据块的并行结构,例如计算机图形应用通用的数学密集型数据、图像、视频、向量处理、阵列处理等,以及密码学(包括暴力破解),生成加密散列或散列序列,解决部分散列反转问题,和/或为一些基于区块链的应用程序生成其他工作证明计算结果。
另外,处理器504中的一个或更多个可以包括协处理器或用于加速密码计算或其他专用数学函数的其他逻辑实现,包括硬件加速加密协处理器。这种经加速的处理器还可以包括使用协处理器和/或其他逻辑来促进这种加速的用于加速的一个或更多个指令集。
计算机系统500还可以包括主存储器或第一存储器508,例如随机存取存储器(RAM)。主存储器508可以包括一个或更多个级别的高速缓存。主存储器508可以具有存储在其中的控制逻辑(即,计算机软件)和/或数据。
计算机系统500还可以包括一个或更多个辅助存储设备或辅助存储器510。辅助存储器510可以包括例如主存储驱动器512和/或可移除存储设备或驱动器514。例如,主存储驱动器512可以是硬盘驱动器或固态驱动器。可移除存储驱动器514可以是软盘驱动器、磁带驱动器、光盘驱动器、光存储设备、磁带备份设备和/或任何其他存储设备/驱动器。
可移除存储驱动器514可以与可移除存储单元518交互。可移除存储单元518可以包括计算机可用的或可读的存储设备,其具有存储在其上的计算机软件(控制逻辑)和/或数据。可移除存储单元518可以是软盘、磁带、光盘、DVD、光盘和/或任何其它计算机数据存储设备。可移除存储驱动器514可以从可移除存储单元518读取和/或写入可移除存储单元518。
辅助存储器510可以包括允许计算机系统500访问计算机程序和/或其它指令和/或数据的其它装置、设备、组件、仪器或其它方法。这种装置、设备、组件、仪器或其他方法可以包括例如可移除存储单元522和接口520。可移除存储单元522和接口520的示例可以包括程序盒和盒接口(例如在视频游戏设备中找到的接口)、可移除存储芯片(例如EPROM或PROM)和相关联的插座、存储棒和USB端口、存储卡和相关联的存储卡插槽和/或任何其他可移除存储单元和相关接口。
计算机系统500还可以包括通信或网络接口524。通信接口524可以使能计算机系统500与外部设备、外部网络、外部实体等的任何组合进行通信和交互(由参考标号528单独或共同引用)。例如,通信接口524可以允许计算机系统500通过通信路径526与外部或远程设备528通信,该通信路径526可以是有线和/或无线的(或其组合),并且可以包括LAN、WAN、因特网的任何组合等。控制逻辑和/或数据可以经由通信路径526传送到计算机系统500和自计算机系统500传送。
举几个非限制性示例,计算机系统500还可以是个人数字助理(PDA)、台式工作站、膝上型计算机或笔记本计算机、上网本、平板电脑、智能电话、智能手表或其他可穿戴设备、物联网(IoT)的一部分、和/或嵌入式系统中的任何一个,或其任何组合。
计算机系统500可以是客户端或服务器,通过任何传递模式(delivery paradigm)访问或托管任何应用和/或数据,包括但不限于远程或分布式云计算解决方案;本地(local)或内部(on-premises)软件(例如,“内部”的基于云的解决方案);“即服务”模型(例如,内容即服务(CaaS)),数字内容即服务(DCaaS)、软件即服务(SaaS)、托管软件即服务(MSaaS)、平台即服务(PaaS)、桌面即服务(DaaS)、框架即服务(FaaS)、后端即服务(BaaS)、移动后端即服务(MBaaS)、基础设施即服务(IaaS)、数据库即服务(DBaaS)等;和/或混合模型,包括上述示例或其他服务或传递模式的任何组合。
任何适用的数据结构、文件格式和模式都可以从标准派生,包括但不限于JavaScript对象表示法(JSON)、可扩展标记语言(XML)、另一种标记语言(YAML)、可扩展超文本标记语言(XHTML)、无线标记语言(WML)、消息包、XML用户界面语言(XUL),或单独或组合的任何其他功能相似的表示。或者,可以使用专有的数据结构、格式或模式,可以是唯一的,也可以与已知的或开放的标准结合使用。
任何相关的数据、文件和/或数据库可以人类可读格式(例如数字、文本、图形或多媒体格式)存储、检索、访问和/或传输,还包括各种类型的标记语言以及其他可能的格式。作为另一种选择或者结合上述格式,数据、文件和/或数据库可以以二进制、编码、压缩和/或加密格式或任何其他机器可读格式来存储、检索、访问和/或传输。
各种系统和层之间的接口或互连可以采用任意数量的机制,例如任意数量的协议、编程框架、平面图或应用程序编程接口(API),包括但不限于文档对象模型(DOM)、发现服务(DS)、属性列表(NSUserDefaults),Web服务描述语言(WSDL)、消息交换模式(MEP)、Web分布式数据交换(WDDX)、Web超文本应用技术工作组(WHATWG)HTML5 Web消息、表示性状态传输(REST或RESTful web服务)、可扩展用户界面协议(XUP)、简单对象访问协议(SOAP),XML模式定义(XSD)、XML远程过程调用(XML-RPC)或任何其他可能实现类似功能和结果的开放或专有机制。
这种接口或互连还可以使用统一资源标识符(URI),其可以进一步包括统一资源定位符(URL)或统一资源名称(URN)。其他形式的统一和/或唯一标识符、定位符或名称可以单独使用,也可以与上述形式结合使用。
上述任何协议或API都可以与任何编程语言、过程语言、函数语言或面向对象的语言接口或以其实现,并且可以被编译或解释。非限制性示例包括C、C++、C#、对象-C、Java、Swift、Go、Ruby、Perl、Python、JavaScript、WebAssembly或几乎任何其他语言,具有在任何类型的框架、运行时间环境、虚拟机、解释器、堆栈、引擎或类似机制中的任何其他库或模式,包括但不限于Node.js,V8,Knockout、jQuery,Dojo,Dijit,OpenUI5,AngularJS,Express.js,Backbone.js,Ember.js,DHTMLX,Vue,React,Electron等许多非限制性示例。
在一些实施例中,包含有形的、非暂时性计算机可用或可读介质的有形的、非暂时性设备或制品,在此也可以被称为计算机程序产品或程序存储设备,计算机可用或可读介质上存储有控制逻辑(软件)。这包括但不限于计算机系统500、主存储器508、辅助存储器510、可移除存储单元518和522,以及体现上述任何组合的有形制品。这种控制逻辑当由一个或更多个数据处理设备(例如计算机系统500)执行时,可以使得该数据处理设备如本文所述操作。
基于本公开所包含的教导,对于相关领域的技术人员来说,如何使用图5所示之外的数据处理设备、计算机系统和/或计算机架构来制作和使用本发明的实施例将是显而易见的。具体而言,实施例可以使用除本文所述之外的软件、硬件和/或操作系统实现来操作。
结论
应当理解,具体实施方式部分而不是任何其他部分旨在用于解释权利要求。其他部分可阐述发明人所设想的一个或更多个但并非所有示例性实施例,因此,不意图以任何方式限制本公开或所附权利要求。
虽然本公开描述了用于示例性领域和应用的示例性实施例,但应当理解,本公开不限于此。其他实施例及对其进行的修改是可能的,并且在本公开的范围和精神范围内。例如,并且在不限制本段的一般性的情况下,实施例不限于附图中所示和/或本文中所描述的软件、硬件、固件和/或实体。此外,实施例(无论这里是否明确描述)对于这里描述的示例之外的领域和应用具有重要的实用性。
本文借助说明特定功能的实现及其关系的功能构建块来描述了实施例。为了便于描述,本文已经任意地定义了这些功能构建块的边界。只要适当地执行指定的功能和关系(或其等价物),就可以定义替代边界。另外,替代实施例可以使用不同于本文描述的顺序来执行功能块、步骤、操作、方法等。
本文中对“一个实施例”、“一实施例”、“示例实施例”、“一些实施例”或类似短语的引用表明,所描述的实施例可以包括具体特征、结构或特性,但不一定每个实施例都包括具体特征、结构或特性。此外,这些短语不一定指同一实施例。
此外,当结合实施例来描述具体特征、结构或特性时,将该特征、结构或特性并入其它实施例中都在相关技术领域的技术人员的知识范围内,无论在此是否明确提及或描述。另外,可以使用表达“耦连”和“连接”及其衍生物来描述一些实施例。这些术语不一定是彼此的同义词。例如,可以使用术语“连接”和/或“耦连”来描述一些实施例,以指示两个或多个元件彼此直接物理或电接触。然而,术语“耦连”也可以意味着两个或更多个元素彼此不直接接触,但仍然相互合作或相互作用。
本公开的宽度和范围不应受到上述任何示例性实施例的限制,而应仅根据以下权利要求及其等价物来定义。
Claims (19)
1.一种用于翻译文本位置的自动发现的方法,包括:
由至少一个计算机处理器将UI输出与代码库索引中的多个本地化对象中的相应本地化对象相关联;
由所述至少一个计算机处理器将唯一标识符的第一实例与所述唯一标识符的第二实例相匹配,
其中所述唯一标识符的所述第一实例位于对应于所述代码库索引的代码库中,
其中所述唯一标识符的所述第二实例对应于所述UI输出,以及
其中所述代码库被构造为在所述多个本地化对象中的给定上下文中包括所述唯一标识符;
响应于按照经配置以识别错误一致性的频繁模式的规则,所述UI输出相对于本地化目标与所述多个本地化对象中的所述给定上下文不匹配的确定,由所述至少一个计算机处理器检索对与所述UI输出相关联的所述相应本地化对象的引用;以及
由所述至少一个计算机处理器将所述代码库索引中的对所述相应本地化对象的所述引用复制到问题跟踪系统的票证,其中,使用对所述相应本地化对象的所述引用从所述票证中能够访问所述相应本地化对象。
2.根据权利要求1所述的方法,其中所述给定上下文包括表单字段输入验证的结果。
3.根据权利要求1所述的方法,其中所述给定上下文包括多级导航路径的结果。
4.根据权利要求3所述的方法,还包括:
由所述至少一个计算机处理器生成表示所述多级导航路径的面包屑。
5.根据权利要求1所述的方法,其中对所述UI输出与所述给定上下文不匹配的所述确定包括与预定的不明确文本字符串进行比较的结果。
6.根据权利要求1所述的方法,其中,所述确定还借助于启发式、机器学习或其组合。
7.根据权利要求1所述的方法,其中,所述UI输出包括多义词或多义词组。
8.根据权利要求1所述的方法,其中,在连续集成、连续部署、连续输送或其组合的过程中执行所述相关联。
9.根据权利要求1所述的方法,其中,使用专用框架来进行自动化测试。
10.一种用于翻译文本位置的自动发现的系统,包括:
存储器;以及
至少一个计算机处理器,耦连到所述存储器,并配置为:
将UI输出与代码库索引中的多个本地化对象中的相应本地化对象相关联;
将唯一标识符的第一实例与所述唯一标识符的第二实例相匹配,
其中所述唯一标识符的所述第一实例位于对应于所述代码库索引的代码库中,
其中所述唯一标识符的所述第二实例对应于所述UI输出,以及
其中所述代码库被构造成在所述多个本地化对象中的给定上下文中包括所述唯一标识符;
响应于按照经配置以识别错误一致性的频繁模式的规则,所述UI输出相对于本地化目标与所述多个本地化对象中的所述给定上下文不匹配的确定,检索对与所述UI输出相关联的所述相应本地化对象的引用;以及
将所述代码库索引中的对所述相应本地化对象的所述引用复制到问题跟踪系统的票证,其中,使用对所述相应本地化对象的所述引用从所述票证中能够访问所述相应本地化对象。
11.根据权利要求10所述的系统,其中所述给定上下文包括表单字段输入验证的结果。
12.根据权利要求10所述的系统,其中所述给定上下文包括多级导航路径的结果。
13.根据权利要求12所述的系统,其中所述至少一个计算机处理器进一步配置为:
生成表示所述多级导航路径的面包屑。
14.根据权利要求10所述的系统,其中对所述UI输出与所述给定上下文不匹配的所述确定包括与预定的不明确文本字符串进行比较的结果。
15.一种非暂时性计算机可读存储介质,其上存储有指令,所述指令由至少一个计算设备执行时,使所述至少一个计算设备执行操作,包括:
将UI输出与代码库索引中的多个本地化对象中的相应本地化对象相关联;
将唯一标识符的第一实例与所述唯一标识符的第二实例相匹配,
其中所述唯一标识符的所述第一实例位于对应于所述代码库索引的代码库中,
其中所述唯一标识符的所述第二实例对应于所述UI输出,以及
其中所述代码库被构造成在所述多个本地化对象中的给定上下文中包括所述唯一标识符;
响应于按照经配置以识别错误一致性的频繁模式的规则,所述UI输出相对于本地化目标与所述多个本地化对象中的所述给定上下文不匹配的确定,检索对与所述UI输出相关联的所述相应本地化对象的引用;以及
将所述代码库索引中的对所述相应本地化对象的所述引用复制到问题跟踪系统的票证,其中,使用对所述相应本地化对象的所述引用从所述票证中能够访问所述相应本地化对象。
16.根据权利要求15所述的非暂时性计算机可读存储介质,其中所述给定上下文包括表单字段输入验证的结果。
17.根据权利要求15所述的非暂时性计算机可读存储介质,其中所述给定上下文包括多级导航路径的结果。
18.根据权利要求17所述的非暂时性计算机可读存储介质,所述操作进一步包括:
生成表示所述多级导航路径的面包屑。
19.根据权利要求15所述的非暂时性计算机可读存储介质,其中对所述UI输出与所述给定上下文不匹配的所述确定包括与预定的不明确文本字符串进行比较的结果。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/263,978 US11126644B2 (en) | 2019-01-31 | 2019-01-31 | Automatic discovery of locations of translated text in localized applications |
US16/263,978 | 2019-01-31 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111507086A CN111507086A (zh) | 2020-08-07 |
CN111507086B true CN111507086B (zh) | 2023-04-28 |
Family
ID=69467313
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010072152.8A Active CN111507086B (zh) | 2019-01-31 | 2020-01-21 | 本地化应用程序中翻译文本位置的自动发现 |
Country Status (6)
Country | Link |
---|---|
US (1) | US11126644B2 (zh) |
EP (1) | EP3690646A1 (zh) |
JP (1) | JP2020126649A (zh) |
CN (1) | CN111507086B (zh) |
AU (1) | AU2019283802A1 (zh) |
CA (1) | CA3066786A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11474975B2 (en) * | 2019-09-18 | 2022-10-18 | Microsoft Technology Licensing, Llc | Identity represented assets in a content management system |
CN112819419B (zh) * | 2020-08-13 | 2023-03-21 | 厦门汉印电子技术有限公司 | 一种基于Git的Android应用国际化语言管理方法和系统 |
CN112068921A (zh) * | 2020-09-23 | 2020-12-11 | 北京亿信华辰软件有限责任公司武汉分公司 | 一种软件国际化资源定位方法 |
CN112115063B (zh) * | 2020-09-29 | 2022-04-19 | 腾讯科技(深圳)有限公司 | 一种软件本地化测试方法、装置、终端及存储介质 |
CN111930411B (zh) * | 2020-09-30 | 2020-12-29 | 腾讯科技(深圳)有限公司 | 代码升级方法、装置、计算机设备和存储介质 |
CN113485915B (zh) * | 2021-06-16 | 2023-09-08 | 中国工程物理研究院计算机应用研究所 | 一种基于协议建模和约束覆盖的接口测试数据自动生成方法和装置 |
CN113656305A (zh) * | 2021-08-16 | 2021-11-16 | 杭州安恒信息技术股份有限公司 | 一种自动生成测试套件方法及相关装置 |
US20230297638A1 (en) * | 2022-03-15 | 2023-09-21 | Salesforce.Com, Inc. | Automatic Layout Anomaly Detection for Website Localization |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5551055A (en) * | 1992-12-23 | 1996-08-27 | Taligent, Inc. | System for providing locale dependent user interface for presenting control graphic which has different contents or same contents displayed in a predetermined order |
US6735759B1 (en) * | 1999-07-28 | 2004-05-11 | International Business Machines Corporation | Editing system for translating displayed user language using a wrapper class |
US7103875B1 (en) * | 2001-09-21 | 2006-09-05 | Siebel Systems, Inc. | Methods and apparatus for integrated, automatic pseudo localization of software |
CN101473318A (zh) * | 2006-06-22 | 2009-07-01 | 微软公司 | 动态软件本地化 |
US7698126B2 (en) * | 2005-03-08 | 2010-04-13 | Microsoft Corporation | Localization matching component |
US8010910B2 (en) * | 2007-09-04 | 2011-08-30 | Microsoft Corporation | Breadcrumb list supplementing for hierarchical data sets |
CN103038763A (zh) * | 2010-07-23 | 2013-04-10 | 国际商业机器公司 | 应用程序文本的按需翻译 |
CN104346153A (zh) * | 2013-07-31 | 2015-02-11 | 国际商业机器公司 | 用于翻译应用程序的文本信息的方法和系统 |
CN105339889A (zh) * | 2013-03-15 | 2016-02-17 | 谷歌公司 | 用于计算机应用的语言翻译本地化的技术 |
US9501471B2 (en) * | 2013-06-04 | 2016-11-22 | International Business Machines Corporation | Generating a context for translating strings based on associated application source code and markup |
US9971767B1 (en) * | 2017-02-15 | 2018-05-15 | International Business Machines Corporation | Context-aware translation memory to facilitate more accurate translation |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0668558B1 (en) * | 1994-01-14 | 2002-04-17 | Sun Microsystems, Inc. | Method and apparatus for automating the localization of a computer program |
US20030115552A1 (en) * | 2001-11-27 | 2003-06-19 | Jorg Jahnke | Method and system for automatic creation of multilingual immutable image files |
US7941484B2 (en) * | 2005-06-20 | 2011-05-10 | Symantec Operating Corporation | User interfaces for collaborative multi-locale context-aware systems management problem analysis |
US20090094539A1 (en) * | 2007-08-29 | 2009-04-09 | Yao-Tian Wang | Controlling a computer peripheral device using a universal driver and device-generated user interface information |
US8775154B2 (en) * | 2008-09-18 | 2014-07-08 | Xerox Corporation | Query translation through dictionary adaptation |
US9262405B1 (en) * | 2013-02-28 | 2016-02-16 | Google Inc. | Systems and methods of serving a content item to a user in a specific language |
US10691474B2 (en) | 2017-01-03 | 2020-06-23 | International Business Machines Corporation | Text resources processing in an application |
US10489513B2 (en) * | 2017-04-19 | 2019-11-26 | Salesforce.Com, Inc. | Web application localization |
-
2019
- 2019-01-31 US US16/263,978 patent/US11126644B2/en active Active
- 2019-12-17 AU AU2019283802A patent/AU2019283802A1/en active Pending
-
2020
- 2020-01-07 CA CA3066786A patent/CA3066786A1/en active Pending
- 2020-01-21 CN CN202010072152.8A patent/CN111507086B/zh active Active
- 2020-01-30 JP JP2020013156A patent/JP2020126649A/ja active Pending
- 2020-01-31 EP EP20154758.5A patent/EP3690646A1/en active Pending
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5551055A (en) * | 1992-12-23 | 1996-08-27 | Taligent, Inc. | System for providing locale dependent user interface for presenting control graphic which has different contents or same contents displayed in a predetermined order |
US6735759B1 (en) * | 1999-07-28 | 2004-05-11 | International Business Machines Corporation | Editing system for translating displayed user language using a wrapper class |
US7103875B1 (en) * | 2001-09-21 | 2006-09-05 | Siebel Systems, Inc. | Methods and apparatus for integrated, automatic pseudo localization of software |
US7698126B2 (en) * | 2005-03-08 | 2010-04-13 | Microsoft Corporation | Localization matching component |
CN101473318A (zh) * | 2006-06-22 | 2009-07-01 | 微软公司 | 动态软件本地化 |
US8010910B2 (en) * | 2007-09-04 | 2011-08-30 | Microsoft Corporation | Breadcrumb list supplementing for hierarchical data sets |
CN103038763A (zh) * | 2010-07-23 | 2013-04-10 | 国际商业机器公司 | 应用程序文本的按需翻译 |
CN105339889A (zh) * | 2013-03-15 | 2016-02-17 | 谷歌公司 | 用于计算机应用的语言翻译本地化的技术 |
US9501471B2 (en) * | 2013-06-04 | 2016-11-22 | International Business Machines Corporation | Generating a context for translating strings based on associated application source code and markup |
CN104346153A (zh) * | 2013-07-31 | 2015-02-11 | 国际商业机器公司 | 用于翻译应用程序的文本信息的方法和系统 |
US9971767B1 (en) * | 2017-02-15 | 2018-05-15 | International Business Machines Corporation | Context-aware translation memory to facilitate more accurate translation |
Also Published As
Publication number | Publication date |
---|---|
AU2019283802A1 (en) | 2020-08-20 |
EP3690646A1 (en) | 2020-08-05 |
CN111507086A (zh) | 2020-08-07 |
JP2020126649A (ja) | 2020-08-20 |
US20200250208A1 (en) | 2020-08-06 |
US11126644B2 (en) | 2021-09-21 |
CA3066786A1 (en) | 2020-07-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111507086B (zh) | 本地化应用程序中翻译文本位置的自动发现 | |
US11379227B2 (en) | Extraquery context-aided search intent detection | |
US10936821B2 (en) | Testing and training a question-answering system | |
US8745026B1 (en) | Collaborative modeling environment | |
US9311077B2 (en) | Identification of code changes using language syntax and changeset data | |
Lamothe et al. | A3: Assisting android api migrations using code examples | |
US10489124B2 (en) | Method and system for providing software containers supporting executable code created from computational algorithms described in printed publications | |
US20230281005A1 (en) | Source code merge conflict resolution | |
Tan et al. | Detecting outdated code element references in software repository documentation | |
Chakroborti et al. | Backports: Change types, challenges and strategies | |
Dramko et al. | DIRE and its data: Neural decompiled variable renamings with respect to software class | |
Lavoie et al. | A case study of TTCN-3 test scripts clone analysis in an industrial telecommunication setting | |
US11315436B2 (en) | Method and system for automatically providing graphical user interfaces for computational algorithms described in printed publications | |
US11119761B2 (en) | Identifying implicit dependencies between code artifacts | |
US11605006B2 (en) | Deep-learning model catalog creation | |
Domínguez-Álvarez et al. | ReChan: an automated analysis of Android app release notes to report inconsistencies | |
Arora et al. | BugFinder: automatic data extraction approach for bug reports from JIRA-repositories | |
US20240069907A1 (en) | Software development context history operations | |
Khtira et al. | FDDetector: A tool for deduplicating features in software product lines | |
Mastropaolo et al. | Toward Automatically Completing GitHub Workflows | |
Panu | A Technology for Optimizing the Process of Maintaining Software Up-to-Date | |
Yang | Beyond Similar Code: Leveraging Social Coding Websites | |
Shahbazian | Techniques for Methodically Exploring Software Development Alternatives | |
Pandita | Inferring Semantic Information from Natural-Language Software Artifacts | |
WO2018022430A1 (en) | Method and system for automatically providing graphical user interfaces for computational algorithms described in printed public |
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 | ||
CB02 | Change of applicant information |
Address after: California, USA Applicant after: Shuo Power Co. Address before: California, USA Applicant before: SALESFORCE.COM, Inc. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |