CN109964201B - 自动检测、校正和翻译非本地化行的方法 - Google Patents

自动检测、校正和翻译非本地化行的方法 Download PDF

Info

Publication number
CN109964201B
CN109964201B CN201780071263.3A CN201780071263A CN109964201B CN 109964201 B CN109964201 B CN 109964201B CN 201780071263 A CN201780071263 A CN 201780071263A CN 109964201 B CN109964201 B CN 109964201B
Authority
CN
China
Prior art keywords
message
file
translation
localized
database
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
Application number
CN201780071263.3A
Other languages
English (en)
Other versions
CN109964201A (zh
Inventor
帕维尔·布果夫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yunlan Co ltd
Original Assignee
Yunlan Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Yunlan Co ltd filed Critical Yunlan Co ltd
Publication of CN109964201A publication Critical patent/CN109964201A/zh
Application granted granted Critical
Publication of CN109964201B publication Critical patent/CN109964201B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/43Checking; Contextual analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/454Multi-language systems; Localisation; Internationalisation

Abstract

一种在安装的应用程序传播到消息文件(*.po)之前定期检查应用程序源代码中的本地化行的方法。提供了将这些行自动国际化为所有支持的应用程序语言。比对消息文件(PO)来验证这些行以及它们在区域设置文件(JSON)中的翻译。使用本地化标记在源代码中检查非本地化的行。根据APS,将特殊陷阱(即钩子)用于APS msgmake实用程序,以便从用于安装用户界面的aps_command_line_工具的集合中导出本地化数据。这些行被校正并加载回“*.po”文件。

Description

自动检测、校正和翻译非本地化行的方法
相关申请的交叉引用
本申请是2016年09月20日提交的序列号为No.62/397,051的美国申请的国际申请并要求其优先权,其内容和附图通过引用全部并入本文中。
技术领域
本发明涉及一种用于自动检测非本地化代码行的方法,并且更具体地,涉及对能兼容应用程序打包标准(APS)的应用程序接口中的代码行的检测、校正和翻译。
背景技术
服务自动化系统需要大量的能兼容应用程序打包标准(APS)的应用程序。应用程序打包标准(APS)是一种标准,该标准定义了用于将应用程序软件与托管平台集成在一起的技术。应用程序与这样的托管平台的集成是通过为该应用程序创建APS包来实现,并且在这种情况下该应用程序被称为APS应用程序。在APS平台上的开发允许应用程序通用于不同的托管平台上。这些应用程序也以当地语言和/或方言配置在世界的各个地区。为了使用这些应用程序,有时使用当地语言来配置其图形用户界面(GUI)。例如,当GUI呈现给美国(U.S.)的用户时,GUI可能具有英语的文本元素,当呈现给俄罗斯的用户时,相同的GUI元素可以具有翻译成俄语的相同文本。对GUI元素使用当地语言(与仅使用英语相反)可以实现定制和改进的用户体验。
国际化(i18n)是开发应用程序的过程,使得字符串和其他的地区专属位(例如日期或货币格式)可以从应用程序中抽象出来,以便它们可以容易地针对语言和文化进行本地化。本地化(l10n)是通过为抽象出来的位(bit)提供翻译和本地格式来调整应用程序和文本以使其能够使用在特定文化或语言市场中的过程。例如,使美国应用程序对于澳大利亚或英国用户可访问可能需要多一些拼写校正。但是,为了使美国应用程序能够被日本用户使用,或者使韩国应用程序能够被德国用户使用,将要求该软件不仅以不同语言操作,而且还要使用不同的输入技术和呈现惯例。
为每种语言和每个应用程序开发GUI(以及其中的GUI元素)不是可行的命题。在尝试在世界多个地区配置应用程序时,开发所谓的“语言本土化”GUI所需的时间、精力和金钱可能会是非常繁重的。
为了减轻负担,软件和开发平台(例如APS平台)允许GUI元素被本地化和翻译。这允许GUI在呈现时为该区域(或用户)的本土语言。但是,GUI界面元素的传统翻译和转换呈现得并不一致。这可能是因为:包含一种语言的字母表的字符集与另一种语言不同;空间特征的变化使翻译后语言的文本更大(或更小);或者有“在翻译中丢词”的含义。
此外,当开发或改进GUI时,在屏幕上呈现给最终用户的数据量可能增加,这包括用户看到的任何文本消息只是一部分GUI。特别地,行的数量、界面元素的标记和屏幕形式都趋于增加。根据APS标准,所有应用程序界面元素都必须进行本地化和国际化。但是,在将界面行和元素包含在应用程序代码中之后,它们并不总是被正确地格式化。因而,最终用户可能会观察到由应用程序内部的消息的部分本地化和翻译引起的故障。
例如,现在参见图1,示出了用于翻译能兼容APS的应用程序的非本地化行的传统方法(通常以100示出)的实施例。该传统方法包括收集源代码的步骤102;通过msgmake挂件(post)导入本地化的步骤104;创建可移植对象(.po)消息文件的步骤106;将msgmake挂件转送给为非本地化行起草译文的技术撰码人的步骤108;添加译文的步骤110;通过在JavaScript Object Notation(JSON)中导出本地化消息来构建APS包的步骤112;形成带有国际化文件的APS包的步骤114。
在传统方法100中,并非所有行都可以被正确地呈现并本地化到界面中。其原因可包括但不限于:地区的格式不正确、处理器错误、不正确的密钥、缺少可用的译文,或者与另外地区有关的拼写错误或丢失文件,这里仅举几个非限制性例子。这导致所需方案的实施不完整以及与检查和校验相关的高成本。
理想地,可以在应用程序开发阶段就防止上述问题。此外,需要自动和半自动地检查GUI元素译文的正确性。这会有助于改进检查并降低与手动校验相关的成本。最后,需要一种在应用程序生命周期管理中及时检测本地化错误的方法。
因此,需要一种用于自动检测、校正和翻译非本地化行的方法。
发明内容
因此,本公开是针对一种用于自动检测、校正和翻译非本地化代码行的方法,其基本上消除了现有技术的一个或多个缺点(如下面进一步讨论的)。在本公开的一个方面,提供了一种用于在安装的应用程序被传播为消息文件(*.po)之前,定期检查应用程序源代码中的本地化行的方法。在另一实施例中,针对所有支持的应用语言提供对代码行的自动翻译。比对消息文件,来验证代码行及其提供在il8n JSON文件中的译文。根据示例性实施例,使用本地化标记在源代码中检查非本地化的行。根据APS,针对aps msgmake实用程序使用特殊的陷阱(即钩子),以便从用于安装用户界面的aps命令行工具的集合中导出本地化数据。
附图说明
图1显示了由技术撰码人手动翻译代码行的现有过程的示意图。
图2显示了所建议的用于自动检测、校正和翻译非本地化行的方法的示意图。
图3显示了用于自动检测和收集本地化样式的方法的流程图。
图4显示了用于自动检测、校正和翻译非本地化行的方法的流程图。
图5显示了用于自动检测和验证衍生行的方法的流程图。
图6显示了用于自动检测、校正和翻译非本地化行的方法的示意图。
具体实施方式
现在将详细参考本发明的优选实施例,其示例在附图中示出。
在本公开的至少一个实施例中,提供了一种用于在安装的应用程序被传播到消息文件(*.po)之前定期检查应用程序源代码中的本地化行的方法。在另一实施例中,为各代码行提供了针对所有支持的应用程序语言的自动国际化。比对消息文件(*.po)来验证这些行及其译文。
根据示例性实施例并参照图2,使用本地化标记来标记源代码202中已本地化的代码行。在使用APS的实施例中,针对aps msgmake实用程序204使用特殊的陷阱(trap)(即钩子(hook)),以便从用于安装用户界面的aps命令行工具的集合中导出本地化数据。apsmsgmake命令将翻译字符串提取到消息文件(*.po)中,每种语言一个文件。.po消息文件是纯文本文件,表示包含了所有可用的翻译字符串的单一语言及这些字符串在给定语言下的解释(译文)。此文件是翻译器以目标语言提供翻译字符串的译文的一种便捷方式。.po消息文件由许多条目组成,每个条目描述原始未翻译字符串与其对应译文之间的关系:
msgid“[这里是原始翻译字符串]”
msgstr“[这里是翻译后的字符串]”
使用上面的例子,用西班牙语进行翻译可以表达如下:
msgid"Diskspace-Usage Only"
msgstr"Espacio en disco-Solamente Uso"
根据示例性实施例,使用了两种示例性格式的钩子(即本地化标记):
JavaScript文件(*.js) Java文件(*.java)
_("消息") __("消息")
*.java的一对下划线和*.js函数的单下划线为使字符串可用于翻译的钩子。例如,__(“要翻译的字符串”)使得aps msgmake命令在.po文件206中创建msgid“要翻译的字符串”和msgstr“翻译后的字符串”。在一般情况下,字符串可能包含不应当被翻译的映射参数。映射参数必须包含在一对下划线“__”之间。在下文的示例中,msgKey字符串包含参数,这些值必须在paramObjects映射字符串中找到:
_(msgKey,paramObjects)
还应理解,本地化标记可以使用简短格式或完整格式。例如:
JavaScript(*.js):
简短格式:_("User__username__created")
完整格式:_("User__username__created",{"username":"John Smith"})
Java(*.java):
简短格式:__("User__username__created")
完整格式:__("User__username__created",{"username":"John Smith"})
因此,所有这些行都被添加到.po消息文件中,随后添加到JSON中,如下所示:
Figure BDA0002062863900000051
Figure BDA0002062863900000052
__()函数用于对字符串@msgKey进行本地化。例如,@msgKey实际上是字符串”Found__itemsCount__item(s)”。此字符串包含由一对下划线包围的itemsCount参数。该参数定义成映射字符串{"itemsCount":counter}。因此,如果aps msgmake在解析JavaScript代码时遇到以下代码:
_("Found__itemsCount__item(s)",{"itemsCount":itemsCount})
它会自动在.po消息文件中生成以下的一对记录:
msgid"Found__itemsCount__item(s)"
msgstr""
得到的.po消息文件206被认为是正确的,并且被用作本地化样本(即,本地化样式)的辞典的基础。由于代码的可变性相当高,因此不可能高精度地确定要在产品源代码中待要本地化的行。根据示例性实施例,自动地考虑已经被写入到当地地区en_US.po的.po消息文件中的密钥的源代码行,并将其收集作为本地化样本。
如图2所示,源代码分析器208可用于查看各种代码源202。一旦找到具有本地化标记的行,源代码分析器208将当前行内的本地化标记之前的所有内容保存到数据库(即数据库656)中:
样式 时间戳 文件扩展名
label: 2016-04-10 0:00:00.000 JS
以上记录称为本地化样式。例如,在以下内容中:
var warn=_("Assign the serviceName service to yourself to startusing it.",{serviceName:serviceConstants.SERVICE_NAME},该本地化样本会是"varwarn=″。
根据示例性实施例,基于多个规则生成本地化样本(样式)。在本公开的至少一个实施例中,如果*.java文件中的行包含文本常量(即文本“static final String”或“finalstatic”)的说明,则应用程序会将位于字符串之前的所有内容(包括实际单词“String”)看作为本地化样式。因此,对于字符串public final static String PASSWORD_NOT_CHANGED=__("Password Not Changed"),本地化样式是public final static String。
当在本地化标记前面没有文本时(例如,在一个多行字符串中),源代码分析器208将位于上面一行的所有内容作为本地化样式。如果上面的代码行包含带有本地化标记的字符串,则应用程序将移至上面的下一行。例如,对于行:
Figure BDA0002062863900000061
本地化样式为:
return buildNotification(apsAccountUuid,apsUserUuid,entity,domainName,NotificationMessageStatus.inProgress).
如果在基于已经生成的本地化样式进行搜索的过程中遇到一个多行字符串,则源代码分析器208将字符串读取至分号处,该分号被解释为字符串末尾。在代码审阅过程中解决所有其他的边界问题,因此在同一标准内实现了本地化样式的创建机制。根据一个示例性实施例,在形成本地化样式列表之后,自动添加本地化标记。在形成本地化样式列表之后,源代码分析器208使用保存的本地化样式在具有特定文件扩展名(例如,JS)的所有文件中查找条目。例如,如果有一个样本label:标记,那么找到该行的末尾,该末尾处有样本字符串标记(例如双引号),然后如果样本字符串标记不存在,则使用本地化标记扩展该字符串。例如:
Label:"test string"--->label:_("test string")
然后,通过aps msgmake工具实现行传播过程(其中具有本地化标记的所有代码行被移动到PO文件),如图2所示。在步骤204,aps msgmake有助于将放置在引号内的内容放置在消息文件(*.po)内,并且这成为本地化密钥。
在将所有本地化密钥添加到当地地区的.po消息文件(例如“en_US.po”)之后,在210中开始区域设置分析。区域设置分析器为所有现有的msglD’s解析当地语言*po消息文件。之后,该工具会比较本土语言文件和其他语言文件,并使用其他语言文件未显示的msglD’s扩展其他语言文件。然后,使用配置用于处理gettext文件(*.po)(框214)的任何可用库来启动行国际化过程(框212)。应当理解,gettext文件基于通常用于编写多语言程序的国际化兼本地化(il8n)系统。例如,对于Python编程语言,可以使用“Polib”库。GoogleTranslate API可用于行的自动翻译。
对于每个msgID(*po文件中的字符串由密钥组成),翻译引擎(例如使用JSON格式的Google Translate API的Google Translate)发送翻译请求,这里举出了一个非限制性示例。
如果该翻译请求成功执行,则服务器将返回“OK”响应和JSON格式的翻译结果:
Figure BDA0002062863900000071
Figure BDA0002062863900000081
根据示例性实施例,请求对APS应用程序支持的所有语言进行翻译,或请求仅对于具有系统中存在的.po消息文件的语言进行翻译。翻译选择是基于国际化脚本启动模式进行的。翻译后的行也以下列格式写入数据库(即数据库656):
Figure BDA0002062863900000082
根据示例性实施例,将适当的翻译行写入适当的gettext文件中。然后启动译文验证手动过程218。对其责任的技术撰码人检查自动翻译的字符串。
在步骤220,在安装APS应用程序(即APS包222)之后,将消息文件(*.po)的内容转换为本地化文件*.json。
根据示例性实施例,在.po消息文件和JSON之间对代码行进行验证(框224)。在安装软件包后,验证脚本会从.po消息文件中导入所有本地化密钥和相应的本地化值。然后,脚本检查具有相同名称和文件扩展名*.json的文件。随后,脚本将加载到内存中的密钥和值与JSON文件中的密钥和值进行比较。如果未找到密钥或值,则创建自动错误报告(框226),并且可以将其发送给应用程序开发者,这里举出了一个非限制性示例。
现在参照图3,根据本公开的一个实施例,示出了的用于检查以本地化样本填充数据库的源代码中的非本地化行的方法的流程图。在步骤305中,如上所述,由aps msgmake工具生成.po消息文件。在本公开的至少一个实施例中,aps msgmake命令将翻译字符串提取到.po消息文件中,每种语言一个文件。此文件是翻译器以目标语言提供翻译字符串的译文的一种便捷方式。aps msgmake实用程序使用特殊的陷阱(即钩子)以从用于安装GUI的aps命令行工具的集合中导出本地化数据。
在步骤310中,解析当地地区.po消息文件。例如,en_US.po是针对美国(US)英语语言(en)的地区.po消息文件。.po消息文件名为ll_CC.po的形式。双字母原代码(ll)由ISO639-1语言规范进行定义。双字母子代码(CC)根据ISO 3166-1国家规范进行解释。语言部分总是用小写字母写成,而国家部分用大写字母书写。分隔符是下划线(“_”)。在本公开的至少一个实施例中,.po消息文件是纯文本文件,表示包含了所有可用的翻译字符串的单一语言及这些字符串在给定语言下的解释(译文)。可以理解,.po消息文件可以由许多条目组成,每个条目描述原始未翻译字符串与其对应译文之间的关系:
msgid“[这里是原始翻译字符串]”
msgstr“[这里是翻译后的字符串]”
在步骤320,该过程确定了字符串msgid是否已经存在于数据库(例如,数据库656)中。如果存在msgid,则该过程返回到步骤310。否则,该过程在步骤330中收集本地化样式。然后,该过程在步骤340中将本地化样式保存到数据库656中,并将报告212发送给责任方(例如技术撰码人)。应当理解,报告212包含新添加的、能由开发者或技术撰码人分析的本地化样式,以便将其排除并且破例地不将这样的字符串识别为本地化样式。在步骤350中,该过程确定了它是否已到达.po消息文件的文件结尾(EOF)。如果已到达EOF,则该过程在步骤360结束。否则,该过程返回到步骤310。
现在参照图4,根据本公开的一个实施例,示出了用于使用本地化样本填充数据库的源代码中的行的自动国际化的方法的流程图。在步骤405中,如上所述,由aps msgmake工具生成.po消息文件。在至少一个实施例中,可以在源代码分析器的工作之后从前一阶段检索*po文件(步骤204的第二次迭代)。在本公开的至少一个实施例中,aps msgmake命令将翻译字符串提取到.po消息文件中,每种语言一个文件。此文件是翻译器以目标语言提供翻译字符串的译文的一种便捷方式。aps msgmake实用程序使用特殊陷阱(即,钩子)以便从用于安装GUI的aps命令行工具的集合中导出本地化数据。
在本公开的至少一个实施例中,该过程为需要翻译的每个地区自动创建多个.po消息文件。将进一步理解的是,针对每个地区的.po消息文件包括需要翻译的每个msgid。在步骤410中,如步骤310中所公开的,解析本土地区.po消息文件。在步骤415中,如果另外的地区存在msgid,则该过程在步骤430中经由网络658通过请求将msgid发送到翻译引擎(例如Google Translate API),并接收翻译后的字符串。否则,该过程通过msgid扩展另外的地区420(即如果需要,该过程会将msgid添加到另外的地区),并转到步骤410。然后,在步骤440中,该过程将翻译后的字符串保存到消息文件中,该消息文件被提供给每个另外的地区并进入数据库(例如数据库656),并且发送报告。在步骤450中,该过程检查其是否已到达.po消息文件的文件结尾(EOF)。如果已到达EOF,则该过程在步骤460结束。否则,该过程返回到步骤410。
现在参照图5,根据示例性实施例,示出了用于验证.po消息文件与JSON之间的行的过程的流程图。在步骤505中,该过程针对当地地区从.po消息文件中获取msgid。在步骤510中,该过程针对所有现存的地区来解析地区参考文件(即JSON il8n文件)。在步骤520中,该过程确定:除了默认值为空(emty)的当地地区之外,.po消息文件中的密钥/值是否等于地区参考文件(即JSON il8n文件)。因此,对于当地地区而言,仅比较密钥的值。如果.po消息文件中的密钥/值等于地区参考文件,则该过程在步骤530确定JSON(地区参考文件)文件是否已到达文件结尾(EOF)。如果JSON文件已到达文件末尾(EOF),则该过程在步骤560结束。否则,该过程移至步骤510。在步骤520中,如果.po消息文件中的密钥/值不等于地区参考文件,则该过程在步骤540中将缺少的字符串保存到数据库656中并且向责任方(例如负有责任的技术撰码人)发送报告,并且进入步骤510。在步骤550中,手动处理错误。
参考图6,示出了用于自动检测、校正和翻译非本地化的代码行的系统和部件,通常为650。根据执行在计算机或计算机网络上的程序、数据结构或规程来呈现该描述。由系统实现的软件程序可以用任何编程语言编写——解释、编译或以其他方式。这些语言可以包括但不限于PHP、ASP.net、HTML、HTML5、Ruby、Perl、Java、Python、C++、C#、JavaScript和/或Go编程语言。当然,应当理解,本领域技术人员将理解,可以替代地或者与前述结合地使用其他语言,并且也可以使用web和/或移动应用程序框架,例如,例如,Ruby on Rails、Node.js、Zend、Symfony、Revel、Django、Struts、Spring、Play、Jo、Twitter Bootstrap及其它。还应当理解,本文公开的系统和方法可以体现在计算机网络(例如因特网)上可用的软件即服务(software-as-a-service)中。此外,本公开可以通过一个或多个应用程序编程接口或其他方式实现web服务、应用程序编程接口和/或面向服务的体系结构。
图6示出了用于对非本地化的代码行进行自动检测、校正和翻译的系统。在本公开的至少一个实施例中,该系统包括用户GUI 652、服务器654、数据库656和计算机网络658。
用户GUI 652可以被配置为在计算机网络658上向web服务和/或服务器654上容纳的应用程序编程接口基础设施发送信息并且与之进行一般性交互。用户GUI 652可以包括web浏览器、移动应用程序、端口号(socket)或隧道或其他网络连接软件,以使得可以经由计算机网络658与服务器654上的web服务基础结构进行通信。
用户GUI 652包括一个或多个计算机、智能手机、平板电脑、可穿戴技术、计算设备或本领域公知类型的系统,例如大型计算机、工作站、个人计算机、膝上型计算机、手持计算机、移动电话、MPS播放器或个人数字助理。用户GUI 652包括本领域技术人员将想到的此类软件、硬件和组件,例如,一个或多个微处理器、存储器系统、输入/输出设备、设备控制器等。用户GUI 652还包括一个或多个数据输入装置(图6中未示出),其可由用户GUI 652的客户操作以用于数据输入,例如语音或音频控制、指点设备(诸如鼠标)、键盘、触摸屏、麦克风、语音识别和/或本领域已知的其他数据输入装置。用户GUI 652还包括显示装置,该显示装置可包括各种类型的已知显示器,例如液晶二极管显示器、发光二极管显示器等,在显示器上可以以顾客可感知的方式显示信息。应当理解,根据本公开,用户GUI 652可以进一步包括如本领域技术人员将想到的软件、硬件和元件,以便可操作地执行分配给用户GUI 652的功能。
数据库656被配置为存储由系统生成和/或从一个或多个信息源检索的信息。在本公开的至少一个实施例中,数据库656可以与服务器654以如下这种方式“关联”:其中数据库656驻留在服务器654上。数据库656还可以与服务器654以如下这样的方式“关联”:其中数据库656驻留在远离服务器654的服务器或计算设备上,前提是远程服务器或计算设备能够在例如Amazon AWS、Rackspace或其他虚拟基础架构或任何业务网络中与服务器654进行双向数据传输。在本公开的至少一个实施例中,数据库656所驻留的远程服务器或计算设备与服务器654电连接,使得远程服务器或计算设备能够与服务器654进行连续的双向数据传输。
为清楚起见,图6中示出了数据库656,并在这里称为单个数据库。本领域普通技术人员将理解,数据库656可以包括由本领域公知类型的软件系统连接的多个数据库,这些软件系统可共同操作以执行根据本发明委派给数据库656的功能。数据库656还可以是分布式数据架构的一部分,例如,用于大数据服务的Hadoop架构。数据库656可以包括相关的数据库体系结构,noSQL、OLAP或数据库领域中已知类型的其他数据库体系结构。数据库656可以包括许多众所周知的数据库管理系统之一,例如,MICROSOFT的SQL Server、MICROSOFT的ACCESS、MongoDB、Redis、Hadoop或IBM的DB2数据库管理系统,或ORACLE或SYBASE提供的数据库管理系统。数据库656可检索地存储从用户GUI 652或服务器654向数据库656通信的信息。
已经如此描述了实施例,对于本领域技术人员来说显而易见的是,已经实现了所描述的方法和系统的某些优点。还应当理解,可以在本公开的范围和精神内进行各种修改、改编和替代实施例。通过所附权利要求进一步限定本公开。

Claims (6)

1.一种用于自动检测、校正和翻译非本地化行的方法,所述方法包括以下步骤:
a.接收至少一个源文件;
b.针对至少一个地区从所述至少一个源文件生成至少一个消息文件,所述至少一个消息文件包括至少一个消息id以及所述消息id在所述至少一个源文件中的至少一个位置;
c.解析所述至少一个消息文件中的每一个消息文件,并检索所述至少一个消息id,检查所述至少一个消息id以查看其是否已经存在于消息id数据库中;
d.至少使用所述至少一个源文件中的所述至少一个消息id的背景,来生成多个本地化样式并将其保存到消息id数据库中;
e.检查所述至少一个消息id以查看其是否存在于至少一个其他地区,如果存在,则前进至步骤g,如果不存在,则前进至步骤f;
f.基于更新后的消息id来扩展另外的地区,并返回至步骤e以检查下一种的至少一个消息id;
g.向翻译引擎请求翻译,并从翻译服务接收翻译后的代码字符串,将翻译后的代码字符串记录在消息id数据库中;
h.向审查方生成报告;
i.生成多个演示文件以通过GUI呈现;
j.解析所述多个演示文件以验证所述多个演示文件是否具有相同的消息id和针对至少一个地区的翻译后的代码字符串;
k.如果所述消息id和翻译后的代码字符串不可用,则更新所述多个演示文件;
l.校正错误并向审查方报告变更情况。
2.根据权利要求1所述的方法,还包括通过以下方式比对JavaScript对象简谱法JSON来验证所述消息文件:
解析所有现有地区的JSON文件;以及
发送报告并根据报告处理错误。
3.根据权利要求1所述的方法,还包括获取本地化样式并将其保存到数据库中。
4.根据权利要求1所述的方法,其中,当地地区消息文件为en_US.po文件。
5.根据权利要求1所述的方法,其中,使用翻译实用程序应用程序编程接口请求翻译。
6.根据权利要求1所述的方法,其中,校正错误包括:自动纠正由脚本发现的错误,以及手动纠正由消息文件和本地文件之间的传播错误所发现的错误。
CN201780071263.3A 2016-09-20 2017-09-20 自动检测、校正和翻译非本地化行的方法 Active CN109964201B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201662397051P 2016-09-20 2016-09-20
US62/397,051 2016-09-20
PCT/US2017/052487 WO2018057605A1 (en) 2016-09-20 2017-09-20 Method for automated detection, correction, and translation of un-localized lines

Publications (2)

Publication Number Publication Date
CN109964201A CN109964201A (zh) 2019-07-02
CN109964201B true CN109964201B (zh) 2022-09-02

Family

ID=61621118

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780071263.3A Active CN109964201B (zh) 2016-09-20 2017-09-20 自动检测、校正和翻译非本地化行的方法

Country Status (8)

Country Link
US (1) US10754629B2 (zh)
EP (1) EP3516491A4 (zh)
JP (1) JP6907305B2 (zh)
CN (1) CN109964201B (zh)
AU (1) AU2017332710B2 (zh)
CA (1) CA3037708C (zh)
MX (1) MX2019003166A (zh)
WO (1) WO2018057605A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100094739A1 (en) * 2008-10-14 2010-04-15 Peter Ellis System and method for providing transaction-based profit solutions
WO2019144259A1 (en) * 2018-01-23 2019-08-01 Oracle International Corporation Transformation of resource files using mapped keys for tracking content location
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
CN112819419B (zh) * 2020-08-13 2023-03-21 厦门汉印电子技术有限公司 一种基于Git的Android应用国际化语言管理方法和系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1315086A1 (en) * 2001-11-27 2003-05-28 Sun Microsystems, Inc. Generation of localized software applications
CN105138350A (zh) * 2015-07-29 2015-12-09 北京四方继保自动化股份有限公司 一种组态软件国际化多语言的实现方法
CN105339889A (zh) * 2013-03-15 2016-02-17 谷歌公司 用于计算机应用的语言翻译本地化的技术

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6094529A (en) * 1995-09-19 2000-07-25 Jeffries; Robin Method, apparatus and computer program product for linking stack messages to relevant information
US20030041110A1 (en) * 2000-07-28 2003-02-27 Storymail, Inc. System, Method and Structure for generating and using a compressed digital certificate
US20020173946A1 (en) * 2001-03-28 2002-11-21 Christy Samuel T. Translation and communication of a digital message using a pivot language
US20020165885A1 (en) * 2001-05-03 2002-11-07 International Business Machines Corporation Method and system for verifying translation of localized messages for an internationalized application
US7437704B2 (en) * 2003-08-28 2008-10-14 Ines Antje Dahne-Steuber Real-time generation of software translation
US8666948B1 (en) * 2009-07-30 2014-03-04 Cellco Partnership Automatically generating a customer notification file status report
US9244902B2 (en) * 2011-10-20 2016-01-26 Zynga, Inc. Localization framework for dynamic text
US9335904B2 (en) * 2012-01-06 2016-05-10 Panasonic Corporation Of North America Context dependent application/event activation for people with various cognitive ability levels
JP6508944B2 (ja) 2012-02-15 2019-05-08 サイデックス・ファーマシューティカルズ・インコーポレイテッド シクロデキストリン誘導体のための製造方法
US9075833B2 (en) * 2013-01-21 2015-07-07 International Business Machines Corporation Generating XML schema from JSON data
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
US9258258B2 (en) * 2013-10-21 2016-02-09 International Business Machines Corporation Implementing injection of formal numerical message identifiers in cloud stacks
US20160012465A1 (en) * 2014-02-08 2016-01-14 Jeffrey A. Sharp System and method for distributing, receiving, and using funds or credits and apparatus thereof
US10447762B2 (en) * 2014-10-07 2019-10-15 Qordoba, Inc. Remote localization platform
US10489229B2 (en) * 2016-02-29 2019-11-26 International Business Machines Corporation Analyzing computing system logs to predict events with the computing system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1315086A1 (en) * 2001-11-27 2003-05-28 Sun Microsystems, Inc. Generation of localized software applications
CN105339889A (zh) * 2013-03-15 2016-02-17 谷歌公司 用于计算机应用的语言翻译本地化的技术
CN105138350A (zh) * 2015-07-29 2015-12-09 北京四方继保自动化股份有限公司 一种组态软件国际化多语言的实现方法

Also Published As

Publication number Publication date
CN109964201A (zh) 2019-07-02
US10754629B2 (en) 2020-08-25
EP3516491A4 (en) 2020-05-13
MX2019003166A (es) 2019-08-01
CA3037708A1 (en) 2018-03-29
US20180081646A1 (en) 2018-03-22
AU2017332710B2 (en) 2022-04-28
AU2017332710A1 (en) 2019-04-11
JP6907305B2 (ja) 2021-07-21
WO2018057605A1 (en) 2018-03-29
JP2019530927A (ja) 2019-10-24
CA3037708C (en) 2023-06-27
EP3516491A1 (en) 2019-07-31

Similar Documents

Publication Publication Date Title
US10795799B2 (en) Website debugger for natural language translation and localization
US11244121B2 (en) Natural language translation and localization
US10489513B2 (en) Web application localization
CN109964201B (zh) 自动检测、校正和翻译非本地化行的方法
US7877251B2 (en) Document translation system
US9582500B2 (en) Run-time SQL language translation
CN108762743B (zh) 一种数据表操作代码生成方法及装置
US8468494B2 (en) In-line editor
US20160139914A1 (en) Contextual-based localization based on manual testing
JP7318075B2 (ja) 自然言語翻訳及びローカライゼーション
CN107092589B (zh) Web服务器系统、画面控件显示方法以及演示应用生成方法
US9195653B2 (en) Identification of in-context resources that are not fully localized
US20150106701A1 (en) Input support method and information processing system
US20150161160A1 (en) Application Localization
CN115599386A (zh) 代码生成方法、装置、设备及存储介质
US20160092455A1 (en) Building queries directed to objects hosted on clouds
US11042257B1 (en) Translating application resources and inspecting the functionality of the resource translations
US8942971B1 (en) Automated project localization into multiple languages by using machine translation
US20240061762A1 (en) On-demand contextual trace log generation
US20230385561A1 (en) Data driven translation and translation validation of digital content
CN111279350B (zh) 用于在服务管理应用接口中提供全球化特征的系统和方法
CN116186436A (zh) 以对应页面语种的目标语种显示网页页面的系统及方法
CN115794858A (zh) 查询语句处理方法、装置、设备及存储介质
CN117667978A (zh) 一种使用中文指令操作数据库的计算机系统

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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20220511

Address after: California, USA

Applicant after: Yunlan Co.,Ltd.

Address before: California, USA

Applicant before: Ingram Micro Inc.

GR01 Patent grant
GR01 Patent grant