CN1364260A - 软件翻译的内省编辑器系统、程序和方法 - Google Patents

软件翻译的内省编辑器系统、程序和方法 Download PDF

Info

Publication number
CN1364260A
CN1364260A CN00810846A CN00810846A CN1364260A CN 1364260 A CN1364260 A CN 1364260A CN 00810846 A CN00810846 A CN 00810846A CN 00810846 A CN00810846 A CN 00810846A CN 1364260 A CN1364260 A CN 1364260A
Authority
CN
China
Prior art keywords
text data
text
data
translation
java
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.)
Granted
Application number
CN00810846A
Other languages
English (en)
Other versions
CN1181428C (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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1364260A publication Critical patent/CN1364260A/zh
Application granted granted Critical
Publication of CN1181428C publication Critical patent/CN1181428C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • 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/46Multiprogramming arrangements
    • G06F9/465Distributed object oriented systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • 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

一种向语言翻译者提供要翻译文本的上下文关系信息的系统、方法和程序。以基本语言向翻译者提供图形用户界面,随后翻译者可交互式翻译屏幕上的各个文本标记。由于是在正确的上下文中对文本进行翻译,因此可减少或消除翻译校验测试的时间和费用。通过向软件应用程序本身增加编辑器功能,获得在应用程序内编辑文本的能力。利用特定的资源束名称并依据关键字,可将应用程序中的各个文本标记保存在本地化文件中。当激活编辑器时,内省文本对象,以查找其源数据,翻译者可直接编辑文本。随后源数据被用于保存译文,供以后使用。

Description

软件翻译的内省编辑器系统、程序和方法
本发明涉及国际通用软件的开发工具,尤其涉及多语言软件开发。更具体地说,本发明涉及实现计算机软件的语言翻译的改进系统和方法。
随着计算机变得越来越普遍,软件开发商最好能够把他们的产品销售给不讲软件开发商本国语言的那些人们。具体地说,最好用英语开发的软件既适用于美国国内人民,又适用于全世界内不讲英语的其他人民。因此,以英语开发的许多软件应用程序稍后都要经过翻译,供非英语用户使用。
把软件包翻译成另一(或者一种以上其它)语言的过程既费时,费用又高。必须翻译各个文本消息、菜单和工具按钮,以使用户能够运用该程序。最直接的方式是搜索整个程序源代码,查找每个文本串,即查找将要显示给用户的每个字符串,并把各个字符串翻译成新的语言。
这种方法存在几个问题。一个问题是使用这种方法意味着必须相对于每种预期的语言,特别地翻译并编译软件。这本身是费用高昂的过程,并且意味着源代码中的任意变化都需要编辑和重新编译各种语言版本的代码。
图2中表示了Java应用程序中硬编码标记的例子。Java是两种事物:编程语言和平台。一方面,Java是高级编程语言,并且与从不同的是每个Java程序既被编译又被解释,从而使其能够利用多种平台。Java也是运行于其它基于硬件的平台之上的纯软件平台。Java平台具有两个组件:Java虚拟机(Java VM)和Java应用程序编程接口(Java API)。
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文件及其它多种格式。
本地化文件的使用便于进行多重翻译,但是带来的一个新问题是对于翻译者来说,是在不存在任何上下文关系的情况下,对单独文件中的孤立文本进行翻译。由于情况是这样,因此翻译通常总是含有错误,而如果翻译者能够按照文本出现的上下文进行翻译,就不会存在这样的错误。
不管用何种方法处理翻译,也必须校对使用中的程序的各个屏幕,以确保正确地显示翻译后的文本,并且正确地翻译显示环境中的文本。于是,通常的做法是雇用具有其它语言背景的人员来校对翻译后的程序的各个屏幕,以便检测任意显示、语法或其它翻译错误。该第二阶段被称为翻译校验测试(TVT)。
图3中表示了按照常规方法的翻译和测试循环图。A国的代表性公司A构建了打算供B国使用的应用程序(310)。接下来,公司A把应用程序打包并运输给位于B国的公司B(320)。公司B将运行该应用程序,测试任何翻译或国际化错误(330)。随后公司B进行TVT测试,记录任何翻译错误,并进行任何必需的重新翻译(340)。随后公司B把改正内容返回公司A,重复上述过程,直到不再发现错误为止。
按照这种常规方法,在B国每次校正错误或改变翻译,在重新测试产品之前,都必须在A国重构并重新打包该产品。因此,TVT过程必然既费钱又费时。于是希望提供一种向翻译者提供辅助信息,尤其是上下文信息的装置,从而初始翻译能够尽可能准确。这样,可降低或消除进行TVT测试所需的费用和时间。
本发明的一个目的是提供一种改进的国际通用软件的开发工具。
本发明的另一目的是提供改进的多语言软件的开发工具。
本发明的又一目的是提供一种在计算机软件中进行语言翻译的改进系统和方法。
在下述详细的书面说明中,本发明的上述及其它目的、特征和优点将是显而易见的。
通过提供一种向语言翻译者提供要翻译文本的上下文关系信息的系统、方法和程序,可实现更高效的翻译过程。以基本语言向翻译者提供图形用户界面,随后翻译者可交互式翻译屏幕上的各个文本标记。由于是在正确的上下文中对文本进行翻译,因此可减少或消除翻译校验测试的时间和费用。通过向软件应用程序本身增加编辑器功能,获得在应用程序内编辑文本的能力。利用特定的资源束(resourcebundle)名称并依据关键字,可将应用程序中的各个文本标记保存在本地化文件中。当激活编辑器时,内省文本对象,以查找其源数据,翻译者可直接编辑文本。随后源数据被用于保存译文,供以后使用。
因此,本发明提供了一种编辑软件程序的文本数据的方法,包括:通过调用包括与第一文本数据相关的源数据的软件对象,显示第一文本数据;响应用户输入,检查软件对象,识别源数据;从用户输入接收对应于第一文本数据的第二文本数据;按照源数据,以机器可读的形式保存第二文本数据;并在计算机显示器上替代第一文本数据而显示第二文本数据,其中机器可读形式最好是计算机存储媒介上的本地化文件。第二文本数据最好是第一文本数据的译文,软件对象最好是Java组件。源数据还可包括对Java资源束的引用,并且也可包括与第一文本数据相关的关键字。检查步骤中的用户输入是鼠标点击。
在另一个实施例中,本发明提供具有至少一个处理器、可存取存储器及可访问显示器的计算机系统,所述计算机系统包括:用于通过调用包括与第一文本数据相关的源数据的软件对象,显示第一文本数据的装置;用于响应用户输入,检查软件对象,以识别源数据的装置;用于从用户输入接收对应于第一文本数据的第二文本数据的装置;用于按照源数据,以机器可读的形式保存第二文本数据的装置;以及用于在计算机显示器上替代第一文本数据而显示第二文本数据的装置,其中机器可读形式最好是计算机存储媒介上的本地化文件。第二文本数据最好是第一文本数据的译文,软件对象最好是Java组件。源数据还可包括对Java资源束的引用,并且也可包括与第一文本数据相关的关键字。检查步骤中的用户输入是鼠标点击。
在又一个实施例中,本发明提供具有在计算机可用媒介上的计算机可读程序代码的计算机程序产品,包括:用于通过调用包括与第一文本数据相关的源数据的软件对象,显示第一文本数据的指令;用于响应用户输入,检查软件对象,以识别源数据的指令;用于从用户输入接收对应于第一文本数据的第二文本数据的指令;用于按照源数据,以机器可读的形式保存第二文本数据的指令;以及用于在计算机显示器上替代第一文本数据而显示第二文本数据的指令,其中机器可读形式最好是计算机存储媒介上的本地化文件。第二文本数据最好是第一文本数据的译文,软件对象最好是Java组件。源数据还可包括对Java资源束的引用,并且另一方面可包括与第一文本数据相关的关键字。检查步骤中的用户输入是鼠标点击。
下面将参考附图,举例说明本发明的优选实施例,其中:
图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://java.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的,Java JButton调用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 (9)

1.一种编辑软件程序的文本数据的方法,包括:
通过调用包括与第一文本数据相关的源数据的软件对象,显示第一文本数据;
响应用户输入,检查软件对象,以识别源数据;
从用户输入接收对应于第一文本数据的第二文本数据;
按照源数据,以机器可读的形式保存第二文本数据;和
在计算机显示器上替代第一文本数据而显示第二文本数据。
2.按照权利要求1所述的方法,其特征在于机器可读形式是计算机存储媒介上的本地化文件。
3.按照权利要求1所述的方法,其特征在于第二文本数据是第一文本数据的译文。
4.按照权利要求1所述的方法,其特征在于软件对象是Java组件。
5.按照权利要求1所述的方法,其特征在于源数据包括对Java资源束的引用。
6.按照权利要求1所述的方法,其特征在于源数据包括与第一文本数据相关的关键字。
7.按照权利要求1所述的方法,其特征在于检查步骤中的用户输入是鼠标点击。
8.具有至少一个处理器、可存取存储器及一个可访问显示器的计算机系统,所述计算机系统包括:
用于通过调用包括与第一文本数据相关的源数据的软件对象,显示第一文本数据的装置;
用于响应用户输入,检查软件对象,以识别源数据的装置;
用于从用户输入接收对应于第一文本数据的第二文本数据的装置;
用于按照源数据,以机器可读的形式保存第二文本数据的装置;和
用于在计算机显示器上替代第一文本数据而显示第二文本数据的装置。
9.具有在计算机可用媒介上的计算机可读程序代码的计算机程序产品,包括:
用于通过调用包括与第一文本数据相关的源数据的软件对象,显示第一文本数据的指令;
用于响应用户输入,检查软件对象,以识别源数据的指令;
用于从用户输入接收对应于第一文本数据的第二文本数据的指令;
用于按照源数据,以机器可读的形式保存第二文本数据的指令;和
用于在计算机显示器上替代第一文本数据而显示第二文本数据的指令。
CNB008108463A 1999-07-28 2000-07-13 软件翻译的内省编辑器系统、程序和方法 Expired - Lifetime CN1181428C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/362,615 1999-07-28
US09/362,615 US6275790B1 (en) 1999-07-28 1999-07-28 Introspective editor system, program, and method for software translation

Publications (2)

Publication Number Publication Date
CN1364260A true CN1364260A (zh) 2002-08-14
CN1181428C 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)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1329824C (zh) * 2003-09-15 2007-08-01 国际商业机器公司 用于提供从多个应用程序内可访问的通用协作框架的方法和系统
CN102279847A (zh) * 2011-08-17 2011-12-14 瑞斯康达科技发展股份有限公司 软件系统国际化方法和装置
CN101311897B (zh) * 2007-05-24 2012-02-22 国际商业机器公司 一种抓取应用程序的图形用户界面资源的方法及装置
CN103176966A (zh) * 2011-12-22 2013-06-26 苏州威世博知识产权服务有限公司 一种实现专利基本信息翻译的方法及系统
CN103677786A (zh) * 2012-09-21 2014-03-26 国际商业机器公司 用于辅助图形化用户界面设计的方法和装置
CN113342436A (zh) * 2021-06-10 2021-09-03 网易(杭州)网络有限公司 一种游戏翻译方法和装置
CN113961300A (zh) * 2021-12-16 2022-01-21 杭州行至云起科技有限公司 一种iOS APP字符串资源文件翻译方法及系统

Families Citing this family (76)

* Cited by examiner, † Cited by third party
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
US20080040675A1 (en) * 2002-04-30 2008-02-14 Aol Llc Instant messaging interface having a tear-off element
US7281215B1 (en) * 2002-04-30 2007-10-09 Aol Llc IM conversation counter and indicator
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
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
US7774195B2 (en) * 2005-03-08 2010-08-10 Microsoft Corporation Method and system for creating, storing, managing and consuming culture specific data
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
US7653528B2 (en) * 2005-03-08 2010-01-26 Microsoft Corporation Resource authoring incorporating ontology
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
US20070180373A1 (en) * 2006-01-30 2007-08-02 Bauman Brian D Method and system for renderring application text in one or more alternative languages
US20070179775A1 (en) * 2006-01-30 2007-08-02 Bauman Brian D Method and system for translating a software application into an alternative language
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> 検証対象文字列の格納位置出力装置、方法、及びコンピュータ・プログラム
JP5186154B2 (ja) * 2007-08-21 2013-04-17 インターナショナル・ビジネス・マシーンズ・コーポレーション プログラムが表示するメッセージの修正を支援する技術
US20090089751A1 (en) * 2007-09-28 2009-04-02 Microsoft Corporation Exposing features of software products
WO2010033987A1 (en) * 2008-09-22 2010-03-25 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
US9195653B2 (en) * 2011-10-24 2015-11-24 Google Inc. Identification of in-context resources that are not fully localized
JP5911594B2 (ja) * 2011-11-25 2016-04-27 グーグル インコーポレイテッド アプリケーションのローカリゼイションにおける翻訳支援の提供
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
US9928237B2 (en) 2013-04-11 2018-03-27 Entit Software Llc 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
US11567945B1 (en) 2020-08-27 2023-01-31 Pegasystems Inc. Customized digital content generation systems and methods

Family Cites Families (9)

* Cited by examiner, † Cited by third party
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
EP0668558B1 (en) * 1994-01-14 2002-04-17 Sun Microsystems, Inc. Method and apparatus for automating the localization of a computer program
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

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1329824C (zh) * 2003-09-15 2007-08-01 国际商业机器公司 用于提供从多个应用程序内可访问的通用协作框架的方法和系统
CN101311897B (zh) * 2007-05-24 2012-02-22 国际商业机器公司 一种抓取应用程序的图形用户界面资源的方法及装置
US8170864B2 (en) 2007-05-24 2012-05-01 International Business Machines Corporation Method and apparatus for capturing graphic user interface resource of an application
CN102279847A (zh) * 2011-08-17 2011-12-14 瑞斯康达科技发展股份有限公司 软件系统国际化方法和装置
CN103176966A (zh) * 2011-12-22 2013-06-26 苏州威世博知识产权服务有限公司 一种实现专利基本信息翻译的方法及系统
CN103677786A (zh) * 2012-09-21 2014-03-26 国际商业机器公司 用于辅助图形化用户界面设计的方法和装置
US9910554B2 (en) 2012-09-21 2018-03-06 International Business Machines Corporation Assisting graphical user interface design
CN113342436A (zh) * 2021-06-10 2021-09-03 网易(杭州)网络有限公司 一种游戏翻译方法和装置
CN113342436B (zh) * 2021-06-10 2023-03-17 网易(杭州)网络有限公司 一种游戏翻译方法和装置
CN113961300A (zh) * 2021-12-16 2022-01-21 杭州行至云起科技有限公司 一种iOS APP字符串资源文件翻译方法及系统

Also Published As

Publication number Publication date
WO2001008006A1 (en) 2001-02-01
CN1181428C (zh) 2004-12-22
KR100498529B1 (ko) 2005-07-01
IL147630A (en) 2007-07-24
IL147630A0 (en) 2002-08-14
JP2003505787A (ja) 2003-02-12
TW494342B (en) 2002-07-11
AU6167700A (en) 2001-02-13
KR20020035562A (ko) 2002-05-11
US6275790B1 (en) 2001-08-14
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
US6735759B1 (en) Editing system for translating displayed user language using a wrapper class
US5678039A (en) System and methods for translating software into localized versions
US9086931B2 (en) System for translating diverse programming languages
EP0693193B1 (en) Incremental linker system
US7971194B1 (en) Programming language techniques for client-side development and execution
EP0664027B1 (en) Program modeling system
RU2371758C2 (ru) Интерфейс программирования для компьютерной платформы
US5416903A (en) System and method for supporting multilingual translations of a windowed user interface
US8468494B2 (en) In-line editor
US6904563B2 (en) Editing platforms for remote user interface translation
US8352913B2 (en) Generating and resolving component names in an integrated development environment
US20150242194A1 (en) System for Translating Diverse Programming Languages
US20040044518A1 (en) Method and system for multilingual display generation
KR20050039551A (ko) 컴퓨터 플랫폼용 프로그래밍 인터페이스
CN1371499A (zh) 传统数据结构的对象特性元模型仿真器
US20110144972A1 (en) Method and System for Generating a Localized Software Product
JP2004502241A (ja) オンライン環境内で複数言語コンテンツを提供する装置及びその方法
KR20090020621A (ko) 소프트웨어 애플리케이션의 지역화 방법, 지역화 장치 및 컴퓨터 프로그램
EP1890235A1 (en) Test case management
KR20080038306A (ko) 널가능과 후 바인딩
NO329240B1 (no) System og fremgangsmate for forklarende definering og bruk av undergrupper innenfor dokumentkoding
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
CX01 Expiry of patent term

Granted publication date: 20041222