CN105103148A - 自动化的基于上下文的软件本地化 - Google Patents
自动化的基于上下文的软件本地化 Download PDFInfo
- Publication number
- CN105103148A CN105103148A CN201380075475.0A CN201380075475A CN105103148A CN 105103148 A CN105103148 A CN 105103148A CN 201380075475 A CN201380075475 A CN 201380075475A CN 105103148 A CN105103148 A CN 105103148A
- Authority
- CN
- China
- Prior art keywords
- property file
- language
- yojan
- translation
- stage
- 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
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
- G06F40/00—Handling natural language data
- G06F40/40—Processing or translation of natural language
- G06F40/42—Data-driven translation
- G06F40/47—Machine-assisted translation, e.g. using translation memory
-
- 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)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (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)
Abstract
示例实施例涉及自动化的基于上下文的软件本地化。在示例实施例中,至少一个阶段计算设备可以自动地检测与用于软件产品的源代码相关的至少一个屏幕状态。至少一个阶段计算设备可以针对第一语言自动地产生至少一个约简的属性文件。约简的属性文件中的每个约简的属性文件可以与屏幕状态中的一个屏幕状态相关。至少一个阶段计算设备可以自动地创建至少一个屏幕截图。屏幕截图中的每个屏幕截图可以与屏幕状态中的一个屏幕状态相关。至少一个阶段计算设备可以自动地创建至少一个翻译包,例如针对每个屏幕状态一个翻译包。每个翻译包可以包括与特定屏幕状态相关联的屏幕截图和约简的属性文件。
Description
背景技术
在一些场景中,需要以多种不同人类语言来提供软件产品(例如,应用程序、操作系统等)。在一些场景中,最初可以以第一语言(例如,源语言)来提供软件产品,并且该软件产品需要被转换成至少一个其它语言(例如,目标语言)。例如,这种转换可以通过识别软件产品的语言特定元素(例如,在用户界面内的可显示的字符串元素)并将字符串元素从源语言翻译成目标语言来执行。一旦所有的语言特定元素已经被翻译,那么产品可以被重新编译以产生针对目标语言的特定语言版本的软件产品。将软件产品从一种语言转换成另一种语言的过程通常被称为“本地化”。在一些场景中,软件产品可以设计成使得该软件产品能够更容易地适应于各种语言,例如,通过提供晚期可以被特定语言元素替代的占位符。在这种场景中,改编这种软件产品的过程也可以称为“本地化”。
附图说明
下述详细说明参考附图,其中:
图1A描述了利用自动化的基于上下文的软件本地化的示例软件开发过程中信息阶段和流程的方框图;
图1B描述了利用自动化的基于上下文的软件本地化的示例软件开发过程中信息阶段和流程的方框图;
图2是用于自动化的基于上下文的软件本地化的示例翻译包创建器模块的方框图;
图3A描述了可以包括在用于自动化的基于上下文的软件本地化的示例翻译包中的示例屏幕截图;
图3B描述了可以包括在用于自动化的基于上下文的软件本地化的示例翻译包中的示例约简的阶段1属性文件的至少一部分;
图3C描述了可以包括在用于自动化的基于上下文的软件本地化的示例翻译包中的示例约简的阶段1属性文件的至少一部分;
图4A是用于自动化的基于上下文的软件本地化的示例方法的流程图;
图4B是用于自动化的基于上下文的软件本地化的示例方法的流程图;
图4C是用于自动化的基于上下文的软件本地化的示例方法的流程图;
图5是用于自动化的基于上下文的软件本地化的示例阶段计算设备的方框图;以及
图6是用于自动化的基于上下文的软件本地化的示例方法的流程图。
具体实施方式
如上所述,本地化过程可以包括将软件产品从第一语言(例如,源语言)转换成至少一种其它语言(例如,目标语言),或者将设计有占位符的软件产品转换成至少一种语言。在一些场景中,本地化过程可被用于将软件产品转换成不仅适合不同语言而且适合不同区域(例如少量的区域优惠)、不同市场(例如,不同的技术需求)或其它较细的调节。
本地化过程可以是非常耗时和耗成本的。例如,可能需要通过识别和提取所有特定语言元素(例如,在用户界面内的可显示的字符串元素)来准备软件产品的源代码。在一定程度上可以使用代码分析工具来识别特定语言元素,但是开发者通常不知道这些工具或忘记了它们。然后,当已经汇编出所提取的特定语言元素的列表时,需要翻译特定语言元素。虽然可以使用某些自动翻译程序或服务,在许多场景中,这些服务不够精细使得不能提供高质量的翻译。典型地,由提供有需要翻译的所提取的字符串的文件或表格的人工翻译执行字符串的翻译。人工翻译然后翻译字符串并将翻译返回给开发者,开发者可将该翻译插入软件产品中。在将翻译插入到软件产品中之前,语言审稿者(例如目标语言的天生将目标语言的人)可以检查所翻译字符串的文件或表格。一旦翻译被插入并且软件产品被重新编译和运行,那么可以执行对翻译的另外检查。这种检查是劳动密集型的并且是极其昂贵的。另外,这种检查会花费较长时间,这会导致较慢交付本地化版本的软件产品。
语言错误对于本地化软件来说是主要问题。语言错误可以指在软件产品的翻译中的错误,该错误容易被软件产品的当地用户发现。这些错误会使软件产品的整体质量反映较差,并且可能甚至导致软件产品发生故障(例如死机)。修复语言错误,尤其是在软件产品开发的晚期阶段,会需要显著的时间和金钱(例如,用于翻译者和工程师来设计和测试修复)。语言错误的一个主要原因是人工翻译并且可能至少一轮检查是隔离开执行的,例如没有字符串在软件产品中如何使用的精确上下文。例如,在一些语言中,对于在按钮上使用的单词或短语的正确翻译会不同于用在标题或文本框中的正确翻译。当字符串缺少上下文时对于翻译者或审稿人来说提供准确的翻译是非常困难的。即使翻译者或审稿人对软件产品熟悉,利用软件产品用户界面也难以想象字符串的特定位置和上下文。
本公开描述了自动化的基于上下文的软件本地化。本公开描述了提供(例如给人工翻译)特定语言元素,该元素可能需要连同该元素在软件产品用户界面中如何使用的上下文信息(例如屏幕截图)被本地化。本公开描述了自动地检测处于与软件产品相关的源代码中的多个屏幕状态,以及对于多个屏幕状态中的每个屏幕状态,自动地产生屏幕截图和至少一个约简的属性文件,该约简的属性文件包括在这种屏幕截图中可显示的特定语言元素。本公开描述了对于多个屏幕状态中的每个屏幕状态自动地创建翻译包,该翻译包包括与特定屏幕状态相关联的屏幕截图和至少一个约简的属性文件。本公开可以利用自动例行程序从源代码提取特定语言元素。应当理解的是,本公开的技术可以用于针对特定源语言已经编程的源代码和/或用于针对特定语言元素利用占位符已经编程的源代码。
本公开可以提供与先前本地化例行程序相比而言的优点。例如,人工翻译可以更加准确并且花费较少时间,因为在翻译过程期间翻译者能够参考上下文信息。人工翻译可能需要询问R&D组少得多的问题或没有澄清的问题(例如,关于特定翻译是否正确的问题),这会节省大量时间(例如,每轮澄清问题需要一周)。人工翻译在翻译过程期间会发生少得多的语言错误,这可以导致更加精练的并且更多功能性的正确软件产品。另外,因为在软件开发过程中人工翻译的简化,软件开发过程可以是更加扩展性的。
图1A和图1B描述了在示例软件开发过程中信息阶段和流程的方框图,该过程利用自动化的基于上下文的软件本地化。例如,根据本公开的至少一个实施例,阶段102、104、106、108和110可以包括在示例软件开发过程中。这种软件开发过程可以包括比图1A和图1B中所示的更多或更少的阶段。例如,软件开发过程可以包括用于编程软件、编译软件、发布软件、功能上测试软件(例如,针对故障、性能等)等的附加的阶段。这些附加的阶段中的任何一个可以插入在图1A和图1B中描述的任何阶段之间,并且在图1A和图1B中描述的任何阶段可以插入在现存软件开发过程中的任何阶段之间。在该方面,在图1A和图1B中描述的阶段可以与任何现存软件开发过程(例如,Agile开发过程)集成。
在此使用的术语“软件开发过程”(也称为“软件开发生命周期”或“端对端(E2E)软件开发”)可以指用于开发符合结构、模型或标准的软件的任何过程。这种标准可以限定可被要求来开发、测试和维护软件产品的阶段和任务。Agile是限定迭代开发过程的一个示例标准,该迭代开发过程依赖于定期的发布、定期的测试和反馈。在此使用的术语“阶段”可被用于指软件开发过程的一部分,例如,其中可以执行至少一个例行程序来进行软件产品的开发。可以在计算设备(例如,被称为“阶段计算设备”)上实施或执行阶段。阶段计算设备可以自动地执行阶段或利用用户输入执行阶段。贯穿本公开,应该理解,术语“阶段”可以以灵活方式使用以指在抽象概念中的软件开发过程的阶段或指用于执行阶段的例行程序的阶段计算设备。
每个阶段102、104、106、108和110可以通过至少一个计算设备(例如,被称为阶段计算设备)执行,例如,该计算设备可以是能够与至少一个其它计算设备通信(例如,通过网络)的任何计算设备。在一些实施例中,每个阶段可以在不同的计算设备中实施。在其它实施例中,在图1A和图1B中显示的两个或更多个阶段可以在同一计算设备中实施。在其它实施例中,可以通过多于一个的计算设备实施至少一个阶段。术语“系统”可以用于指单个计算设备或多个计算设备,例如,其中系统中的每个计算设备与系统中多个计算设备中的至少一个其它计算设备通信。下面将要描述可以用于这些阶段中的至少一个的关于示例计算设备的更多细节,例如,关于图5的阶段计算设备500。
作为讨论阶段102、104、106、108和110的起始点,软件产品的源代码是可以用的。源代码和可能的其它文件可以用于构建可执行版本的软件产品。术语“代码库”可用于指所有人工书写的文件(例如,与工具生成的文件相反),包括源代码,其要求执行例如软件构建。在代码库中的文件而不是源代码文件可以包括配置文件、属性文件、资源文件等。源代码或代码库可以通过软件开发过程的不同阶段(例如,在图1A或图1B中没有显示)来提供或者作为用户的输入来提供。
阶段1(由参考标记102表示)可以包括分析软件产品的源代码来识别特定语言元素并且提供更新的源代码和至少一个属性文件。实施阶段1的阶段计算设备可以接收(例如,从外部计算设备、用户输入或内部储存器)阶段0源代码112。阶段0源代码112可以指其在阶段1之前的任何状态下存在的源代码。作为一个示例,阶段0源代码112可以在至少某些程度上已经被编程并进行功能性测试。阶段1计算设备可以包括属性提取器模块114,该模块可以分析阶段0源代码112并提供阶段1源代码116和阶段1属性文件118。
属性提取器模块114可以分析阶段0源代码112以识别特定语言元素。特定语言元素可以指源代码中的任何文本,该任何文本可以影响相关的软件产品显示(例如,经由用户界面)给用户的方式(例如,以语言或特定位置方式)。这些特定语言元素可以是需要被“本地化”以便将软件产品转换成不同语言的项目。例如,可以作为用户界面(例如,窗口、按钮、菜单、工具条等)的一部分显示给用户的源代码中字符串可以是语言特定元素。语言特定元素的其它示例包括热键、坐标尺寸或可以影响软件产品取决于目标语言或区域而被显示的方式的任何其它元素。属性提取器模块114可以检测源代码中的代码,该代码指示文本字符串将被显示给用户。属性提取器模块114可以忽略编程注释、模块名称等,例如,因为这些元素的精确文本可以不显示给用户。在一些场景中,属性提取器114可以检测占位符,该占位符先前被插入到源代码中,其目的在于晚期利用特定语言元素来替代。属性提取器可以允许用户(例如,软件构建小组的成员)来搜索(例如,至少部分手动地)特定语言元素或其可以自动地执行检测。
属性提取器模块114可以利用新占位符来取代源代码中的特定语言元素或占位符,在此称为“属性键”。属性键可以是对于属性键替换的特定语言元素或占位符来说是唯一的名称或文本模式。属性键可以类似于在编程中使用的常量,其中常量名称可以被插入到代码中,并且当编译该代码时可以采用特别指定的值。如下阐释,晚期,至少一个特定语言值(例如,被翻译的值)可以与每个属性键关联。属性提取器模块114可以单步调试阶段0源代码112,并且每次检测到特定语言元素(例如,可显示的字符串或者占位符),属性提取器模块114可以产生唯一的属性键并利用属性键来替换特定语言元素。属性提取器模块可以输出阶段1源代码116,其可以与阶段0源代码相同,但是具有被属性键替换的特定语言元素。
属性提取器模块114可以产生属性文件,例如,阶段1属性文件118。阶段1属性文件118可以包括当属性提取器模块114单步调试阶段0源代码112时由属性提取器模块114产生的所有属性键的列表。在一些实施例中,属性提取器模块114可以产生多于一个的属性文件,例如,其中每个属性文件包括所产生的所有属性键的子集。事实上,在各种实施例中,在此讨论的任何一个属性文件可以实施为多于一个的属性文件。然而,为简单起见,本公开可以指各种单个属性文件。阶段1属性文件118还可以包括每个属性键的值。晚期当编译源代码时可以使用属性键值,在该情况中,该值可以替换源代码中的属性键。对于阶段1的目的,属性键值可以利用特定语言元素的原始值来初始化。例如,如果字符串被属性键替换,那么与在属性文件中的该属性键相关联的值可以是字符串。作为一个特定示例,如果软件产品的原始版本是以英语提供的,那么阶段1属性文件118可以包括是英语的属性键值。作为另一个示例,如果原始占位符被属性键替换,那么与属性文件中的属性键相关联的值可以是原始占位符或该值可以是空的。
阶段1可以输出阶段1源代码116以及阶段1属性文件118,并且软件开发过程的至少一个随后阶段可以使用这些。例如,阶段1计算设备可以将阶段1源代码116和阶段1属性文件118传送给阶段2计算设备。在一些实施例中,只要属性提取器114已经产生阶段1源代码116和/或阶段1属性文件118,阶段1计算设备就可以自动地将阶段1源代码116和阶段1属性文件118传送给随后的阶段(例如阶段2)。在一些场景中,阶段1计算设备可以将这些项目传送给至少一个其它阶段,并且然后该至少一个其它阶段可以将这些项目传送给阶段2。在一些场景中,阶段1计算设备可以将这些项目传送给在过程中的不是阶段2的随后阶段,例如阶段3。在这个方面,阶段2可以被跳过或排除。在一些场景中,软件开发过程可以包括另外的阶段(由参考标记119表示),其中阶段1源代码120可以基于阶段2属性文件126被编译。
阶段2(由参考数字104表示)可以包括分析阶段1属性文件、提供至少一个目标语言的初始翻译并产生至少一个目标语言属性文件。实施阶段2的阶段计算设备可以接收(例如,从阶段1计算设备或从内部储存器)阶段1源代码120和阶段1属性文件122。阶段1源代码120可以与阶段1源代码116一样或是其副本,并且阶段1属性文件122可以与阶段1属性文件118一样或是其副本。阶段2可以将阶段1源代码120例如没有修改地传递给随后阶段。阶段2计算设备可以包括翻译服务模块124,该模块可以分析阶段1属性文件122并提供至少一个阶段2属性文件126。
翻译服务模块124可以分析阶段1属性文件122。翻译服务模块124可以单步调试属性文件122,并且针对每个属性键,翻译服务模块124可以将相关联的属性键值从源语言翻译成至少一种目标语言。翻译服务模块124可以包括或访问能够执行单词和/或短语的自动翻译的服务。例如,翻译服务模块124可以包括或对翻译储存库具有访问权。另外,翻译服务模块124可以包括或对翻译提供者(例如,通过API可访问的在线翻译提供者)具有访问权。如上所述,虽然可以使用一些自动翻译程序或服务,但这种服务,在许多场景中,并不足以精细从而提供高质量翻译。因此,阶段2可以被认为提供针对阶段1属性文件的翻译的“初稿”。如上所示,在一些实施例或场景中,阶段2可以被跳过或排除。在这些情形中,初稿翻译在阶段3之前可以不用提供给属性文件(例如,阶段1属性文件118)。在这些情形中,直到晚期阶段(例如阶段5)才可以使用软件的本地化版本。
翻译服务模块124可以针对每个目标语言(例如,针对原版软件产品将提供和/或支持的每种语言)产生一个阶段2属性文件126。在该方面,本公开可以同时支持向多个目标语言的本地化(即,“支持语言”)。每个阶段2属性文件126可以包括由属性提取器模块114所产生的所有属性键的列表。每个阶段2属性文件126还可以包括每个属性键的值。对于阶段2的目的,取决于目标语言,属性键值在阶段2属性文件之间可以不同。例如,如果以英语提供软件产品的原始版本,那么阶段1属性文件122可以包括英语的属性键值。然后,第一阶段2属性文件126可以包括法语的属性键值,并且第二阶段2属性文件126可以包括德语的属性键值,等等。
阶段2可以输出阶段1源代码120(例如,经由周期“A”传递给图1B),阶段2属性文件126(例如,经由周期“B”传递给图1B)以及阶段1属性文件122(例如,经由周期“C”传递给图1B),并且随后阶段可以使用这些。例如,阶段2计算设备可以将这些项目传送给阶段3计算设备。在一些场景中,阶段2计算设备可以将这些项目传送给至少一个其它阶段,并且然后至少一个其它阶段可以将这些项目传送到阶段3。在一些场景中,阶段2计算设备可以将这些项目传送给在过程中的不是阶段3的随后阶段。在一些场景中,软件开发过程可以包括另外的阶段(由参考标记127表示),其中阶段1源代码120可以基于阶段2属性文件126被编译。
阶段3(由参考标记106表示)可以包括分析源代码和属性文件以产生软件产品的每个屏幕状态(并且可能达到每种语言一个)的翻译包(TP)。术语“屏幕状态”可以指可显示给用户的软件产品的用户界面(UI)的离散部分。屏幕状态可以指显示给用户的窗口或层,与在任何特定时间呈现给用户的整体屏幕相反。例如,如果主窗口被呈现给用户,那么这可以是第一个屏幕状态。然后,如果用户点击按钮,并且在主窗口内弹跳出较小的对话窗口,较小的对话窗口自身可以是第二屏幕状态。在一些实施例中,软件产品的UI信息可以被分成屏幕状态,以这种方式使得在屏幕状态之间不会复制基于语言的元素的情况。因此,在来自上述的示例中,即使正在显示较小的对话窗口,第一屏幕状态不会包括与较小对话窗口相同的基于语言的元素的情况,并且第二屏幕状态不会包括与在对话窗口后方的较大主窗口相同的基于语言的元素的情况。在这方面,通过使用软件产品而呈现给用户的基于语言的元素的每个情况可以唯一地与特定屏幕状态相关联。
实施阶段3的阶段计算设备可以接收(例如,从阶段2计算设备或从内部储存器)阶段1源代码128(例如,经由周期“A”从图1A传递)、阶段2属性文件130(例如,经由周期“B”从图1A传递)以及阶段1属性文件132(例如,经由周期“C”从图1A传递)。阶段1源代码128可以与阶段1源代码120相同或是其副本。阶段2属性文件130可以与阶段2属性文件126相同或是其副本,并且阶段1属性文件132可以与阶段1属性文件122相同或是其副本。阶段3计算设备可以包括UI测试器模块134和翻译包创建器模块136。这些模块中的每个可以包括编码在机器可读存储介质上的并且通过阶段计算设备的处理器可执行的一系列指令。此外或可替代地,每个模块可以包括一个或多个硬件设备,该硬件设备包括用于实施上述功能的电子电路。关于在此描述和显示的模块,应该理解的是,包括在一个模块内的所有或部分可执行指令和/或电子电路,在可替代的实施例中,可以包括在在附图中显示的不同模块中或在未显示的不同模块中。
UI测试器模块134可以分析和/或测试阶段1源代码128的用户界面(也称为“图形用户界面”或GUI)组件,例如,以测试这些组件是否与阶段1源代码128的其它部件发挥正常作用。UI测试器模块124可以扫描或穿行源代码并且识别可以促使UI组件(例如,窗口、菜单等)显示给用户的代码。各个UI组件可以被认为是屏幕状态。UI测试器模块124可以模拟与UI的用户互动。例如,UI测试器模块124可以模拟用户通过应用程序的图形特征的导航(例如点击按钮等)。UI测试器模块124可以确保分析可以显示给用户的每个UI组件(例如标题、导航条,按钮等)。UI测试器124可以分析和/或测试基于设备的软件产品和基于网页的应用程序两者的UI组件。UI测试器模块124可以适合于各种代码组织范式,例如,AOP(面向方面编程)。在该方面,因为翻译包创建器模块136可以与UI测试器模块134接口,则在此描述的本地化技术可以与任何代码组织范式一起使用。
翻译包创建器模块136可以与UI测试器模块134接口。在可替代实施例中,翻译包创建器模块136可以与UI测试器模块134集成。翻译包创建器136可以使用来自UI测试器模块134和阶段2属性文件130的信息以针对每种语言和每种屏幕状态(例如,一个用于主窗口,一个用于较小对话窗口等)产生约简的属性文件。对于特定的语言,每个约简的属性文件可以仅包括特定语言元素(例如,字符串),该特定语言元素以特定屏幕状态被呈现给用户。因此,翻译包创建器136可以使用来自UI测试器模块134的信息以确定阶段2属性文件130和/或阶段1属性文件中的哪个部分(例如,属性键和值)与每个屏幕状态相关联。翻译包创建器也可以使用来自UI测试器模块134的信息来捕捉、接收和/或创建针对每个屏幕状态的屏幕截图。
图2是示例翻译包创建器模块200的方框图,例如其类似于图1B的翻译包创建器模块136。翻译包创建器模块200可以与UI测试器模块(例如模块134)协作以自动地单步调试所有源代码的UI组件以产生针对每个屏幕状态的约简的属性文件和屏幕截图(例如,用于软件产品上下文)。翻译包创建器模块200可以包括多个模块202、204、206、208。这些模块中的每一个模块可以包括编码在机器可读存储器介质上并由阶段计算设备的处理器执行的一系列指令。另外或可替代地,每个模块可以包括一个或多个硬件设备,该硬件设备包括用于实现上述功能的电子电路。关于在此描述和显示的模块,应该理解的是,包括在一个模块中的所有或部分可执行指令和/或电子电路在可替代实施例中可以包括在显示在附图中的不同模块中或包括在未显示的不同模块中。
屏幕阶段检测器模块202可以检测源代码(例如,阶段1源代码128)中的屏幕状态。屏幕阶段检测器模块202可以与UI测试器模块(例如,UI测试器模块134)接口以检测在源代码中的屏幕状态。一旦检测到屏幕状态,翻译包创建器模块200可以(例如,通过模块202和/或模块204)确定至少一个属性文件中的哪个部分与屏幕状态相关联。例如,屏幕状态检测器模块202可以分析与特定屏幕状态相关联的代码以确定哪个属性键被包括在这种代码中。
属性文件约简器模块204可以基于至少一个属性文件和关于屏幕状态的信息产生至少一个约简的属性文件。例如,当屏幕状态检测器模块检测到屏幕状态以及与屏幕状态相关联的属性键时,属性文件约简器模块204可以分析每个阶段2属性文件(例如,每种语言一个)以识别相同的属性键(与屏幕状态相关联)。与屏幕状态相关联的这些属性文件的部分然后可以被提取并用于产生新属性文件。该过程然后可以针对其它屏幕状态进行重复。对于每个特定语言阶段2属性文件,该结果可以是针对每个屏幕状态的一个约简的属性文件,其中每个约简的属性文件包括与特定屏幕状态相关联的属性键和值。属性文件约简器模块204也可以以类似的方式产生阶段1属性文件的约简的属性文件。
屏幕截图捕捉模块206可以基于关于屏幕状态的信息捕捉、接收、产生和/或创建至少一个屏幕截图。例如,当屏幕状态检测器模块检测屏幕状态时,屏幕截图捕捉模块206可以捕捉、接收、产生和/或创建图像(例如,GIF、JPG、PNG等),该图像与当使用软件产品而经历屏幕状态时用户见到的图像相同或类似。
包装器模块208对于每个屏幕状态和可能达到每种语言一个屏幕状态而言可以包装相关联的屏幕截图和至少一个相关联的约简的属性文件。包装器模块208可以接收(例如,从模块206)针对每个屏幕状态的屏幕截图。包装器模块208可以接收(例如,从模块204)针对每个屏幕状态的至少一个约简的阶段2属性文件。包装器模块208可以接收(例如,从模块204)针对每个屏幕状态的约简的阶段1属性文件。包装器模块208可以创建针对每个屏幕状态的翻译包(TP),并且可能达到一种语言一个翻译包,如下更详细描述的。
再次参考图1B,翻译包创建器模块136可以创建至少一种翻译包(TP)138,例如每个屏幕状态一个翻译包,并且可能达到每种语言一个翻译包。在各种场景中,可以以各种方式构建翻译包。在图1B的特定实施例中,翻译包138可以被构建为每种屏幕状态一个翻译包,其中每种翻译包138包括屏幕截图140,针对每个支持语言一个约简的阶段2属性文件142,并且可能包括约简的阶段1属性文件144。在其它场景中,翻译包138可以被构建为每个屏幕状态一个翻译包,并且然后对于每种屏幕状态,达到每种支持语言一个翻译包。换句话说,在具有每种支持语言一个TP的场景中,翻译包的总数量可以是“屏幕状态的数量”乘以“支持语言的数量”。在这种场景中,每个翻译包138(对于特定的屏幕状态和支持语言)包括屏幕截图140、针对特定支持语言的一个约简的阶段2属性文件142、以及可能的约简的阶段1属性文件144。在这种场景中,对于特定的屏幕截图,翻译包(每种支持语言一个翻译包)可以包括复制信息。例如,每个翻译包(针对屏幕状态)可以包括相关联的屏幕截图的副本、以及可能的相关联的约简的阶段1属性文件的副本。为了清楚起见,在这种场景中,图1B的翻译包138可以出现一个屏幕截图、一个约简的阶段1属性文件以及一个约简的阶段2属性文件,并且然后,翻译包可以是每种屏幕状态一个以及每种支持语言一个。在其它场景中,一些翻译包(每种屏幕状态)可以包括除了其它TP以外的或多或少约简的阶段2属性文件。例如,一个TP可以支持3种语言并且另一种TP可以支持1种语言。
屏幕截图140可以是显示UI一部分的图像(例如,GIF、JPG、PNG等),该一部分UI结合相关屏幕状态被显示给用户。每个约简的阶段2属性文件142可以是对应语言的阶段2属性文件130的子集。每个约简的阶段2属性文件142可以仅包括状态2属性文件的与相关屏幕状态相关联的部分。例如,阶段2属性文件可以仅包括与特定语言元素相关联的属性键和值,该特定语言元素可以显示为相关屏幕状态的结果。类似地,约简的阶段1属性文件144可以是阶段1属性文件132的子集并且可以仅仅包括与特定语言元素相关联的来自阶段1属性文件132的属性键和值,该特定语言元素可以显示为相关屏幕状态的结果。
翻译包创建器模块136然后可以将屏幕截图140、至少一个约简的阶段2属性文件142(例如,针对每个支持语言一个)、以及可能的约简的阶段1属性文件144打包在一起。如上所述,在可替代的实施例中,翻译包创建器模块136可以每个屏幕状态打包一个TP,或者每个屏幕状态打包一个TP并且达到每种支持语言一个TP。翻译包138可以采取任何文件或文件夹形式,该文件或文件夹可以包含多个文件(例如,a.zip文件、a.rar文件、数字文件夹等)。在这点,每个TP可以提供需要被本地化的各种元素(例如,来自约简的阶段1属性文件144的属性键和值)、针对元素(例如,在约简的阶段2属性文件中的数值)的翻译初稿以及每个元素的特定应用程序上下文信息(屏幕截图)。
图3A至图3C描述了示例翻译包的示例内容。图3A描述了可以包括在示例翻译包中的示例屏幕截图300。图3B描述了可以包括在示例翻译包中的示例约简的阶段1属性文件330(例如以英语)的至少一部分。图3C描述了可以包括在示例翻译包中的示例约简的阶段2属性文件360(例如,以法语)的至少一部分。如通过比较图3A、3B以及3C可见,UI的各种特定语言元素(例如,屏幕截图300)具有在属性文件中的属性键(以及值)副本。例如,在图3A中的特定语言元素(例如可显示的字符串)302、304、306和308具有在图3B中的副本属性键/值332、334、336和338。同样,例如,在图3A中的特定语言元素(例如,可显示的字符串)302、304、306和308具有在图3C中的副本属性键/值362、364、366和368。通过比较图3B和图3C可见,属性键(例如,“AddIntegrationDialogCancelButton”)在每个属性文件中是相同的,但是取决于语言(例如,“Cancel”用于英语以及“Annuler”用于法语),属性键数值是不同的。
图3A至图3C显示了翻译包是如何针对需要被翻译或本地化的各种特定语言元素提供上下文的示例。翻译包可以在可显示在软件产品中的屏幕和显示在这种屏幕中的相关特定语言元素之间提供直接链接。例如,人工翻译可以查看英语属性文件(例如,图3B)以确定需要被翻译的值。人工翻译然后可以查看特定语言(例如,在图3C中是法语)的“初稿”属性文件以领会该值的可能正确翻译。人工翻译然后可以查看屏幕截图(例如,图3A)以获取关于当显示给用户时该值在软件产品中如何使用的上下文。人工翻译然后可以确定初稿翻译是正确的,或者可以修改翻译以更好地适合上下文。
再次参考图1B,阶段3可以输出每个屏幕状态一个翻译包(TP),并且可能达到每种语言一个翻译包,并且随后阶段可以使用这些。例如,阶段3计算设备可以将这些项目传送到至少一个阶段4计算设备。在一些场景中,阶段3计算设备可以将这些项目传送到至少一个其它阶段计算设备,并且然后至少一个其它阶段计算设备可以将这些项目传送到至少一个阶段4计算设备。在一些场景中,阶段3计算设备可以将这些项目传送到在过程中的不是阶段4的随后阶段的至少一个阶段计算设备。在一些实施例中,只要翻译包模块136已经产生了翻译包138,阶段3计算设备就可以自动地将翻译包138传送到随后阶段(例如,阶段4)。阶段3也可以输出阶段1源代码128和/或阶段2属性文件130,并且随后阶段可以使用这些。例如,阶段3计算设备可以将这些项目传送到阶段5计算设备。在一些场景中,阶段3计算设备可以将这些项目传送到至少一个其它阶段,并且然后至少一个其它阶段可以将这些项目传送到阶段5。在一些场景中,阶段3计算设备可以将这些项目传送到在过程中的不是阶段5的随后阶段。
阶段4(由参考标记108表示)可以包括分析翻译包以产生修订的翻译包,该修订的翻译包可以包括比“初稿”翻译更加准确的翻译,该“初稿”翻译可包括在来自较早阶段的翻译包。阶段4可以包括由至少一个人工审稿人或翻译人(例如148)的分析和输入。通过多于一个的计算设备,例如达到每种支持语言一个计算设备,可以实施阶段4。在这种场景中,每个计算设备可以从不同语言的人工翻译接收输入。阶段4可以接收(例如,从阶段3计算设备)翻译包146。翻译包146可以与翻译包138中的至少一些相同或者是其副本。如上所述,每个翻译包可以包括一个约简的阶段2属性文件(例如,针对特定屏幕状态和特定语言)或者可以包括多于一个的约简的阶段2属性文件。例如,如果特定阶段4计算设备的人工翻译只能够翻译成一种目标语言,翻译包可以仅包括针对该语言的阶段2属性文件。作为另一个示例,如果人工翻译能够翻译成所有支持语言,那么翻译包可以包括针对所有支持语言的阶段2属性文件。如上所述,翻译包可以由先前的阶段(例如,阶段3)自动地发送。其结果是,人工审稿人可以接收翻译包准备好检查或翻译的邮件通知或一些其它通知(例如,由较早阶段产生和/或传送的)。
人工翻译148可以检查翻译包146。如上所述,对于人工审稿人而言,检查和翻译过程可以简单得多,因为翻译包包括与约简的属性文件相关联的屏幕截图(增加上下文信息)以及翻译初稿。因为翻译过程已经变得容易得多,例如通过在线兼职翻译人(例如Amazon’sMechanicalTurk等)可以实施阶段4。另外,可以减少翻译次数,这意味着晚期阶段(例如阶段5)可以较快开始。人工翻译148可以创建修订的翻译包150,例如每个屏幕状态一个翻译包(例如,针对与在翻译包146中的相同屏幕状态)。
每个修订的翻译包150可以包括至少一个修订的约简的阶段2属性文件。例如,如果翻译包146每个包括针对不同语言的多个阶段2属性文件,那么每个修订的翻译包150可以包括多个修订的约简的阶段2属性文件。另一方面,如果翻译包146每个包括单个阶段2属性文件(例如,针对单个目标语言),那么每个修订的翻译包150可以包括单个修订的约简的阶段2属性文件。每个修订的约简的阶段2属性文件150可以与翻译包146中的对应的约简的阶段2属性文件一样,但是人工翻译148可以改变一些属性键值,例如以提供更准确的翻译。一旦该修订的翻译包150被创建,可以被传送或提交到晚期阶段(例如,阶段5),以提交给源代码库。例如,阶段4计算设备可以包括一界面,通过该界面,人工翻译可以指示并提交修订的翻译包,并且然后修订的翻译包可以自动地传送到晚期阶段(例如,阶段5)。
因此,阶段4可以输出每个屏幕状态一个修订的翻译包,并且可能达到每种语言一个翻译包,并且晚期阶段可以使用这些。例如,阶段4计算设备可以将这些项目传送到阶段5计算设备。在一些场景中,阶段4计算设备可以将这些项目传送到至少一个其它阶段,并且然后至少一个其它阶段可以将这项项目传送到阶段5。在一些场景中,阶段4计算设备可以将这些项目传送到晚期在过程中的不是阶段5的阶段。在一些场景中,其中多个计算设备(例如,用于不同语言的多个人工翻译)用于阶段4,每个阶段4计算设备可以输出其相关联的翻译包,例如针对计算设备能够处理的语言,每个屏幕状态一个翻译包。
阶段5(由参考标记110表示)可以包括基于修订的翻译包更新代码库。实施阶段5的阶段计算设备可以接收(例如,从阶段3计算设备)阶段1源代码152和阶段2属性文件154。阶段1源代码152可以与阶段1源代码128相同或是其副本,并且阶段2属性文件154可以与阶段2属性文件130相同或是其副本。阶段5计算设备可以接收(例如,从至少一个阶段4计算设备)修订的翻译包156。修订的翻译包156可以包括相同的修订的翻译包150或其副本,并且可能包括来自其它阶段4计算设备(例如,其处理其它语言)的修订翻译包。阶段5计算设备可以包括监听器模块(未显示),该监听器模块检测何时提交修订的翻译包(例如,通过在阶段4中的界面,由人工翻译)。当接收到修订的翻译包时,阶段5的例行程序可以自动地开始。阶段5计算设备可以包括属性文件更新器模块158,该属性文件更新器模块158可以产生至少一个阶段5属性文件160。该模块可以包括编码在机器可读存储介质上并且通过阶段计算设备的处理器可执行的一系列指令。此外或可替代的,该模块可以包括一个或多个硬件设备,该硬件设备包括用于实施下述功能的电子电路。
属性文件更新器模块158可以分析阶段2属性文件154以及修订的翻译包156,并且可以利用在修订的翻译包156中的任何对应的值来更新阶段2属性文件中的值。作为更新的一个示例方法,属性文件更新器模块158可以读取第一阶段2属性文件154(例如,针对第一语言)。对于在文件中的每个属性键和值,属性文件更新器模块158可以搜索针对相同属性键的修订的翻译包156(例如,仅仅在相同语言的修订的约简的阶段2属性文件中搜索)。如果存在相同的属性键,属性文件更新器模块158可以利用来自修订的约简的阶段2属性文件的值来替换(例如,在存储器中)在阶段2属性文件中的属性键值。一旦已经搜索在第一阶段2属性文件中的所有属性键(并且可能是替换的值),属性文件更新器模块158可以产生针对该语言的阶段5属性文件160,例如通过利用替换的值来将阶段2属性文件写入新文件。属性文件更新器模块158可以针对阶段2属性文件(针对其它支持语言)的剩余部分重复上述过程,产生针对其它支持语言的对应的阶段5属性文件160。
在这点,阶段5可以包括用于软件产品的更新的代码库。代码库可以包括阶段1源代码152和阶段5属性文件(例如,每个支持语言一个)。在这点,在该阶段或不同的阶段(例如,由参考标记162表示),源代码可以基于阶段5属性文件被编译。源代码可以针对每个支持语言而被编译。因此,例如,可以产生软件产品的多个实例,对于每种支持语言一个实例。然后,晚期当用户安装软件产品时,安装者可以基于各种因素,例如用户国家、地区、场所等选择安装或提供应用程序的哪个实例。
图4A至图4C描述了用于自动化的基于上下文的软件本地化的示例方法400的流程图。方法400可以包括多个子方法,为简单化起见,其可以简单地被称为方法。例如,方法430和460可以是方法400的一部分。方法400、430、460下面可以被描述为由系统可执行或可实施的,系统可以指单个计算设备(例如阶段计算设备)或多个计算设备,其中这些一个或多个计算设备可以执行或实施软件开发过程的至少一个阶段(例如,阶段102、104、106、108、110)。可以以存储在至少一个机器可读存储介质(例如存储介质520)上的可执行指令的形式和/或以电子电路的形式来实施方法400、430、460。在本公开的可替代实施例中,可以基本同时地或以不同于图4A至图4C中显示的顺序执行方法400、430、460中的一个或多个步骤。在本公开的可替代实施例中,方法400、430、460可以包括比图4A至图4C中显示的或多或少的步骤。在一些实施例中,方法400、430、460的步骤中的一个或多个步骤在某些时候可以持续和/或可以重复。
图4A是用于自动化的基于上下文的软件本地化的示例方法400的高阶流程图。方法400可以在步骤402开始并继续到步骤404,其中系统(例如,作为阶段102的一部分)可以分析(例如,通过模块114)阶段0源代码(例如112)以识别特定语言元素并提供更新的源代码(例如,阶段1源代码116)以及阶段1属性文件(例如118)。在步骤406,系统(例如,作为阶段104的一部分)可以分析(例如,通过模块124)阶段1属性文件(例如,122)以提供针对至少一个目标语言的初始翻译并且产生针对目标语言的至少一个阶段2属性文件(例如,126)。在步骤408,系统(例如,作为阶段106的一部分)可以执行或实施在方法430中更详细地规定的各种例行程序。在步骤410,系统(例如,作为阶段108的一部分)可以分析(例如,通过人工翻译148)翻译包(例如,在步骤408产生)以产生可包括更加准确的翻译的修订的翻译包(例如,150)。在步骤412,系统(例如,作为阶段110的一部分)可以执行或实施在方法460中更详细地规定的各种例行程序。方法400可以最终继续到步骤450,方法400可以在该处停止。
图4B是用于自动化的基于上下文的软件本地化的示例方法430的流程图。方法430可以是方法400的一部分,例如替代步骤408。方法430例如可以执行或实施为图1B中阶段106的一部分。方法430可以在步骤432开始并继续到步骤434,系统在步骤434可以检测(例如,通过模块134、136和/或202)在阶段1源代码(例如,128)中的屏幕状态。在这点,包括在框436(例如步骤438和440)中的步骤对于每种支持语言可以被执行一次。在步骤438,系统可以分析(例如,通过模块136、202和/或204)针对特定语言的阶段2属性文件(例如,130)以确定与屏幕状态相关的部分。在步骤440,系统可以产生(例如,通过模块136和/或204)针对特定语言的约简的阶段2属性文件(例如,142),仅仅包括阶段2属性文件的与屏幕状态相关的部分。
在步骤442,系统可以分析(例如,通过模块136、202和/或204)阶段1属性文件(例如,132)以确定与屏幕状态相关的部分。在步骤444,系统可以产生(例如,通过模块136和/或204)约简的阶段1属性文件(例如,144),该约简的阶段1属性文件仅仅包括阶段1属性文件的与屏幕状态相关的部分。在步骤446,系统可以捕捉(例如,通过模块134、136、202和/或206)针对屏幕状态的屏幕截图。在步骤448,系统可以将屏幕截图、约简的阶段2属性文件和约简的阶段1属性文件打包成(例如,通过模块136和/或208)一个或多个翻译包(例如,138),如上更加详细描述的。方法430然后可以返回至步骤434,并且针对在源代码中检测的每个屏幕状态重复该方法。
图4C是用于自动化的基于上下文的软件本地化的示例方法460的流程图。方法460可以是方法400的一部分,例如替代步骤412。方法460可以例如执行或实施为图1B中阶段110的一部分。方法460可以在步骤462开始并继续到框464中的步骤。包括在框464(例如,在框466中的步骤和步骤474)中的步骤对于每种支持语言可以被执行一次。方法可以继续到包括在框466中的步骤,针对包括在针对特定语言的阶段2属性文件(例如,154)中的每个属性键可以执行一次。在步骤468,系统可以查找(例如,模块158)在阶段2属性文件中的第一或下一个属性键。在步骤470,系统可以搜索针对特定语言(以及针对所有屏幕状态)的修订的约简的阶段2属性文件(例如,在至少一个修订的翻译包156中)以查找相同的属性键。在步骤472,系统可以利用来自修订的约简的阶段2属性文件中的值来替换(例如,通过模块158)在阶段2属性文件中的属性键值,在修订的约简的阶段2属性文件中查找到相同的属性键。在步骤474,系统可以使用在框466的步骤中确定的更新属性键值来产生阶段5属性文件(针对特定语言)。方法460可以最终继续到步骤476,方法460在该处停止。
图5是用于自动化的基于上下文的软件本地化的示例阶段计算设备500的方框图。阶段计算设备500可以是能够与至少一个其它计算设备通信(例如,通过网络)的任何计算设备。关于可以利用类似于阶段计算设备500的至少一个阶段计算设备的阶段的更多细节例如可以关于附图1A、1B和2如上所述。在图5的实施例中,阶段计算设备500包括处理器510和机器可读存储介质520。
处理器510可以是一个或多个中央处理单元(CPU)、微处理器、和/或其它适于检索和执行存储在机器可读存储介质520上的指令的硬件设备。在图5所示的特定实施例中,处理器510可以提取、解码并执行指令522、524、526、528以执行自动化的基于上下文的软件本地化。可替代的或除了检索和执行指令之外,处理器510可以包括一个或多个电子电路,该电子电路包括用于执行在机器可读存储介质520(例如,指令522、524、526、528)中的一个或多个指令的功能的多个电子组件。关于在此描述和显示的可执行指令表示(例如,框),应该理解的是,部分或所有包括在一个框中的可执行指令和/或电子电路在可替代实施例中可以包括在显示在附图中的不同框中或包括在未显示的不同框中。
机器可读存储介质520可以是任何存储可执行指令的电子的、磁性的、光学的或其它物理存储设备。因此,机器可读存储介质520例如可以是随机存取存储器(RAM)、电可擦除可编程只读存储器(EEPROM)、存储驱动器、光盘等。机器可读存储介质520可以布置在阶段计算设备500内,如图5中所示。在该情况中,可执行指令可以“安装”在设备500上。可替代地,机器可读存储介质520可以是便携式(例如,外部的)存储介质,例如,便携式存储介质允许阶段计算设备500远程地执行指令或者从存储介质下载指令。在该情形中,可执行指令可以是“安装包”的一部分。如在此所述,机器可读存储介质520可以编码有用于自动化的基于上下文的软件本地化的可执行指令。尽管图5的特定实施例包括指令,该指令可以被包括在软件开发过程的特定阶段(例如,阶段106)中,计算设备500可以代替地或另外地包括与这种软件开发过程的其它阶段相关的指令。
屏幕状态检测器指令522可以检测在源代码(例如,阶段1源代码128)中的屏幕状态,并且可以与UI测试器模块(例如,UI测试器模块134)接口。屏幕状态检测器指令522可以类似于图2的屏幕阶段检测器模块202,例如,上面关于图1B的屏幕阶段检测器模块202和/或翻译包创建器模块136可提供更多细节。基于关于屏幕状态的至少一个属性文件和信息,属性文件约简器指令524可以产生至少一个约简的属性文件。属性文件约简器指令524可以类似于图2的属性文件约简器模块204,例如,上面关于图1B的属性文件约简器模块204和/或翻译包创建器模块136可提供更多细节。
基于关于屏幕状态的信息,屏幕截图捕捉指令526可以捕捉、接收、产生和/或创建至少一个屏幕截图。屏幕截图捕捉指令526可以类似于图2的屏幕截图捕捉模块206,例如,并且上面关于图1B的屏幕截图捕捉指令206和/或翻译包创建器模块136可提供更多细节。打包工具指令528可以针对每个屏幕状态,并且可能达到每种支持语言一个屏幕状态,打包相关联的屏幕截图以及至少一个相关联的约简的属性文件。打包工具指令528可以类似于图2的打包工具模块208,例如,并且上面关于图1B的打包工具模块208和/或翻译包创建器模块136可提供更多细节。
图6是用于自动化的基于上下文的软件本地化的示例方法600的流程图。方法600下面可以描述为由系统执行或实施,系统可以指单个计算设备(例如,阶段计算设备)或多个计算设备,其中这些一个或多个计算设备可以执行或实施软件开发过程的至少一个阶段(例如,阶段102、104、106、108、110)。可以以存储在机器可读存储介质(例如存储介质520)上的可执行指令形式和/或以电子电路的形式实施方法600。在本公开的可替代实施例中,方法600的一个或多个步骤可以基本上同时被执行或以与图6中显示的不同的顺序执行。在本公开的可替代实施例中,方法600可以包括比图6中所示的或多或少的步骤。在一些实施例中,方法600的步骤中的一个或多个步骤在有时可以持续和/或可以重复。
方法600可以在步骤602开始并继续到步骤604,在步骤604系统可以检测(例如,通过指令522)源代码(例如,阶段1源代码128)中的至少一个屏幕状态,例如,通过使用UI测试器模块(例如,UI测试器模块134)。在步骤606,系统可以基于至少一个属性文件和关于屏幕状态的信息产生(例如,通过指令524)约简的属性文件。在步骤608,系统可以基于关于屏幕状态的信息捕捉、接收、产生和/或创建(例如,通过指令526)至少一个屏幕截图。在步骤610,系统可以针对每个屏幕状态,并且可能达到每种支持语言一个屏幕状态,打包(例如,通过指令528)相关联的屏幕截图和至少一个相关联的约简的属性文件。方法600可以最终继续到步骤612,方法600在该处停止。
Claims (16)
1.一种用于自动化的基于上下文的软件本地化的系统,所述系统包括:
至少一个处理器,所述至少一个处理器:
自动地检测处于与软件产品相关的源代码中的多个屏幕状态,其中源代码中的多个特定语言元素中的每个特定语言元素已经被多个属性键中的一个唯一属性键替换;
针对所述多个屏幕状态中的每个屏幕状态,自动地产生包括所述多个属性键的子集的约简的属性文件,其中在所述子集中的属性键与特定屏幕状态唯一相关,并且其中所述约简的属性文件针对每个所包括的属性键进一步包括与第一语言相关的属性键值;
针对所述多个屏幕状态中的每个屏幕状态,自动地产生与所述特定屏幕状态唯一相关的屏幕截图;并且
针对所述多个屏幕状态中的每个屏幕状态,自动地创建翻译包,所述翻译包包括与特定屏幕状态相关联的所述屏幕截图和所述约简的属性文件。
2.根据权利要求1所述的系统,其中所述至少一个处理器进一步一经创建自动地将分别与所述多个屏幕状态相关联的所述翻译包发送到翻译计算设备,所述翻译计算设备对所述约简的属性文件中的所述属性键值进行修订并针对所述多个屏幕状态中的每个屏幕状态创建修订的约简的属性文件。
3.根据权利要求2所述的系统,其中所述翻译计算设备从人工翻译接收输入以检查所述属性键值。
4.根据权利要求2所述的系统,其中所述至少一个处理器进一步:
从所述翻译计算设备接收所述修订的约简的属性文件;并且
针对所述第一语言,基于所述修订的约简的属性文件创建单个属性文件,其中所述单个属性文件和所述源代码可被编译以创建软件产品的可执行版本。
5.根据权利要求1所述的系统,其中所述至少一个处理器进一步:
针对所述多个屏幕状态中的每个屏幕状态,自动地产生第二约简的属性文件,所述第二约简的属性文件包括与所述特定屏幕状态唯一相关的所述多个属性键的子集,其中针对每个所包括的属性键,所述第二约简的属性文件进一步包括与第二语言相关的属性键值;并且
针对所述多个屏幕状态中的每个屏幕状态,自动地创建第二翻译包,所述第二翻译包包括与所述特定屏幕状态相关的所述屏幕截图和所述第二约简的属性文件。
6.根据权利要求1所述的系统,其中所述至少一个处理器进一步:
针对所述多个屏幕状态中的每个屏幕状态,自动地产生第二约简的属性文件,所述第二约简的属性文件包括与所述特定屏幕状态唯一相关的所述多个属性键的子集,其中针对每个所包括的属性键,所述第二约简的属性文件进一步包括与第二语言相关的属性键值,
其中针对所述多个屏幕状态中的每个屏幕状态,所述翻译包包括与所述特定屏幕状态相关的所述第二约简的属性文件。
7.根据权利要求1所述的系统,其中所述至少一个处理器进一步:
运行用户界面测试器模块,所述用户界面测试器模块分析源代码中的用户界面组件;
其中所述用户界面测试器模块用于穿行所述源代码以自动地检测所述多个屏幕状态并且针对所述多个屏幕状态中的每个屏幕状态自动地产生所述约简的属性文件。
8.一种用于自动化的基于上下文的软件本地化的方法,所述方法包括:
与软件产品相关联,接收源代码和第一语言属性文件,其中所述源代码中的特定语言元素已经被多个属性键中的唯一属性键替换,并且其中所述第一语言属性文件包括所述唯一属性键和相关联的第一语言属性键值,每个第一语言属性键值等于相关联的唯一属性键所替换的所述特定语言元素中的一个特定语言元素的第一语言翻译;
自动地检测与所述源代码相关联的第一屏幕状态;
自动地产生第一约简的第一语言属性文件,所述第一约简的第一语言属性文件包括所述第一语言属性文件中的信息的子集,其中所述子集与所述第一屏幕状态唯一相关;
自动地产生针对所述第一屏幕状态的第一屏幕截图;以及
自动地将所述屏幕截图和所述第一约简的第一语言属性文件打包成第一翻译包。
9.根据权利要求8所述的方法,进一步包括:
与所述软件产品相关联地接收原始语言属性文件,所述原始语言属性文件包括多个唯一属性键以及相关联的原始属性键值,每个原始属性键值等于相关联的唯一属性键所替换的所述特定语言元素中的一个特定语言元素;
自动地产生第一约简的原始语言属性文件,所述第一约简的原始语言属性文件包括所述原始语言属性文件中的信息的子集,其中所述子集与所述第一屏幕状态唯一相关,
其中所述第一翻译包的自动打包包括自动地将所述第一约简的原始语言属性文件打包成所述第一翻译包。
10.根据权利要求8所述的方法,进一步包括自动地将所述第一翻译包发送到翻译服务,所述翻译服务通过人工翻译输入检查或修改所述第一翻译包中的所述约简的第一语言属性文件以创建第一修订的约简的属性文件。
11.根据权利要求10所述的方法,进一步包括:
从所述翻译服务接收与所述第一屏幕状态相关的所述第一修订的约简的属性文件;
从所述翻译服务接收与第二屏幕状态相关的第二修订的约简的属性文件;以及
基于所述第一修订的约简的属性文件和所述第二修订的约简的属性文件创建单个修订的第一语言属性文件,其中所述单个修订的第一语言属性文件和所述源代码可被编译以创建所述软件产品的可执行版本。
12.根据权利要求10所述的方法,进一步包括:
从所述翻译服务接收与所述第一屏幕状态相关的所述第一修订的约简的属性文件;以及
使用所述第一修订的约简的属性文件编译所述源代码。
13.一种机器可读存储介质,编码有由用于自动化的基于上下文的软件本地化的至少一个阶段计算设备的至少一个处理器可执行的指令,所述机器可读存储介质包括:
用于自动地检测与用于软件产品的源代码相关的多个屏幕状态的指令;
用于针对第一语言自动地产生多个约简的属性文件的指令,其中所述多个约简的属性文件中的每个约简的属性文件与所述多个屏幕状态中的每个屏幕状态相关,并且其中所述约简的属性文件提供本地化信息,所述本地化信息可以用于编译针对第一语言的所述源代码;
用于自动地创建多个屏幕截图的指令,其中所述多个屏幕截图中的每个屏幕截图与所述多个屏幕状态中的一个屏幕状态相关;以及
用于自动地创建多个翻译包的指令,针对每个屏幕状态一个翻译包,其中每个翻译包包括与特定屏幕状态相关联的所述屏幕截图和所述约简的属性文件。
14.根据权利要求12所述的机器可读存储介质,其中所述源代码包括多个特定语言元素,所述特定语言元素需要被本地化以针对所述第一语言编译所述源代码,并且其中所述多个特定语言元素中的每个特定语言元素与所述多个屏幕状态中的一个屏幕状态唯一相关。
15.根据权利要求13所述的机器可读存储介质,其中与特定屏幕状态相关联的所述约简的属性文件中的每个约简的属性文件包括与所述特定屏幕状态唯一相关的所述特定语言元素的本地化的或翻译的版本。
16.根据权利要求12所述的机器可读存储介质,进一步包括用于一经创建自动地将所述多个翻译包发送给人工翻译以检查所述多个约简的属性文件的指令。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2013/036183 WO2014168626A1 (en) | 2013-04-11 | 2013-04-11 | Automated contextual-based software localization |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105103148A true CN105103148A (zh) | 2015-11-25 |
Family
ID=51689883
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380075475.0A Pending CN105103148A (zh) | 2013-04-11 | 2013-04-11 | 自动化的基于上下文的软件本地化 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9928237B2 (zh) |
EP (1) | EP2984579A4 (zh) |
CN (1) | CN105103148A (zh) |
WO (1) | WO2014168626A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106383789A (zh) * | 2016-12-05 | 2017-02-08 | 广州唯品会信息科技有限公司 | 软件界面测试方法及系统 |
CN107741858A (zh) * | 2017-11-28 | 2018-02-27 | 深圳市鼎晟开元科技有限公司 | 多种语言版本的应用程序更新方法、装置及系统 |
WO2019092565A1 (en) * | 2017-11-10 | 2019-05-16 | International Business Machines Corporation | Using comments of a program to provide optimizations |
WO2019144259A1 (en) * | 2018-01-23 | 2019-08-01 | Oracle International Corporation | Transformation of resource files using mapped keys for tracking content location |
CN114942805A (zh) * | 2022-04-15 | 2022-08-26 | 中电科航空电子有限公司 | 多语言的客舱系统界面显示方法、系统、电子设备及介质 |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014168626A1 (en) * | 2013-04-11 | 2014-10-16 | Hewlett-Packard Development Company, L.P. | Automated contextual-based software localization |
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 |
US10140293B2 (en) | 2015-05-18 | 2018-11-27 | Google Llc | Coordinated user word selection for translation and obtaining of contextual information for the selected word |
US20160349928A1 (en) * | 2015-05-27 | 2016-12-01 | International Business Machines Corporation | Generating summary of activity on computer gui |
US10409623B2 (en) | 2016-05-27 | 2019-09-10 | Microsoft Technology Licensing, Llc | Graphical user interface for localizing a computer program using context data captured from the computer program |
US9983870B2 (en) | 2016-06-27 | 2018-05-29 | International Business Machines Corporation | Automated generation and identification of screenshots for translation reference |
US9792282B1 (en) * | 2016-07-11 | 2017-10-17 | International Business Machines Corporation | Automatic identification of machine translation review candidates |
US9953030B2 (en) | 2016-08-24 | 2018-04-24 | International Business Machines Corporation | Automated translation of screen images for software documentation |
US9740543B1 (en) | 2016-10-27 | 2017-08-22 | Red Hat, Inc. | Multi-endpoint method implementation |
JP7114313B2 (ja) * | 2017-04-18 | 2022-08-08 | セールスフォース ドット コム インコーポレイティッド | 自然言語翻訳及びローカライゼーション |
US10417349B2 (en) * | 2017-06-14 | 2019-09-17 | Microsoft Technology Licensing, Llc | Customized multi-device translated and transcribed conversations |
US11048885B2 (en) * | 2018-09-25 | 2021-06-29 | International Business Machines Corporation | Cognitive translation service integrated with context-sensitive derivations for determining program-integrated information relationships |
US11210465B2 (en) * | 2019-08-30 | 2021-12-28 | Microsoft Technology Licensing, Llc | Efficient storage and retrieval of localized software resource data |
US11307838B2 (en) | 2020-05-21 | 2022-04-19 | Microsoft Technology Licensing, Llc | De-duplication of localized resources |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1282914A (zh) * | 1999-07-28 | 2001-02-07 | 国际商业机器公司 | 采用外观类进行软件翻译的内观编辑器系统、程序和方法 |
EP1315086A1 (en) * | 2001-11-27 | 2003-05-28 | Sun Microsystems, Inc. | Generation of localized software applications |
US20060287844A1 (en) * | 2005-06-15 | 2006-12-21 | Xerox Corporation | Method and system for improved software localization |
US20070208553A1 (en) * | 2002-06-20 | 2007-09-06 | Mark Hastings | Visual context for translation |
CN101473318A (zh) * | 2006-06-22 | 2009-07-01 | 微软公司 | 动态软件本地化 |
Family Cites Families (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6496793B1 (en) * | 1993-04-21 | 2002-12-17 | Borland Software Corporation | System and methods for national language support with embedded locale-specific language driver identifiers |
EP0668558B1 (en) * | 1994-01-14 | 2002-04-17 | Sun Microsystems, Inc. | Method and apparatus for automating the localization of a computer program |
US5903859A (en) * | 1996-03-27 | 1999-05-11 | Dell Usa, L.P. | Dynamic multi-lingual software module system |
IE990307A1 (en) | 1998-12-21 | 2000-06-28 | Transware Dev Ltd | Localization of Software Products |
US6275790B1 (en) | 1999-07-28 | 2001-08-14 | International Business Machines Corporation | Introspective editor system, program, and method for software translation |
US6490547B1 (en) * | 1999-12-07 | 2002-12-03 | International Business Machines Corporation | Just in time localization |
US6983238B2 (en) * | 2001-02-07 | 2006-01-03 | American International Group, Inc. | Methods and apparatus for globalizing software |
US7103875B1 (en) | 2001-09-21 | 2006-09-05 | Siebel Systems, Inc. | Methods and apparatus for integrated, automatic pseudo localization of software |
US7447624B2 (en) * | 2001-11-27 | 2008-11-04 | Sun Microsystems, Inc. | Generation of localized software applications |
US20030154071A1 (en) * | 2002-02-11 | 2003-08-14 | Shreve Gregory M. | Process for the document management and computer-assisted translation of documents utilizing document corpora constructed by intelligent agents |
US20040088155A1 (en) * | 2002-10-31 | 2004-05-06 | John Kerr | Method and apparatus for localization of applications |
US7509251B2 (en) * | 2002-12-23 | 2009-03-24 | International Business Machines Corporation | Mock translating software applications at runtime |
CA2421656C (en) * | 2003-03-11 | 2008-08-05 | Research In Motion Limited | Localization of resources used by applications in hand-held electronic devices and methods thereof |
US7437704B2 (en) * | 2003-08-28 | 2008-10-14 | Ines Antje Dahne-Steuber | Real-time generation of software translation |
US7392519B2 (en) * | 2003-09-23 | 2008-06-24 | Hewlett-Packard Development Company, L.P. | Localization cataloguing tool |
US7318020B1 (en) * | 2003-10-08 | 2008-01-08 | Microsoft Corporation | Methods and systems for external localization |
US20060080082A1 (en) * | 2004-08-23 | 2006-04-13 | Geneva Software Technologies Limited | System and method for product migration in multiple languages |
US7716641B2 (en) | 2004-12-01 | 2010-05-11 | Microsoft Corporation | Method and system for automatically identifying and marking subsets of localizable resources |
US20060173671A1 (en) * | 2005-02-02 | 2006-08-03 | Kabushiki Kaisha Toshiba | Localizing tool for client software |
US20070027670A1 (en) | 2005-07-13 | 2007-02-01 | Siemens Medical Solutions Health Services Corporation | User Interface Update System |
US7571092B1 (en) | 2005-07-29 | 2009-08-04 | Sun Microsystems, Inc. | Method and apparatus for on-demand localization of files |
US7636656B1 (en) * | 2005-07-29 | 2009-12-22 | Sun Microsystems, Inc. | Method and apparatus for synthesizing multiple localizable formats into a canonical format |
US8316293B2 (en) * | 2006-03-27 | 2012-11-20 | Research In Motion Limited | System and method for rendering presentation pages based on locality |
US7886267B2 (en) | 2006-09-27 | 2011-02-08 | Symantec Corporation | Multiple-developer architecture for facilitating the localization of software applications |
US8819628B2 (en) * | 2008-05-12 | 2014-08-26 | Ca, Inc. | Product localization device and method |
US8650561B2 (en) | 2008-07-10 | 2014-02-11 | Apple Inc. | System and method for localizing display of applications for download |
US8843360B1 (en) * | 2011-03-04 | 2014-09-23 | Amazon Technologies, Inc. | Client-side localization of network pages |
WO2014168626A1 (en) * | 2013-04-11 | 2014-10-16 | Hewlett-Packard Development Company, L.P. | Automated contextual-based software localization |
US20160139914A1 (en) * | 2013-06-24 | 2016-05-19 | Hewlett-Packard Development Company, L.P. | Contextual-based localization based on manual testing |
-
2013
- 2013-04-11 WO PCT/US2013/036183 patent/WO2014168626A1/en active Application Filing
- 2013-04-11 EP EP13881803.4A patent/EP2984579A4/en not_active Withdrawn
- 2013-04-11 US US14/783,227 patent/US9928237B2/en active Active
- 2013-04-11 CN CN201380075475.0A patent/CN105103148A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1282914A (zh) * | 1999-07-28 | 2001-02-07 | 国际商业机器公司 | 采用外观类进行软件翻译的内观编辑器系统、程序和方法 |
EP1315086A1 (en) * | 2001-11-27 | 2003-05-28 | Sun Microsystems, Inc. | Generation of localized software applications |
US20070208553A1 (en) * | 2002-06-20 | 2007-09-06 | Mark Hastings | Visual context for translation |
US20060287844A1 (en) * | 2005-06-15 | 2006-12-21 | Xerox Corporation | Method and system for improved software localization |
CN101473318A (zh) * | 2006-06-22 | 2009-07-01 | 微软公司 | 动态软件本地化 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106383789A (zh) * | 2016-12-05 | 2017-02-08 | 广州唯品会信息科技有限公司 | 软件界面测试方法及系统 |
WO2019092565A1 (en) * | 2017-11-10 | 2019-05-16 | International Business Machines Corporation | Using comments of a program to provide optimizations |
US10613844B2 (en) | 2017-11-10 | 2020-04-07 | International Business Machines Corporation | Using comments of a program to provide optimizations |
CN107741858A (zh) * | 2017-11-28 | 2018-02-27 | 深圳市鼎晟开元科技有限公司 | 多种语言版本的应用程序更新方法、装置及系统 |
WO2019144259A1 (en) * | 2018-01-23 | 2019-08-01 | Oracle International Corporation | Transformation of resource files using mapped keys for tracking content location |
US11853685B2 (en) | 2018-01-23 | 2023-12-26 | Oracle International Corporation | Transformation of resource files using mapped keys for tracking content location |
CN114942805A (zh) * | 2022-04-15 | 2022-08-26 | 中电科航空电子有限公司 | 多语言的客舱系统界面显示方法、系统、电子设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
US20160048506A1 (en) | 2016-02-18 |
EP2984579A1 (en) | 2016-02-17 |
EP2984579A4 (en) | 2017-01-18 |
US9928237B2 (en) | 2018-03-27 |
WO2014168626A1 (en) | 2014-10-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105103148A (zh) | 自动化的基于上下文的软件本地化 | |
US6941546B2 (en) | Method and apparatus for testing a software component using an abstraction matrix | |
Arcaini et al. | A model‐driven process for engineering a toolset for a formal method | |
US9189377B1 (en) | Automation testing using descriptive maps | |
US11907107B2 (en) | Auto test generator | |
US9027002B2 (en) | Method of converting source code and source code conversion program | |
CN110018955A (zh) | 通过转换手动测试用例来生成自动化测试脚本 | |
KR100915762B1 (ko) | 통합 개발 환경에서의 의사 번역 | |
US8849612B2 (en) | System and method of substituting parameter sets in self-contained mini-applications | |
CN106598556A (zh) | 用户界面生成方法及装置 | |
CN102467497B (zh) | 校对程序中的文本翻译的方法和系统 | |
WO2014209263A1 (en) | Contextual-based localization based on manual testing | |
US20120266131A1 (en) | Automatic program generation device, method, and computer program | |
CN105378658B (zh) | 自动源代码生成 | |
EP1890235A1 (en) | Test case management | |
US20070061641A1 (en) | Apparatus and method for generating test driver | |
US10698803B1 (en) | Computer code test script generating tool using visual inputs | |
US9304893B1 (en) | Integrated software development and test case management system | |
KR101770292B1 (ko) | 컴퓨터 수행 가능한 모델 역공학 방법 및 장치 | |
JP6907305B2 (ja) | 地域化されていない行の自動検出、修正、及び翻訳方法 | |
KR102546424B1 (ko) | 학습용 데이터 생성 장치, 소스 코드 오류 분석 장치 및 방법 | |
CN107797805A (zh) | 一种代码封装方法、装置及计算机可读存储介质 | |
CN106970903B (zh) | 物流系统中地址信息的处理方法及装置 | |
US10545729B2 (en) | Computer program interface | |
CN106033338A (zh) | 基于fog数据的源代码导入及解析的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C41 | Transfer of patent application or patent right or utility model | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20160918 Address after: American Texas Applicant after: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP Address before: American Texas Applicant before: Hewlett-Packard Development Company, Limited Liability Partnership |
|
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20151125 |
|
WD01 | Invention patent application deemed withdrawn after publication |