Multi-language program.
Abstract
A computer application program packaging technique which accommodates the selection of a desired national language for the text portion of the program. The application program is divided into two portions, the operational code (2,3) and the text (2a, 3a). This division is maintained to the point of execution of the program. The operational code portion specifies the text portion by the use of objects, which refer to an identify individual text items. When called for by the operational code, the text objects are extracted from the text portion and used for the desired purpose. The objects are generic, that is, they are independent of the language in use. A change from one language to another is effected by simply replacing the text portion of the program with a new language.

Term
Term ended
Projected expiry passed 17 January 2009, 17.7 years ago.
- Priority
- Filed
- Published
- Projected expiry
- Today
10 claims: 3 independent, 7 dependent
- 1A method for supplying application programs with text material in a language of choice, comprising the steps of:a. preparing an operational code portion of the application program;b. preparing a text portion of said application program in a selected language by copying said text portion from a source containing the text for all languages available for selection;and,c. writing said operational code and said text portion to appropriate system libraries at installation on the using system.
- 2A multi-language system for application programs, comprising:a. an operational code portion of said program capable of being separately stored and identified;b. a text portion of said program, in a first national language selected from a plurality of text portions each in a different national language, separately stored from said operational code portion without storage address constraint;and,c. means responsive to said operational code portion for identifying and displaying data from said text portion.
- 8In a data processing system having a plurality of application programs and a system library, means for displaying the text material for said application programs in a selected language, comprising:a. operational code portions for each of said application programs;b. each of said operational code portions including multi-character text identification data identifying all text material to be displayed;c. a first text portion including text material in a first selected language identified according to said multi-character text identification data;d. a second text portion including text material in a second selected language identified according to said multi-character text identification data;and,e. means for selecting said first or second text portions for display of all text material.
Independent claims3
20 paragraphs, as filed
This invention relates generally to the use of a plurality of different national languages, English, French, German, Italian, etc., with the operational code of an application program, and specifically to application programs in which the operational code refers to text material, separated from the code portion, by means of tags which can be used with any language.
The increasing availability and use of computers throughout the world requires that the so-called "application programs", which are the computer programs directed to particular tasks performed under the direction of the user, provide messages to the operator in a language understood by the operator. For example, a computer being used in Germany for word processing must present messages and accept commands expressed in the German language.
In the past, this requirement has been satisfied by direct translation of all messages and commands and creation of a unique program for each language. While this solution has been satisfactory from the customer standpoint, that is, the user's requirements have been satisfied, it is far from satisfactory from the supplier's standpoint. The individual translation and modification of the program for each language was time consuming and led to undue multiplicity of products. That is, each time the text was translated, a unique program resulted. In the abstract, this might not appear to be a problem. However, the practical difficulties were substantial. For example, any change to the operation code of the program required individual rewriting of each separate language program. Further, the distribution of the programs to the customers required each distribution center to maintain a stock of all language programs. Perhaps the most significant problem, the fact that each language program was different, meant that the program for each language had to be individually tested and debugged. The fact that the program ran satisfactorily in English did not necessarily mean that the version in another language would perform satisfactorily. Finally, when a problem was detected in a program, it was not possible to immediately determine whether the difficulty arose because of the basic operational code or the portion unique to the particular language. This situation was made even worse as fixes were added to the individual programs, making them even more different and creating the potential for future incompatibility with changes to the operational code.
While systems existed which had the capability of displaying messages in different languages, these functioned by translating a message code into an address used to access a language dependent table which then supplied the actual memory address of the message in the desired language. These systems suffer from the fact that they are address dependent, which imposes undesirable constraints on operation of the system. Additionally, such systems generally had all messages in all languages stored in the system. This is an inefficient use of system storage and also constrains the system.
Furthermore, such systems lacked flexibility in that they did not lend themselves to alternative implementations. For example, they generally supplied either one or all of the languages, and there was no ability to select an intermediate number. The address dependent nature of the storage technique made it difficult to update or alter the system once it had been installed.
It has been common practice to provide for the use of different languages by writing the program in a first language, for example, English, where the text material is specified as unique objects. To provide another language for the program, these objects are translated and merged with the operational code to create a unique software package for each desired language.
Another approach involves the separation of the operational code and the text material until a particular language is selected. Subsequent to the selection of the language, the operational code and the text material are merged. The merged code and text is then run on a data processing system. This approach requires a merge operation to be performed each time a language change is made, which is not conducive to either speed or conversion or convenience to the operator.
U.S. Patent 4,365,315 describes a machine tool control system in which messages for the operator are presented in a language selected by the operator. All messages in all languages are resident in the computer storage hierarchy at all times. Access to the particular message in a selected language is accomplished by using a message code to access a message address table, which provides the address for the message in the desired language.
U.S. Patent 4,319,336 relates to a transaction oriented terminal system in which messages are stored at the terminal to relieve the communication link of the burden of transmitting large amounts of text.
A primary object of the invention is to provide an application program in a selected language without substantial impact on the operational code of the program.
An object of the invention is to provide an application program in which the operational code and the text material are separated and the operational code may be used with all language versions without modification.
Still another object of the invention is to provide an application program in which the text material is separated from the operational code and identified by object tags in the operational code.
Yet another object of the invention is to provide a multi-language system in which the operational code shares a plurality of different language text portions, one of which can be selected by the operator at the outset of operation.
These and other objects, features and advantages are realized by an application program having an operational code portion common to all the different languages, and the text material for each language is maintained as a separate entity on the media containing the application program. <ul id="ul0001" list-style="none"><li>Fig. 1 shows the program development process for programs according to the invention, and particularly the relationship between the programming development laboratory, the program translation centers, the software distribution center and the customer.</li><li>Fig. 2 shows the generalized content of the alternative forms of computer tape used to distribute the programs according to the invention.</li><li>Fig. 3 is a flow chart showing the interaction between the user, the data processing system and the application programs.</li><li>Fig. 4 shows a computer display screen presented to a user for the purpose of loading an application program and making a language.</li></ul>
With reference to Fig. 1, the program development laboratory 1 writes the operational code for application programs characterized as P1 through Pn. The operational code is the assemblage of instructions which, when loaded into a data processing system and run, causes the system to be directed to the solution of a particular application such as word processing, accounts receivable, etc. In the environment of this invention, the operational code does not include actual text material. That is, even though the application program causes text material to be sent to the display screen for guidance of the user, the operational code does not contain the text material per se. Instead, the operational code identifies the text material with a multi-character identification which is unrelated to the storage address at which the text material is to be stored.
This is not to say that the writing of the application program is done without reference to a language. Most commonly, at the time the operational code is written, the text materials will be written in English and stored in a separate library. The text material is tied to the operational code by the multi-character identification. That is, when the operational code requires the display of a text message for the user on the system display screen it will send a request for the particular message identified by the multi- character identification. The system will search the text library tape, locate the multi-character identification and display it to the operator.
As shown in block 1, the programming development laboratory which writes the application program will create the operational code 2 for application program 1, shown as P1 in the drawing, and, at the same time, create the English text 2a for the application program 1.
The programming development laboratory will usually be involved in the simultaneous development of a number of application programs, shown as P1 through Pn in the drawing. Each application program has an operational code portion such as 2 and 3, and a text portion shown as 2a and 3a.
When the writing and testing of the application program in English has been completed, the text material is sent to the translation center 10 for conversion into other national languages such as German, French, or Italian. The text material for programs P1 through Pn is translated into all the national languages to provide text tape portions 12a through 13a of the application program. It will be appreciated that the operational code does not have to be retested with the individual translated national languages because the translation process does not change anything in the operational code portion.
At this point, the operational code tape 2 and the English language text tape 3 are sent from the development laboratory 1 to the software distribution center 20. The translation center 10 sends the national language tapes 12a through 13a to the distribution center 20. The distribution center prepares the tapes which are sent directly to the customer. Depending on the customer's needs, the distribution tapes can take a variety of forms. The most common form will be customized tape 21 which contains a copy of the operational code 22, 23 through 24 for application programs P1, P2 through Pn and a corresponding English text portion 22a, 23a through 24a for application programs P1, P2 through Pn. Quite commonly, the customer will also order a secondary national language text for these programs. A tape, or tapes, containing the text for application programs P1 through Pn will be prepared at the distribution center from the translated text received from the translation center. As shown in the drawing, the secondary national language tape 32b can include the secondary national language text for a number of application programs P1, P2, P3, through Pn. These tapes are then sent from the distribution center to the customer 40, where they are installed and run on the data processing system. It will also be appreciated that the format of the tape sent from the distribution center to the customer may be varied according to the customer requirements. Some of the format options are shown in Fig. 2. In the event the customer orders application programs P1, P3 and P9, the operational code portions 51, 53 and 59, respectively, would be recorded on the tape to be sent to the customer. The tape would also include the primary national language text portions 51b, 53b and 59b corresponding to the operational code. A fully customized tape 50 could also contain text 51c, 53c and 59c representing an additional national language, for example NL3, corresponding to the application programs P1, P3 and P9. The universal tape 60, shown in FIG. 2, would contain the operational code portions 61, 62, 63 through 6n for all application programs P1 through Pn. Tape 60 would also contain the national language text portions 61b, 62b through 6nb, representing the national language text portion for the primary language NL1 used by all application programs P1 through Pn. Since language NL3 is selected as the secondary national language, the tape would also include national language text portions 61c, 62c through 6nc, representing the national text portion of the secondary national language NL3. It would also be possible to supply the operational code for application programs on a customized tape which is separate from the tape containing the language portion. This is shown in tape 70, which contains only the operational code portion 71, 73 and 79 for the application programs P1, P3 and P9. If a customized tape is used, the language portion must be supplied on a second tape. If this is done, the preferred form is to supply tapes such as 80, 90 and 100. Language portion tape 80 would contain text portion 81b, representing national language text for application program P1, text portion 82b, representing national language text for application program P2, and text portion 89b, representing national language text for application program P9. It would also be possible to supply the text for other application programs by including the text portion for these programs in 88b. This might be done to accommodate the future use of the language portion in the event that the application program operational code is later ordered by the customer. National language tape 90 follows the format of the national language tape 80 and includes the secondary national language text for the application programs. Tape 100 is an update tape. Since it is inevitable that additional or other modifications will become necessary, some format must be available for this purpose. As shown in tape 100, there are revision portions 101x, 102x and 109x, representing the modifications to the preexisting tapes. As in the case with tapes 80 and 90, modifications for all programs may be included on the tape so that no customization is necessary when distributing the tapes to customers. Fig. 3 is a flow chart showing the interaction between the user, the data processing system and the application program. When the data processing system is initially powered up, the initial program load (IPL) procedure requires an election of the desired language for the display of data. This election becomes the default selection, and prevails unless a specific selection of another language is made for a particular application program. At IPL time, depicted by block 301, the user is presented a generic prompt 302 on the display screen, which requires him to select a national language for the presentation of text as shown in block 303. In response to this selection, shown in block 304, the system IPL procedure locates the selected language portion containing the desired national language and places it in the system library list at a point near the beginning of the list and before any other language li brary. In addition, as shown in block 305, the system transfers control to the operator for the selection of a desired application program, designated as application program #1, for execution. The system then runs the application program #1, shown in block 306, utilizing the multiple character text identification of the operational code to seek out the text material from the first national language portion located in the system library. When the execution of application program #1 has been completed, the system returns control to the user for action. It will be appreciated that the execution of application program #1 may return control of the system to the user for purposes related to the application program. In block 307, after control of the data processing system has been surrendered by application program #1, the user may select a second application program for execution. At this time the display of Fig. 4 is presented to the user for selection of the application program and also an option to select a new national language. In response to this selection, in block 308, the system loads the operational code for the application program #2 and reorders the library sequence to place the language portion containing the desired national language near the beginning of the library, ahead of all other language portions. When this has been completed, as shown in block 309, the user initiates operation of the system to execute the application program #2. As shown in block 310, the data processing system then runs the application program #2 and displays the text material relating to this application program in the second national language. Upon completion of the application program #2, the data processing again returns control of the system to the user, as shown in block 311. Fig. 4 is representative of a display screen presented to the user at the time an application program is loaded into the data processing system preparatory to running the application. The first step for the operator is to make the selection of the desired application program from the list 401 representing all the application programs which are available to the system. The selection is accomplished by entering the program ID corresponding to the desired application program. The user elects to specify that a national language selection is to be made. This is done in line 410 of the display screen. The next step is the entry of the particular feature code corresponding to the national language which is desired to be selected. This is done by selecting the feature code from block 420 which represents the desired national language. The entry of this information selects the appropriate national language tape and places it in the system library in a position before all other language libraries, thereby ensuring that the system will encounter a match for the message identification with the desired national language portion before it reaches a match with any of the other language portions which may be on the system. The system uses libraries advantageously in performing the invention. The operating code for the application program will contain a multi-position identification number, for example, seven characters, for each text message. The text messages for each language are located in separate message files. That is, there is a separate message file for each language, and each message file contains all the text used by all the application programs which can be run on the system. If only one language is to be used on the system, only the message file corresponding to that language need be in the library. If more than one language is to be used, then the message file for each language must be in the library. Only one message file, and therefore, also only one language, may be used with one application program at a time. It is a characteristic of data processing systems, such as the IBM System 38 Data Processing System, that commands which specify a qualified object name will simply search the ordered list of libraries until a match is found. Thus, a display text command in the application program will specify an object with a seven character identifica tion which causes the library to be sequentially searched until a match is found. Although each message file will contain a match, the system will display only the first match found. It is a simple matter to place the message file containing the desired language before all the other message files to ensure that the correct language is selected. Location of the appropriate message file ahead of all the others is accomplished in response to an operator generated signal at the time of initial program load or the beginning of execution of the application program. It will be appreciated that the language selected may be different for different application programs and may even be different for sequential runs of the same application program. As an example, an operator familiar with English might elect to run a data entry application program in English. Another operator on the same system at a later point in time might prefer to run the program in Spanish. This invention accommodates such action since the application program operation code and the text are never combined. If it were necessary to integrate the operational code and the text prior to running the program in a new language, the switch between languages becomes impractical.
5 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| EP0528570A3 | Cited by | European Patent Office (EPO) | Search report |
| EP0426909A1 | Cited by | European Patent Office (EPO) | Search report |
| WO9311494A1 | Cited by | World Intellectual Property Organization (WIPO) | International search |
| US6065041A | Cited by | United States of America | Search report |
| US6341307B1 | Cited by | United States of America | Applicant |
| EP0701200A3 | Cited by | European Patent Office (EPO) | Search report |
| US6384922B1 | Cited by | United States of America | Applicant |
| JPH05197685A | Cited by | Japan | Search report |
| EP0528640A3 | Cited by | European Patent Office (EPO) | Search report |
| EP0701200A2 | Cited by | European Patent Office (EPO) | Search report |
| US5689671A | Cited by | United States of America | Search report |
| WO2006032846A3 | Cited by | World Intellectual Property Organization (WIPO) | International search |
| WO2006032846A2 | Cited by | World Intellectual Property Organization (WIPO) | International search |
| EP0335139A3 | Cited by | European Patent Office (EPO) | Search report |
| WO0073893A3 | Cited by | World Intellectual Property Organization (WIPO) | International search |
| EP0335139A2 | Cited by | European Patent Office (EPO) | Search report |
| WO0073893A2 | Cited by | World Intellectual Property Organization (WIPO) | International search |
| EP0528570A2 | Cited by | European Patent Office (EPO) | Search report |
| US7810031B2 | Cited by | United States of America | Search report |
| WO9914660A1 | Cited by | World Intellectual Property Organization (WIPO) | International search |
| EP0528640A2 | Cited by | European Patent Office (EPO) | Search report |
| GB2262368A | Cited by | United Kingdom | Search report |
| EP0121071A2 | Cites | European Patent Office (EPO) | Search report |
| EP0217174A2 | Cites | European Patent Office (EPO) | Search report |
7 members in 4 offices
Priority claims5
| Document | Office | Kind | Date |
|---|---|---|---|
| 169563 | United States of America | – | |
| 16956388 | United States of America | A | |
| 16956388 | United States of America | A | |
| 169563 | – | – | – |
| US19880169563 | – | – | – |
Members7
| Document | Office | Kind | |
|---|---|---|---|
| EP0333612A2This record | European Patent Office (EPO) | A2 | |
| JPH01243162A | Japan | A | |
| KR890015115A | Republic of Korea | A | |
| CN1038361A | China | A | |
| EP0333612A3 | European Patent Office (EPO) | A3 | |
| CN1017284B | China | B | |
| KR920009193B1 | Republic of Korea | B1 |
8 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Application deemed to be withdrawnWithdrawn18D | 18D | |
| Information on the status of an ep patent application or granted ep patentGrantedSTATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWNSTAA | STAA | |
| First examination report despatched17Q | 17Q | |
| Request for examination filed17P | 17P | |
| Designated contracting statesAK | AK | |
| Search report despatchedORIGINAL CODE: 0009013PUAL | PUAL | |
| Designated contracting statesAK | AK | |
| Public reference made under article 153(3) epc to a published international application that has entered the european phaseORIGINAL CODE: 0009012PUAI | PUAI |
Numbers
- Publication
- 0333612
- Publication, DOCDB
- 0333612
- Publication, EPODOC
- EP0333612
- Application
- 89480007
- Application, DOCDB
- 89480007
- Application, EPODOC
- EP19890480007
Titles3
- German
- Mehrsprachen-Programm
- English
- Multi-language program
- French
- Programme multilingue
Classification
- CPC, 3
- G06F9/454
- G06F3/023
- G06F40/58
- IPC, 5
- G06F15 00
- G06F3 048
- G06F3 14
- G06F9 44
- G06F17 28
Designated states3
- Contracting states, 3
- Germany
- France
- United Kingdom