自动化的基于上下文的软件本地化的制作方法

文档序号:9383084阅读:373来源:国知局
自动化的基于上下文的软件本地化的制作方法
【专利说明】
【背景技术】
[0001]在一些场景中,需要以多种不同人类语言来提供软件产品(例如,应用程序、操作系统等)。在一些场景中,最初可以以第一语言(例如,源语言)来提供软件产品,并且该软件产品需要被转换成至少一个其它语言(例如,目标语言)。例如,这种转换可以通过识别软件产品的语言特定元素(例如,在用户界面内的可显示的字符串元素)并将字符串元素从源语言翻译成目标语言来执行。一旦所有的语言特定元素已经被翻译,那么产品可以被重新编译以产生针对目标语言的特定语言版本的软件产品。将软件产品从一种语言转换成另一种语言的过程通常被称为“本地化”。在一些场景中,软件产品可以设计成使得该软件产品能够更容易地适应于各种语言,例如,通过提供晚期可以被特定语言元素替代的占位符。在这种场景中,改编这种软件产品的过程也可以称为“本地化”。
【附图说明】
[0002]下述详细说明参考附图,其中:
[0003]图1A描述了利用自动化的基于上下文的软件本地化的示例软件开发过程中信息阶段和流程的方框图;
[0004]图1B描述了利用自动化的基于上下文的软件本地化的示例软件开发过程中信息阶段和流程的方框图;
[0005]图2是用于自动化的基于上下文的软件本地化的示例翻译包创建器模块的方框图;
[0006]图3A描述了可以包括在用于自动化的基于上下文的软件本地化的示例翻译包中的示例屏幕截图;
[0007]图3B描述了可以包括在用于自动化的基于上下文的软件本地化的示例翻译包中的示例约简的阶段I属性文件的至少一部分;
[0008]图3C描述了可以包括在用于自动化的基于上下文的软件本地化的示例翻译包中的示例约简的阶段I属性文件的至少一部分;
[0009]图4A是用于自动化的基于上下文的软件本地化的示例方法的流程图;
[0010]图4B是用于自动化的基于上下文的软件本地化的示例方法的流程图;
[0011]图4C是用于自动化的基于上下文的软件本地化的示例方法的流程图;
[0012]图5是用于自动化的基于上下文的软件本地化的示例阶段计算设备的方框图;以及
[0013]图6是用于自动化的基于上下文的软件本地化的示例方法的流程图。
【具体实施方式】
[0014]如上所述,本地化过程可以包括将软件产品从第一语言(例如,源语言)转换成至少一种其它语言(例如,目标语言),或者将设计有占位符的软件产品转换成至少一种语言。在一些场景中,本地化过程可被用于将软件产品转换成不仅适合不同语言而且适合不同区域(例如少量的区域优惠)、不同市场(例如,不同的技术需求)或其它较细的调节。
[0015]本地化过程可以是非常耗时和耗成本的。例如,可能需要通过识别和提取所有特定语言元素(例如,在用户界面内的可显示的字符串元素)来准备软件产品的源代码。在一定程度上可以使用代码分析工具来识别特定语言元素,但是开发者通常不知道这些工具或忘记了它们。然后,当已经汇编出所提取的特定语言元素的列表时,需要翻译特定语言元素。虽然可以使用某些自动翻译程序或服务,在许多场景中,这些服务不够精细使得不能提供高质量的翻译。典型地,由提供有需要翻译的所提取的字符串的文件或表格的人工翻译执行字符串的翻译。人工翻译然后翻译字符串并将翻译返回给开发者,开发者可将该翻译插入软件产品中。在将翻译插入到软件产品中之前,语言审稿者(例如目标语言的天生将目标语言的人)可以检查所翻译字符串的文件或表格。一旦翻译被插入并且软件产品被重新编译和运行,那么可以执行对翻译的另外检查。这种检查是劳动密集型的并且是极其昂贵的。另外,这种检查会花费较长时间,这会导致较慢交付本地化版本的软件产品。
[0016]语言错误对于本地化软件来说是主要问题。语言错误可以指在软件产品的翻译中的错误,该错误容易被软件产品的当地用户发现。这些错误会使软件产品的整体质量反映较差,并且可能甚至导致软件产品发生故障(例如死机)。修复语言错误,尤其是在软件产品开发的晚期阶段,会需要显著的时间和金钱(例如,用于翻译者和工程师来设计和测试修复)。语言错误的一个主要原因是人工翻译并且可能至少一轮检查是隔离开执行的,例如没有字符串在软件产品中如何使用的精确上下文。例如,在一些语言中,对于在按钮上使用的单词或短语的正确翻译会不同于用在标题或文本框中的正确翻译。当字符串缺少上下文时对于翻译者或审稿人来说提供准确的翻译是非常困难的。即使翻译者或审稿人对软件产品熟悉,利用软件产品用户界面也难以想象字符串的特定位置和上下文。
[0017]本公开描述了自动化的基于上下文的软件本地化。本公开描述了提供(例如给人工翻译)特定语言元素,该元素可能需要连同该元素在软件产品用户界面中如何使用的上下文信息(例如屏幕截图)被本地化。本公开描述了自动地检测处于与软件产品相关的源代码中的多个屏幕状态,以及对于多个屏幕状态中的每个屏幕状态,自动地产生屏幕截图和至少一个约简的属性文件,该约简的属性文件包括在这种屏幕截图中可显示的特定语言元素。本公开描述了对于多个屏幕状态中的每个屏幕状态自动地创建翻译包,该翻译包包括与特定屏幕状态相关联的屏幕截图和至少一个约简的属性文件。本公开可以利用自动例行程序从源代码提取特定语言元素。应当理解的是,本公开的技术可以用于针对特定源语言已经编程的源代码和/或用于针对特定语言元素利用占位符已经编程的源代码。
[0018]本公开可以提供与先前本地化例行程序相比而言的优点。例如,人工翻译可以更加准确并且花费较少时间,因为在翻译过程期间翻译者能够参考上下文信息。人工翻译可能需要询问R&D组少得多的问题或没有澄清的问题(例如,关于特定翻译是否正确的问题),这会节省大量时间(例如,每轮澄清问题需要一周)。人工翻译在翻译过程期间会发生少得多的语言错误,这可以导致更加精练的并且更多功能性的正确软件产品。另外,因为在软件开发过程中人工翻译的简化,软件开发过程可以是更加扩展性的。
[0019]图1A和图1B描述了在示例软件开发过程中信息阶段和流程的方框图,该过程利用自动化的基于上下文的软件本地化。例如,根据本公开的至少一个实施例,阶段102、104、106、108和110可以包括在示例软件开发过程中。这种软件开发过程可以包括比图1A和图IB中所示的更多或更少的阶段。例如,软件开发过程可以包括用于编程软件、编译软件、发布软件、功能上测试软件(例如,针对故障、性能等)等的附加的阶段。这些附加的阶段中的任何一个可以插入在图1A和图1B中描述的任何阶段之间,并且在图1A和图1B中描述的任何阶段可以插入在现存软件开发过程中的任何阶段之间。在该方面,在图1A和图1B中描述的阶段可以与任何现存软件开发过程(例如,Agile开发过程)集成。
[0020]在此使用的术语“软件开发过程”(也称为“软件开发生命周期”或“端对端(E2E)软件开发”)可以指用于开发符合结构、模型或标准的软件的任何过程。这种标准可以限定可被要求来开发、测试和维护软件产品的阶段和任务。Agile是限定迭代开发过程的一个示例标准,该迭代开发过程依赖于定期的发布、定期的测试和反馈。在此使用的术语“阶段”可被用于指软件开发过程的一部分,例如,其中可以执行至少一个例行程序来进行软件产品的开发。可以在计算设备(例如,被称为“阶段计算设备”)上实施或执行阶段。阶段计算设备可以自动地执行阶段或利用用户输入执行阶段。贯穿本公开,应该理解,术语“阶段”可以以灵活方式使用以指在抽象概念中的软件开发过程的阶段或指用于执行阶段的例行程序的阶段计算设备。
[0021]每个阶段102、104、106、108和110可以通过至少一个计算设备(例如,被称为阶段计算设备)执行,例如,该计算设备可以是能够与至少一个其它计算设备通信(例如,通过网络)的任何计算设备。在一些实施例中,每个阶段可以在不同的计算设备中实施。在其它实施例中,在图1A和图1B中显示的两个或更多个阶段可以在同一计算设备中实施。在其它实施例中,可以通过多于一个的计算设备实施至少一个阶段。术语“系统”可以用于指单个计算设备或多个计算设备,例如,其中系统中的每个计算设备与系统中多个计算设备中的至少一个其它计算设备通信。下面将要描述可以用于这些阶段中的至少一个的关于示例计算设备的更多细节,例如,关于图5的阶段计算设备500。
[0022]作为讨论阶段102、104、106、108和110的起始点,软件产品的源代码是可以用的。源代码和可能的其它文件可以用于构建可执行版本的软件产品。术语“代码库”可用于指所有人工书写的文件(例如,与工具生成的文件相反),包括源代码,其要求执行例如软件构建。在代码库中的文件而不是源代码文件可以包括配置文件、属性文件、资源文件等。源代码或代码库可以通过软件开发过程的不同阶段(例如,在图1A或图1B中没有显示)来提供或者作为用户的输入来提供。
[0023]阶段I (由参考标记102表示)可以包括分析软件产品的源代码来识别特定语言元素并且提供更新的源代码和至少一个属性文件。实施阶段I的阶段计算设备可以接收(例如,从外部计算设备、用户输入或内部储存器)阶段O源代码112。阶段O源代码112可以指其在阶段I之前的任何状态下存在的源代码。作为一个示例,阶段O源代码112可以在至少某些程度上已经被编程并进行功能性测试。阶段I计算设备可以包括属性提取器模块114,该模块可以分析阶段O源代码112并提供阶段I源代码116和阶段I属性文件118。
[0024]属性提取器模块114可以分析阶段O源代码112以识别特定语言元素。特定语言元素可以指源代码中的任何文本,该任何文本可以影响相关的软件产品显示(例如,经由用户界面)给用户的方式(例如,以语言或特定位置方式)。这些特定语言元素可以是需要被“本地化”以便将软件产品转换成不同语言的项目。例如,可以作为用户界面(例如,窗口、按钮、菜单、工具条等)的一部分显示给用户的源代码中字符串可以是语言特定元素。语言特定元素的其它示例包括热键、坐标尺寸或可以影响软件产品取决于目标语言或区域而被显示的方式的任何其它元素。属性提取器模块114可以检测源代码中的代码,该代码指示文本字符串将被显示给用户。属性提取器模块114可以忽略编程注释、模块名称等,例如,因为这些元素的精确文本可以不显示给用户。在一些场景中,属性提取器114可以检测占位符,该占位符先前被插入到源代码中,其目的在于晚期利用特定语言元素来替代。属性提取器可以允许用户(例如,软件构建小组的成员)来搜索(例如,至少部分手动地)特定语言元素或其可以自动地执行检测。
[0025]属性提取器模块114可以利用新占位符来取代源代码中的特定语言元素或占
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1