US20090132232A1 - Methods and apparatus for implementing multilingual software applications - Google Patents
Methods and apparatus for implementing multilingual software applications Download PDFInfo
- Publication number
- US20090132232A1 US20090132232A1 US12/174,624 US17462408A US2009132232A1 US 20090132232 A1 US20090132232 A1 US 20090132232A1 US 17462408 A US17462408 A US 17462408A US 2009132232 A1 US2009132232 A1 US 2009132232A1
- Authority
- US
- United States
- Prior art keywords
- rules
- user interface
- elements
- translatable
- translated
- 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.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
Definitions
- the invention relates to digital data processing and, more particularly, to facilitating locale globalization and/or customization for digital data processing user interfaces.
- the invention has application, by way of non-limiting example, to enabling multilingual enterprise software systems that can customize user interactions to each user's language and cultural expectations.
- the foregoing approach does not provide global enterprises with a way to avoid high costs of translating existing applications that were not internationalized when first written. Furthermore, even for applications that have been internationalized, there is no efficient way of providing context of actual usage to the translators in order to remove ambiguity in translating local-sensitive data and to ensure consistent vocabulary and fit. Moreover, the overall performance of most prior art globalized applications remains relatively slow since, typically, locale-sensitive data is retrieved (e.g., from resource local or networked resource files) at run-time. Finally, conventional methods and apparatus do not provide the ability to define additional factors (other than locale) when translating user interfaces.
- an object of the invention is to provide improved methods and apparatus for digital data processing.
- a related object is to provide such methods and apparatus as facilitate globalization and/or customization of user interfaces.
- a further related object of the invention is to provide such methods and apparatus as facilitate multilingual enterprise software systems that can customize user interactions to each user's language, cultural expectations and personal preferences.
- Yet a still further object of the invention is to provide such methods and apparatus as provide more flexibility to build efficient globalized applications.
- a still further object of the invention is to provide such methods and apparatus as can be used with legacy, as well as new, applications.
- Yet a still further object of the invention is to provide such methods and apparatus as can be implemented and operated at reduced expense on existing and new platforms.
- a system for implementing a multilingual rules-based user interface including a reference tracker (executing on a digital data processor) that identifies translatable elements—by way of example, static text, enumerated variable text, images and icons—referenced by one or more user interface rules in a rules base and that generates a translation package containing those translatable elements for at least one target locale.
- a rules engine (which may execute on the same or another digital data processor) retrieves, from one or more transliteration rules based on the translation facilitation package, one or more translated elements that are associated with a locale and with one or more translatable elements referenced by the user interface rules.
- the rules engine processes those user interface rules using those one or more translated elements and, as a result, generates a user interface with the one or more translated elements.
- the reference tracker identifies translatable elements by querying a database table made up of entries identifying those elements and the user interface rules that reference them.
- the reference tracker may, according to related aspects of the invention, identify translatable elements by inspecting the user interface rules.
- the target locale can be a language (e.g., German, French, etc.), a country and language (e.g., Switzerland/French), and/or a country and language and a variant (e.g., Switzerland/French/pre-Euro).
- a language e.g., German, French, etc.
- a country and language e.g., Switzerland/French
- a country and language and a variant e.g., Switzerland/French/pre-Euro
- Still further aspects of the invention provide systems as described above wherein the rules engine retrieves translated elements from the transliteration rules in accord with a context (other than or in addition to locale) in which the user interface will be transmitted to and/or executed by a client device, and/or of a user on behalf of which the user interface will be executed.
- That context can include, by way of example, security permissions, age, disability settings, behavioral segment, market segment, and locale of the user on behalf of which the page is executed; a processor speed, display size, and keyboard capabilities, of the client device; and, a speed of connection between the client device executing the user interface and the first digital data processor of a second set of one or more digital data processors.
- aspects of the invention include systems as described above in which the rules engine processes the user interface rules by converting metadata associated with them into executable code, e.g., Java code.
- the rules engine incorporates the translated elements into the user interface rules prior to executing that code, e.g., by transforming both metadata for the user interface rules and for the transliteration rules into a single executable Java (or other language) file.
- the reference tracker generates translation facilitation packages that further includes (i) previously translated elements and (ii) indicators of exemplary references (e.g., hypertext links to markup text for the user interface or text descriptions of the exemplary reference) by the user interface rules to any of (i) one or more translatable elements, (ii) one or more previously translated elements.
- exemplary references e.g., hypertext links to markup text for the user interface or text descriptions of the exemplary reference
- the invention provides a system for implementing a multilingual rules-based user interface that includes functionality, e.g., a ‘wizard’, executing on a digital data processor, that identifies one or more translatable elements referenced by one or more user interface rules in a rules base. That wizard (or other functionality) requests, from a user, one or more translated elements associated with those translatable elements and with at least one target locale. From this, the wizard generates one or more transliteration rules for such target locales.
- functionality e.g., a ‘wizard’
- That wizard requests, from a user, one or more translated elements associated with those translatable elements and with at least one target locale. From this, the wizard generates one or more transliteration rules for such target locales.
- Such a system further includes a rules engine, executing on the same or another digital data processor, that (i) retrieves from the transliteration rules generated by the wizard one or more translated elements associated with a specified locale and with one or more translatable elements in one or more user interface rules, (ii) processes those interface rules using those one or more translated elements, to generate a user interface with the one or more translated elements.
- a rules engine executing on the same or another digital data processor, that (i) retrieves from the transliteration rules generated by the wizard one or more translated elements associated with a specified locale and with one or more translatable elements in one or more user interface rules, (ii) processes those interface rules using those one or more translated elements, to generate a user interface with the one or more translated elements.
- Such a system can include one or more elements of the systems described above.
- the invention provides methods of implementing a multilingual rules-based user interface that parallel operation of the systems described above.
- FIG. 1 depicts a digital data processing system of the type in which the invention is practiced
- FIG. 2 depicts further details of the translation facilitation packages and transliteration rules used in operation of the system of FIG. 1 ;
- FIG. 3 is a flowchart depicting a method of operation of the system of FIG. 1 ;
- FIG. 4 is a flowchart depicting further details of the translation facilitation package generation step of the flowchart of FIG. 3 ;
- FIG. 5 is a flowchart depicting the conversion of metadata into executable Java code in one embodiment of a system according to claim 1 .
- FIG. 1 depicts a system 100 and environment for globalizing the user interface of software applications 34 , particularly, for example, a multi-user enterprise application, according to one practice of the invention.
- system 100 executes on exemplary server digital data processor 12 , which may be a personal computer, workstation, mainframe, or other digital data processing apparatus of the type known in the art capable of executing applications, programs and/or processes.
- Illustrated server digital data processor 12 executes in a network environment of the type typical in a business enterprise, e.g., one including further digital data processors 20 - 30 —which themselves may comprise personal computers, workstations, mainframes, or other digital data processing apparatus. In other embodiments, server digital data processor 12 may operate alone or in other environments, networked or otherwise. In any event, illustrated digital data processors 20 - 30 are coupled to server 12 via a network 32 , such as the Internet, a local-area network (LAN), wide-area network (WAN), or otherwise, that may be public, private, IP-based, etc.
- a network 32 such as the Internet, a local-area network (LAN), wide-area network (WAN), or otherwise, that may be public, private, IP-based, etc.
- client data processors 20 - 26 are used in development mode, e.g., by software engineers, test engineers, systems administrators, etc. (collectively, “developers”) to develop, test and maintain/or software applications 34 .
- client data processors 28 and 30 are employed by users to execute instantiations of the application 34 .
- server 12 assumes the roles of development devices 20 - 26 , i.e., it is treated as if used by developers to develop, test and maintain the applications, as well as the role of executing application 34 at the behest of client devices 28 , 30 .
- applications 34 execute on a single digital data processor; however, in practice, the applications 34 may execute on or over multiple digital data processors (e.g., in client-server mode, peer-to-peer mode, etc.).
- Illustrated digital data processor 12 includes rules base 40 constructed and accessed in the conventional manner known in the art of rules bases.
- the digitally encoded rules 41 that it contains are likewise formatted and stored in the conventional manner known in the art.
- An example of the structure, operation and use of the rules base 40 and rules 41 is provided in commonly assigned U.S. Pat. No. 5,826,250, entitled “Rules Bases and Methods of Access Thereof” and U.S. patent application Ser. No. 11/368,360, filed Mar. 3, 2006, entitled “Rules Base Systems and Methods with Circumstance Translation,” the teachings of both of which are incorporated herein by reference.
- Illustrated digital data processor 12 also includes rules engine 42 of the type conventionally known in the art for use in processing rules, e.g., retrieved from a rules base 40 , in order to respond to (or otherwise handle) events signaled to and/or detected by the engine 42 .
- rules engine 42 of the type conventionally known in the art for use in processing rules, e.g., retrieved from a rules base 40 , in order to respond to (or otherwise handle) events signaled to and/or detected by the engine 42 .
- the illustrated system 100 is shown with a single digital data processor 12 that co-houses both a rules engine and rules base; however, in other embodiments, multiple servers may be provided which may (or may not) include co-housed rules engines and rules bases.
- Illustrated applications 34 also executing on the rules engine 42 , comprise a set of rules 36 defining the user interface(s) and other aspects of one or more software applications written, tested and revised by developers and executed by users.
- software applications 34 can be multi-user enterprise software systems (e.g., business process management applications), and the like.
- the applications 34 can comprise one or more components, modules, systems, and so forth (collectively, “components”), as is common in the art.
- components are defined by rules 36 that are executed on engine 42
- the applications 34 may be defined and/or executed otherwise.
- a single rule e.g. a user interface rule
- applications 34 may include a student loan processing application as well as a credit card dispute application where the rules are modeled or built in hierarchical classes following an object-oriented paradigm (much like Java).
- rules engine 42 responds to signaling e.g., received from the client devices (e.g., by way of HTTP requests), or otherwise, process rules 36 defining the applications 34 .
- user interface rules and other rules 36
- those rules may be executed, instead or in addition, on the client devices directly.
- An example of a system and method that, among other things, can be used to process rules to generate a user interface is disclosed in the commonly assigned U.S. patent application Ser. No. 11/396,415, filed Mar. 30, 2006, entitled “User Interface Methods and Apparatus for Rules Processing,” the teachings of which are incorporated herein by reference.
- a “user interface” of the type generated by execution of the aforementioned user interface rules may be of any type known in the art including, but not limited to, a graphical user interface (GUI), text user interface (TUI) and command line interface (CLI)—as adapted in according with the teachings hereof.
- GUI graphical user interface
- TUIs and CLIs may primarily include alphanumeric text-based content, while such GUIs may also include graphic elements, visual indicators, aural presentation fields (e.g., music files), video files and the like.
- the user interfaces generated and transmitted by server 12 to the digital data processors 28 , 30 are shown as conventional GUI “display screens” of the type used to present information to and/or elicit information from users of those devices, (though, as evident from the discussion above, they may be other types of interfaces).
- those screens are embodied in HTML or other mark-up language streams transmitted by the server to the devices 28 , 30 and presented by web browsers executing on them (though, in other embodiments, they may be transmitted in other formats and/or executed by other software on the devices 28 , 30 ).
- those screens may be individual, stand-alone screens or they may form part of a sequence of UT screens transmitted by the server 12 to the respective devices 28 , 30 , e.g., as part of respective online sessions by users of those devices.
- the web browsers utilized by digital data processors 28 , 30 to present the display screens (or other user interfaces generated by server 12 ) are of the conventional type known in the art operative on the respective devices for, by way of example, retrieving web pages, presenting those pages (visually, aurally, or otherwise), executing scripts, controls and other code on those pages, accepting user input with respect to those pages (e.g., for purposes of completing input fields), issuing HTTP requests with respect to those pages or otherwise (e.g., for submitting to a server information from the completed input fields), and so forth.
- web pages can be embodied in HTML or other markup-language streams and can include, by way of example, embedded XML, scripts, controls, and so forth, again, per convention in the art, albeit as adapted in accord with the teachings hereof
- Systems and methods according to the invention facilitate globalization and/or customization of the user interfaces generated by the user interface rules for the client devices.
- FIG. 1 This is depicted, by way of non-limiting example, in FIG. 1 , in which client digital data processors 28 and 30 are shown displaying alternative forms of the user interface—here, generated by server 12 upon processing of common rules 36 in response to requests by browsers executing on the respective clients 28 , 30 for the same (or related) web pages.
- UT screen 73 is displayed by digital data processor 28 in response to HTML or other codes transmitted to it by server 12 in response to a request for a web page for credit card dispute resolution (the “credit card dispute entry” web page), while UT screen 74 is displayed by digital data processor 30 in response to codes transmitted to it by server 12 in response to a request for that same page, or one related thereto (e.g., a web page generated by the server 12 upon processing of the same user interface rules as those which resulted in the “credit card dispute entry” web page).
- UT screens 73 , 74 both include corresponding textual display fields 2 (screen 73 ) & 6 (screen 74 ) and 4 & 8 for presenting information to respective users of digital data processors 28 , 30 .
- Those respective corresponding fields are generated from the same user interface rules processing on server 12 and they convey the same information; however, they do so in different languages: German in screen 73 ; American-English in screen 74 .
- Systems and methods according to the invention facilitate this.
- UT screens 73 , 74 also include corresponding input fields 1 & 5 and 3 & 9 , for accepting/editing date and price data from/by those users.
- Those respective corresponding fields are generated from the same user interface rules executing on server 12 and they convey the same types of information (e.g., date information in the case of input fields 1 & 5 ; pricing information in the case of fields 3 & 9 ); however, they do so in different currencies and formats: European formats in screen 73 ; American-English in screen 74 .
- Systems and methods according to the invention facilitate this, too.
- the data shown in input fields 1 & 5 and 3 & 9 in the drawing is assumed to come from the same underlying data set, e.g., the same customer record.
- this “work data” e.g., working data entered by, or generated for, users of devices 28 , 30 and their respective UIs 73 , 74
- systems and methods according to the invention facilitate formatting that data in the manner expected by those users of devices 28 , 30 , even though the underlying data values themselves may not be the same.
- Operation of the illustrated system 100 in facilitating globalization and/or customization of user interfaces—and, particularly, globalizing/customizing those interfaces from the same user interface rules processed by server 12 can be appreciated by continued reference to FIG. 1 and the example presented there, as further described in the text below. It will be appreciated, of course, that the methodology described here may be applied to a host of applications 34 , including and beyond generation of UIs for credit card dispute entry. For simplicity, that methodology is described in respect to requests initiated by client device 30 ; however, the same methodology is executed by other client devices, e.g., 28 , with globalization results of the type depicted in FIG. 1 .
- the rules engine 42 retrieves user interface (and other) rules 36 , 41 implicated by that request from the rules base 40 (if it has not already done so), as determined by the request itself, the context in which the requested web page will be communicated to and executed on the client device 30 , and the state of currently executing rules for that user, all by way of non-limiting example.
- the rules engine then processes those rules, e.g., in view of that context, to select which input fields (e.g., fields 5 and 9 ), and displays fields (e.g., fields 6 and 8 ), as well as which other elements making up the screen 74 (such as submit buttons, icons, graphical elements, etc.), to include in the screen—hereinafter, referred to as a “page” or “web page”—and how to arrange, format and otherwise configure those elements.
- the illustrated system 100 takes into account, by way of example, language, country and/or other locale settings and preferences of the user of device 30 to which the web page is to be displayed.
- the locale settings for device 30 reflect that the user prefers his/her display in American-English format.
- this contextual selection and configuration is based on information which is embedded in the rules themselves and/or which forms part of the systematic processing of markup language streams discussed below. It does not require that individual rules 36 , 41 be hand-coded with alternative web pages to account for a variety of possible contexts—as is conventional in the art. Moreover, it extends beyond selection and configuration of input and display elements per se. It can also include embedding in headers or other elements of the web pages selected scripts, Active X controls, or so forth that are relevant to a given context, for example, to facilitate further display and use of those pages on the client device 30 .
- Examples of this include, by way of non-limiting example, Ajax and other scripts or other code sequences of the type described in aforementioned incorporated-by-reference U.S. patent application Ser. No. 11/396,415, for the pre-processing of user-entered data, selections and/or gestures, discussed below, thus, altering the user experience by changing the code running on the client device or by making that device dynamically interact.
- context refers to the context in which the requested web page will be communicated to and executed on the client device. That context can include, by way of non-limiting example, user “properties” or business attributes (e.g., security permissions, disability settings, market segment, behavioral segment, age, locale, and so forth), client device 18 properties (e.g., processor speed, display size, keyboard capabilities, locale, and so forth), and communication channel properties (e.g., the speed and type of connection between devices 12 and 30 ). As further evident in the discussion above, that context further includes the language, country and/or other locale settings and preferences of the user of device to which the web page is to be displayed.
- business attributes e.g., security permissions, disability settings, market segment, behavioral segment, age, locale, and so forth
- client device 18 properties e.g., processor speed, display size, keyboard capabilities, locale, and so forth
- communication channel properties e.g., the speed and type of connection between devices 12 and 30 .
- context further includes the language, country and/or other locale
- the engine 42 constructs a markup language stream, e.g., in HTML or other conventional format or protocol. That stream (or, more accurately, markup language document) is transmitted by the server 12 , per convention, to the requesting client digital data processor 30 for response by the user—in this case, review and/or update of input fields 5 , 9 .
- the engine 42 constructs and forwards the stream to the browser of device 30 substantially concurrently with its request for the corresponding web page, i.e., during the same online session on which that request was made and/or within the conventional time periods expected for response to a web page, though these are not requirements of the invention.
- the browser of device 30 likewise substantially concurrently executes that stream for display to the user, e.g., within that same online session and/or within the conventional time periods expected for execution of a web page though, again, this is not a requirement of the invention.
- the resulting user display is shown in FIG. 1 , as described above.
- Rules engine 42 responds similarly to requests for that same credit card dispute entry web page from the web browser of client digital data processor 28 , taking context and, particularly, locale settings into account, as discussed above.
- the locale settings for device 28 reflect that the user prefers his/her display in German format. The resulting user display is also shown in FIG. 1 .
- rules engine 42 translates the content of the credit card dispute entry web page in accordance with the locale setting specified in client digital data processors' ( 28 and 30 ) request for the credit card dispute entry page. If the locale setting is not specified as part of the client's request for the web page, the server 12 will automatically retrieve the client digital data processor's locale setting (e.g., set in the browser executing on the client) at the time of the web page request. Another option is to set the locale on the server 12 that overrides the locale setting of the client or the locale specified in the web page request. In any event, the rules engine 42 will process the user interface rules 36 / 41 in accordance with the applicable locale setting, although the mode and timing of translation will vary during rules processing in accordance with the type of data being translated.
- client digital data processors' e.g., set in the browser executing on the client
- transliteration rules The locale- and related context-dependent elements (hereinafter “translatable elements”) referenced by one or more of those rules 36 , 41 that are implicated by the client device 30 request for the “credit card dispute entry” web page, are, preferably, translated prior to runtime by dynamically retrieving data from any of transliteration rules, files and tables (hereinafter “transliteration rules”), as discussed below (see, for example, element 55 of FIG. 2 ).
- Such translatable elements preferably comprise all user-visible static alphanumeric text (e.g., labels, captions, tooltips, alert messages, instructions, documents etc.), enumerated variable text (e.g., a list of alphanumeric values that is pre-defined or obtained through a data table look up), graphic elements and indicators, images and icons aural presentation fields (e.g., music files), video files and the like.
- work data is translated at runtime by the rules engine 42 through the use of software libraries 44 , 45 (e.g., Java or C/C++ ICU) or any other method known in the art.
- rules engine 42 is implemented in Java and uses an XML data structure. Therefore, the functionality of rules that are stored in the rules base 40 as metadata must be translated into Java in order for the digital data processor 12 to execute the functionality defined by such rules.
- the first time that a particular rule is implicated (for a specific context as defined above), its metadata is extracted from the rules base 40 , source code for a unique Java implementation class is generated from the XML, compiled, loaded into a Java cache and then executed. All subsequent references to the same rule (for the same context) will simply reuse the Java implementation class that has already been generated by simply executing the class file previously loaded into Java cache.
- the rules engine 42 generates a single Java implementation class for a rule which references other rules and, therefore, contains generated Java code for such referenced rules. This is illustrated, by way of example, in the flow chart of FIG. 5 . It will be appreciated that although in the illustrated embodiment, the rules engine 42 is implemented in Java and utilizes an XML data structure, other embodiments of the rules engine may be implemented in any other programming language and utilize other data formats.
- the rules engine 42 when the rules engine 42 is processing the one or more implicated rules 36 , 41 (as described above), it extracts the metadata for such rules (e.g., as an XML file) and converts them into source files, e.g., JSP, Servlet etc. These source files are compiled and executed to generate the markup language stream for the requested web page. Rather than translating the entire web page content during execution of the source files, the rules engine 42 processes the transliteration rules (e.g., elements 51 , 55 of FIG.
- the translated values for the translatable elements e.g., 2 , 4 , 6 and 8
- this may be done by incorporating the generated source code for the translation rules into the generated code for the implicated user interface rules. Only the work data is translated during execution of the code, which, in turn, can improve the runtime performance.
- the first step is to configure the locale setting of client digital data processor 28 for the German language.
- the rules engine receives the request for “credit care dispute entry” screen with German as the applicable locale, it retrieves the translated values corresponding to the translatable elements (here, captions 2 and 4 ) from the German transliteration rules 55 ( FIG. 2 ) and include the translated values in the markup generated for web page 73 .
- the work data is entered in input fields 1 and 3 and transmitted to the server 12 to be processed and/or stored in a storage medium (here, 38 ), it is encoded (before storage) using any conventional encoding system (e.g., Unicode) in order to provide a consistent way for handling multilingual text.
- a storage medium here, 38
- the rules engine 42 extracts the work data from storage 38 and uses the applicable locale to determine the appropriate library for the translation. Also, just as the processing for the German web page 73 , rules engine 42 will already have processed the transliteration rules 51 and dynamically retrieved the translated values from the American-English prior to the work data translation for web page 74 .
- the rules engine 42 also manages the hierarchy of transliteration rules used by the rules 41 stored in the rules base 40 . In the case that transliteration rules do not exist for an applicable locale, the rules engine 42 will retrieve translated content from transliteration rules that are closest to the applicable locale based upon the locales that are supported and any additional context as defined above. Accordingly, default transliteration rules may be used if no compatible locale can be found.
- systems and method according to the invention provide greater flexibility in translating interfaces by giving users the ability to define contexts for the translation of user interfaces in addition to the locale setting.
- a user interface with a field caption Customer Identifier has been translated into German, i.e. German transliteration rules have been created such that the translated value in German for that caption is displayed for all users when the applicable locale is set for the German language.
- German transliteration rules have been created such that the translated value in German for that caption is displayed for all users when the applicable locale is set for the German language.
- an individual or group of users decide to add some extra space on that user interface as a personal preference and want to shorten the caption to Customer ID without affecting the existing German translations for all other users.
- the invention provides the ability to specify an additional context for the translation of Customer ID for such individual user and/or group of users.
- the rules engine can assemble the web pages to take into account still other factors, such as user authorization, age, and so forth.
- system 100 includes a reference tracker 53 , which is implemented in software module(s) in communications coupling with the rules base 40 (e.g., via RPC or otherwise).
- the reference tracker 53 makes the globalization of specified user interfaces less labor-intensive and more efficient by providing the capability to automatically identify translatable elements referenced by the rules stored in the rules base 40 .
- reference tracker 53 executes on server 12 separately from the rules engine 42 , in other embodiments, the reference tracker 53 itself may comprise rules that are executed on the rules engine. Consistent with the remarks above, though reference tracker 53 is shown as executing on digital data processor 12 , it will be appreciated that, like applications 34 , it may execute on or over multiple digital data processors.
- FIG. 2 also shows transliteration rules 55 used in the system 100 and the translation facilitation package 52 generated by the reference tracker 53 in the illustrated embodiment of the invention.
- These transliteration rules typically comprise key-value pairing of data where the key (i.e., 6 , 8 ) identifies a translatable element and the value (i.e., 2 , 4 ) is the corresponding translated element.
- Such rules can also include modified images and icons as necessary for regional considerations.
- transliteration rules 55 are stored in the rules base 40 and may further comprise additional metadata that can be used by the rules engine 42 to identify and process the appropriate rule based upon the specified context.
- FIG. 3 is a flow diagram depicting further details of the operation of system 100 in globalizing a rules-based user interface of one or more software applications.
- a user such as, for example, a program developer or field technician initiates a request via a client digital data processor (e.g., 20 - 26 ) specifying one or more user interface rules to be translated from a source language to one or more target locales.
- the request can be initiated by the user using a wizard interface executing on the client digital data processor, by entering commands on a command line interface executing on the client or through any other method known in the art.
- the user can structure the request in various ways e.g. by either specifying one or more user interface rules that may (or may not) be used by multiple applications or by specifying one or more applications that need to be globalized.
- the user e.g., developer
- the user interface(s) further specifies at least one target locale to which the user wants to translate the selected application(s) or user interface(s) (hereinafter “user interface(s)”).
- a translation facilitation package e.g., 52
- the system 100 simply displays in the client interface (e.g., a wizard interface) used to generate the request, a list of translatable elements (e.g., 6 and 8 ) referenced by the specified user interface(s) and the user is prompted to enter the corresponding translations for each specified target language.
- steps 105 and 110 can be combined into a single step when initiating the request via a client digital data processor.
- the user interface(s) to be globalized and the target locale(s) can be specified in the same request or one or more different requests initiated by the user.
- user can specify additional criteria in these requests depending upon the state of the user interfaces being translated at the time of the request. For example, if part of the specified user interface has already been translated for the specified locale, the user can structure the request to include previous translations of elements for the specified target locale in order to ensure consistency in future translations.
- reference tracker 53 identifies the translatable elements referenced by the specified user interface(s).
- the reference tracker 53 records or updates an entry in a database table (hereinafter “reference table”) every time a user interface rule is saved to the rules base (i.e., when created or updated). Each such entry has associated therewith, one or more translatable elements, and an identifier of the user interface rule being saved that references said elements.
- reference table a database table
- the reference tracker 53 can run specialized queries to extract the specified user interface rule(s) and inspecting the associated metadata (e.g., through parsing, introspection or otherwise) to identify the translatable elements referenced by such rule(s).
- reference tracker 53 returns a list (e.g., as markup language stream) of all the translatable elements in response to the user's request received from a client digital data processor (e.g., by way of HTTP requests generated through a wizard interface).
- the list is displayed to the user (e.g., by executing the markup in the client's web browser) and he/she is prompted to enter the corresponding translations for each specified target locale.
- the user then enters the translated values and transmits them to the server 12 , by way of an HTTP request (as conventional in the art), and the rules engine 42 processes the user-entered data to generate transliteration rules 55 that can be referenced to convert translatable elements into the corresponding translated elements and displayed in the specified user interface(s).
- the data for the transliteration rules is stored in one of various conventional storage mediums and data formats e.g., as rules in the rule base 40 , CSV or other text-based resource files stored on disk (e.g., 16 ), data stored in relational database tables or in any other manner conventionally known in the art.
- This first approach of allowing the user to directly create the transliteration rules in the system 100 is advantageous because the user performing the translations has access to the actual user interface(s) being translated during the translation cycle. Having this ability to see actual usage of the translatable elements removes ambiguity in translating elements to ensure consistent vocabulary and fit. Furthermore, the user is able to take advantage of additional testing tools (e.g., help topics, previewing tools to verify translation results etc.) that may be provided by the applications whose user interface(s) are being translated.
- additional testing tools e.g., help topics, previewing tools to verify translation results etc.
- Steps 220 - 315 illustrate the alternative approach toward globalizing one or more user interfaces where the translations are performed outside the system 100 , generally by third-party translators instead of by the user who initiates the translation request. This process is facilitated in steps 220 , 225 by the reference tracker 53 generating at least one translation facilitation package (e.g. 52 ) for each target locale specified for interfaces being globalized. Details of the translation facilitation package generation in step 220 are provided below.
- the translation facilitation package 52 comprising translatable elements 6 , 8 referenced by the specified user interface(s) is generated in an easy to manage format (e.g., XML, DOC, RTF, HTML etc.) and exported from the server 12 , it is sent to translators in step 250 to perform translations.
- the translators perform the translations either manually, using any conventional computer-assisted translation tool (e.g., CATCount) or in any other manner known in the art.
- the translated values, images and icons (hereinafter “translated values”) are stored in the same translation facilitation package that was previously exported (e.g., 52 ) from the system 100 in step 225 .
- the translator may store the translated values in a separate file of any format known in the art (e.g., XML, DOC, RTF, HTML etc.).
- the file containing the translated values is uploaded to the server 12 from a client digital data processor (e.g., 20 - 30 ) in step 305 .
- Steps 310 , 315 illustrate an embodiment where the rules engine parses the contents of the uploaded file using any conventional method known in the art depending upon the format of the uploaded file (e.g., JAXP for XML files, RTF Parser for RTF files etc.). The parsed data is then used to create transliteration rules (e.g., 55 ) that are stored as described above in step 315 .
- steps 310 and 315 may be skipped all together by e.g., a user manually creating and storing transliteration rules on the system 100 based upon the translated values received from the translator in step 260 .
- steps 130 - 315 might be repeated several times if any changes occur to the user interfaces being globalized during their development process.
- FIG. 4 is a flow chart depicting further details of the translation facilitation package generation step 220 from FIG. 3 in one embodiment of the invention.
- third-party translators often employ sophisticated computer-assisted translation tools providing added capabilities (e.g., automated look up of terms in multiple dictionaries, spell-check capabilities in multiple languages etc.) that may not be available to users who are performing the translations in the system 100 .
- third-party translators doing translations without access to the actual interfaces is that they have no context of how the translatable elements are actually used in the interface. This, in turn, generally results in inaccurate translations, higher translation costs and longer translation cycles.
- steps 520 - 610 illustrate how it also breaks away from convention by generating a translation facilitation package which can incorporate text-based descriptions, prior translations and examples of the actual usage and references of the translatable elements.
- steps 520 - 550 illustrate an embodiment where the reference tracker 53 makes determinations with regard to each translatable element identified in step 115 ( FIG. 2 ) for the specified user interface(s).
- the reference tracker 53 queries the storage medium for transliteration rules to determine whether the translatable element in question has already been translated according to the specified locale. In the illustrated embodiment, this is done by querying the rules base 40 where the transliteration rules are stored along with the user interface rules. In other embodiments where the transliteration rules are stored as text files, the reference tracker 53 may employ a parser to determine the translated value. If the element in question has already been translated, the reference tracker will only proceed with the inclusion of the element into the translation facilitation package if the user has specified that option when initiating the translation request in step 105 and 110 ( FIG. 2 ). Otherwise, as reflected in steps 540 and 570 the element will not be included in the translation facilitation package.
- the reference tracker 53 only includes added contextual information for an element if it is not a large body of text. In the illustrated embodiment, this determination is made in step 550 by the reference tracker 53 based upon the type of user interface being translated (e.g., a correspondence document) and/or the type of element being translated (e.g., tooltip, label, message, instructions, caption, paragraph, image, icon etc.).
- the type of user interface being translated e.g., a correspondence document
- the type of element being translated e.g., tooltip, label, message, instructions, caption, paragraph, image, icon etc.
- the reference tracker determines in step 550 that the element does not require additional contextual information, it will simply add the element to the translation facilitation package in step 600 .
- the reference tracker 53 will generate an indicator of exemplary reference in step 560 for the element and include it in the translation facilitation package.
- this indicator is a hyperlink (e.g., element 72 of FIG. 2 ) to the actual markup stream (e.g., in HTML or other conventional format) of the user interface that references the translatable element along with a textual description (e.g., element 71 of FIG. 2 ) of the type of element being translated.
- the translation facilitation package is generated in XML format along with the markup files generated in step 560 for the actual interfaces.
- This data may be converted into an easy to manage document using conventional methods in step 610 .
- an XML-to-Excel conversion tool can be used to write each translatable element to a separate data field in an Excel spreadsheet or a CSV file, and adding for each said data field, one or more other data fields for storing the translated version of the element and/or the indicator of exemplary usage of the element.
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Entrepreneurship & Innovation (AREA)
- Strategic Management (AREA)
- Human Resources & Organizations (AREA)
- Economics (AREA)
- Data Mining & Analysis (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Marketing (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Stored Programmes (AREA)
Abstract
The invention provides, in some aspects, a system for implementing a multilingual rules-based user interface including a reference tracker (executing on a digital data processor) that identifies translatable elements—by way of example, static text, enumerated variable text, images and icons—referenced by one or more user interface rules in a rules base and that generates a translation package containing those translatable elements for at least one target locale. A rules engine (which may execute on the same or another digital data processor) retrieves, from one or more transliteration rules based on the translation facilitation package, one or more translated elements that are associated with a locale and with one or more translatable elements referenced by the user interface rules. The rules engine processes those user interface rules using those one or more translated elements and, as a result, generates a user interface with the one or more translated elements.
Description
- This application claims the benefit of priority of U.S. Patent Application Ser. No. 61/063,269, filed Jan. 31, 2008, entitled “Digital Data Processing Methods and Apparatus for Business Process Management,” the teachings of which are incorporated herein by reference. This application is also a continuation-in-part U.S. patent application Ser. No. 12/035,682, filed Feb. 22, 2008, entitled “User Interface Methods and Apparatus for Rules Processing,” which is a continuation-in-part of U.S. patent application Ser. No. 11/396,415, filed Mar. 30, 2006, entitled “User Interface Methods and Apparatus for Rules Processing,” both of which are incorporated herein by reference.
- The invention relates to digital data processing and, more particularly, to facilitating locale globalization and/or customization for digital data processing user interfaces. The invention has application, by way of non-limiting example, to enabling multilingual enterprise software systems that can customize user interactions to each user's language and cultural expectations.
- As a result of the internet, businesses are no longer restrained by geographical barriers. Businesses require the flexibility to work across languages, countries and cultures with world-ready business solutions. In order to fully take advantage of worldwide business opportunities, Global enterprises need to communicate with their customers over the Web in accordance with the customer's cultural expectations. At the same time, enterprises themselves may have internal business processes that need to operate in the language of users in different locales, store global data in a common format and have the ability to have local variations of processes to take account of cultural differences.
- Consider the example of a bank that is located in Belgium and has customers all over Europe. The three major languages spoke in Belgium are French, Flemish and German. The bank's process for handling customer account inquiries may start with a French-speaking customer service representative who wants the data presented to him on his computer screen in French. The process may then pass the request on to the company lawyer who is a Flemish speaker who needs to see the data in his own language. On the other hand, the customer may be a British citizen who wants all his correspondence from the bank in English. Any enterprise computer system used by the bank to automate its account inquiry process will need to provide multi-language capabilities to both the application user and the customer.
- In information technology, Internationalization is the process of designing a software application such that a single instance of its executable code can provide multilingual and multicultural capabilities without the need for additional coding changes to the application code. Localization is the adaptation of the application for different locales (i.e. geographical regions, languages and/or variants) by translating text and adding various elements that take into account local customs and laws. In other words, an application that supports multiple locales needs to be internationalized once and may need to be localized multiple times (e.g., once for each locale). Companies such as IBM and Microsoft use the term globalization to denote the combination of internationalization and localization.
- Global organizations deploying changes across geographies face slow and costly translation cycles to translate and localize their enterprise software applications. The general practice is that developers fails to design source code for internationalization. This can make later translations for localization very expensive to implement. For example, hard coded text in the source code for error messages or other display elements necessitates translating the source code for every single locale and results in each locale having its own version.
- The more efficient prior art approach to internationalization is to isolate all instances of locale-sensitive data (e.g. translatable text) of an application into resource files and to design locale-independent code to load the appropriate resource file at runtime. Thus, in order to achieve an application that supports multiple locales a designer creates resource files for each locale and writes the source code to load the appropriate file for each interface. Still, however, several problems remain with this approach that limit the ability to globalize applications.
- For example, the foregoing approach does not provide global enterprises with a way to avoid high costs of translating existing applications that were not internationalized when first written. Furthermore, even for applications that have been internationalized, there is no efficient way of providing context of actual usage to the translators in order to remove ambiguity in translating local-sensitive data and to ensure consistent vocabulary and fit. Moreover, the overall performance of most prior art globalized applications remains relatively slow since, typically, locale-sensitive data is retrieved (e.g., from resource local or networked resource files) at run-time. Finally, conventional methods and apparatus do not provide the ability to define additional factors (other than locale) when translating user interfaces.
- In view of the foregoing, an object of the invention is to provide improved methods and apparatus for digital data processing.
- A related object is to provide such methods and apparatus as facilitate globalization and/or customization of user interfaces.
- A further related object of the invention is to provide such methods and apparatus as facilitate multilingual enterprise software systems that can customize user interactions to each user's language, cultural expectations and personal preferences.
- Yet a still further object of the invention is to provide such methods and apparatus as provide more flexibility to build efficient globalized applications.
- A still further object of the invention is to provide such methods and apparatus as can be used with legacy, as well as new, applications.
- Yet a still further object of the invention is to provide such methods and apparatus as can be implemented and operated at reduced expense on existing and new platforms.
- The foregoing are among the objects attained by the invention which provides, in some aspects, a system for implementing a multilingual rules-based user interface including a reference tracker (executing on a digital data processor) that identifies translatable elements—by way of example, static text, enumerated variable text, images and icons—referenced by one or more user interface rules in a rules base and that generates a translation package containing those translatable elements for at least one target locale. A rules engine (which may execute on the same or another digital data processor) retrieves, from one or more transliteration rules based on the translation facilitation package, one or more translated elements that are associated with a locale and with one or more translatable elements referenced by the user interface rules. The rules engine processes those user interface rules using those one or more translated elements and, as a result, generates a user interface with the one or more translated elements.
- Further aspects of the invention provide systems as described above in which the reference tracker identifies translatable elements by querying a database table made up of entries identifying those elements and the user interface rules that reference them. Alternatively or in addition, the reference tracker may, according to related aspects of the invention, identify translatable elements by inspecting the user interface rules.
- Still further aspects of the invention provide systems as described above in which the target locale can be a language (e.g., German, French, etc.), a country and language (e.g., Switzerland/French), and/or a country and language and a variant (e.g., Switzerland/French/pre-Euro).
- Yet further aspects of the invention provide systems as described above in which the rules engine parses the translation facilitation package to extract the translated elements and, thereby, to generate the transliteration rules.
- Still further aspects of the invention provide systems as described above wherein the rules engine retrieves translated elements from the transliteration rules in accord with a context (other than or in addition to locale) in which the user interface will be transmitted to and/or executed by a client device, and/or of a user on behalf of which the user interface will be executed. That context can include, by way of example, security permissions, age, disability settings, behavioral segment, market segment, and locale of the user on behalf of which the page is executed; a processor speed, display size, and keyboard capabilities, of the client device; and, a speed of connection between the client device executing the user interface and the first digital data processor of a second set of one or more digital data processors.
- Other aspects of the invention include systems as described above in which the rules engine processes the user interface rules by converting metadata associated with them into executable code, e.g., Java code. In related aspects of the invention, the rules engine incorporates the translated elements into the user interface rules prior to executing that code, e.g., by transforming both metadata for the user interface rules and for the transliteration rules into a single executable Java (or other language) file.
- Still other aspects of the invention provides systems as described above in which the reference tracker generates translation facilitation packages that further includes (i) previously translated elements and (ii) indicators of exemplary references (e.g., hypertext links to markup text for the user interface or text descriptions of the exemplary reference) by the user interface rules to any of (i) one or more translatable elements, (ii) one or more previously translated elements.
- Yet still other aspects of the invention provide systems as described above in which the reference tracker identifies previously translated elements by inspecting any of transliteration rules, files and tables.
- In other aspects, the invention provides a system for implementing a multilingual rules-based user interface that includes functionality, e.g., a ‘wizard’, executing on a digital data processor, that identifies one or more translatable elements referenced by one or more user interface rules in a rules base. That wizard (or other functionality) requests, from a user, one or more translated elements associated with those translatable elements and with at least one target locale. From this, the wizard generates one or more transliteration rules for such target locales.
- Such a system further includes a rules engine, executing on the same or another digital data processor, that (i) retrieves from the transliteration rules generated by the wizard one or more translated elements associated with a specified locale and with one or more translatable elements in one or more user interface rules, (ii) processes those interface rules using those one or more translated elements, to generate a user interface with the one or more translated elements.
- Such a system can include one or more elements of the systems described above.
- In other aspects, the invention provides methods of implementing a multilingual rules-based user interface that parallel operation of the systems described above.
- These and other aspects of the invention are evident in the drawings and in the description that follows.
- A more complete understanding of the invention may be attained by reference to the drawings, in which:
-
FIG. 1 depicts a digital data processing system of the type in which the invention is practiced; -
FIG. 2 depicts further details of the translation facilitation packages and transliteration rules used in operation of the system ofFIG. 1 ; -
FIG. 3 is a flowchart depicting a method of operation of the system ofFIG. 1 ; -
FIG. 4 is a flowchart depicting further details of the translation facilitation package generation step of the flowchart ofFIG. 3 ; and -
FIG. 5 is a flowchart depicting the conversion of metadata into executable Java code in one embodiment of a system according toclaim 1. - Architecture
-
FIG. 1 depicts asystem 100 and environment for globalizing the user interface ofsoftware applications 34, particularly, for example, a multi-user enterprise application, according to one practice of the invention. In the illustrated embodiment,system 100 executes on exemplary serverdigital data processor 12, which may be a personal computer, workstation, mainframe, or other digital data processing apparatus of the type known in the art capable of executing applications, programs and/or processes. - Illustrated server
digital data processor 12 executes in a network environment of the type typical in a business enterprise, e.g., one including further digital data processors 20-30—which themselves may comprise personal computers, workstations, mainframes, or other digital data processing apparatus. In other embodiments, serverdigital data processor 12 may operate alone or in other environments, networked or otherwise. In any event, illustrated digital data processors 20-30 are coupled toserver 12 via anetwork 32, such as the Internet, a local-area network (LAN), wide-area network (WAN), or otherwise, that may be public, private, IP-based, etc. - In a typical embodiment, illustrated here, client data processors 20-26 are used in development mode, e.g., by software engineers, test engineers, systems administrators, etc. (collectively, “developers”) to develop, test and maintain/or
software applications 34. Likewise,client data processors application 34. - In the discussion that follows,
server 12 assumes the roles of development devices 20-26, i.e., it is treated as if used by developers to develop, test and maintain the applications, as well as the role of executingapplication 34 at the behest ofclient devices applications 34 execute on a single digital data processor; however, in practice, theapplications 34 may execute on or over multiple digital data processors (e.g., in client-server mode, peer-to-peer mode, etc.). - Illustrated
digital data processor 12 includes rules base 40 constructed and accessed in the conventional manner known in the art of rules bases. The digitally encodedrules 41 that it contains are likewise formatted and stored in the conventional manner known in the art. An example of the structure, operation and use of the rules base 40 andrules 41 is provided in commonly assigned U.S. Pat. No. 5,826,250, entitled “Rules Bases and Methods of Access Thereof” and U.S. patent application Ser. No. 11/368,360, filed Mar. 3, 2006, entitled “Rules Base Systems and Methods with Circumstance Translation,” the teachings of both of which are incorporated herein by reference. - Illustrated
digital data processor 12 also includesrules engine 42 of the type conventionally known in the art for use in processing rules, e.g., retrieved from arules base 40, in order to respond to (or otherwise handle) events signaled to and/or detected by theengine 42. Moreover, the illustratedsystem 100 is shown with a singledigital data processor 12 that co-houses both a rules engine and rules base; however, in other embodiments, multiple servers may be provided which may (or may not) include co-housed rules engines and rules bases. -
Illustrated applications 34, also executing on therules engine 42, comprise a set ofrules 36 defining the user interface(s) and other aspects of one or more software applications written, tested and revised by developers and executed by users. By way of non-limiting example,such software applications 34 can be multi-user enterprise software systems (e.g., business process management applications), and the like. Moreover, theapplications 34 can comprise one or more components, modules, systems, and so forth (collectively, “components”), as is common in the art. Though, in the illustrated embodiment,applications 34 are defined byrules 36 that are executed onengine 42, in other embodiments theapplications 34 may be defined and/or executed otherwise. - It will be appreciated that in the case of rules-based applications, a single rule (e.g. a user interface rule) can be unique to a specific application or it can be a generalized rule that is shared by multiple applications. For example,
applications 34 may include a student loan processing application as well as a credit card dispute application where the rules are modeled or built in hierarchical classes following an object-oriented paradigm (much like Java). Although the rules defining those applications will generally differ, they may utilize a common rule or set of rules to define various screens (e.g., showing biographical information, such as Name, Contact Information, Income, Gender etc.) and/or processing sequences (e.g., payment or pay-off calculations) that can be inherited and used by multiple applications Generally speaking, during execution ofapplications 34,rules engine 42 responds to signaling e.g., received from the client devices (e.g., by way of HTTP requests), or otherwise, process rules 36 defining theapplications 34. This includes rules (“user interface rules”) for generating user interfaces (or component thereof) for transmittal to the client devices 20-30 for display (e.g., as static web pages) and/or execution (e.g., as Java scripts, Active X objects, or otherwise) by their respective browsers. In these regards, it will be appreciated that although, in the illustrated embodiment, user interface rules (and other rules 36) are executed onserver 12 for transmittal to the client devices, in other embodiments, those rules may be executed, instead or in addition, on the client devices directly. An example of a system and method that, among other things, can be used to process rules to generate a user interface is disclosed in the commonly assigned U.S. patent application Ser. No. 11/396,415, filed Mar. 30, 2006, entitled “User Interface Methods and Apparatus for Rules Processing,” the teachings of which are incorporated herein by reference. - As used here, a “user interface” of the type generated by execution of the aforementioned user interface rules may be of any type known in the art including, but not limited to, a graphical user interface (GUI), text user interface (TUI) and command line interface (CLI)—as adapted in according with the teachings hereof. Such TUIs and CLIs may primarily include alphanumeric text-based content, while such GUIs may also include graphic elements, visual indicators, aural presentation fields (e.g., music files), video files and the like.
- In the example of
FIG. 1 , the user interfaces generated and transmitted byserver 12 to thedigital data processors devices devices 28, 30). Moreover, those screens may be individual, stand-alone screens or they may form part of a sequence of UT screens transmitted by theserver 12 to therespective devices - The web browsers utilized by
digital data processors - Systems and methods according to the invention facilitate globalization and/or customization of the user interfaces generated by the user interface rules for the client devices.
- This is depicted, by way of non-limiting example, in
FIG. 1 , in which clientdigital data processors server 12 upon processing ofcommon rules 36 in response to requests by browsers executing on therespective clients - Thus, in the example,
UT screen 73 is displayed bydigital data processor 28 in response to HTML or other codes transmitted to it byserver 12 in response to a request for a web page for credit card dispute resolution (the “credit card dispute entry” web page), while UT screen 74 is displayed bydigital data processor 30 in response to codes transmitted to it byserver 12 in response to a request for that same page, or one related thereto (e.g., a web page generated by theserver 12 upon processing of the same user interface rules as those which resulted in the “credit card dispute entry” web page). - In the example, UT screens 73, 74 both include corresponding textual display fields 2 (screen 73) & 6 (screen 74) and 4 & 8 for presenting information to respective users of
digital data processors respective screens 73, 74) are generated from the same user interface rules processing onserver 12 and they convey the same information; however, they do so in different languages: German inscreen 73; American-English in screen 74. Systems and methods according to the invention facilitate this. - In the example, UT screens 73, 74 also include
corresponding input fields 1 & 5 and 3 & 9, for accepting/editing date and price data from/by those users. Those respective corresponding fields, too, are generated from the same user interface rules executing onserver 12 and they convey the same types of information (e.g., date information in the case ofinput fields 1 & 5; pricing information in the case of fields 3 & 9); however, they do so in different currencies and formats: European formats inscreen 73; American-English in screen 74. Systems and methods according to the invention facilitate this, too. - To illustrate the latter point, the data shown in
input fields 1 & 5 and 3 & 9 in the drawing is assumed to come from the same underlying data set, e.g., the same customer record. In practice, this “work data” (e.g., working data entered by, or generated for, users ofdevices respective UIs 73, 74) is likely to be from different customer records. In such a case, systems and methods according to the invention facilitate formatting that data in the manner expected by those users ofdevices - Operation
- Operation of the illustrated
system 100 in facilitating globalization and/or customization of user interfaces—and, particularly, globalizing/customizing those interfaces from the same user interface rules processed byserver 12 can be appreciated by continued reference toFIG. 1 and the example presented there, as further described in the text below. It will be appreciated, of course, that the methodology described here may be applied to a host ofapplications 34, including and beyond generation of UIs for credit card dispute entry. For simplicity, that methodology is described in respect to requests initiated byclient device 30; however, the same methodology is executed by other client devices, e.g., 28, with globalization results of the type depicted inFIG. 1 . - Thus, for example, in response to a request for “credit card dispute entry” web page 74 by the web browser of client
digital data processor 30, therules engine 42 retrieves user interface (and other) rules 36, 41 implicated by that request from the rules base 40 (if it has not already done so), as determined by the request itself, the context in which the requested web page will be communicated to and executed on theclient device 30, and the state of currently executing rules for that user, all by way of non-limiting example. The rules engine then processes those rules, e.g., in view of that context, to select which input fields (e.g., fields 5 and 9), and displays fields (e.g., fields 6 and 8), as well as which other elements making up the screen 74 (such as submit buttons, icons, graphical elements, etc.), to include in the screen—hereinafter, referred to as a “page” or “web page”—and how to arrange, format and otherwise configure those elements. - In this latter regard, the illustrated
system 100 takes into account, by way of example, language, country and/or other locale settings and preferences of the user ofdevice 30 to which the web page is to be displayed. In the example, ofFIG. 1 , the locale settings fordevice 30 reflect that the user prefers his/her display in American-English format. - In the illustrated embodiment, this contextual selection and configuration is based on information which is embedded in the rules themselves and/or which forms part of the systematic processing of markup language streams discussed below. It does not require that
individual rules client device 30. Examples of this include, by way of non-limiting example, Ajax and other scripts or other code sequences of the type described in aforementioned incorporated-by-reference U.S. patent application Ser. No. 11/396,415, for the pre-processing of user-entered data, selections and/or gestures, discussed below, thus, altering the user experience by changing the code running on the client device or by making that device dynamically interact. - As noted above, “context” refers to the context in which the requested web page will be communicated to and executed on the client device. That context can include, by way of non-limiting example, user “properties” or business attributes (e.g., security permissions, disability settings, market segment, behavioral segment, age, locale, and so forth),
client device 18 properties (e.g., processor speed, display size, keyboard capabilities, locale, and so forth), and communication channel properties (e.g., the speed and type of connection betweendevices 12 and 30). As further evident in the discussion above, that context further includes the language, country and/or other locale settings and preferences of the user of device to which the web page is to be displayed. - Based on these selections and configuration, the
engine 42 constructs a markup language stream, e.g., in HTML or other conventional format or protocol. That stream (or, more accurately, markup language document) is transmitted by theserver 12, per convention, to the requesting clientdigital data processor 30 for response by the user—in this case, review and/or update of input fields 5, 9. In the illustrated embodiment, theengine 42 constructs and forwards the stream to the browser ofdevice 30 substantially concurrently with its request for the corresponding web page, i.e., during the same online session on which that request was made and/or within the conventional time periods expected for response to a web page, though these are not requirements of the invention. The browser ofdevice 30 likewise substantially concurrently executes that stream for display to the user, e.g., within that same online session and/or within the conventional time periods expected for execution of a web page though, again, this is not a requirement of the invention. The resulting user display is shown inFIG. 1 , as described above. -
Rules engine 42 responds similarly to requests for that same credit card dispute entry web page from the web browser of clientdigital data processor 28, taking context and, particularly, locale settings into account, as discussed above. In the example, ofFIG. 1 , the locale settings fordevice 28 reflect that the user prefers his/her display in German format. The resulting user display is also shown inFIG. 1 . - With regard to display and input fields in
web pages 73, 74 ofFIG. 1 , it is evident thatrules engine 42 translates the content of the credit card dispute entry web page in accordance with the locale setting specified in client digital data processors' (28 and 30) request for the credit card dispute entry page. If the locale setting is not specified as part of the client's request for the web page, theserver 12 will automatically retrieve the client digital data processor's locale setting (e.g., set in the browser executing on the client) at the time of the web page request. Another option is to set the locale on theserver 12 that overrides the locale setting of the client or the locale specified in the web page request. In any event, therules engine 42 will process the user interface rules 36/41 in accordance with the applicable locale setting, although the mode and timing of translation will vary during rules processing in accordance with the type of data being translated. - The locale- and related context-dependent elements (hereinafter “translatable elements”) referenced by one or more of those
rules client device 30 request for the “credit card dispute entry” web page, are, preferably, translated prior to runtime by dynamically retrieving data from any of transliteration rules, files and tables (hereinafter “transliteration rules”), as discussed below (see, for example,element 55 ofFIG. 2 ). Such translatable elements preferably comprise all user-visible static alphanumeric text (e.g., labels, captions, tooltips, alert messages, instructions, documents etc.), enumerated variable text (e.g., a list of alphanumeric values that is pre-defined or obtained through a data table look up), graphic elements and indicators, images and icons aural presentation fields (e.g., music files), video files and the like. On the other hand, work data is translated at runtime by therules engine 42 through the use of software libraries 44, 45 (e.g., Java or C/C++ ICU) or any other method known in the art. - In the illustrated embodiment, rules
engine 42 is implemented in Java and uses an XML data structure. Therefore, the functionality of rules that are stored in the rules base 40 as metadata must be translated into Java in order for thedigital data processor 12 to execute the functionality defined by such rules. The first time that a particular rule is implicated (for a specific context as defined above), its metadata is extracted from therules base 40, source code for a unique Java implementation class is generated from the XML, compiled, loaded into a Java cache and then executed. All subsequent references to the same rule (for the same context) will simply reuse the Java implementation class that has already been generated by simply executing the class file previously loaded into Java cache. Furthermore, in order to improve performance, therules engine 42 generates a single Java implementation class for a rule which references other rules and, therefore, contains generated Java code for such referenced rules. This is illustrated, by way of example, in the flow chart ofFIG. 5 . It will be appreciated that although in the illustrated embodiment, therules engine 42 is implemented in Java and utilizes an XML data structure, other embodiments of the rules engine may be implemented in any other programming language and utilize other data formats. - Thus, referring back to
FIG. 1 and to the discussion above, when therules engine 42 is processing the one or more implicatedrules 36, 41 (as described above), it extracts the metadata for such rules (e.g., as an XML file) and converts them into source files, e.g., JSP, Servlet etc. These source files are compiled and executed to generate the markup language stream for the requested web page. Rather than translating the entire web page content during execution of the source files, therules engine 42 processes the transliteration rules (e.g.,elements FIG. 2 ) and dynamically retrieves the translated values for the translatable elements (e.g., 2, 4, 6 and 8) during creation of the source files associated with the implicatedrules - By way of example, if a German-speaking customer service representative
operating client device 28 is entering a credit card dispute on behalf of a customer, he would want to view the web page and enter work data in his preferred language. The first step is to configure the locale setting of clientdigital data processor 28 for the German language. Once the rules engine receives the request for “credit care dispute entry” screen with German as the applicable locale, it retrieves the translated values corresponding to the translatable elements (here,captions 2 and 4) from the German transliteration rules 55 (FIG. 2 ) and include the translated values in the markup generated forweb page 73. Once the work data is entered ininput fields 1 and 3 and transmitted to theserver 12 to be processed and/or stored in a storage medium (here, 38), it is encoded (before storage) using any conventional encoding system (e.g., Unicode) in order to provide a consistent way for handling multilingual text. Subsequent to work data entry, when an English-speaking customer service manager in the United States using clientdigital data processor 30 wants to review the dispute details on the same screen, therules engine 42 extracts the work data fromstorage 38 and uses the applicable locale to determine the appropriate library for the translation. Also, just as the processing for theGerman web page 73,rules engine 42 will already have processed the transliteration rules 51 and dynamically retrieved the translated values from the American-English prior to the work data translation for web page 74. - The
rules engine 42 also manages the hierarchy of transliteration rules used by therules 41 stored in therules base 40. In the case that transliteration rules do not exist for an applicable locale, therules engine 42 will retrieve translated content from transliteration rules that are closest to the applicable locale based upon the locales that are supported and any additional context as defined above. Accordingly, default transliteration rules may be used if no compatible locale can be found. - Thus, it will be appreciated that systems and method according to the invention provide greater flexibility in translating interfaces by giving users the ability to define contexts for the translation of user interfaces in addition to the locale setting. By way of further example, let us assume that a user interface with a field caption Customer Identifier has been translated into German, i.e. German transliteration rules have been created such that the translated value in German for that caption is displayed for all users when the applicable locale is set for the German language. Subsequently, an individual or group of users decide to add some extra space on that user interface as a personal preference and want to shorten the caption to Customer ID without affecting the existing German translations for all other users. As mentioned above, the invention provides the ability to specify an additional context for the translation of Customer ID for such individual user and/or group of users. In other embodiments, the rules engine can assemble the web pages to take into account still other factors, such as user authorization, age, and so forth.
- With reference to
FIG. 2 ,system 100 includes areference tracker 53, which is implemented in software module(s) in communications coupling with the rules base 40 (e.g., via RPC or otherwise). Thereference tracker 53 makes the globalization of specified user interfaces less labor-intensive and more efficient by providing the capability to automatically identify translatable elements referenced by the rules stored in therules base 40. Though, in the illustrated embodiment,reference tracker 53 executes onserver 12 separately from therules engine 42, in other embodiments, thereference tracker 53 itself may comprise rules that are executed on the rules engine. Consistent with the remarks above, thoughreference tracker 53 is shown as executing ondigital data processor 12, it will be appreciated that, likeapplications 34, it may execute on or over multiple digital data processors. -
FIG. 2 also showstransliteration rules 55 used in thesystem 100 and the translation facilitation package 52 generated by thereference tracker 53 in the illustrated embodiment of the invention. These transliteration rules typically comprise key-value pairing of data where the key (i.e., 6, 8) identifies a translatable element and the value (i.e., 2, 4) is the corresponding translated element. Such rules can also include modified images and icons as necessary for regional considerations. In the illustrated embodiment, transliteration rules 55 are stored in the rules base 40 and may further comprise additional metadata that can be used by therules engine 42 to identify and process the appropriate rule based upon the specified context. -
FIG. 3 is a flow diagram depicting further details of the operation ofsystem 100 in globalizing a rules-based user interface of one or more software applications. Instep 105, a user (such as, for example, a program developer or field technician) initiates a request via a client digital data processor (e.g., 20-26) specifying one or more user interface rules to be translated from a source language to one or more target locales. The request can be initiated by the user using a wizard interface executing on the client digital data processor, by entering commands on a command line interface executing on the client or through any other method known in the art. Furthermore, the user can structure the request in various ways e.g. by either specifying one or more user interface rules that may (or may not) be used by multiple applications or by specifying one or more applications that need to be globalized. - In
step 110, the user (e.g., developer) further specifies at least one target locale to which the user wants to translate the selected application(s) or user interface(s) (hereinafter “user interface(s)”). In the illustrated embodiment, a translation facilitation package (e.g., 52) is created for each of the specified target locales and the corresponding specified user interface(s). In other embodiments, thesystem 100 simply displays in the client interface (e.g., a wizard interface) used to generate the request, a list of translatable elements (e.g., 6 and 8) referenced by the specified user interface(s) and the user is prompted to enter the corresponding translations for each specified target language. It will be appreciated thatsteps - In
step 115,reference tracker 53 identifies the translatable elements referenced by the specified user interface(s). In the illustrated embodiment, thereference tracker 53 records or updates an entry in a database table (hereinafter “reference table”) every time a user interface rule is saved to the rules base (i.e., when created or updated). Each such entry has associated therewith, one or more translatable elements, and an identifier of the user interface rule being saved that references said elements. Thus, identification of the translatable elements for the specified user interface(s) in the illustrated embodiment is accomplished by thereference tracker 53 executing a query (e.g., SQL) against the reference table that contains translatable elements and corresponding rule identifiers. In other embodiments that do not utilize such a table, thereference tracker 53 can run specialized queries to extract the specified user interface rule(s) and inspecting the associated metadata (e.g., through parsing, introspection or otherwise) to identify the translatable elements referenced by such rule(s). - As reflected in steps 130-315, the user (e.g., developer) initiating the request can globalize specified user interface(s) in one of two ways. First, as illustrated in
steps reference tracker 53 returns a list (e.g., as markup language stream) of all the translatable elements in response to the user's request received from a client digital data processor (e.g., by way of HTTP requests generated through a wizard interface). The list is displayed to the user (e.g., by executing the markup in the client's web browser) and he/she is prompted to enter the corresponding translations for each specified target locale. The user then enters the translated values and transmits them to theserver 12, by way of an HTTP request (as conventional in the art), and therules engine 42 processes the user-entered data to generatetransliteration rules 55 that can be referenced to convert translatable elements into the corresponding translated elements and displayed in the specified user interface(s). Instep 315, the data for the transliteration rules is stored in one of various conventional storage mediums and data formats e.g., as rules in therule base 40, CSV or other text-based resource files stored on disk (e.g., 16), data stored in relational database tables or in any other manner conventionally known in the art. - This first approach of allowing the user to directly create the transliteration rules in the system 100 (e.g., through a wizard user interface) is advantageous because the user performing the translations has access to the actual user interface(s) being translated during the translation cycle. Having this ability to see actual usage of the translatable elements removes ambiguity in translating elements to ensure consistent vocabulary and fit. Furthermore, the user is able to take advantage of additional testing tools (e.g., help topics, previewing tools to verify translation results etc.) that may be provided by the applications whose user interface(s) are being translated.
- Steps 220-315 illustrate the alternative approach toward globalizing one or more user interfaces where the translations are performed outside the
system 100, generally by third-party translators instead of by the user who initiates the translation request. This process is facilitated insteps reference tracker 53 generating at least one translation facilitation package (e.g. 52) for each target locale specified for interfaces being globalized. Details of the translation facilitation package generation instep 220 are provided below. Once the translation facilitation package 52 comprisingtranslatable elements 6, 8 referenced by the specified user interface(s) is generated in an easy to manage format (e.g., XML, DOC, RTF, HTML etc.) and exported from theserver 12, it is sent to translators instep 250 to perform translations. Instep 260, the translators perform the translations either manually, using any conventional computer-assisted translation tool (e.g., CATCount) or in any other manner known in the art. In the illustrated embodiment, the translated values, images and icons (hereinafter “translated values”) are stored in the same translation facilitation package that was previously exported (e.g., 52) from thesystem 100 instep 225. In other embodiments, the translator may store the translated values in a separate file of any format known in the art (e.g., XML, DOC, RTF, HTML etc.). In any event, the file containing the translated values is uploaded to theserver 12 from a client digital data processor (e.g., 20-30) instep 305.Steps step 315. It will be appreciated that in other embodiments,steps system 100 based upon the translated values received from the translator instep 260. Furthermore, any of steps 130-315 might be repeated several times if any changes occur to the user interfaces being globalized during their development process. -
FIG. 4 is a flow chart depicting further details of the translation facilitationpackage generation step 220 fromFIG. 3 in one embodiment of the invention. As previously mentioned, one of the advantages of generating a translation facilitation package to be sent to professional translators (as opposed to the first approach of a user performing the translations in the system 100) is that such third-party translators often employ sophisticated computer-assisted translation tools providing added capabilities (e.g., automated look up of terms in multiple dictionaries, spell-check capabilities in multiple languages etc.) that may not be available to users who are performing the translations in thesystem 100. However, one major drawback of third-party translators doing translations without access to the actual interfaces is that they have no context of how the translatable elements are actually used in the interface. This, in turn, generally results in inaccurate translations, higher translation costs and longer translation cycles. - The problem stems from the conventional form of translation packages (e.g., Java resource bundles) that are generated using conventional methods and apparatus and that provide nothing more than a listing of the text of the translatable elements. While the illustrated embodiment can permit the generation of this very form of translation package, steps 520-610 illustrate how it also breaks away from convention by generating a translation facilitation package which can incorporate text-based descriptions, prior translations and examples of the actual usage and references of the translatable elements. For example, steps 520-550 illustrate an embodiment where the
reference tracker 53 makes determinations with regard to each translatable element identified in step 115 (FIG. 2 ) for the specified user interface(s). First, thereference tracker 53 queries the storage medium for transliteration rules to determine whether the translatable element in question has already been translated according to the specified locale. In the illustrated embodiment, this is done by querying the rules base 40 where the transliteration rules are stored along with the user interface rules. In other embodiments where the transliteration rules are stored as text files, thereference tracker 53 may employ a parser to determine the translated value. If the element in question has already been translated, the reference tracker will only proceed with the inclusion of the element into the translation facilitation package if the user has specified that option when initiating the translation request instep 105 and 110 (FIG. 2 ). Otherwise, as reflected insteps - In addition to including previous translations into the translation facilitation package, another way to ensure consistency in vocabulary and accurate translations is to provide translators with examples of how the translatable elements are referenced by the user interface rule(s) and some additional contextual information about the elements. However, lack of context is less of a concern when the user interface element being translated is a large body of text such as instructional paragraphs, documents, detailed messages and the like.
- In the illustrated embodiment, the
reference tracker 53 only includes added contextual information for an element if it is not a large body of text. In the illustrated embodiment, this determination is made instep 550 by thereference tracker 53 based upon the type of user interface being translated (e.g., a correspondence document) and/or the type of element being translated (e.g., tooltip, label, message, instructions, caption, paragraph, image, icon etc.). - In other embodiments, other factors can be considered, such as the maximum length or size of the database field where the element is stored or the number of characters that makeup the element. In any event, if the reference tracker determines in
step 550 that the element does not require additional contextual information, it will simply add the element to the translation facilitation package instep 600. However, if for example, the element being translated is a caption for an input field on a screen (e.g., 2, 4, 6, 8), a brief instruction text that appears on a screen, an image of an object/action or any other translatable element that may be translated differently depending upon how it is referenced by the interface, thereference tracker 53 will generate an indicator of exemplary reference instep 560 for the element and include it in the translation facilitation package. In the illustrated embodiment, this indicator is a hyperlink (e.g.,element 72 ofFIG. 2 ) to the actual markup stream (e.g., in HTML or other conventional format) of the user interface that references the translatable element along with a textual description (e.g.,element 71 ofFIG. 2 ) of the type of element being translated. - In the illustrated embodiment, the translation facilitation package is generated in XML format along with the markup files generated in
step 560 for the actual interfaces. This data may be converted into an easy to manage document using conventional methods instep 610. For example, an XML-to-Excel conversion tool can be used to write each translatable element to a separate data field in an Excel spreadsheet or a CSV file, and adding for each said data field, one or more other data fields for storing the translated version of the element and/or the indicator of exemplary usage of the element. - Described herein are methods and systems meeting the objects set forth above, among others. It will be appreciated that the illustrated embodiment and those otherwise discussed herein are merely examples of the invention and that other embodiments, incorporating changes thereto, fall within the scope of the invention. Thus, by way of non-limiting example, it will be appreciated that although the illustrated embodiment utilizes a rules engine that converts metadata into Java code, other embodiment may generate executable code in other programming languages and, indeed, may execute the rules directly upon substitution of the translated elements.
Claims (37)
1. A system for implementing a multilingual rules-based user interface, comprising:
A. a reference tracker executing on a first digital data processor of a first set of one or more digital data processors, said reference tracker in communications coupling with a rules base comprising a plurality of rules, the reference tracker identifying translatable elements referenced by one or more user interface rules in the rules base and generating at least one translation facilitation package for at least one target locale, said translation facilitation package comprising said one or more translatable elements,
B. a rules engine executing on a first digital data processor of a second set of one or more digital data processors, said rules engine in communications coupling with the rules base, wherein the first and second sets may overlap,
for each of one or more user interface rules, the rules engine
(i) retrieving, from one or more transliteration rules that are based on the translation facilitation package, one or more translated elements that are associated with
(a) one or more translatable elements referenced by that user interface rule,
(b) a locale setting,
(ii) processing that user interface rule using those one or more translated elements,
C. the rules engine generating, as a result of said processing, a user interface with the one or more translated elements.
2. The system of claim 1 , wherein the reference tracker identifies the translatable elements by querying a database table comprising a plurality of entries, each entry having associated therewith,
(i) one or more translatable elements,
(ii) an identifier of a user interface rule that references said elements.
3. The system of claim 1 , wherein the reference tracker identifies the translatable elements by inspecting user interface rules in the rules base.
4. The system of claim 1 , where the target locale can be any of
(i) a specification of a language,
(ii) a specification of a language and country/region, and
(iii) a specification of a language, country/region, and a variant.
5. The system of claim 1 , where the rules engine generates transliteration rules by parsing the contents of the translation facilitation package to extract said translated elements.
6. The system of claim 5 , where (i) the rules base stores the generated transliteration rules, and (ii) the rules engine processes one or more of the user interface rules in the rules base for generating a user interface by retrieving translated elements from the transliteration rules in accord with a context in which the user interface will be transmitted to and/or executed by a client device, and/or of a user on behalf of which the user interface will be executed.
7. The system of claim 6 , where
(i) the user interface rules and transliteration rules are stored as metadata in the rules base, and
(ii) the rules engine processes said rules by converting the metadata associated with said rules into code that is executable on the first digital data processor of the second set of one or more digital data processors.
8. The system of claim 7 , where the executable code is Java code.
9. The system of claim 8 , where the rules engine incorporates the translated elements into the user interface rules prior to executing said code on said digital data processor by transforming the metadata for the user interface rules and for the plurality of transliteration rules into a single executable Java class file.
10. The system of claim 6 , wherein the context includes any of security permissions, age, disability settings, behavioral segment, market segment, and locale of the user on behalf of which the page is executed; a processor speed, display size, and keyboard capabilities, of the client device; and, a speed of connection between the client device executing the user interface and the first digital data processor of a second set of one or more digital data processors.
11. The system of claim 1 , wherein
(i) the rules base stores the one or more user interface rules as metadata, and
(ii) the rules engine processes said one or more user interface rules by converting the metadata associated with said rules into code that is executable on the first digital data processor of the second set of one or more digital data processors.
12. The system of claim 11 , where the rules engine incorporates the translated elements into the code prior to said code executing on the first digital data processor of the second set of one or more digital data processors.
13. The system of claim 1 , wherein the translatable elements comprise any of static text, enumerated variable text, images and icons.
14. The system of claim 1 , wherein the reference tracker generates the translation facilitation package to further include any of (i) one or more previously translated elements for the one or more target locales, and (ii) at least one indicator of an exemplary reference by one or more user interface rules in the rules base to any of (a) one or more translatable elements, (b) one or more previously translated elements.
15. The system of claim 14 , where the reference tracker identifies the translatable elements and previously translated elements by querying a database table comprising a plurality of entries, each entry having associated therewith an identifier of a user interface rule and any of
(i) one or more translatable elements,
(ii) one or more previously translated elements.
16. The system of claim 14 , where the reference tracker identifies
(i) the translatable elements by inspecting one or more user interface rules in the rules base, and
(ii) the previously translated elements by inspecting any of the transliteration rules, files and tables.
17. The system of claim 14 , where the indicator of exemplary reference is any of
(i) a link to a markup file depicting a view of the translatable element and/or previously translated element, and
(ii) a textual description of the reference by the one or more user interface rules of the translatable element and/or previously translated element.
18. A method of implementing a multilingual rules-based user interface, comprising:
A. identifying translatable elements referenced by one or more user interface rules in a rules base and generating at least one translation facilitation package for at least one target locale, said translation facilitation package comprising said one or more translatable elements,
B. retrieving, from one or more transliteration rules that are based on the translation facilitation package, one or more translated elements that are associated with
(i) a translatable element in a first user interface rule in the rules base,
(ii) a locale setting,
processing first user interface rule with a rules engine using those one or more translated elements,
C. generating, as a result of said processing, a user interface with the one or more translated elements.
19. The method of claim 18 , wherein step (A) includes identifying the translatable elements by querying a database table comprising a plurality of entries, each entry having associated therewith,
(i) one or more translatable elements,
(ii) an identifier of a user interface rule that references said elements.
20. The method of claim 18 , wherein step (A) includes identifying the translatable elements by inspecting the user interface rules.
21. The method of claim 18 , where the target locale can be any of
(i) a specification of a language,
(ii) a specification of a language and country/region, and
(iii) a specification of a language, country/region, and a variant.
22. The method of claim 18 , comprising generating any of the transliteration rules, files and tables based on contents of the translation facilitation package.
23. The method of claim 22 , comprising (i) storing the transliteration rules in the rules base, and (ii) processing one or more of the user interface rules in the rules base to generate a user interface dynamically by retrieving translated elements from the transliteration rules in accord with a context in which the user interface will be transmitted to and/or executed by a client device, and/or of a user on behalf of which the user interface will be executed.
24. The method of claim 23 , wherein the context includes any of security permissions, age, disability settings, behavioral segment, market segment, and locale of the user on behalf of which the page is executed; a processor speed, display size, and keyboard capabilities, of the client device; and, a speed of connection between the client device executing the user interface and a digital data processor processing said user interface rules in step (C).
25. The method of claim 18 , where
(i) step (A) includes storing the user interface rules as metadata in the rules base, and
(ii) processing said rules in step (B) includes converting the metadata into code that is executable on a digital data processor.
26. The method of claim 18 , where the translatable elements comprise any of static text, enumerated variable text, images and icons.
27. The method of claim 18 , wherein said request in step (A) is initiated by any of (i) a wizard interface and (ii) the entry of commands on a command interface.
28. The method of claim 18 , wherein step (B) includes generating the translation facilitation package to further include any of (i) one or more previously translated elements for the one or more specified locales, and (ii) at least one indicator of exemplary reference by the specified one or more user interface rules of at least one translatable element and/or the previously translated element.
29. The method of claim 28 , wherein step (A) includes identifying the translatable elements and previously translated elements by querying a database table comprising a plurality of entries, each entry having associated therewith,
(i) one or more translatable elements,
(ii) one or more previously translatable elements,
(iii) an identifier of a user interface rule that references said elements.
30. The method of claim 28 , wherein step (A) includes identifying
(i) the translatable elements by inspecting the user interface rules, and
(ii) the previously translated elements by inspecting any of the transliteration rules, files and tables.
31. The method of claim 28 , where the indicator of exemplary reference is any of
(i) a link to a markup file depicting a view of the translatable element and/or previously translated element, and
(ii) a textual description of the reference by the one or more user interface rules of the translatable element and/or previously translated element.
32. The method of claim 25 , wherein processing the user interface rules in step (B) includes incorporating the translated elements into the code prior to said code executing on the digital data processor.
33. The method of claim 22 , including the rules engine (i) importing the translation facilitation package with the translated elements contained therein, and (ii) generating any of the transliteration rules, files and tables by parsing the contents of the translation facilitation package to extract said translated elements.
34. The method of claim 23 , including
(i) storing the user interface rules and transliteration rules as metadata in the rules base, and
(ii) the rules engine processing said rules in step (B) by converting the metadata associated with said rules into code that is executable on the digital data processor.
35. The method of claim 34 , where the executable code in step (B) is Java code.
36. The method of claim 35 , wherein processing the user interface in step (B) includes incorporating translated elements into the user interface rules prior to executing said code on said digital processor by transforming the metadata for the user interface rules and for the transliteration rules into a single executable Java class file.
37. A system for implementing a multilingual rules-based user interface, comprising:
A. a wizard executing on a first digital data processor of a first set of one or more digital data processors, said wizard in communications coupling with a rules base comprising a plurality of rules, the wizard (i) identifying one or more translatable elements referenced by one or more user interface rules in the rules base, (ii) requesting, from a user, one or more translated elements associated with such translatable elements and with at least one target locale, and (iii) generating one or more transliteration rules for such target locales,
B. a rules engine executing on a first digital data processor of a second set of one or more digital data processors, said rules engine in communications coupling with the rules base and with one or more transliteration rules, wherein the first and second sets may overlap, the rules engine
(i) retrieving from the one or more transliteration rules generated by the wizard one or more translated elements associated with
(a) one or more translatable elements in a first user interface rule in the rules base,
(b) a specified locale,
(ii) processing that first user interface rule using those one or more translated elements,
C. the rules engine generating, as a result of said processing, a user interface with the one or more translated elements.
Priority Applications (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/174,624 US20090132232A1 (en) | 2006-03-30 | 2008-07-16 | Methods and apparatus for implementing multilingual software applications |
PCT/US2009/032341 WO2009097384A1 (en) | 2008-01-31 | 2009-01-29 | Methods and apparatus for implementing multilingual software applications |
US12/590,454 US8516193B1 (en) | 2006-03-30 | 2009-11-06 | Techniques for content-based caching in a computer system |
US13/031,109 US8924335B1 (en) | 2006-03-30 | 2011-02-18 | Rule-based user interface conformance methods |
US13/892,956 US9026733B1 (en) | 2006-03-30 | 2013-05-13 | Content-based caching using a content identifier at a point in time |
US14/558,084 US9658735B2 (en) | 2006-03-30 | 2014-12-02 | Methods and apparatus for user interface optimization |
US15/602,880 US10838569B2 (en) | 2006-03-30 | 2017-05-23 | Method and apparatus for user interface non-conformance detection and correction |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/396,415 US20070233902A1 (en) | 2006-03-30 | 2006-03-30 | User interface methods and apparatus for rules processing |
US6326908P | 2008-01-31 | 2008-01-31 | |
US12/035,682 US20080208785A1 (en) | 2006-03-30 | 2008-02-22 | User interface methods and apparatus for rules processing |
US12/174,624 US20090132232A1 (en) | 2006-03-30 | 2008-07-16 | Methods and apparatus for implementing multilingual software applications |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/035,682 Continuation-In-Part US20080208785A1 (en) | 2006-03-30 | 2008-02-22 | User interface methods and apparatus for rules processing |
Related Child Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/035,682 Continuation-In-Part US20080208785A1 (en) | 2006-03-30 | 2008-02-22 | User interface methods and apparatus for rules processing |
US13/031,109 Continuation-In-Part US8924335B1 (en) | 2006-03-30 | 2011-02-18 | Rule-based user interface conformance methods |
Publications (1)
Publication Number | Publication Date |
---|---|
US20090132232A1 true US20090132232A1 (en) | 2009-05-21 |
Family
ID=40913219
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/174,624 Abandoned US20090132232A1 (en) | 2006-03-30 | 2008-07-16 | Methods and apparatus for implementing multilingual software applications |
Country Status (2)
Country | Link |
---|---|
US (1) | US20090132232A1 (en) |
WO (1) | WO2009097384A1 (en) |
Cited By (44)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100088266A1 (en) * | 2006-03-03 | 2010-04-08 | Pegasystems Inc. | Rules base systems and methods with circumstance translation |
US20100107137A1 (en) * | 2004-05-26 | 2010-04-29 | Pegasystems Inc. | Methods and apparatus for integration of declarative rule-based processing with procedural programming in a digital data-processing evironment |
US20110288852A1 (en) * | 2010-05-20 | 2011-11-24 | Xerox Corporation | Dynamic bi-phrases for statistical machine translation |
US8250525B2 (en) | 2007-03-02 | 2012-08-21 | Pegasystems Inc. | Proactive performance management for multi-user enterprise software systems |
US20120316860A1 (en) * | 2011-06-08 | 2012-12-13 | Microsoft Corporation | Dynamic video caption translation player |
US8335704B2 (en) | 2005-01-28 | 2012-12-18 | Pegasystems Inc. | Methods and apparatus for work management and routing |
US20130035926A1 (en) * | 2010-01-18 | 2013-02-07 | Google Inc. | Automatic transliteration of a record in a first language to a word in a second language |
US20130103384A1 (en) * | 2011-04-15 | 2013-04-25 | Ibm Corporation | Translating prompt and user input |
US8442811B1 (en) * | 2011-02-28 | 2013-05-14 | Google Inc. | Contextual translation of digital content |
US20130174136A1 (en) * | 2012-01-03 | 2013-07-04 | International Business Machiness Corporation | Detecting, Compiling, and Updating a New Locale Object in Real Time |
US8516193B1 (en) | 2006-03-30 | 2013-08-20 | Pegasystems Inc. | Techniques for content-based caching in a computer system |
JP2013235382A (en) * | 2012-05-08 | 2013-11-21 | Nomura Research Institute Ltd | Multilingual web server system and multilingual support method in web server system |
US20140019951A1 (en) * | 2012-07-12 | 2014-01-16 | Rumiana Petrova | Mobile application translation |
US8769404B2 (en) | 2012-01-03 | 2014-07-01 | International Business Machines Corporation | Rule-based locale definition generation for a new or customized locale support |
US8789015B2 (en) | 2012-02-23 | 2014-07-22 | Microsoft Corporation | Integrated application localization |
US8880487B1 (en) | 2011-02-18 | 2014-11-04 | Pegasystems Inc. | Systems and methods for distributed rules processing |
US8924335B1 (en) | 2006-03-30 | 2014-12-30 | Pegasystems Inc. | Rule-based user interface conformance methods |
US20150149148A1 (en) * | 2013-11-26 | 2015-05-28 | International Business Machines Corporation | Language independent processing of logs in a log analytics system |
US9081866B2 (en) * | 2011-09-23 | 2015-07-14 | Oracle International Corporation | Dynamic display of web page content based on a rules system |
US20150234653A1 (en) * | 2010-12-23 | 2015-08-20 | Microsoft Technology Licensing, Llc | Resource deployment based on conditions |
US9195936B1 (en) | 2011-12-30 | 2015-11-24 | Pegasystems Inc. | System and method for updating or modifying an application without manual coding |
US20150356887A1 (en) * | 2014-06-09 | 2015-12-10 | Lingozing | Method And System For Learning Languages Through a General User Interface |
US9239832B2 (en) * | 2012-08-03 | 2016-01-19 | Red Hat, Inc. | Modifying language of a user interface on a computing device |
US20160110346A1 (en) * | 2014-10-17 | 2016-04-21 | Christian Lieske | Multilingual content production |
US9442744B2 (en) | 2012-02-23 | 2016-09-13 | Microsoft Technology Licensing, Llc | Multilingual build integration for compiled applications |
US9495371B2 (en) | 2010-12-28 | 2016-11-15 | Microsoft Technology Licensing, Llc | Unified access to resources |
US9678719B1 (en) | 2009-03-30 | 2017-06-13 | Pegasystems Inc. | System and software for creation and modification of software |
US20180203849A1 (en) * | 2017-01-13 | 2018-07-19 | Sap Se | Concept Recommendation based on Multilingual User Interaction |
US10162472B1 (en) * | 2013-09-24 | 2018-12-25 | EMC IP Holding Company LLC | Specifying sizes for user interface elements |
US10268536B2 (en) | 2016-11-30 | 2019-04-23 | Oracle International Corporation | Secure debugging with an encrypted token |
US10467200B1 (en) | 2009-03-12 | 2019-11-05 | Pegasystems, Inc. | Techniques for dynamic data processing |
US10469396B2 (en) | 2014-10-10 | 2019-11-05 | Pegasystems, Inc. | Event processing with enhanced throughput |
EP3611616A1 (en) | 2018-08-14 | 2020-02-19 | Pegasystems Inc. | Software code optimizer and method |
US10698647B2 (en) | 2016-07-11 | 2020-06-30 | Pegasystems Inc. | Selective sharing for collaborative application usage |
US10698599B2 (en) | 2016-06-03 | 2020-06-30 | Pegasystems, Inc. | Connecting graphical shapes using gestures |
US10909209B2 (en) | 2016-01-29 | 2021-02-02 | Oracle International Corporation | Dynamic insertion of content into webpages |
WO2022022554A1 (en) * | 2020-07-31 | 2022-02-03 | 华为技术有限公司 | Text display method, compilation method and related device |
US20220117546A1 (en) * | 2020-10-19 | 2022-04-21 | Woundmatrix, Inc. | Wound measurement |
US11323532B1 (en) * | 2021-01-29 | 2022-05-03 | Salesforce.Com, Inc. | Data stream packaging |
US11397600B2 (en) * | 2019-05-23 | 2022-07-26 | HCL Technologies Italy S.p.A | Dynamic catalog translation system |
US11500604B2 (en) | 2011-06-30 | 2022-11-15 | International Business Machines Corporation | Presenting a document on a computer |
US11567945B1 (en) | 2020-08-27 | 2023-01-31 | Pegasystems Inc. | Customized digital content generation systems and methods |
US20230130046A1 (en) * | 2021-10-27 | 2023-04-27 | Canon U.S.A., Inc. | Devices, systems, and methods for displaying stenosis measurements and calculations |
US20230148129A1 (en) * | 2020-03-05 | 2023-05-11 | Servicenow, Inc. | Improved localization procedures and prioritization for applications |
Citations (133)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4866634A (en) * | 1987-08-10 | 1989-09-12 | Syntelligence | Data-driven, functional expert system shell |
US4895518A (en) * | 1987-11-02 | 1990-01-23 | The University Of Michigan | Computerized diagnostic reasoning evaluation system |
US5093794A (en) * | 1989-08-22 | 1992-03-03 | United Technologies Corporation | Job scheduling system |
US5193056A (en) * | 1991-03-11 | 1993-03-09 | Signature Financial Group Inc. | Data processing system for hub and spoke financial services configuration |
US5199068A (en) * | 1991-01-22 | 1993-03-30 | Professional Achievement Systems, Inc. | Computer-based training system with student verification |
US5276359A (en) * | 1993-02-02 | 1994-01-04 | Chiang Ting Chi | Current-input type interface circuit of a mouse |
US5276885A (en) * | 1991-04-18 | 1994-01-04 | Carnegie Group | Single step mapping in topological order of the queued class and instance frames of a semantic network to a static working memory |
US5291394A (en) * | 1990-06-01 | 1994-03-01 | Motorola, Inc. | Manufacturing control and capacity planning system |
US5291583A (en) * | 1990-12-14 | 1994-03-01 | Racal-Datacom, Inc. | Automatic storage of persistent ASN.1 objects in a relational schema |
US5295256A (en) * | 1990-12-14 | 1994-03-15 | Racal-Datacom, Inc. | Automatic storage of persistent objects in a relational schema |
US5297279A (en) * | 1990-05-30 | 1994-03-22 | Texas Instruments Incorporated | System and method for database management supporting object-oriented programming |
US5379366A (en) * | 1993-01-29 | 1995-01-03 | Noyes; Dallas B. | Method for representation of knowledge in a computer as a network database system |
US5379387A (en) * | 1990-08-02 | 1995-01-03 | Carlstedt Elektronik Ab | Arithmetic unit for structure arithmetic |
US5381332A (en) * | 1991-12-09 | 1995-01-10 | Motorola, Inc. | Project management system with automated schedule and cost integration |
US5386559A (en) * | 1992-07-16 | 1995-01-31 | International Business Machines Corporation | Variant domains and variant maps in a versioned database management system |
US5395243A (en) * | 1991-09-25 | 1995-03-07 | National Education Training Group | Interactive learning system |
US5499293A (en) * | 1995-01-24 | 1996-03-12 | University Of Maryland | Privacy protected information medium using a data compression method |
US5579223A (en) * | 1992-12-24 | 1996-11-26 | Microsoft Corporation | Method and system for incorporating modifications made to a computer program into a translated version of the computer program |
US5596752A (en) * | 1989-09-01 | 1997-01-21 | Amdahl Corporation | System for creating, editing, displaying, and executing rules-based programming language rules having action part subsets for both true and false evaluation of the conditional part |
US5597312A (en) * | 1994-05-04 | 1997-01-28 | U S West Technologies, Inc. | Intelligent tutoring method and system |
US5608789A (en) * | 1992-08-25 | 1997-03-04 | Bell Communications Research, Inc. | Method of creating user-defined call processing procedures |
US5715450A (en) * | 1995-09-27 | 1998-02-03 | Siebel Systems, Inc. | Method of selecting and presenting data from a database using a query language to a user of a computer system |
US5732192A (en) * | 1994-11-30 | 1998-03-24 | The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration | Global qualitative flow-path modeling for local state determination in simulation and analysis |
US5768480A (en) * | 1994-10-21 | 1998-06-16 | Lucent Technologies Inc. | Integrating rules into object-oriented programming systems |
US5873096A (en) * | 1997-10-08 | 1999-02-16 | Siebel Systems, Inc. | Method of maintaining a network of partially replicated database system |
US5875441A (en) * | 1996-05-07 | 1999-02-23 | Fuji Xerox Co., Ltd. | Document database management system and document database retrieving method |
US5875334A (en) * | 1995-10-27 | 1999-02-23 | International Business Machines Corporation | System, method, and program for extending a SQL compiler for handling control statements packaged with SQL query statements |
US5880614A (en) * | 1994-09-24 | 1999-03-09 | Itt Manufacturing Enterprises Inc. | Circuit arrangement for evaluating the output signal of an active sensor |
US5880742A (en) * | 1993-09-17 | 1999-03-09 | Xerox-Corporation | Spreadsheet image showing data items as indirect graphical representations |
US5886546A (en) * | 1996-06-27 | 1999-03-23 | Lg Semicon Co., Ltd. | Current/voltage converter, sense amplifier and sensing method using same |
US5890166A (en) * | 1992-07-16 | 1999-03-30 | International Business Machines Corporation | Versioned-database management system in which tasks are associated with promote groups which comprise a set of parts whose changes are to be promoted |
US5890146A (en) * | 1996-05-02 | 1999-03-30 | U.S. Philips Corporation | Adaptive process modelling and control |
US6012098A (en) * | 1998-02-23 | 2000-01-04 | International Business Machines Corp. | Servlet pairing for isolation of the retrieval and rendering of data |
US6020768A (en) * | 1998-05-13 | 2000-02-01 | Oak Technology, Inc. | CMOS low-voltage comparator |
US6023704A (en) * | 1998-01-29 | 2000-02-08 | International Business Machines Corporation | Apparatus and method for swapping identities of two objects to reference the object information of the other |
US6023717A (en) * | 1996-10-30 | 2000-02-08 | Qualcomm Incorporated | Method and apparatus for polyphase digital filtering in a mobile telephone |
US6023714A (en) * | 1997-04-24 | 2000-02-08 | Microsoft Corporation | Method and system for dynamically adapting the layout of a document to an output device |
US6028457A (en) * | 1996-09-18 | 2000-02-22 | Siemens Aktiengesellschaft | CMOS comparator |
US6037890A (en) * | 1997-09-30 | 2000-03-14 | Intel Corporation | Ultra high speed, low power, flash A/D converter utilizing a current mode regenerative comparator |
US6044373A (en) * | 1997-09-29 | 2000-03-28 | International Business Machines Corporation | Object-oriented access control method and system for military and commercial file systems |
US6044466A (en) * | 1997-11-25 | 2000-03-28 | International Business Machines Corp. | Flexible and dynamic derivation of permissions |
US6177932B1 (en) * | 1998-08-21 | 2001-01-23 | Kana Communications, Inc. | Method and apparatus for network based customer service |
US6185534B1 (en) * | 1998-03-23 | 2001-02-06 | Microsoft Corporation | Modeling emotion and personality in a computer user interface |
US6185516B1 (en) * | 1990-03-06 | 2001-02-06 | Lucent Technologies Inc. | Automata-theoretic verification of systems |
US6192371B1 (en) * | 1999-04-28 | 2001-02-20 | Lucent Technologies, Inc | Object morphing in an object oriented computing environment using relational database query procedure |
US6194919B1 (en) * | 1997-12-30 | 2001-02-27 | Hyundai Electronics Industries Co., Ltd. | Main amplifier |
US6314415B1 (en) * | 1998-11-04 | 2001-11-06 | Cch Incorporated | Automated forms publishing system and method using a rule-based expert system to dynamically generate a graphical user interface |
US6338074B1 (en) * | 1997-07-23 | 2002-01-08 | Filenet Corporation | System for enterprise-wide work flow automation |
US6341277B1 (en) * | 1998-11-17 | 2002-01-22 | International Business Machines Corporation | System and method for performance complex heterogeneous database queries using a single SQL expression |
US6341293B1 (en) * | 1994-07-13 | 2002-01-22 | Object Technology Licensing Corp | Real-time computer “garbage collector” |
US6349238B1 (en) * | 1998-09-16 | 2002-02-19 | Mci Worldcom, Inc. | System and method for managing the workflow for processing service orders among a variety of organizations within a telecommunications company |
US6351734B1 (en) * | 1998-09-09 | 2002-02-26 | Unisys Corporation | System and method for resource allocation and planning |
US20020029161A1 (en) * | 1998-11-30 | 2002-03-07 | Brodersen Robert A. | Assignment manager |
US6359633B1 (en) * | 1999-01-15 | 2002-03-19 | Yahoo! Inc. | Apparatus and method for abstracting markup language documents |
US20020049715A1 (en) * | 2000-05-09 | 2002-04-25 | Serrano-Morales Carlos A. | Approach for generating rules |
US20020054152A1 (en) * | 1999-08-23 | 2002-05-09 | Murugan Palaniappan | Menu infrastructure apparatus and method |
US20020107684A1 (en) * | 2001-02-07 | 2002-08-08 | Kejia Gao | Methods and apparatus for globalising software |
US20020120762A1 (en) * | 2001-01-18 | 2002-08-29 | Shang-Che Cheng | Globalization management system and method therefor |
US20020184610A1 (en) * | 2001-01-22 | 2002-12-05 | Kelvin Chong | System and method for building multi-modal and multi-channel applications |
US20030004934A1 (en) * | 2001-06-29 | 2003-01-02 | Richard Qian | Creating and managing portable user preferences for personalizion of media consumption from device to device |
US20030009239A1 (en) * | 2000-03-23 | 2003-01-09 | Lombardo Joseph S | Method and system for bio-surveillance detection and alerting |
US20030014399A1 (en) * | 2001-03-12 | 2003-01-16 | Hansen Mark H. | Method for organizing records of database search activity by topical relevance |
US6509898B2 (en) * | 1998-04-17 | 2003-01-21 | Xerox Corporation | Usage based methods of traversing and displaying generalized graph structures |
US6513018B1 (en) * | 1994-05-05 | 2003-01-28 | Fair, Isaac And Company, Inc. | Method and apparatus for scoring the likelihood of a desired performance result |
US20030037145A1 (en) * | 2000-03-15 | 2003-02-20 | Michael Fagan | Apparatus and method of allocating communications resources |
US6526440B1 (en) * | 2001-01-30 | 2003-02-25 | Google, Inc. | Ranking search results by reranking the results based on local inter-connectivity |
US6526457B1 (en) * | 1996-10-30 | 2003-02-25 | Computer Associates Think, Inc. | Systems utility object interface for facilitating software portability |
US6529899B1 (en) * | 2000-01-12 | 2003-03-04 | International Business Machines Corporation | System and method for registering and providing a tool service |
US6530079B1 (en) * | 1999-06-02 | 2003-03-04 | International Business Machines Corporation | Method for optimizing locks in computer programs |
US20030050929A1 (en) * | 2001-08-16 | 2003-03-13 | Sentius Corporation | Automated creation and delivery of database content |
US20030050927A1 (en) * | 2001-09-07 | 2003-03-13 | Araha, Inc. | System and method for location, understanding and assimilation of digital documents through abstract indicia |
US20030050834A1 (en) * | 2001-09-07 | 2003-03-13 | Sergio Caplan | System and method for dynamic customizable interactive portal active during select computer time |
US6539374B2 (en) * | 1999-06-03 | 2003-03-25 | Microsoft Corporation | Methods, apparatus and data structures for providing a uniform representation of various types of information |
US20030061209A1 (en) * | 2001-09-27 | 2003-03-27 | Simon D. Raboczi | Computer user interface tool for navigation of data stored in directed graphs |
US20030084401A1 (en) * | 2001-10-16 | 2003-05-01 | Abel Todd J. | Efficient web page localization |
US20030229544A1 (en) * | 2002-06-10 | 2003-12-11 | Veres Robert Dean | Method and system for scheduling transaction listings at a network-based transaction facility |
US6678679B1 (en) * | 2000-10-10 | 2004-01-13 | Science Applications International Corporation | Method and system for facilitating the refinement of data queries |
US6678773B2 (en) * | 2000-01-13 | 2004-01-13 | Motorola, Inc. | Bus protocol independent method and structure for managing transaction priority, ordering and deadlocks in a multi-processing system |
US6678882B1 (en) * | 1999-06-30 | 2004-01-13 | Qwest Communications International Inc. | Collaborative model for software systems with synchronization submodel with merge feature, automatic conflict resolution and isolation of potential changes for reuse |
US6684261B1 (en) * | 1993-07-19 | 2004-01-27 | Object Technology Licensing Corporation | Object-oriented operating system |
US20040024603A1 (en) * | 2002-07-31 | 2004-02-05 | Deere & Company | Method of providing localized information from a single global transformation source |
US6691230B1 (en) * | 1998-10-15 | 2004-02-10 | International Business Machines Corporation | Method and system for extending Java applets sand box with public client storage |
US20040034651A1 (en) * | 2000-09-08 | 2004-02-19 | Amarnath Gupta | Data source interation system and method |
US6701314B1 (en) * | 2000-01-21 | 2004-03-02 | Science Applications International Corporation | System and method for cataloguing digital information for searching and retrieval |
US20040049509A1 (en) * | 2002-09-11 | 2004-03-11 | International Business Machines Corporation | Methods and apparatus for managing dependencies in distributed systems |
US6711565B1 (en) * | 2001-06-18 | 2004-03-23 | Siebel Systems, Inc. | Method, apparatus, and system for previewing search results |
US20040133416A1 (en) * | 2002-07-18 | 2004-07-08 | Norio Fukuoka | Information terminal device, method of acquiring information corresponding to language identification information from server and program thereof, network system, additional function purchasing progam, and program function adding method |
US20040133876A1 (en) * | 2003-01-08 | 2004-07-08 | Craig Sproule | System and method for the composition, generation, integration and execution of business processes over a network |
US20040205672A1 (en) * | 2000-12-29 | 2004-10-14 | International Business Machines Corporation | Automated spell analysis |
US20040236566A1 (en) * | 2003-05-20 | 2004-11-25 | Simske Steven J. | System and method for identifying special word usage in a document |
US6839682B1 (en) * | 1999-05-06 | 2005-01-04 | Fair Isaac Corporation | Predictive modeling of consumer financial behavior using supervised segmentation and nearest-neighbor matching |
US6847982B2 (en) * | 1996-04-12 | 2005-01-25 | Computer Associates Think, Inc. | Intelligent data inventory and asset management system method and apparatus |
US6851089B1 (en) * | 1999-10-25 | 2005-02-01 | Amazon.Com, Inc. | Software application and associated methods for generating a software layer for structuring semistructured information |
US20050027563A1 (en) * | 2003-01-29 | 2005-02-03 | Fackler James C. | System and method in a computer system for managing a number of attachments associated with a patient |
US6856992B2 (en) * | 2001-05-15 | 2005-02-15 | Metatomix, Inc. | Methods and apparatus for real-time business visibility using persistent schema-less data storage |
US6856575B2 (en) * | 2002-10-21 | 2005-02-15 | Abb Offshore Systems Limited | Monitoring a microseismic event |
US20050039191A1 (en) * | 2003-08-12 | 2005-02-17 | Chordiant Software, Inc. | Process/viewer interface |
US6859787B2 (en) * | 1996-08-08 | 2005-02-22 | Ebay, Inc. | Method and system for providing order status information using an update status flag |
US20050044198A1 (en) * | 2003-08-08 | 2005-02-24 | Jun Okitsu | Method of controlling total disk usage amount in virtualized and unified network storage system |
US20050050000A1 (en) * | 2003-09-02 | 2005-03-03 | International Business Machines Corporation | Generation of XSLT style sheets for different portable devices |
US20050055330A1 (en) * | 2001-05-15 | 2005-03-10 | Britton Colin P. | Surveillance, monitoring and real-time events platform |
US20050059566A1 (en) * | 2000-01-05 | 2005-03-17 | Brown Jerry S. | Chemical and biological warfare decontaminating solution using peracids and germinants in microemulsions, process and product thereof |
US20050165823A1 (en) * | 2004-01-22 | 2005-07-28 | Microsoft Corporation | Binary dependency database |
US6985912B2 (en) * | 2002-07-22 | 2006-01-10 | Thought, Inc. | Dynamic object-driven database manipulation and mapping system having a simple global interface and an optional multiple user need only caching system with disable and notify features |
US20060020783A1 (en) * | 2000-08-30 | 2006-01-26 | Douglas Fisher | Method, system and service for conducting authenticated business transactions |
US20060041861A1 (en) * | 2003-05-06 | 2006-02-23 | Pegasystems Inc. | Methods and apparatus for digital data processing with mutable inheritance |
US20060080082A1 (en) * | 2004-08-23 | 2006-04-13 | Geneva Software Technologies Limited | System and method for product migration in multiple languages |
US20060100847A1 (en) * | 2004-11-09 | 2006-05-11 | Mcentee Robert A | System and method for generating a target language markup language text template |
US20060271920A1 (en) * | 2005-05-24 | 2006-11-30 | Wael Abouelsaadat | Multilingual compiler system and method |
US20070010991A1 (en) * | 2002-06-20 | 2007-01-11 | Shu Lei | Translation leveraging |
US7171415B2 (en) * | 2001-05-04 | 2007-01-30 | Sun Microsystems, Inc. | Distributed information discovery through searching selected registered information providers |
US7171145B2 (en) * | 2002-12-13 | 2007-01-30 | Ricoh Company, Ltd. | Developing device and process cartridge for an image forming apparatus |
US20070028225A1 (en) * | 2002-03-16 | 2007-02-01 | Whittaker James A | Method and apparatus for preemptive monitoring of software binaries by instruction interception and dynamic recompilation |
US20070055938A1 (en) * | 2005-09-07 | 2007-03-08 | Avaya Technology Corp. | Server-based method for providing internet content to users with disabilities |
US20070061789A1 (en) * | 2001-09-21 | 2007-03-15 | Siebel Systems, Inc. | Methods and apparatus for integrated, automatic pseudo localization of software |
US20070094199A1 (en) * | 2005-08-30 | 2007-04-26 | International Business Machines Corporation | System and method for automatically processing dynamic business rules in a content management system |
US20070118497A1 (en) * | 2005-11-22 | 2007-05-24 | Naotaka Katoh | Linking of identical character strings in differnt files |
US20070136068A1 (en) * | 2005-12-09 | 2007-06-14 | Microsoft Corporation | Multimodal multilingual devices and applications for enhanced goal-interpretation and translation for service providers |
US20070260584A1 (en) * | 2006-04-21 | 2007-11-08 | Marti Jordi M | System for processing formatted data |
US7318066B2 (en) * | 2000-10-31 | 2008-01-08 | Michael Philip Kaufman | System and method for generating automatic user interface for arbitrarily complex or large databases |
US7318020B1 (en) * | 2003-10-08 | 2008-01-08 | Microsoft Corporation | Methods and systems for external localization |
US7334039B1 (en) * | 2002-02-01 | 2008-02-19 | Oracle International Corporation | Techniques for generating rules for a dynamic rule-based system that responds to requests for a resource on a network |
US20080195377A1 (en) * | 2007-02-09 | 2008-08-14 | International Business Machines Corporation | Method, device, and program product for verifying translation in resource file |
US20080216060A1 (en) * | 2002-11-20 | 2008-09-04 | Vargas Byron D | System for translating diverse programming languages |
US20090075634A1 (en) * | 2005-06-29 | 2009-03-19 | Microsoft Corporation | Data buddy |
US7536294B1 (en) * | 2002-01-08 | 2009-05-19 | Oracle International Corporation | Method and apparatus for translating computer programs |
US20090158407A1 (en) * | 2007-12-13 | 2009-06-18 | Fiberlink Communications Corporation | Api translation for network access control (nac) agent |
US20090164494A1 (en) * | 2007-12-21 | 2009-06-25 | Google Inc. | Embedding metadata with displayable content and applications thereof |
US20090171938A1 (en) * | 2007-12-28 | 2009-07-02 | Microsoft Corporation | Context-based document search |
US20090276206A1 (en) * | 2006-06-22 | 2009-11-05 | Colin Fitzpatrick | Dynamic Software Localization |
US7665063B1 (en) * | 2004-05-26 | 2010-02-16 | Pegasystems, Inc. | Integration of declarative rule-based processing with procedural programming |
US7844594B1 (en) * | 1999-06-18 | 2010-11-30 | Surfwax, Inc. | Information search, retrieval and distillation into knowledge objects |
US7983895B2 (en) * | 2004-11-09 | 2011-07-19 | Sony Online Entertainment Llc | System and method for generating grammatically correct text strings |
-
2008
- 2008-07-16 US US12/174,624 patent/US20090132232A1/en not_active Abandoned
-
2009
- 2009-01-29 WO PCT/US2009/032341 patent/WO2009097384A1/en active Application Filing
Patent Citations (133)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4866634A (en) * | 1987-08-10 | 1989-09-12 | Syntelligence | Data-driven, functional expert system shell |
US4895518A (en) * | 1987-11-02 | 1990-01-23 | The University Of Michigan | Computerized diagnostic reasoning evaluation system |
US5093794A (en) * | 1989-08-22 | 1992-03-03 | United Technologies Corporation | Job scheduling system |
US5596752A (en) * | 1989-09-01 | 1997-01-21 | Amdahl Corporation | System for creating, editing, displaying, and executing rules-based programming language rules having action part subsets for both true and false evaluation of the conditional part |
US6185516B1 (en) * | 1990-03-06 | 2001-02-06 | Lucent Technologies Inc. | Automata-theoretic verification of systems |
US5297279A (en) * | 1990-05-30 | 1994-03-22 | Texas Instruments Incorporated | System and method for database management supporting object-oriented programming |
US5291394A (en) * | 1990-06-01 | 1994-03-01 | Motorola, Inc. | Manufacturing control and capacity planning system |
US5379387A (en) * | 1990-08-02 | 1995-01-03 | Carlstedt Elektronik Ab | Arithmetic unit for structure arithmetic |
US5291583A (en) * | 1990-12-14 | 1994-03-01 | Racal-Datacom, Inc. | Automatic storage of persistent ASN.1 objects in a relational schema |
US5295256A (en) * | 1990-12-14 | 1994-03-15 | Racal-Datacom, Inc. | Automatic storage of persistent objects in a relational schema |
US5199068A (en) * | 1991-01-22 | 1993-03-30 | Professional Achievement Systems, Inc. | Computer-based training system with student verification |
US5193056A (en) * | 1991-03-11 | 1993-03-09 | Signature Financial Group Inc. | Data processing system for hub and spoke financial services configuration |
US5276885A (en) * | 1991-04-18 | 1994-01-04 | Carnegie Group | Single step mapping in topological order of the queued class and instance frames of a semantic network to a static working memory |
US5395243A (en) * | 1991-09-25 | 1995-03-07 | National Education Training Group | Interactive learning system |
US5381332A (en) * | 1991-12-09 | 1995-01-10 | Motorola, Inc. | Project management system with automated schedule and cost integration |
US5890166A (en) * | 1992-07-16 | 1999-03-30 | International Business Machines Corporation | Versioned-database management system in which tasks are associated with promote groups which comprise a set of parts whose changes are to be promoted |
US5386559A (en) * | 1992-07-16 | 1995-01-31 | International Business Machines Corporation | Variant domains and variant maps in a versioned database management system |
US5608789A (en) * | 1992-08-25 | 1997-03-04 | Bell Communications Research, Inc. | Method of creating user-defined call processing procedures |
US5579223A (en) * | 1992-12-24 | 1996-11-26 | Microsoft Corporation | Method and system for incorporating modifications made to a computer program into a translated version of the computer program |
US5379366A (en) * | 1993-01-29 | 1995-01-03 | Noyes; Dallas B. | Method for representation of knowledge in a computer as a network database system |
US5276359A (en) * | 1993-02-02 | 1994-01-04 | Chiang Ting Chi | Current-input type interface circuit of a mouse |
US6684261B1 (en) * | 1993-07-19 | 2004-01-27 | Object Technology Licensing Corporation | Object-oriented operating system |
US5880742A (en) * | 1993-09-17 | 1999-03-09 | Xerox-Corporation | Spreadsheet image showing data items as indirect graphical representations |
US5597312A (en) * | 1994-05-04 | 1997-01-28 | U S West Technologies, Inc. | Intelligent tutoring method and system |
US6513018B1 (en) * | 1994-05-05 | 2003-01-28 | Fair, Isaac And Company, Inc. | Method and apparatus for scoring the likelihood of a desired performance result |
US6341293B1 (en) * | 1994-07-13 | 2002-01-22 | Object Technology Licensing Corp | Real-time computer “garbage collector” |
US5880614A (en) * | 1994-09-24 | 1999-03-09 | Itt Manufacturing Enterprises Inc. | Circuit arrangement for evaluating the output signal of an active sensor |
US5768480A (en) * | 1994-10-21 | 1998-06-16 | Lucent Technologies Inc. | Integrating rules into object-oriented programming systems |
US5732192A (en) * | 1994-11-30 | 1998-03-24 | The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration | Global qualitative flow-path modeling for local state determination in simulation and analysis |
US5499293A (en) * | 1995-01-24 | 1996-03-12 | University Of Maryland | Privacy protected information medium using a data compression method |
US5715450A (en) * | 1995-09-27 | 1998-02-03 | Siebel Systems, Inc. | Method of selecting and presenting data from a database using a query language to a user of a computer system |
US5875334A (en) * | 1995-10-27 | 1999-02-23 | International Business Machines Corporation | System, method, and program for extending a SQL compiler for handling control statements packaged with SQL query statements |
US6847982B2 (en) * | 1996-04-12 | 2005-01-25 | Computer Associates Think, Inc. | Intelligent data inventory and asset management system method and apparatus |
US5890146A (en) * | 1996-05-02 | 1999-03-30 | U.S. Philips Corporation | Adaptive process modelling and control |
US5875441A (en) * | 1996-05-07 | 1999-02-23 | Fuji Xerox Co., Ltd. | Document database management system and document database retrieving method |
US5886546A (en) * | 1996-06-27 | 1999-03-23 | Lg Semicon Co., Ltd. | Current/voltage converter, sense amplifier and sensing method using same |
US6859787B2 (en) * | 1996-08-08 | 2005-02-22 | Ebay, Inc. | Method and system for providing order status information using an update status flag |
US6028457A (en) * | 1996-09-18 | 2000-02-22 | Siemens Aktiengesellschaft | CMOS comparator |
US6526457B1 (en) * | 1996-10-30 | 2003-02-25 | Computer Associates Think, Inc. | Systems utility object interface for facilitating software portability |
US6023717A (en) * | 1996-10-30 | 2000-02-08 | Qualcomm Incorporated | Method and apparatus for polyphase digital filtering in a mobile telephone |
US6023714A (en) * | 1997-04-24 | 2000-02-08 | Microsoft Corporation | Method and system for dynamically adapting the layout of a document to an output device |
US6338074B1 (en) * | 1997-07-23 | 2002-01-08 | Filenet Corporation | System for enterprise-wide work flow automation |
US6044373A (en) * | 1997-09-29 | 2000-03-28 | International Business Machines Corporation | Object-oriented access control method and system for military and commercial file systems |
US6037890A (en) * | 1997-09-30 | 2000-03-14 | Intel Corporation | Ultra high speed, low power, flash A/D converter utilizing a current mode regenerative comparator |
US5873096A (en) * | 1997-10-08 | 1999-02-16 | Siebel Systems, Inc. | Method of maintaining a network of partially replicated database system |
US6044466A (en) * | 1997-11-25 | 2000-03-28 | International Business Machines Corp. | Flexible and dynamic derivation of permissions |
US6194919B1 (en) * | 1997-12-30 | 2001-02-27 | Hyundai Electronics Industries Co., Ltd. | Main amplifier |
US6023704A (en) * | 1998-01-29 | 2000-02-08 | International Business Machines Corporation | Apparatus and method for swapping identities of two objects to reference the object information of the other |
US6012098A (en) * | 1998-02-23 | 2000-01-04 | International Business Machines Corp. | Servlet pairing for isolation of the retrieval and rendering of data |
US6185534B1 (en) * | 1998-03-23 | 2001-02-06 | Microsoft Corporation | Modeling emotion and personality in a computer user interface |
US6509898B2 (en) * | 1998-04-17 | 2003-01-21 | Xerox Corporation | Usage based methods of traversing and displaying generalized graph structures |
US6020768A (en) * | 1998-05-13 | 2000-02-01 | Oak Technology, Inc. | CMOS low-voltage comparator |
US6177932B1 (en) * | 1998-08-21 | 2001-01-23 | Kana Communications, Inc. | Method and apparatus for network based customer service |
US6351734B1 (en) * | 1998-09-09 | 2002-02-26 | Unisys Corporation | System and method for resource allocation and planning |
US6349238B1 (en) * | 1998-09-16 | 2002-02-19 | Mci Worldcom, Inc. | System and method for managing the workflow for processing service orders among a variety of organizations within a telecommunications company |
US6691230B1 (en) * | 1998-10-15 | 2004-02-10 | International Business Machines Corporation | Method and system for extending Java applets sand box with public client storage |
US6314415B1 (en) * | 1998-11-04 | 2001-11-06 | Cch Incorporated | Automated forms publishing system and method using a rule-based expert system to dynamically generate a graphical user interface |
US6341277B1 (en) * | 1998-11-17 | 2002-01-22 | International Business Machines Corporation | System and method for performance complex heterogeneous database queries using a single SQL expression |
US20020029161A1 (en) * | 1998-11-30 | 2002-03-07 | Brodersen Robert A. | Assignment manager |
US6359633B1 (en) * | 1999-01-15 | 2002-03-19 | Yahoo! Inc. | Apparatus and method for abstracting markup language documents |
US6192371B1 (en) * | 1999-04-28 | 2001-02-20 | Lucent Technologies, Inc | Object morphing in an object oriented computing environment using relational database query procedure |
US6839682B1 (en) * | 1999-05-06 | 2005-01-04 | Fair Isaac Corporation | Predictive modeling of consumer financial behavior using supervised segmentation and nearest-neighbor matching |
US6530079B1 (en) * | 1999-06-02 | 2003-03-04 | International Business Machines Corporation | Method for optimizing locks in computer programs |
US6539374B2 (en) * | 1999-06-03 | 2003-03-25 | Microsoft Corporation | Methods, apparatus and data structures for providing a uniform representation of various types of information |
US7844594B1 (en) * | 1999-06-18 | 2010-11-30 | Surfwax, Inc. | Information search, retrieval and distillation into knowledge objects |
US6678882B1 (en) * | 1999-06-30 | 2004-01-13 | Qwest Communications International Inc. | Collaborative model for software systems with synchronization submodel with merge feature, automatic conflict resolution and isolation of potential changes for reuse |
US20020054152A1 (en) * | 1999-08-23 | 2002-05-09 | Murugan Palaniappan | Menu infrastructure apparatus and method |
US6851089B1 (en) * | 1999-10-25 | 2005-02-01 | Amazon.Com, Inc. | Software application and associated methods for generating a software layer for structuring semistructured information |
US20050059566A1 (en) * | 2000-01-05 | 2005-03-17 | Brown Jerry S. | Chemical and biological warfare decontaminating solution using peracids and germinants in microemulsions, process and product thereof |
US6529899B1 (en) * | 2000-01-12 | 2003-03-04 | International Business Machines Corporation | System and method for registering and providing a tool service |
US6678773B2 (en) * | 2000-01-13 | 2004-01-13 | Motorola, Inc. | Bus protocol independent method and structure for managing transaction priority, ordering and deadlocks in a multi-processing system |
US6701314B1 (en) * | 2000-01-21 | 2004-03-02 | Science Applications International Corporation | System and method for cataloguing digital information for searching and retrieval |
US20030037145A1 (en) * | 2000-03-15 | 2003-02-20 | Michael Fagan | Apparatus and method of allocating communications resources |
US20030009239A1 (en) * | 2000-03-23 | 2003-01-09 | Lombardo Joseph S | Method and system for bio-surveillance detection and alerting |
US20020049715A1 (en) * | 2000-05-09 | 2002-04-25 | Serrano-Morales Carlos A. | Approach for generating rules |
US20060020783A1 (en) * | 2000-08-30 | 2006-01-26 | Douglas Fisher | Method, system and service for conducting authenticated business transactions |
US20040034651A1 (en) * | 2000-09-08 | 2004-02-19 | Amarnath Gupta | Data source interation system and method |
US6678679B1 (en) * | 2000-10-10 | 2004-01-13 | Science Applications International Corporation | Method and system for facilitating the refinement of data queries |
US7318066B2 (en) * | 2000-10-31 | 2008-01-08 | Michael Philip Kaufman | System and method for generating automatic user interface for arbitrarily complex or large databases |
US20040205672A1 (en) * | 2000-12-29 | 2004-10-14 | International Business Machines Corporation | Automated spell analysis |
US20020120762A1 (en) * | 2001-01-18 | 2002-08-29 | Shang-Che Cheng | Globalization management system and method therefor |
US20020184610A1 (en) * | 2001-01-22 | 2002-12-05 | Kelvin Chong | System and method for building multi-modal and multi-channel applications |
US6526440B1 (en) * | 2001-01-30 | 2003-02-25 | Google, Inc. | Ranking search results by reranking the results based on local inter-connectivity |
US20020107684A1 (en) * | 2001-02-07 | 2002-08-08 | Kejia Gao | Methods and apparatus for globalising software |
US20030014399A1 (en) * | 2001-03-12 | 2003-01-16 | Hansen Mark H. | Method for organizing records of database search activity by topical relevance |
US7171415B2 (en) * | 2001-05-04 | 2007-01-30 | Sun Microsystems, Inc. | Distributed information discovery through searching selected registered information providers |
US6856992B2 (en) * | 2001-05-15 | 2005-02-15 | Metatomix, Inc. | Methods and apparatus for real-time business visibility using persistent schema-less data storage |
US20050055330A1 (en) * | 2001-05-15 | 2005-03-10 | Britton Colin P. | Surveillance, monitoring and real-time events platform |
US6711565B1 (en) * | 2001-06-18 | 2004-03-23 | Siebel Systems, Inc. | Method, apparatus, and system for previewing search results |
US20030004934A1 (en) * | 2001-06-29 | 2003-01-02 | Richard Qian | Creating and managing portable user preferences for personalizion of media consumption from device to device |
US20030050929A1 (en) * | 2001-08-16 | 2003-03-13 | Sentius Corporation | Automated creation and delivery of database content |
US20030050927A1 (en) * | 2001-09-07 | 2003-03-13 | Araha, Inc. | System and method for location, understanding and assimilation of digital documents through abstract indicia |
US20030050834A1 (en) * | 2001-09-07 | 2003-03-13 | Sergio Caplan | System and method for dynamic customizable interactive portal active during select computer time |
US20070061789A1 (en) * | 2001-09-21 | 2007-03-15 | Siebel Systems, Inc. | Methods and apparatus for integrated, automatic pseudo localization of software |
US20030061209A1 (en) * | 2001-09-27 | 2003-03-27 | Simon D. Raboczi | Computer user interface tool for navigation of data stored in directed graphs |
US20030084401A1 (en) * | 2001-10-16 | 2003-05-01 | Abel Todd J. | Efficient web page localization |
US7536294B1 (en) * | 2002-01-08 | 2009-05-19 | Oracle International Corporation | Method and apparatus for translating computer programs |
US7334039B1 (en) * | 2002-02-01 | 2008-02-19 | Oracle International Corporation | Techniques for generating rules for a dynamic rule-based system that responds to requests for a resource on a network |
US20070028225A1 (en) * | 2002-03-16 | 2007-02-01 | Whittaker James A | Method and apparatus for preemptive monitoring of software binaries by instruction interception and dynamic recompilation |
US20030229544A1 (en) * | 2002-06-10 | 2003-12-11 | Veres Robert Dean | Method and system for scheduling transaction listings at a network-based transaction facility |
US20070010991A1 (en) * | 2002-06-20 | 2007-01-11 | Shu Lei | Translation leveraging |
US20040133416A1 (en) * | 2002-07-18 | 2004-07-08 | Norio Fukuoka | Information terminal device, method of acquiring information corresponding to language identification information from server and program thereof, network system, additional function purchasing progam, and program function adding method |
US6985912B2 (en) * | 2002-07-22 | 2006-01-10 | Thought, Inc. | Dynamic object-driven database manipulation and mapping system having a simple global interface and an optional multiple user need only caching system with disable and notify features |
US20040024603A1 (en) * | 2002-07-31 | 2004-02-05 | Deere & Company | Method of providing localized information from a single global transformation source |
US20040049509A1 (en) * | 2002-09-11 | 2004-03-11 | International Business Machines Corporation | Methods and apparatus for managing dependencies in distributed systems |
US6856575B2 (en) * | 2002-10-21 | 2005-02-15 | Abb Offshore Systems Limited | Monitoring a microseismic event |
US20080216060A1 (en) * | 2002-11-20 | 2008-09-04 | Vargas Byron D | System for translating diverse programming languages |
US7171145B2 (en) * | 2002-12-13 | 2007-01-30 | Ricoh Company, Ltd. | Developing device and process cartridge for an image forming apparatus |
US20040133876A1 (en) * | 2003-01-08 | 2004-07-08 | Craig Sproule | System and method for the composition, generation, integration and execution of business processes over a network |
US20050027563A1 (en) * | 2003-01-29 | 2005-02-03 | Fackler James C. | System and method in a computer system for managing a number of attachments associated with a patient |
US20060041861A1 (en) * | 2003-05-06 | 2006-02-23 | Pegasystems Inc. | Methods and apparatus for digital data processing with mutable inheritance |
US20040236566A1 (en) * | 2003-05-20 | 2004-11-25 | Simske Steven J. | System and method for identifying special word usage in a document |
US20050044198A1 (en) * | 2003-08-08 | 2005-02-24 | Jun Okitsu | Method of controlling total disk usage amount in virtualized and unified network storage system |
US20050039191A1 (en) * | 2003-08-12 | 2005-02-17 | Chordiant Software, Inc. | Process/viewer interface |
US20050050000A1 (en) * | 2003-09-02 | 2005-03-03 | International Business Machines Corporation | Generation of XSLT style sheets for different portable devices |
US7318020B1 (en) * | 2003-10-08 | 2008-01-08 | Microsoft Corporation | Methods and systems for external localization |
US20050165823A1 (en) * | 2004-01-22 | 2005-07-28 | Microsoft Corporation | Binary dependency database |
US7665063B1 (en) * | 2004-05-26 | 2010-02-16 | Pegasystems, Inc. | Integration of declarative rule-based processing with procedural programming |
US20060080082A1 (en) * | 2004-08-23 | 2006-04-13 | Geneva Software Technologies Limited | System and method for product migration in multiple languages |
US7983895B2 (en) * | 2004-11-09 | 2011-07-19 | Sony Online Entertainment Llc | System and method for generating grammatically correct text strings |
US20060100847A1 (en) * | 2004-11-09 | 2006-05-11 | Mcentee Robert A | System and method for generating a target language markup language text template |
US20060271920A1 (en) * | 2005-05-24 | 2006-11-30 | Wael Abouelsaadat | Multilingual compiler system and method |
US20090075634A1 (en) * | 2005-06-29 | 2009-03-19 | Microsoft Corporation | Data buddy |
US20070094199A1 (en) * | 2005-08-30 | 2007-04-26 | International Business Machines Corporation | System and method for automatically processing dynamic business rules in a content management system |
US20070055938A1 (en) * | 2005-09-07 | 2007-03-08 | Avaya Technology Corp. | Server-based method for providing internet content to users with disabilities |
US20070118497A1 (en) * | 2005-11-22 | 2007-05-24 | Naotaka Katoh | Linking of identical character strings in differnt files |
US20070136068A1 (en) * | 2005-12-09 | 2007-06-14 | Microsoft Corporation | Multimodal multilingual devices and applications for enhanced goal-interpretation and translation for service providers |
US20070260584A1 (en) * | 2006-04-21 | 2007-11-08 | Marti Jordi M | System for processing formatted data |
US20090276206A1 (en) * | 2006-06-22 | 2009-11-05 | Colin Fitzpatrick | Dynamic Software Localization |
US20080195377A1 (en) * | 2007-02-09 | 2008-08-14 | International Business Machines Corporation | Method, device, and program product for verifying translation in resource file |
US20090158407A1 (en) * | 2007-12-13 | 2009-06-18 | Fiberlink Communications Corporation | Api translation for network access control (nac) agent |
US20090164494A1 (en) * | 2007-12-21 | 2009-06-25 | Google Inc. | Embedding metadata with displayable content and applications thereof |
US20090171938A1 (en) * | 2007-12-28 | 2009-07-02 | Microsoft Corporation | Context-based document search |
Cited By (69)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100107137A1 (en) * | 2004-05-26 | 2010-04-29 | Pegasystems Inc. | Methods and apparatus for integration of declarative rule-based processing with procedural programming in a digital data-processing evironment |
US8959480B2 (en) | 2004-05-26 | 2015-02-17 | Pegasystems Inc. | Methods and apparatus for integration of declarative rule-based processing with procedural programming in a digital data-processing environment |
US8479157B2 (en) | 2004-05-26 | 2013-07-02 | Pegasystems Inc. | Methods and apparatus for integration of declarative rule-based processing with procedural programming in a digital data-processing evironment |
US8335704B2 (en) | 2005-01-28 | 2012-12-18 | Pegasystems Inc. | Methods and apparatus for work management and routing |
US20100088266A1 (en) * | 2006-03-03 | 2010-04-08 | Pegasystems Inc. | Rules base systems and methods with circumstance translation |
US8073802B2 (en) | 2006-03-03 | 2011-12-06 | Pegasystems, Inc. | Rules base systems and methods with circumstance translation |
US8924335B1 (en) | 2006-03-30 | 2014-12-30 | Pegasystems Inc. | Rule-based user interface conformance methods |
US10838569B2 (en) | 2006-03-30 | 2020-11-17 | Pegasystems Inc. | Method and apparatus for user interface non-conformance detection and correction |
US8516193B1 (en) | 2006-03-30 | 2013-08-20 | Pegasystems Inc. | Techniques for content-based caching in a computer system |
US9658735B2 (en) | 2006-03-30 | 2017-05-23 | Pegasystems Inc. | Methods and apparatus for user interface optimization |
US9189361B2 (en) | 2007-03-02 | 2015-11-17 | Pegasystems Inc. | Proactive performance management for multi-user enterprise software systems |
US8250525B2 (en) | 2007-03-02 | 2012-08-21 | Pegasystems Inc. | Proactive performance management for multi-user enterprise software systems |
US10467200B1 (en) | 2009-03-12 | 2019-11-05 | Pegasystems, Inc. | Techniques for dynamic data processing |
US9678719B1 (en) | 2009-03-30 | 2017-06-13 | Pegasystems Inc. | System and software for creation and modification of software |
US20130035926A1 (en) * | 2010-01-18 | 2013-02-07 | Google Inc. | Automatic transliteration of a record in a first language to a word in a second language |
US9009021B2 (en) * | 2010-01-18 | 2015-04-14 | Google Inc. | Automatic transliteration of a record in a first language to a word in a second language |
US20110288852A1 (en) * | 2010-05-20 | 2011-11-24 | Xerox Corporation | Dynamic bi-phrases for statistical machine translation |
US9552355B2 (en) * | 2010-05-20 | 2017-01-24 | Xerox Corporation | Dynamic bi-phrases for statistical machine translation |
US10228933B2 (en) * | 2010-12-23 | 2019-03-12 | Microsoft Technology Licensing, Llc | Resource deployment based on conditions |
US20150234653A1 (en) * | 2010-12-23 | 2015-08-20 | Microsoft Technology Licensing, Llc | Resource deployment based on conditions |
US9495371B2 (en) | 2010-12-28 | 2016-11-15 | Microsoft Technology Licensing, Llc | Unified access to resources |
US8880487B1 (en) | 2011-02-18 | 2014-11-04 | Pegasystems Inc. | Systems and methods for distributed rules processing |
US9270743B2 (en) | 2011-02-18 | 2016-02-23 | Pegasystems Inc. | Systems and methods for distributed rules processing |
US8805671B1 (en) | 2011-02-28 | 2014-08-12 | Google Inc. | Contextual translation of digital content |
US8527259B1 (en) | 2011-02-28 | 2013-09-03 | Google Inc. | Contextual translation of digital content |
US8442811B1 (en) * | 2011-02-28 | 2013-05-14 | Google Inc. | Contextual translation of digital content |
US9015030B2 (en) * | 2011-04-15 | 2015-04-21 | International Business Machines Corporation | Translating prompt and user input |
US20130103384A1 (en) * | 2011-04-15 | 2013-04-25 | Ibm Corporation | Translating prompt and user input |
US8914276B2 (en) * | 2011-06-08 | 2014-12-16 | Microsoft Corporation | Dynamic video caption translation player |
US20120316860A1 (en) * | 2011-06-08 | 2012-12-13 | Microsoft Corporation | Dynamic video caption translation player |
US11500604B2 (en) | 2011-06-30 | 2022-11-15 | International Business Machines Corporation | Presenting a document on a computer |
US9081866B2 (en) * | 2011-09-23 | 2015-07-14 | Oracle International Corporation | Dynamic display of web page content based on a rules system |
US10572236B2 (en) | 2011-12-30 | 2020-02-25 | Pegasystems, Inc. | System and method for updating or modifying an application without manual coding |
US9195936B1 (en) | 2011-12-30 | 2015-11-24 | Pegasystems Inc. | System and method for updating or modifying an application without manual coding |
US8769404B2 (en) | 2012-01-03 | 2014-07-01 | International Business Machines Corporation | Rule-based locale definition generation for a new or customized locale support |
US20130174136A1 (en) * | 2012-01-03 | 2013-07-04 | International Business Machiness Corporation | Detecting, Compiling, and Updating a New Locale Object in Real Time |
US9400784B2 (en) | 2012-02-23 | 2016-07-26 | Microsoft Technology Licensing, Llc | Integrated application localization |
US9442744B2 (en) | 2012-02-23 | 2016-09-13 | Microsoft Technology Licensing, Llc | Multilingual build integration for compiled applications |
US8789015B2 (en) | 2012-02-23 | 2014-07-22 | Microsoft Corporation | Integrated application localization |
JP2013235382A (en) * | 2012-05-08 | 2013-11-21 | Nomura Research Institute Ltd | Multilingual web server system and multilingual support method in web server system |
US20140019951A1 (en) * | 2012-07-12 | 2014-01-16 | Rumiana Petrova | Mobile application translation |
US9239832B2 (en) * | 2012-08-03 | 2016-01-19 | Red Hat, Inc. | Modifying language of a user interface on a computing device |
US10162472B1 (en) * | 2013-09-24 | 2018-12-25 | EMC IP Holding Company LLC | Specifying sizes for user interface elements |
US20150149147A1 (en) * | 2013-11-26 | 2015-05-28 | International Business Machines Corporation | Language independent processing of logs in a log analytics system |
US9881005B2 (en) * | 2013-11-26 | 2018-01-30 | International Business Machines Corporation | Language independent processing of logs in a log analytics system |
US20150149148A1 (en) * | 2013-11-26 | 2015-05-28 | International Business Machines Corporation | Language independent processing of logs in a log analytics system |
US9852129B2 (en) * | 2013-11-26 | 2017-12-26 | International Business Machines Corporation | Language independent processing of logs in a log analytics system |
US11645946B2 (en) | 2014-06-09 | 2023-05-09 | Zing Technologies Inc. | Method of gesture selection of displayed content on a language learning system |
US10733905B2 (en) * | 2014-06-09 | 2020-08-04 | Lingozing Holding Ltd | Method and system for learning languages through a general user interface |
US20150356887A1 (en) * | 2014-06-09 | 2015-12-10 | Lingozing | Method And System For Learning Languages Through a General User Interface |
US11057313B2 (en) | 2014-10-10 | 2021-07-06 | Pegasystems Inc. | Event processing with enhanced throughput |
US10469396B2 (en) | 2014-10-10 | 2019-11-05 | Pegasystems, Inc. | Event processing with enhanced throughput |
US20160110346A1 (en) * | 2014-10-17 | 2016-04-21 | Christian Lieske | Multilingual content production |
US10909209B2 (en) | 2016-01-29 | 2021-02-02 | Oracle International Corporation | Dynamic insertion of content into webpages |
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 |
US10268536B2 (en) | 2016-11-30 | 2019-04-23 | Oracle International Corporation | Secure debugging with an encrypted token |
US20180203849A1 (en) * | 2017-01-13 | 2018-07-19 | Sap Se | Concept Recommendation based on Multilingual User Interaction |
US10394965B2 (en) * | 2017-01-13 | 2019-08-27 | Sap Se | Concept recommendation based on multilingual user interaction |
EP3611616A1 (en) | 2018-08-14 | 2020-02-19 | Pegasystems Inc. | Software code optimizer and method |
US11048488B2 (en) | 2018-08-14 | 2021-06-29 | Pegasystems, Inc. | Software code optimizer and method |
US11397600B2 (en) * | 2019-05-23 | 2022-07-26 | HCL Technologies Italy S.p.A | Dynamic catalog translation system |
US12197435B2 (en) * | 2020-03-05 | 2025-01-14 | Servicenow, Inc. | Localization procedures and prioritization for applications |
US20230148129A1 (en) * | 2020-03-05 | 2023-05-11 | Servicenow, Inc. | Improved localization procedures and prioritization for applications |
WO2022022554A1 (en) * | 2020-07-31 | 2022-02-03 | 华为技术有限公司 | Text display method, compilation method and related device |
US11567945B1 (en) | 2020-08-27 | 2023-01-31 | Pegasystems Inc. | Customized digital content generation systems and methods |
US20220117546A1 (en) * | 2020-10-19 | 2022-04-21 | Woundmatrix, Inc. | Wound measurement |
US11323532B1 (en) * | 2021-01-29 | 2022-05-03 | Salesforce.Com, Inc. | Data stream packaging |
US20230130046A1 (en) * | 2021-10-27 | 2023-04-27 | Canon U.S.A., Inc. | Devices, systems, and methods for displaying stenosis measurements and calculations |
Also Published As
Publication number | Publication date |
---|---|
WO2009097384A1 (en) | 2009-08-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20090132232A1 (en) | Methods and apparatus for implementing multilingual software applications | |
US10838569B2 (en) | Method and apparatus for user interface non-conformance detection and correction | |
JP6487282B2 (en) | Method for developing application to be executed in workflow management system, and apparatus for supporting generation of application to be executed in workflow management system | |
US7536696B2 (en) | Mechanism for handling input parameters | |
KR101150059B1 (en) | Mechanism for providing extended functionality to command line instructions | |
CA2501655C (en) | Mechanism for providing data driven command line output | |
US10565282B1 (en) | Automatic entry of suggested translated terms in an online application program | |
US7634397B2 (en) | Single server instance, multi-lingual applications based on loosely coupled metadata and presentation layers | |
US8468494B2 (en) | In-line editor | |
US7676798B2 (en) | Mechanism for obtaining and applying constraints to constructs within an interactive environment | |
US20140047325A1 (en) | Centralized field rendering system and method | |
US20110271184A1 (en) | Client application and web page integration | |
AU2004279192B2 (en) | Mechanism for analyzing partially unresolved input | |
US7610297B2 (en) | Method to automate resource management in computer applications | |
US20240242038A1 (en) | System and method for automated localization of software applications and user interfaces | |
Brauer | Developing Web Applications | |
Kipinä | Internationalization considerations in a custom-built PHP web application |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: PEGASYSTEMS INC., MASSACHUSETTS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:TREFLER, ALAN;REEL/FRAME:021746/0802 Effective date: 20081024 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |