CN1181428C - 软件翻译的内省编辑器***、程序和方法 - Google Patents
软件翻译的内省编辑器***、程序和方法 Download PDFInfo
- Publication number
- CN1181428C CN1181428C CNB008108463A CN00810846A CN1181428C CN 1181428 C CN1181428 C CN 1181428C CN B008108463 A CNB008108463 A CN B008108463A CN 00810846 A CN00810846 A CN 00810846A CN 1181428 C CN1181428 C CN 1181428C
- Authority
- CN
- China
- Prior art keywords
- text data
- user interface
- text
- translation
- user
- 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.)
- Expired - Lifetime
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
-
- 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/46—Multiprogramming arrangements
- G06F9/465—Distributed object oriented systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Stored Programmes (AREA)
- Devices For Executing Special Programs (AREA)
- Machine Translation (AREA)
Abstract
一种向语言翻译者提供要翻译文本的上下文关系信息的***、方法和程序。以基本语言向翻译者提供图形用户界面,随后翻译者可交互式翻译屏幕上的各个文本标记。由于是在正确的上下文中对文本进行翻译,因此可减少或消除翻译校验测试的时间和费用。通过向软件应用程序本身增加编辑器功能,获得在应用程序内编辑文本的能力。利用特定的资源束名称并依据关键字,可将应用程序中的各个文本标记保存在本地化文件中。当激活编辑器时,内省文本对象,以查找其源数据,翻译者可直接编辑文本。随后源数据被用于保存译文,供以后使用。
Description
技术领域
本发明涉及国际通用软件的开发工具,尤其涉及多语言软件开发。更具体地说,本发明涉及实现计算机软件的语言翻译的改进***和方法。
背景技术
随着计算机变得越来越普遍,软件开发商最好能够把他们的产品销售给不讲软件开发商本国语言的那些人们。具体地说,最好用英语开发的软件既适用于美国国内人民,又适用于全世界内不讲英语的其他人民。因此,以英语开发的许多软件应用程序稍后都要经过翻译,供非英语用户使用。
把软件包翻译成另一(或者一种以上其它)语言的过程既费时,费用又高。必须翻译各个文本消息、菜单和工具按钮,以使用户能够运用该程序。最直接的方式是搜索整个程序源代码,查找每个文本串,即查找将要显示给用户的每个字符串,并把各个字符串翻译成新的语言。
这种方法存在几个问题。一个问题是使用这种方法意味着必须相对于每种预期的语言,特别地翻译并编译软件。这本身是费用高昂的过程,并且意味着源代码中的任意变化都需要编辑和重新编译各种语言版本的代码。
图2中表示了Java应用程序中硬编码标记的例子。Java是两种事物:编程语言和平台。一方面,Java是高级编程语言,并且与众不同的是每个Java程序既被编译又被解释,从而使其能够利用多种平台。Java也是运行于其它基于硬件的平台之上的纯软件平台。Java平台具有两个组件:Java虚拟机(Java VM)和Java应用程序编程接口(JavaAPI)。
Java VM是Java平台的基础,并且通向各种基于硬件的平台。JavaAPI是一大批提供多种有用能力的现成软件组件,例如图形用户界面(GUI)窗口小部件。Java API被分为相关组件的库(包)。
JavaBeans为Java平台带来组件技术(component technology)。JavaBeans API支持可重新使用的与平台无关的组件。通过使用服从JavaBeans的应用程序生成器工具,可把组件组合成为小程序、应用程序或复合组件。JavaBeans组件被称为Beans。
图2中,所示窗口200具有两个图形用户界面(GUI)“按钮”210和230。这些按钮是利用硬编码Java“JButton”调用产生的;例如,代码行220调用具有串变元“OK”的Jbutton,产生具有文本标记“Ok”的按钮210。类似地,代码行240调用具有串变元“Cancel”的Jbutton,产生具有文本标记“Cancel”的按钮230。要翻译使用如图2中的硬编码串的软件应用程序,必须分析每行代码,并且相对于各个目标语言,单独翻译各个显示串。
这种问题的一种解决方案是使用独立的本地化文件,要显示的文本串独立于其可执行代码单独存储在所述本地化文件中。当执行软件时,只是简单地以本地化文件中存储的任何语言从本地化文件中读出各个指定显示屏幕的文本。这样,可在不干扰可执行代码的情况下,翻译本地化文件中的文本,可在不干扰翻译文件的情况下,改变或替换可执行代码(当然,如果要显示的文本发生变化,则本地化文件中的相应条目也必须被改变的情况除外)。本地化文件可以采取任意多种格式,包括被编译信息目录、Java资源束(resource bundle)、HTML文件及其它多种格式。
本地化文件的使用便于进行多重翻译,但是带来的一个新问题是对于翻译者来说,是在不存在任何上下文关系的情况下,对单独文件中的孤立文本进行翻译。由于情况是这样,因此翻译通常总是含有错误,而如果翻译者能够按照文本出现的上下文进行翻译,就不会存在这样的错误。
J Akerley,N.Li,A.Parlavecchia“Programming with VisualAgefor Java Version 2”,IBM Redbooks,XP-002150550,1998年11月(http://www.redbooks.ibm.com)公开了软件开发人员如何编写国际Java应用程序。
不管用何种方法处理翻译,也必须校对使用中的程序的各个屏幕,以确保正确地显示翻译后的文本,并且正确地翻译显示环境中的文本。于是,通常的做法是雇用具有其它语言背景的人员来校对翻译后的程序的各个屏幕,以便检测***示、语法或其它翻译错误。该第二阶段被称为翻译校验测试(TVT)。
图3中表示了按照常规方法的翻译和测试循环图。A国的代表性公司A构建了打算供B国使用的应用程序(310)。接下来,公司A把应用程序打包并运输给位于B国的公司B(320)。公司B将运行该应用程序,测试任何翻译或国际化错误(330)。随后公司B进行TVT测试,记录任何翻译错误,并进行任何必需的重新翻译(340)。随后公司B把改正内容返回公司A,重复上述过程,直到不再发现错误为止。
按照这种常规方法,在B国每次校正错误或改变翻译,在重新测试产品之前,都必须在A国重构并重新打包该产品。因此,TVT过程必然既费钱又费时。于是希望提供一种向翻译者提供辅助信息,尤其是上下文信息的装置,从而初始翻译能够尽可能准确。这样,可降低或消除进行TVT测试所需的费用和时间。
发明内容
本发明的一个目的是提供一种改进的国际通用软件的开发工具。
本发明的另一目的是提供改进的多语言软件的开发工具。
本发明的又一目的是提供一种在计算机软件中进行语言翻译的改进***和方法。
在下述详细的书面说明中,本发明的上述及其它目的、特征和优点将是显而易见的。
通过提供一种向语言翻译者提供要翻译文本的上下文关系信息的***、方法和程序,可实现更高效的翻译过程。以基本语言向翻译者提供图形用户界面,随后翻译者可交互式翻译屏幕上的各个文本标记。由于是在正确的上下文中对文本进行翻译,因此可减少或消除翻译校验测试的时间和费用。通过向软件应用程序本身增加编辑器功能,获得在应用程序内编辑文本的能力。利用特定的资源束(resourcebundle)名称并依据关键字,可将应用程序中的各个文本标记保存在本地化文件中。当激活编辑器时,内省文本对象,以查找其源数据,翻译者可直接编辑文本。随后源数据被用于保存译文,供以后使用。
因此,本发明提供了一种在运行时编辑软件程序的文本数据的方法,包括:显示一个用户界面,该界面含有在用户界面的用户交互作用部分内的第一文本数据;响应用户在显示的用户界面内对用于编辑的第一文本数据的选择,内省产生用户界面的源代码,以识别包括第一文本数据的软件对象;在显示用户界面的同时,从用户输入接收用户希望替代第一文本数据的第二文本数据;以机器可读的形式把第二文本数据保存在软件对象内以替代第一文本数据;在把第二文本数据保存在软件对象内之后,在用于产生用户界面的源代码的执行过程中,在用户界面内显示替代第一文本数据的第二文本数据;其特征在于第二文本数据是第一文本数据的从第一人类语言转换为第二人类语言的译文。
在另一个实施例中,本发明提供具有至少一个处理器、可存取存储器和一个可访问显示器的计算机***,所述计算机***包括:显示一个用户界面的装置,该界面含有在用户界面的用户交互作用部分内的第一文本数据;响应用户在显示的用户界面内对用于编辑的第一文本数据的选择,内省产生用户界面的源代码,以识别包括第一文本数据的软件对象的装置;在显示用户界面的同时,从用户输入接收用户希望替代第一文本数据的第二文本数据的装置;以机器可读的形式把第二文本数据保存在软件对象内以替代第一文本数据的装置;在把第二文本数据保存在软件对象内之后,在用于产生用户界面的源代码的执行过程中,在用户界面内显示替代第一文本数据的第二文本数据的装置;其特征在于第二文本数据是第一文本数据的从第一人类语言转换为第二人类语言的译文。
在又一个实施例中,本发明提供具有在计算机可用媒介上的计算机可读程序代码的计算机程序产品,包括:在运行时编辑文本数据的计算机程序产品,所述计算机程序产品具有位于计算机可用媒介上的计算机可读程序代码,包括:显示一个用户界面的指令,该界面含有在用户界面的用户交互作用部分内的第一文本数据;响应用户在显示的用户界面内对用于编辑的第一文本数据的选择,内省产生用户界面的源代码,以识别包括第一文本数据的软件对象的指令;在显示用户界面的同时,从用户输入接收用户希望替代第一文本数据的第二文本数据的指令;以机器可读的形式把第二文本数据保存在软件对象内以替代第一文本数据的指令;在把第二文本串保存在软件对象内之后,在用于产生用户界面显示画面的源代码的执行过程中,在用户界面内显示替代第一文本数据的第二文本数据的指令。
附图说明
下面将参考附图举例说明本发明的优选实施例,其中:
图1描述了根据本发明的优选实施例的***可实现于其中的数据处理***;
图2是具有硬编码文本的GUI显示画面的例子;
图3描述了按照常规方法的翻译和测试过程的方框图;
图4是根据本发明的优选实施例的翻译和测试过程的方框图;
图5描述了根据本发明的优选实施例,使用Java资源文件的GUI显示画面的例子;
图6是根据本发明的优选实施例的用于软件应用程序的内省工具的方框图;
图7描述了根据本发明的优选实施例的Java包装(wrapper)类别的方框图;
图8更详细地表示了根据本发明的优选实施例的Java包装类别;
图9描述了根据本发明的优选实施例的Java facade类别的方框图。
具体实施方式
现在参考附图,尤其是参考图1,图中描述了本发明的优选实施例可实现于其中的数据处理***的方框图。数据处理***100可以是,例如可从New York,Armonk的国际商用机器公司购买的计算机之一。数据处理***100包括处理器101和102,在例证实施例中,处理器101和102分别与二级(L2)高速缓冲存储器103和104相连,高速缓冲存储器103和104又与***总线106相连。
与***总线106相连的还有***存储器108和初级主桥接器(PHB)122。PHB 122使I/O总线112与***总线106耦接,转发和/或变换从一个总线到另一总线的数据事务。在例证实施例中,数据处理***100包括与I/O总线112相连,为显示器120接收用户界面信息的图形适配器118。诸如非易失性存储器114和键盘/定点设备116之类的***设备通过产业标准结构(ISA)桥接器121与I/O总线112相连,非易失性存储器114可以是硬盘驱动器,键盘/定点设备116可包括传统鼠标、跟踪球等等。PHB 122还通过I/O总线112与PCI插槽124相连。
图1中所示的例证实施例只用于说明本发明,本领域的技术人员将认识到形式及功能方面的各种各样变化都是可能的。例如,数据处理***100还可包括光盘只读存储器(CD-ROM)或数字视频光盘(DVD)驱动器、音卡和音频扬声器、以及各种其它可选组件。所有这种变化都被认为在本发明的范围内。数据处理***100和下面的例证图形只是作为说明性的例子提供的,并不意味着结构方面的任何限制。事实上,该方法和***可容易地适于用在任何可编程的计算机***或***网络上,软件应用程序可在所述可编程计算机***或***网络上运行。
软件应用程序的典型翻译过程包括两个阶段。在第一阶段中,在文本文件中捕捉应用程序的人类文本单元的人类语言文本,并将其递送给翻译者进行翻译。这些翻译者不了解该应用程序,从而不具有和被翻译文本的实际应用有关的任何上下文信息。从而,该翻译过程不可避免易于出错。为了解决这些错误,并验证翻译后的文本,进行第二阶段,即翻译校验测试。
优选实施例通过允许开发人员合并翻译过程的这两个阶段,简化了翻译过程。这是通过向翻译者提供和被翻译内容相关的直接上下文信息实现的。从而,可简化或消除费用大并且耗时的TVT阶段。
根据优选实施例,提供了一个内省编辑器,所述内省编辑器允许翻译者直接编辑界面组件,将翻译结果保存在文本文件中,在优选实施例中,文本文件是Java资源束。这向翻译者提供进行准确翻译所必需的上下文关系,从而翻译可更为准确。
现在参考图4,图中表示了根据优选实施例的改进的翻译和测试过程的方框图。A国的公司A构建了打算供B国使用的应用程序(410)。接下来,公司A把应用程序打包并运输给位于B国的公司B(420)。公司B将运行该应用程序,测试任何翻译或国际化错误(430)。随后公司B将进行TVT测试,记录任何翻译错误,并进行任何必需的重新翻译(440)。和上面图3中描述的情况不同,由于本实施例允许参照上下文关系进行翻译,并本地保存翻译,因此公司B可立即对翻译进行再测试,而不必把产品送回公司A进行重构建。从而,和按照常规方法的翻译及测试阶段相比,该翻译及测试阶段的效率高得多。
当然,在B国的测试阶段可能会暴露出其它错误,例如不按翻译问题的方式纠正的编程问题。这种情况下,和常规过程一样,应用程序被送回公司A进行纠错。
根据这里说明的几个实施例,翻译者会实际运行他正在翻译的软件应用程序,公开的实施例向翻译者提供直接从屏幕选取文本,并实时编辑所选取文本的途径。由于翻译者如同最终用户那样实际看到该应用程序,因此翻译会准确得多。
使用中,以伴随要翻译的文本的“弹出式”编辑器窗口的形式呈现根据优选实施例的内省编辑器。当文本要被翻译时,内省(introspect)与该文本相关的Java组件,确定其源数据,例如资源束名称和关键字。当翻译者选择该文本时,显示编辑器弹出式窗口,翻译者将输入该按钮的翻译文本。编辑器将关闭,并且或者在新文件中,或者通过在初始文件中重写初始文本,把翻译后的文本存储在本地化文件中。从而,在按钮将出现于其中的最终应用程序的环境下,完成整个翻译。
在优选实施例中,“ctrl-alt-shift”键组合被用于表示显示的文本将被翻译。当显示GUI窗口时,通过在显示屏幕中的文本标记上按下“ctrl-alt-shit”和点击鼠标或其它定点设备的右键,翻译者指示该文本标记将被翻译。编辑器窗口打开,翻译者可把新文本直接输入编辑器窗口中。当翻译结束时,存储新文本供未来使用。
通过直接编辑软件应用程序的用户界面中的文本单元,并且通过向翻译者提供上下文关系,这种方法消除了翻译过程的TVT阶段,从而减少了时间和错误。
编辑器被称为“内省“编辑器,因为在本实施例中,它利用Java编程语言的内省特性,借助“setText”和“getText”方法查看并编辑控件。虽然这里说明了Java、JavaScript、JavaBeans及其它与Java相关工具的一些方面,可从太阳微***公司得到其它材料,并且(从
本申请的申请日期开始)可在http://iava.sun.com找到其它材料。
各个Java Bean组件具有其自身的特征,包括其属性、方法及事件。借助称为内省的过程,其它Beans可检查这些特征。Beans以两种方式支持内省:
2通过在命名Bean特征时遵守称为设计模式的特定规则。java.beans.Introspector类别针对这些设计模式检查Beans以发现Beans特征。Introspector类别依赖于核心反射API;和
3通过将相关的Bean Infermation类别明确提供给性质、方法和事件信息。Bean Information类别实现BeanInfo界面(interface)。BeanInfo类别明确列出将暴露给应用程序构建工具的那些Bean特征。
性质是可在设计时候改变的Bean的外观和行为特征。构建工具内省Bean,以发现其性质,并揭示这些性质以供操作。
Beans揭示属性,从而可在设计时定制这些性质。以两种方式支持定制:使用性质编辑器或使用更复杂的Bean定制。Beans利用事件与其它Beans通信。希望接收事件的Bean(接收Bean)向发出该事件的Bean(源Bean)登记其兴趣。构建工具可检查Bean并确定该Bean可发出(发送)哪些事件,以及可处理(接收)哪些事件。
连续性使Beans能够保存并恢复它们的状态。一旦你改变了Beans性质,你可保存Bean的状态,并在以后恢复该Bean,性质保持不变。JavaBeans使用Java对象串行化支持连续性。
Bean的方法与Java方法没有区别,并且可从其它Bean或脚本编写(scripting)环境调用Bean的方法。
虽然Beans被设计成能被被构建工具理解,但是包括对事件、性质及连续性的支持在内的所有关键API已被设计成也易于被程序员阅读和理解。
Introspector类别向工具提供学习由目标Java Bean支持的性质、事件及方法的标准方式。对于这三种信息中的每种信息,Introspector将单独分析bean的类别及超类别,查找明确或含蓄信息,并使用该信息构建综合描述目标bean的BeanInfo对象。
用于翻译的内省编辑器
优选实施例提供了使用类别字段值,从而允许翻译软件文本的方法。软件显示屏幕中的每个文本标记都被存储为一个类别对象。
本实施例中,将在例如,GUI按钮上显示的实际文本未被硬编码,而是存储在Java ResourceBundle本地化文件中。现在参考图5,图中表示了利用Java资源束显示的按钮标记的一个例子。图5中,所显示的窗口500具有GUI按钮510和530。注意该窗口对应于图2的窗口200。但是,这里是利用Java JButton调用520产生按钮510的,JavaJButton调用520指的是ResourceBundle。
本例中,命令“JButton(res.getString(“OK”))520产生GUI按钮,并通过查找资源文件,寻找应对应于“OK”按钮的文本,标注该GUI按钮。Java资源文件被共同描述为550,并且英语参考文件被表示为560。在文件560中,条目580指出对应于“OK”按钮的文本是“OK”。于是,命令520产生带有文本“OK”的GUI按钮。注意在本例中,为了清楚起见,用大写字母显示按钮名称,用大小写混合字母显示按钮文本标记。
类似地,命令“JButton(res.getString(“CANCEL”))540产生GUI按钮,并通过查找资源文件,寻找应对应于“CANCEL”按钮的文本,标注该GUI按钮。在文件560中,条目570指出对应于“CANCEL”按钮的文本是“Cancel”。于是,命令520产生带有文本“Cancel”的GUI按钮530。当然,资源文件中的实际对应文本可以是任意文本;条目570可为{“CANCEL”,“Stop”},于是每次执行命令540时,会导致产生标注为“Stop”的按钮。当然,这种方法并不局限于GUI按钮,也可用于从定域资源文件中查找任意的可显示文本。
由于资源文件把要显示的文本存储为Java对象,因此Java环境的内省特性可被用于允许翻译者利用弹出式编辑器,直接编辑应用程序文本。
当激活弹出式编辑器时,对目标对象进行getText调用,所述调用把当前文本返回给编辑器。该文本被显示给翻译者,翻译者随后再编辑显示的文本。在完成翻译/编辑之后,利用setText调用,把新文本保存在对象中。
最后,具有新文本的对象被存回Java ResourceBundle文件。之后,可利用修改后的对象执行软件应用程序,于是便将在显示器上显示翻译后的文本。
参考图6,应指出的是在本实施例中,内省编辑器610是不同于正被翻译的应用程序650的独立软件程序。编辑器610含有内省应用程序编程接口(API)620、编辑器GUI 630及文件I/O***640的代码。目标应用程序650把含有要翻译的文本串的UI对象660保存在Java资源文件中。
本实施例中,翻译者同时运行目标应用程序650和内省编辑器610。当使用弹出式编辑器时,内省编辑器从目标应用程序650中检索对象,并保存检索出的对象。
Java Wrapper API
另一实现方法完成和上述相同的上下文翻译结果,但是使用的是Java UI类别的“wrapper”类别。Java wrapper类别允许程序员把Java组件“包装”为新的组件,所述新组件具有原始组件的所有属性,外加一个或多个新的或扩展属性。
本实施例扩展诸如JButton之类的Java Swing组件,以便把资源束名称属性和关键字名称属性保存在实例对象中。扩展后的组件利用这些属性和get/set方法,实现构造器。这些属性可以显示在这些组件上的弹出式对话框中,并且运行时,用户可编辑该标记。在弹出式对话框中进行的修改可直接反映到应用程序UI组件上,并被保存在记录文件中。
在大型应用程序中,可能在几个资源文件中定义同一文本(例如“Save”),不同的对话框可把不同的资源文件用于相同的标记。
如果翻译者发现必须用另一单词,例如“Store”替换指定对话框中的标记,例如“Save”,但是其它对话框应保留为“Save”,则翻译者必须知道实际上哪个资源文件被用于显示该标记。翻译者通常可以使用资源文件,但是不能使用程序源,而在程序源中提供了GUI组件和资源文件的联系。翻译者不得不推测哪个资源文件正被使用,而这是效率非常低、耗时并且易于产生错误的步骤。
本实施例提供了使翻译者了解哪个资源文件及哪个关键字被用于特定的GUI标记的方法。为了实现这一点,必须利用Java wrapper类别把资源文件名称和关键字名称添加到GUI组件实例以及标记自身中。一旦该信息被保存到GUI组件中,工具可向翻译者显示要编辑的资源名称及关键字,或者工具甚至可利用由工具所提供的编辑器界面,为翻译者编辑资源文件。
wrapper以两种方式扩展Java类别。一种方式是增加两个串属性用于保存资源文件名称及关键字,另一种方式是提供构造器及方法以设置/获得(set/get)这些属性。wrapper的构造器及方法非常类似于父类别的那些构造器及方法。
“setText/getText”被用于设置和获得基于文本的组件的标记,所述标记始终是文本条目。即使程序写下setText(getKey(...)),所述标记也仅仅是解析的文本,并不包含资源文件名称及关键字。
和上面描述的只依赖于getText/setText方法的实施例相比,通过利用Java wrapper类别,本实施例具有两个优点:
1 wrapper可保存资源文件名称及关键字,而setText只保存标记。
1 wrapper的构造器设置资源文件名称和关键字,以及标记。在无wrapper的情况下,每当开始人员对带有标记的GUI组件实例化时,都需要调用另一种方法来设置资源文件名称、关键字及标记,而在开发过程中,该步骤频繁地被忽略。
如图7中所示,该实施例扩展Java基础类别(Foundation Class)的文本组件,例如JButton 710、Jlabel 720、JCheckBox 730及JMenu740,以产生相应的组件TButton 712、Tlabel 722、JCheckBox 732和JMenu 742;当然,也可类似扩展其它的JFC组件。新组件为每个组件的资源束名称(res)和关键字增加了一个获得/设置(get/set)方法。
现在参考图8,图中更详细地表示了“JButton”类别的组件扩展。图8中,利用Java wrapper API,JButton类别810被扩展为TButton类别820。TButton类别具有与初始的JButton类别相同的“标记”属性830,但是增加了用于资源束名称(res)840和关键字850的属性。这些允许翻译者按照各个TButton的关键字,直接调出并编辑各个TButton的标记属性。
利用这种方法,翻译者可在这些组件上调出弹出式菜单,并在运行时直接编辑/翻译标记。对标记做出的改变按照类别和关键字被保存在记录文件中,并且还立即在GUI显示屏幕上做出相应变化。之后,当软件应用程序遇到该类别和关键字时,显示编辑/翻译后的文本。
应注意和上面的内省工具不同,本实施例使用作为正被翻译的软件应用程序的一部分的wrapper类别。如果要翻译的软件应用程序不支持扩展的wrapper类别,则该方法将无效。
Facade
另一实施例通过产生“facade”类别,把每个组件翻译信息附到JComponent上。在本实施例中,存取方法和编辑器用户界面逻辑被集中到单个“facade”类别中,而不是使它们位于各个wrapper类别中。
应用程序借助该facade类别设置Java UI组件的资源束名称和关键字名称。这些属性可显示在这些组件上的弹出式对话框中,并且用户在运行时编辑标记。在弹出式对话框中做出的改变直接被反映到应用程序UI组件上,并被保存在记录文件中。
该方法与上面的包装(wrappering)方法解决相同的问题。和包装(wrappering)方法相比,这种方法的优点是:
(1)在包装方法中,亚分类具有维护开销(新的及更新的JComponents要求改变导出的一组组件);
(2)包装招致开发开销,因为要求设计人员只从该组可用子类别中选择,或者实现他们自己的组件;
(3)包装还会招致运行时间开销,因为必须把编辑器属性加入到各个组件中;及
(4)包装实施例中使用的setName()涉及把所有的翻译属性组合到组件的“名称”属性中,而基于性质的方法提供对各个翻译属性的直接存取,更易于扩展(例如,对于工具提示文本翻译属性),并且留下组件的“名称”属性,以用于其它用途。
该实施例提供用作JFC文本组件(JButton、JLabel、JCheckBox、JRadioButton)的facade、并实现资源束名称和关键字的get/set方法的类别“NLSUtility”。这些属性被保存在具有存取关键字的clientProperty散列表中。用户可在这些组件上显示弹出式菜单,并在运行时编辑标记。对标记做出的修改被保存在记录文件中。
图9表示了根据该facade类别实施例的方框图。这里,facade类别900起JFC文本组件910、920、930、940(及其它,图中未示出)的前端(front end)的作用,并使所有这些JFC文本组件中的每个文本组件与某个客户端性质(client property)属性相联系。随后通过使用putClientProperty()950和getClientProperty()960,可使用facade类别直接读取和编辑底层的JFC基础类别的性质属性。通过利用facade类别,获得和上面的包装(wrappering)实施例相同的结果,但是编辑器功能的开销被加入到facade类别中,而不是加入到各个单独组件中。
重要的是注意虽然在全功能数据处理***和/或网络的环境下说明本发明,但是本领域的技术人员将认识到本发明的机制能够以具有多种形式的指令的计算机可用媒介的形式散布,并且无论用于实际进行所述散布的信号承载媒介的特定类型如何,本发明的应用情况都相同。计算机可用媒介的例子包括:非易失性硬编码型媒介,例如只读存储器(ROM)或可擦电可编程只读存储器(EEPROM),可记录型媒介,例如软磁盘、硬盘驱动器和CD-ROM,以及传输型媒介,例如数字及模拟通信链路。
虽然已参考几个优选实施例具体显示和说明了本发明,但是本领域的技术人员要明白,在不脱离本发明的精神和范围的情况下,在形式和细节上可做出各种变化。此外,要明白虽然已论述了具体的数据结构、函数和语言,在不脱离本发明的范围的情况下,所公开的技术可容易地适用于其它编程环境。
Claims (7)
1.一种在运行时编辑软件程序的文本数据的方法,包括:
显示一个用户界面,该界面含有在用户界面的用户交互作用部分内的第一文本数据;
响应用户在显示的用户界面内对用于编辑的第一文本数据的选择,内省产生用户界面的源代码,以识别包括第一文本数据的软件对象;
在显示用户界面的同时,从用户输入接收用户希望替代第一文本数据的第二文本数据;
以机器可读的形式把第二文本数据保存在软件对象内以替代第一文本数据;
在把第二文本数据保存在软件对象内之后,在用于产生用户界面的源代码的执行过程中,在用户界面内显示替代第一文本数据的第二文本数据;
其特征在于第二文本数据是第一文本数据的从第一人类语言转换为第二人类语言的译文。
2.按照权利要求1所述的方法,其特征在于软件对象是计算机存储媒介上的本地化文件。
3.按照权利要求1所述的方法,其特征在于软件对象是Java组件。
4.按照权利要求1所述的方法,其特征在于用于产生用户界面的源代码包括对Java资源束的引用。
5.按照权利要求1所述的方法,其特征在于用于产生用户界面的源代码包括与第一文本数据相关的关键字,并且其中第二文本数据就替代第一文本数据而言与所述关键字相关。
6.按照权利要求1所述的方法,其特征在于用户通过鼠标点击,在显示的用户界面内选择供编辑的第一文本数据。
7.在运行时编辑软件程序的文本数据的计算机***,所述计算机***具有至少一个处理器、可存取存储器及一个可访问的显示器,所述计算机***还包括:
显示一个用户界面的装置,该界面含有在用户界面的用户交互作用部分内的第一文本数据;
响应用户在显示的用户界面内对用于编辑的第一文本数据的选择,内省产生用户界面的源代码,以识别包括第一文本数据的软件对象的装置;
在显示用户界面的同时,从用户输入接收用户希望替代第一文本数据的第二文本数据的装置;
以机器可读的形式把第二文本数据保存在软件对象内以替代第一文本数据的装置;
在把第二文本数据保存在软件对象内之后,在用于产生用户界面的源代码的执行过程中,在用户界面内显示替代第一文本数据的第二文本数据的装置;
其特征在于第二文本数据是第一文本数据的从第一人类语言转换为第二人类语言的译文。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/362,615 US6275790B1 (en) | 1999-07-28 | 1999-07-28 | Introspective editor system, program, and method for software translation |
US09/362,615 | 1999-07-28 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1364260A CN1364260A (zh) | 2002-08-14 |
CN1181428C true CN1181428C (zh) | 2004-12-22 |
Family
ID=23426804
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB008108463A Expired - Lifetime CN1181428C (zh) | 1999-07-28 | 2000-07-13 | 软件翻译的内省编辑器***、程序和方法 |
Country Status (9)
Country | Link |
---|---|
US (1) | US6275790B1 (zh) |
EP (1) | EP1204919A1 (zh) |
JP (1) | JP2003505787A (zh) |
KR (1) | KR100498529B1 (zh) |
CN (1) | CN1181428C (zh) |
AU (1) | AU6167700A (zh) |
IL (2) | IL147630A0 (zh) |
TW (1) | TW494342B (zh) |
WO (1) | WO2001008006A1 (zh) |
Families Citing this family (84)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6735759B1 (en) | 1999-07-28 | 2004-05-11 | International Business Machines Corporation | Editing system for translating displayed user language using a wrapper class |
US6567973B1 (en) * | 1999-07-28 | 2003-05-20 | International Business Machines Corporation | Introspective editor system, program, and method for software translation using a facade class |
US6950850B1 (en) * | 2000-10-31 | 2005-09-27 | International Business Machines Corporation | System and method for dynamic runtime partitioning of model-view-controller applications |
CA2325684A1 (en) * | 2000-11-10 | 2002-05-10 | Harm Sluiman | Automation and isolation of software component testing |
GB0027811D0 (en) * | 2000-11-15 | 2000-12-27 | Pace Micro Tech Plc | Method for producing a user interface translation tool |
GB0100676D0 (en) * | 2001-01-11 | 2001-02-21 | Ibm | A method of testing a computer program translated into a national language |
US6782529B2 (en) * | 2001-03-29 | 2004-08-24 | International Business Machines Corporation | Method, apparatus and computer program product for editing in a translation verification test procedure |
US6904563B2 (en) * | 2001-04-05 | 2005-06-07 | International Business Machines Corporation | Editing platforms for remote user interface translation |
EP1333374B1 (en) * | 2001-06-11 | 2016-09-07 | Sap Se | Dynamic generation of language localized and self-verified Java classes using XML descriptions and static initializers |
GB2378459B (en) * | 2001-08-07 | 2005-08-03 | Smith International | Completion of lateral well bores |
FR2833375B1 (fr) * | 2001-12-07 | 2004-06-04 | Amadeus | Procede, dispositif d'adaptation de fichiers numeriques |
US7369984B2 (en) * | 2002-02-01 | 2008-05-06 | John Fairweather | Platform-independent real-time interface translation by token mapping without modification of application code |
US7281215B1 (en) | 2002-04-30 | 2007-10-09 | Aol Llc | IM conversation counter and indicator |
US20080040675A1 (en) * | 2002-04-30 | 2008-02-14 | Aol Llc | Instant messaging interface having a tear-off element |
US7127685B2 (en) * | 2002-04-30 | 2006-10-24 | America Online, Inc. | Instant messaging interface having a tear-off element |
US7421661B1 (en) | 2002-04-30 | 2008-09-02 | Aol Llc | Instant messaging interface having an informational tool tip |
US7110937B1 (en) * | 2002-06-20 | 2006-09-19 | Siebel Systems, Inc. | Translation leveraging |
US20040044518A1 (en) * | 2002-08-27 | 2004-03-04 | Reed John E. | Method and system for multilingual display generation |
US20040148591A1 (en) * | 2003-01-23 | 2004-07-29 | International Business Machines Corporation | Method, apparatus, and program for automated application context delivery to translators |
KR100571763B1 (ko) * | 2003-11-03 | 2006-04-18 | 삼성전자주식회사 | 그래픽 분류정보를 이용한 사용자 그래픽 인터페이스 운용방법 및 그 장치 |
US7437704B2 (en) * | 2003-08-28 | 2008-10-14 | Ines Antje Dahne-Steuber | Real-time generation of software translation |
US7383302B2 (en) * | 2003-09-15 | 2008-06-03 | International Business Machines Corporation | Method and system for providing a common collaboration framework accessible from within multiple applications |
US7392519B2 (en) * | 2003-09-23 | 2008-06-24 | Hewlett-Packard Development Company, L.P. | Localization cataloguing tool |
GB0322915D0 (en) * | 2003-10-01 | 2003-11-05 | Ibm | System and method for application sharing |
CA2452077A1 (en) * | 2003-12-03 | 2005-06-03 | Daniel A. Rose | Verification of stream oriented locale files |
US20050204332A1 (en) * | 2004-03-15 | 2005-09-15 | Ramco Systems Limited | Method and system for developing large web-based multi-language applications |
US7464149B2 (en) | 2004-04-30 | 2008-12-09 | International Business Machines Corporation | System and method for managing introspectable objects in an enterprise |
US7269610B2 (en) | 2004-05-14 | 2007-09-11 | International Business Machines Corporation | System and method to observe user behavior and perform actions introspectable objects |
US7665063B1 (en) | 2004-05-26 | 2010-02-16 | Pegasystems, Inc. | Integration of declarative rule-based processing with procedural programming |
US7716641B2 (en) * | 2004-12-01 | 2010-05-11 | Microsoft Corporation | Method and system for automatically identifying and marking subsets of localizable resources |
US7617092B2 (en) * | 2004-12-01 | 2009-11-10 | Microsoft Corporation | Safe, secure resource editing for application localization |
US20060116864A1 (en) * | 2004-12-01 | 2006-06-01 | Microsoft Corporation | Safe, secure resource editing for application localization with automatic adjustment of application user interface for translated resources |
US8335704B2 (en) | 2005-01-28 | 2012-12-18 | Pegasystems Inc. | Methods and apparatus for work management and routing |
US7536640B2 (en) * | 2005-01-28 | 2009-05-19 | Oracle International Corporation | Advanced translation context via web pages embedded with resource information |
US7653528B2 (en) * | 2005-03-08 | 2010-01-26 | Microsoft Corporation | Resource authoring incorporating ontology |
US8219907B2 (en) * | 2005-03-08 | 2012-07-10 | Microsoft Corporation | Resource authoring with re-usability score and suggested re-usable data |
US7698126B2 (en) | 2005-03-08 | 2010-04-13 | Microsoft Corporation | Localization matching component |
US7774195B2 (en) * | 2005-03-08 | 2010-08-10 | Microsoft Corporation | Method and system for creating, storing, managing and consuming culture specific data |
US20060206797A1 (en) * | 2005-03-08 | 2006-09-14 | Microsoft Corporation | Authorizing implementing application localization rules |
US20060271920A1 (en) * | 2005-05-24 | 2006-11-30 | Wael Abouelsaadat | Multilingual compiler system and method |
CN100447743C (zh) * | 2005-06-24 | 2008-12-31 | 国际商业机器公司 | 在无需修改源代码的情况下本地化java gui应用的***和方法 |
US8392872B2 (en) * | 2005-11-19 | 2013-03-05 | International Business Machines Corporation | Pseudo translation within integrated development environment |
US7904883B2 (en) * | 2005-12-01 | 2011-03-08 | Microsoft Corporation | Localizable object pattern |
US20070179775A1 (en) * | 2006-01-30 | 2007-08-02 | Bauman Brian D | Method and system for translating a software application into an alternative language |
US20070180373A1 (en) * | 2006-01-30 | 2007-08-02 | Bauman Brian D | Method and system for renderring application text in one or more alternative languages |
US8924335B1 (en) | 2006-03-30 | 2014-12-30 | Pegasystems Inc. | Rule-based user interface conformance methods |
EP1868083A1 (en) * | 2006-06-13 | 2007-12-19 | Microsoft Corporation | Use of context information in localisation |
EP1870804A1 (en) * | 2006-06-22 | 2007-12-26 | Microsoft Corporation | Dynamic software localization |
US7752501B2 (en) * | 2006-07-27 | 2010-07-06 | International Business Machines Corporation | Dynamic generation and implementation of globalization verification testing for user interface controls |
JP4143661B2 (ja) * | 2006-09-11 | 2008-09-03 | インターナショナル・ビジネス・マシーンズ・コーポレーション | テスト用リソース・ファイル及びテスト用フォントを用いた国際化ソフトウェアのテスト方法、装置及びプログラム |
US8700998B2 (en) * | 2006-11-30 | 2014-04-15 | Red Hat, Inc. | Foreign language translation tool |
US8468494B2 (en) * | 2007-01-22 | 2013-06-18 | Oracle Taleo Llc | In-line editor |
JP4396994B2 (ja) * | 2007-02-09 | 2010-01-13 | インターナショナル・ビジネス・マシーンズ・コーポレーション | リソース・ファイルの翻訳検証方法、装置、およびプログラム |
US8250525B2 (en) | 2007-03-02 | 2012-08-21 | Pegasystems Inc. | Proactive performance management for multi-user enterprise software systems |
JP2008257478A (ja) * | 2007-04-04 | 2008-10-23 | Internatl Business Mach Corp <Ibm> | 検証対象文字列の格納位置出力装置、方法、及びコンピュータ・プログラム |
CN101311897B (zh) * | 2007-05-24 | 2012-02-22 | 国际商业机器公司 | 一种抓取应用程序的图形用户界面资源的方法及装置 |
JP5186154B2 (ja) * | 2007-08-21 | 2013-04-17 | インターナショナル・ビジネス・マシーンズ・コーポレーション | プログラムが表示するメッセージの修正を支援する技術 |
US20090089751A1 (en) * | 2007-09-28 | 2009-04-02 | Microsoft Corporation | Exposing features of software products |
US20110191703A1 (en) * | 2008-09-22 | 2011-08-04 | Fujifilm North America Corporation | System and Method for Providing Customized and Localized User Interface |
US8843435B1 (en) | 2009-03-12 | 2014-09-23 | Pegasystems Inc. | Techniques for dynamic data processing |
US8468492B1 (en) | 2009-03-30 | 2013-06-18 | Pegasystems, Inc. | System and method for creation and modification of software applications |
US8312390B2 (en) | 2009-06-10 | 2012-11-13 | Microsoft Corporation | Dynamic screentip language translation |
US9384011B2 (en) | 2010-06-30 | 2016-07-05 | International Business Machines Corporation | Workspace creation and management for a computing desktop |
CN102467497B (zh) * | 2010-10-29 | 2014-11-05 | 国际商业机器公司 | 校对程序中的文本翻译的方法和*** |
US8880487B1 (en) | 2011-02-18 | 2014-11-04 | Pegasystems Inc. | Systems and methods for distributed rules processing |
CN102279847B (zh) * | 2011-08-17 | 2013-06-19 | 瑞斯康达科技发展股份有限公司 | 软件***国际化方法和装置 |
US9195653B2 (en) * | 2011-10-24 | 2015-11-24 | Google Inc. | Identification of in-context resources that are not fully localized |
KR101875820B1 (ko) * | 2011-11-25 | 2018-07-06 | 구글 엘엘씨 | 어플리케이션 로컬화에 있어서의 번역 지원 제공 |
CN103176966A (zh) * | 2011-12-22 | 2013-06-26 | 苏州威世博知识产权服务有限公司 | 一种实现专利基本信息翻译的方法及*** |
US9195936B1 (en) | 2011-12-30 | 2015-11-24 | Pegasystems Inc. | System and method for updating or modifying an application without manual coding |
US20130290075A1 (en) * | 2012-04-30 | 2013-10-31 | Infosys Limited | Localization quality assurance of localized software |
CN103677786A (zh) * | 2012-09-21 | 2014-03-26 | 国际商业机器公司 | 用于辅助图形化用户界面设计的方法和装置 |
EP2984579A4 (en) * | 2013-04-11 | 2017-01-18 | Hewlett-Packard Enterprise Development LP | Automated contextual-based software localization |
JP6084940B2 (ja) * | 2014-02-28 | 2017-02-22 | 京セラドキュメントソリューションズ株式会社 | 電子機器および電子機器の管理方法 |
US10469396B2 (en) | 2014-10-10 | 2019-11-05 | Pegasystems, Inc. | Event processing with enhanced throughput |
US10698599B2 (en) | 2016-06-03 | 2020-06-30 | Pegasystems, Inc. | Connecting graphical shapes using gestures |
US10698647B2 (en) | 2016-07-11 | 2020-06-30 | Pegasystems Inc. | Selective sharing for collaborative application usage |
US10248406B2 (en) | 2016-11-17 | 2019-04-02 | International Business Machines Corporation | Locale object management |
EP3543844B1 (de) * | 2018-03-22 | 2020-04-29 | Sick Ag | Verfahren zum durchführen von änderungen an einer software-anwendung |
US11048488B2 (en) | 2018-08-14 | 2021-06-29 | Pegasystems, Inc. | Software code optimizer and method |
US11126644B2 (en) | 2019-01-31 | 2021-09-21 | Salesforce.Com, Inc. | Automatic discovery of locations of translated text in localized applications |
US11567945B1 (en) | 2020-08-27 | 2023-01-31 | Pegasystems Inc. | Customized digital content generation systems and methods |
CN113342436B (zh) * | 2021-06-10 | 2023-03-17 | 网易(杭州)网络有限公司 | 一种游戏翻译方法和装置 |
CN113961300A (zh) * | 2021-12-16 | 2022-01-21 | 杭州行至云起科技有限公司 | 一种iOS APP字符串资源文件翻译方法及*** |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5251130A (en) * | 1991-04-18 | 1993-10-05 | International Business Machines Corporation | Method and apparatus for facilitating contextual language translation within an interactive software application |
US5416903A (en) * | 1991-08-19 | 1995-05-16 | International Business Machines Corporation | System and method for supporting multilingual translations of a windowed user interface |
US5583761A (en) | 1993-10-13 | 1996-12-10 | Kt International, Inc. | Method for automatic displaying program presentations in different languages |
DE69430421T2 (de) * | 1994-01-14 | 2003-03-06 | Sun Microsystems, Inc. | Verfahren und Gerät zur Automatisierung der Umgebungsanpassung von Rechnerprogrammen |
US5678039A (en) | 1994-09-30 | 1997-10-14 | Borland International, Inc. | System and methods for translating software into localized versions |
US5652884A (en) | 1994-11-14 | 1997-07-29 | Object Technology Licensing Corp. | Method and apparatus for dynamic update of an existing object in an object editor |
US5907326A (en) * | 1997-03-10 | 1999-05-25 | International Business Machines Corporation | System and method for updating cultural profiles with dragging and dropping locale objects |
US6003050A (en) * | 1997-04-02 | 1999-12-14 | Microsoft Corporation | Method for integrating a virtual machine with input method editors |
US5953526A (en) * | 1997-11-10 | 1999-09-14 | Internatinal Business Machines Corp. | Object oriented programming system with displayable natural language documentation through dual translation of program source code |
-
1999
- 1999-07-28 US US09/362,615 patent/US6275790B1/en not_active Expired - Lifetime
-
2000
- 2000-06-26 TW TW089112513A patent/TW494342B/zh not_active IP Right Cessation
- 2000-07-13 IL IL14763000A patent/IL147630A0/xx active IP Right Grant
- 2000-07-13 WO PCT/GB2000/002680 patent/WO2001008006A1/en not_active Application Discontinuation
- 2000-07-13 CN CNB008108463A patent/CN1181428C/zh not_active Expired - Lifetime
- 2000-07-13 AU AU61677/00A patent/AU6167700A/en not_active Abandoned
- 2000-07-13 JP JP2001513033A patent/JP2003505787A/ja active Pending
- 2000-07-13 EP EP00948104A patent/EP1204919A1/en not_active Withdrawn
- 2000-07-13 KR KR10-2002-7000456A patent/KR100498529B1/ko not_active IP Right Cessation
-
2002
- 2002-01-14 IL IL147630A patent/IL147630A/en not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
IL147630A (en) | 2007-07-24 |
KR100498529B1 (ko) | 2005-07-01 |
CN1364260A (zh) | 2002-08-14 |
TW494342B (en) | 2002-07-11 |
AU6167700A (en) | 2001-02-13 |
US6275790B1 (en) | 2001-08-14 |
IL147630A0 (en) | 2002-08-14 |
KR20020035562A (ko) | 2002-05-11 |
JP2003505787A (ja) | 2003-02-12 |
WO2001008006A1 (en) | 2001-02-01 |
EP1204919A1 (en) | 2002-05-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1181428C (zh) | 软件翻译的内省编辑器***、程序和方法 | |
CN1120416C (zh) | 采用外观类进行软件翻译的内观编辑器***和方法 | |
US6311151B1 (en) | System, program, and method for performing contextual software translations | |
US5678039A (en) | System and methods for translating software into localized versions | |
EP0693193B1 (en) | Incremental linker system | |
US5416903A (en) | System and method for supporting multilingual translations of a windowed user interface | |
AU2004205327B2 (en) | Programming interface for a computer platform | |
US9086931B2 (en) | System for translating diverse programming languages | |
US9442744B2 (en) | Multilingual build integration for compiled applications | |
EP0664027B1 (en) | Program modeling system | |
US9965259B2 (en) | System for translating diverse programming languages | |
US8468494B2 (en) | In-line editor | |
US20140309983A1 (en) | Integrated Application Localization | |
US8352913B2 (en) | Generating and resolving component names in an integrated development environment | |
US20040044518A1 (en) | Method and system for multilingual display generation | |
US20110144972A1 (en) | Method and System for Generating a Localized Software Product | |
US20020147750A1 (en) | Editing platforms for remote user interface translation | |
KR20050039551A (ko) | 컴퓨터 플랫폼용 프로그래밍 인터페이스 | |
CN1371499A (zh) | 传统数据结构的对象特性元模型仿真器 | |
KR20090020621A (ko) | 소프트웨어 애플리케이션의 지역화 방법, 지역화 장치 및 컴퓨터 프로그램 | |
CN1259706A (zh) | 以可选显示语言提供用户接口的方法、***和计算机程序产品 | |
CN1855053A (zh) | 用于执行java虚拟机的指令的方法和设备 | |
US10983771B1 (en) | Quality checking inferred types in a set of code | |
KR20080038306A (ko) | 널가능과 후 바인딩 | |
US7657869B2 (en) | Integration of external tools into an existing design environment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C06 | Publication | ||
PB01 | Publication | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CX01 | Expiry of patent term |
Granted publication date: 20041222 |
|
CX01 | Expiry of patent term |