在集成开发环境中进行伪翻译的方法和系统技术方案

技术编号:2842363 阅读:213 留言:0更新日期:2012-04-11 18:40
一种在运行在计算机化系统上的集成开发环境(IDE)中执行的方法,包括:    在用于计算机程序一个或多个第一资源文件上执行伪翻译,以生成用于所述计算机程序的一个或多个第二资源文件,而不修改用于所述计算机程序的一个或多个源代码文件;以及    在不改变所述计算机化系统的用户界面语言的情况下,使用所述第二资源文件调试和运行所述计算机程序二者中的至少一个。

【技术实现步骤摘要】

本专利技术一般涉及伪翻译(pseudo translation),特别是涉及在集成开发环境中进行这种伪翻译。
技术介绍
计算机程序典型地是相对于将使用该程序的用户的给定语言进行开发的。例如,可开发这样的计算机程序,其中,所有对用户的提示是用英语、特别是美式英语提供的。计算机程序还常常被翻译成不同的语言。可将其中对用户的全部提示均以美式英语提供的计算机程序进行翻译,以使得这些提示用例如西班牙语显示。为了有助于将相对于一种给定语言编写的计算机程序翻译成若干种其他语言,把计算机程序可能向用户提供或显示的所有提示或字符串存储在包括一个或多个单独文件的资源束(resource bundle)中,这些文件在这里被称为资源文件。每个资源文件可能包含以给定语言例如美式英语表示的字符串列表。对提示进行排列,以使得当计算机程序将向用户显示给定字符串时,它在一个资源文件中查找要显示哪个字符串。因此,将相对于一种语言编写的计算机程序翻译成另一种语言涉及对资源文件中至少某些字符串的翻译。例如,一旦已经相对于其原始语言开发了程序,可以雇用专业翻译者将资源文件中的至少某些字符串翻译成不同的语言。人们希望计算机程序的源代码本身不需要更改或翻译。应注意,源代码包括程序员编写的编程语句和指令。源代码是由程序员编写的代码,但不能由计算机直接执行。相反,它由编译器、汇编器或解释器转换成为机器语言或目标代码。还应注意的是,给定的资源文件或一组资源文件可能包含多种不同语言的提示或其他字符串,而不一定仅是一种语言。在某些情况下,将计算机程序从一种语言翻译到另一种语言可能导致计算机程序失败或以其他方式不正确地运行。这可能是因为计算机程序没有被编写为正确处理重音字符。这类重音字符包括如á、è、ü、 等字符,它们对于例如许多欧洲语言来说是常见的,但在英语中却不常见。计算机程序失败还可能由于计算机程序没有被编写为正确地处理由一个以上字节数据表示的字符而引起。例如,英语字符典型地采用具有八位的单字节数据进行编码,因为英语的字符足够少,从而允许所有字符中的每一个能由八位唯一地表示。然而,对于尤其是亚洲语言来说,可能存在大量的字符,这使得需要八位以上来唯一地表示每个字符。在这种情况下,典型地,每个字符用两个或两个以上的字节表示,总计16位或16位以上。因此,在历史上,一旦计算机程序从一种语言翻译到另一种语言,对计算机程序进行测试以保证其在翻译后不会失败或者不会以其他方式不正确地运行。如果计算机程序被发现不能正确运行,则对源代码进行更改并转换为机器语言或目标代码,从而计算机程序能被再次测试。持续这种迭代过程,直到程序如预期的那样工作。然而,出于至少三个原因,这种在翻译为另一种语言后对计算机程序进行测试的过程是成问题的,现有技术中仅仅解决了这三个原因中的一个。首先,对于大型、复杂的计算机程序,可能至少需要几个月将计算机程序的所有资源文件翻译成所希望的语言。因此,直到翻译完成,不能发现导致程序在翻译后不正确运行的、计算机程序的源代码中的任何错误。为了解决这一问题,已经成功地使用了伪翻译。伪翻译通常也被称为假翻译(mock translation)、伪本地化以及假语言翻译(fake languagetranslation)。伪翻译是在类似翻译的过程中对计算机程序的提示或其他字符串进行转换的过程。伪翻译可在不涉及翻译者的情况下由计算机进行,并因此可用于测试一旦计算机程序被实际最终翻译为另一种语言时是否很可能正确运行。也就是说,可对计算机程序相对于其伪翻译立即进行测试,从而成功的测试可以指示当计算机程序最终以及实际后来被翻译成真实语言时是否很可能正确运行。在伪翻译中,计算机程序的字符串被转换为这样的词其不真实表示任何语言,而是模仿计算机程序可能被翻译成的普通语言。换句话说,伪翻译是这样一种过程其转换为模仿另一种语言的字符串而不用实际翻译为这种语言。然而,典型地但不必要地,转换后的字符串还是能被某些谙熟原始语言的人所识别。例如,字符串的单个字符可被转换为它们的重音等价物。英语词“same”可被伪翻译为 后面的这种伪翻译词在英语中仍能识别,但字母s、a和e已被转换为这些字母的重音版本。尽管词 不是任何语言的真实词,其重音字母可有助于测试计算机程序以判断计算机程序在存在重音字母的情况下是否将会正确运行。也就是说,相对于计算机程序的伪翻译字符串对其进行测试,且一旦计算机程序被修改(如果这种修改甚至是必要的)以在存在这些伪翻译字符串的重音字母的情况下正确运行,就可以得出这样的结论计算机程序在实际翻译成其他语言时将很可能正确运行。取决于目标语言或被模仿的语言,伪翻译还可能涉及用多字节字符代替单字节字符。如上面已经讨论的那样,例如,尤其是亚洲语言通常用两个或两个以上的字节表示它们的字母,而英语通常用一个字节表示每个字母。因此,伪翻译可能涉及用多字节字符替代各个单字节字符。结果得到的字符串在原始语言中,例如在英语中,可能仍能识别。于是,在不需要将计算机程序翻译成另一种语言的情况下,可对计算机程序进行测试、以确保相对于具有用多字节表示的每个字符的字符串正确工作。然而,即使采用了伪翻译,在对计算机程序进行测试以确保其在翻译成另一种语言后将会正确运行时出现了第二个问题。这一问题是对计算机程序的开发者来说,这种测试-源代码修正-源代码编译的迭代过程可能过分繁重且耗时。例如,开发者可能能够在集成开发环境(IDE)中对计算机程序进行测试,在该IDE中,隐式地或显式地相对于运行该IDE的计算机化系统的用户界面语言开发计算机程序。IDE是从单个用户界面运行的一组计算机程序,其允许从公用菜单对被开发的计算机程序进行编辑、编译和调试。然而,IDE不允许相对于不同语言对计算机程序进行测试。因此,一旦计算机程序已在IDE下开发出并被确信正确工作后,它实际上被“构建”(build),因为,生成了该计算机程序的安装可执行文件,当该文件在计算设备上执行或运行时,它安装该计算机程序以便运行或执行。在该构建过程中,可采用伪翻译的资源文件代替原始资源文件,因此,安装和执行后的计算机程序使用伪翻译的资源文件而不是原始资源文件。计算机程序在计算设备上被安装并被执行,并且采用伪翻译所模仿的用户界面语言执行。如果在构建、安装和执行计算机程序之后,计算机程序不能正确运行,那么这整个过程必须重新开始。也就是说,必须对计算机程序的源代码进行修正以改正相关于伪翻译的资源文件而发生的错误,计算机程序必须重新构建、重新安装、重新执行等等。因为测试不能完全在IDE中完成,这种迭代过程可能繁重而且耗时。另外,相对于不同语言对计算机程序进行测试的这种过程暴露出在相对于不同语言对计算机程序进行测试的这种现有技术中的第三个问题。该第三个问题是调试伪翻译后的计算机程序以便判断哪个源代码文件中的哪一行导致计算机程序相对于伪翻译资源文件不正确运行,可能很困难,且本身完成起来很耗时和繁重。现代IDE典型具有具备健壮的调试工具,所述工具使得开发者能在源代码中逐行步进(step through),因此,开发者可以容易地准确定位给定问题的原因何在。然而,在前面提到的、现有技术的测试过程中,这些调试工具不能容易地用于相对于伪翻译后的资源文件对计算机程本文档来自技高网...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:N·V·巴克D·M·舒尔兹
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利