GB2320593A - Multi-language computer system - Google Patents
Multi-language computer system Download PDFInfo
- Publication number
- GB2320593A GB2320593A GB9626576A GB9626576A GB2320593A GB 2320593 A GB2320593 A GB 2320593A GB 9626576 A GB9626576 A GB 9626576A GB 9626576 A GB9626576 A GB 9626576A GB 2320593 A GB2320593 A GB 2320593A
- Authority
- GB
- United Kingdom
- Prior art keywords
- language
- signals
- unit
- hook
- display unit
- 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.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/40—Processing or translation of natural language
- G06F40/58—Use of machine translation, e.g. for multi-lingual retrieval, for server-side translation for client devices or for real-time translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
- G06F9/454—Multi-language systems; Localisation; Internationalisation
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/23—Pc programming
- G05B2219/23097—Messages to operator in mother tongue, selection out of different languages
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Artificial Intelligence (AREA)
- Automation & Control Theory (AREA)
- Machine Translation (AREA)
- Stored Programmes (AREA)
- Document Processing Apparatus (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
Computer installation 1 for a paper pulping and manufacturing process has a central processing unit 2 which receives data from a variety of sensing location and instruction inputs. Output signals from unit 2 are handled by user-interface (UI) unit 4 and passed on to graphics card 5 for display on screen 3. Multi-language processor unit (MLPU) 6 has a number of data stores 7 each assigned to a specific different language. When MLPU 6 receives a request for another language and notes that a display, with script to be changed, is about to be created and displayed, the MLPU inserts language-modification signals LM into the UI signal by attaching the LM signals to a software hook.
Description
COMPUTER SYSTEM
The present invention relates to a computer system incorporating a multi-language facility and to a method of operating a multi-language facility in a computer system.
The wide-spread use of computer systems, especially by nonprofessionals, has meant that user-interfaces (sometimes referred to as windows environments) are increasingly important and valuable in ensuring fast and easy use of a number of software packages and in particular the switching between them. Furthermore, many software packages, especially those for operating systems, are marketed globally, requiring displayed script to be provided in appropriate languages.
One approach to attaining this requirement for displayed script to be available in a suitable language or dialect is to provide a number of language sub-routines in the source code; however, this requires substantial costly programming time, and makes the source code program large and cumbersome, inevitably increasing the likelihood of errors occurring, and consequently making it harder to detect and correct errors.
It is also hard to predict, at the initial development stage, which languages will be required and inevitably there is an incentive to minimise the up-front cost and development time required by limiting multi-language capabilities. However, this means that the subsequent addition of multi-language capability in the source code programs tends to be very expensive to do, particularly when a wide choice of many languages and/or dialects are required. Of course, in order to add multi-language capability at this stage, the programmer needs to have a detailed knowledge of the source code program and needs to ensure that the software for the capability is in the correct format.
The present invention provides a multi-language computer system comprising a central processor unit, a multi-language unit for providing script in any one of a number of languages for display on a display unit, characterised in that the multi-language unit comprises means for using language-modification signals in association with) signals for input to the display unit.
Preferably, one or more of the following features are also included:
means to apply language-modification signals to signals for input to the display unit and/or to user-interface signals;
means to remove language-modification signals from signals for input to the display unit and/or user-interface signals;
the multi-language unit utilises a hook in signals for input to the display unit and/or user-interface signals;
the multi-language unit utilises a CBT (Computer Based
Training) hook procedure and/or a MsgProc hook procedure;
a plurality of data stores, each containing a respective generic language and any dialects of that language.
In this way, the present invention provides for the incorporation of a capability for additional languages after initial development without any substantial modification to the source code.
The present invention also provides a method method of operating a multi-language computer system comprising a central processor unit and a multi-language unit for providing script in any one of a number of languages for display on a display unit, the method characterised by using language-modification signals in association with signals for input to the display unit.
The present invention is suitable for use in any form of computer system which utilises a user-interface, but is particularly applicable to computer systems which are used in industrial applications, for example for the monitoring and/or control of manufacturing, processing or materials refining operations.
A CBT (Computer Based Training) hook procedure is a tool to help end users learn how to use the software they have developed, and demonstrates the basic functionality of the application and allows the user to learn about the advanced features and functions of the application; the CBT hook procedure is called by the system before the system completes many common functions, including: activating, creating, destroying, minimising, maximising, sizing or moving a window; completing a system command; removing a mouse or keyboard event from the system message queue; setting the keyboard focus; or synchronising with the system message queue.
In CBT hook procedure, once a hook is installed, it can be called at various stages during the life cycle of the windows of an application. For each phase of that life cycle, the CBT hook is called and supplied with a message indicating the current state of the window. The language facility responds inside the hook to the messages of interest, which are HCTB-CREATwND (Create the window), HCBTeCTnTATE (Draw the window) and
HCBT~DESTROYWND (Destroy the window).
A MsgProc hook procedure is a tool used to monitor messages posted to the applications message queue where they can be intercepted, examined and modified as required, but not discarded.
Prior art multi-language facilities do not utilise these hooks.
In order that the invention may more readily be understood, a description is now given, by way of example only reference being made to the following sole Figure which is a schematic representation of part of a multi-language computer system incorporating the present invention.
In the sole accompanying Figure, there is shown a computer installation for the control of a paper pulping and manufacturing process having more than 1000 different principal operations. Each operation relates to a distinct action of e.g. a valve, motor or pump in a paper machine; typically a paper machine may have over 100 operations. The installation 1 has a central processing unit 2 which receives data from many sensing locations throughout the operations and any instructions input at a number of user consoles, each including a display screen 3. For ease of explanation, only one display screen 3 is shown in the Figure.
The central processing unit 2 operates the Windows NT operating system and the other software packages used in installation 1, the output signals from all of which are handled by a user-interface unit 4 (UIU) such that signals as required are passed on to a graphics card 5 for suitable processing for display screen 3 resulting in a window being displayed there.
A multi-language processor unit (MLPU) 6 has a number of data stores 7 each assigned to a specific different language and monitors the signals (hereafter called UI signals) output from user-interface unit 4. When MLPU 6 receives a request for another language and when the MLPU notes (by the presence of a CBT hook) that a display, with script to be changed to a different language, is about to be created and displayed, the MLPU accesses the appropriate data store 7, and then inserts language-modification signals (hereinafter called
LM signals) into the U1 signal by attaching the LM signals to the CBT hook of that UI signal. In this way, the UI signal is changed such that the text once displayed on screen 3 is in the requested language.
Attachment of the LM signal is done by MLPU 6 following the instructions in the window handle (HWND) of the UI signal, and then
MLPU 6 checks if there is a subsequent hook in the UI signal to which the final part of the LM signal is to be attached. The window handle
HWND is used to instigate a subclassing routine for the attached LM signal, thereby ensuring easy and quick restoration of the original UI signal when required, with minimal source code changes.
In this way, a change of language displayed on screen 3 is handled dynamically during running, and does not involve operations implemented by CPU 2 at the operating system level.
In a varient, MLPU 6 inserts the LM signals to the signals output from CPU 2 before they pass to U1U 4.
MLPU 6 handles the language-changing for a menu as follows: upon noting either message WM~INITMENU or WM~MENUREFRESH in a GetMsg hook of a UI signal, MLPU 6 uses the command number of that menu (disregarding command numbers for any sub-menus or fields) to search for, and extract from, the appropriate store 7 the translation of that menu. If the store does not have a translation of the menu, then appropriate LM signals have to be created piecemeal.
The procedure of the invention in more details is as follows:
When preparing, for display, a window to have changed-language, 1) watch for the CBT base unit in CPU 2 to be called when a new window is about to be created 2) check if the window is one requiring language modification 3) if yes, then chain into the windows code for future use 4) Allow the CBT hook to continue its normal execution 5) wait until the CBT is called to display the window 6) enable the code which was chained in step 3 7) make the language modifications 8) allow the CBT hook to continue and display the new texts.
When handling, after display, a window with changed-language, 1) wait for the CBT hook to be called when the window is about to be destroyed.
2) remove the chained code which was added in previous step 3.
Conventionally, the normal intended use of a CBT hook is to ensure that information on what is happening is conveyed to the user.
However, the present invention utilises the hooks procedure in an active manner thereby to achieve the language changing function, and not merely a passive way of monitoring events.
The present invention is distinguished over conventional multilanguage methods in that additional language code is added to the program without the windows knowledge. The significant advantage is that because it is known that the code exists and where it is, language changes by the user can be fed directly to this new chained code immediately and force the window to have its text changed accordingly in a transparent manner at any time.
As indicated hereinbefore, MLPU 6 operates to change the text not only to and between different languages (eg. English, French,
German), but also dialects (e.g. British English, US English; or
European French, Canadian French); thus the operation of MLPU 6 and data stores 7, and their relative arrangement, is designed to facilitate and expedite selection of languages/dialects and also the switching therebetween. Thus a data store 7 contains information for different dialects (e.g. British English and US English) of a single generic language while different generic languages (e.g. English and
French) are in different stores. If a user requests a dialect for which
MLPU 6 has no capability (e.g. Brazilian Spanish), then the generic language (i.e. in this example, European Spanish) is offered; if the generic language is not available, then US English is offered. MLPU 6 can be instructed to provide a different sequence e.g. from one dialect to another dialect in the same language (for example from Cajun
French to Canadian French), from one dialect to another generic language (for example from Brazilian Spanish to English) or from one dialect to another dialect in a different generic language (for example from Canadian French to British English); the MLPU 6 can also be instructed to offer a specific alternative language (or dialect) when a particular unavailable generic language is requested e.g. if
Portuguese is requested but not available, then European Spanish (rather than US English as normally provided) is offered. Clearly,
MLPU 6 is able to provide LM signals for languages in all scripts, for example incorporating English, Greek, Russian, Hebrew, Arabic,
Japanese or Chinese characters.
Installation 1 of the present invention may use the Msg Proc hook in addition to and/or as an alternative to the CBT hook.
The MsgProc hook procedure is an application-defined or librarydefined callback function that the system calls whenever the
GetMessage function has retrieved a message from an application message queue. Before passing the retrieved message to the destination window procedure, the system passes the message to the hook procedure.
The MsgProc hook procedure can examine or modify the message. After the hook procedure returns control to the system, the
GetMessage function returns the message, along with any modifications, to the application that originally called it.
An application installs this hook procedure by specifying the
WH-GETMESSAGE hook type and the address of the hook procedure in a call to the SetWindowsHookEx function.
MsgProc is a placeholder for the application-defined or libarydefined function name.
Claims (30)
1. A multi-language computer system comprising a central processor unit, a multi-language unit for providing script in any one of a number of languages for display on a display unit, the multi-language unit comprises means for applying language-modification signals to a hook element of signals for input to the display unit.
2. A system according to Claim 1 wherein the multi-language unit comprises means to apply language-modification signals to a hook element of userinterface signals.
3. A system according to Claim 1 or 2, wherein the multi-language unit comprises means to remove language-modification signals from signals for input to the display unit.
4. A system according to any preceding Claim wherein the multi-language unit comprises means to remove language-modification signals from userinterface signals.
5. A system according to any preceding Claim wherein the multi-language unit utilises a CBT hook.
6. A system according to any preceding Claim wherein the multi-language unit utilises a MsgProc hook.
7. A system according to any preceding Claim wherein the multi-language unit comprises a plurality of data stores each containing a respective generic language and any dialects of that language.
8. A multi-language computer system comprising a central processor unit, a multi-language unit for providing script in any one of a number of languages for display on a display unit , the multi-language unit comprising means for using language-modification signals in association with signals for input to the display unit, the multi-language unit comprising means to remove language-modification signals from signals for input to the display unit.
9. A system according to Claim 8 wherein the multi-language unit comprises means to remove language modification signals from the user-interface signals.
10. A system according to Claim 8 or 9 wherein the multi-language unit utilises a hook in a signal for input to the display unit.
11. A system according to any of Claims 8 to 10 wherein the multi-language unit utilises a hook in a user-interface signal.
12. A system according to any of Claims 8 to 11 wherein the multi-language unit utilises a CBT hook.
13. A system according to any of Claims 8 to 12 wherein the multi-language unit utilises a MsgProc hook.
14. A system according to any of Claims 8 to 13 wherein the multi-language unit comprises a plurality of data stores each containing a respective generic language and any dialects of that language.
15. A method of operating a multi-language computer system comprising a central processor unit and a multi-language unit for providing script in any one of a number of languages for display on a display unit, the method comprises applying language-modification signals to a hook element of signals for input to the display unit.
16. A method according to Claim 15 characterised by applying languagemodification signals to a hook element of user interface signals.
17. A method according to Claim 15 or 16 comprising removing languagemodification signals from signals for input to the display unit.
18. A method according to any of Claims 15 to 18 comprising removing language-modification signals from user-interface signals.
19. A method according to any of Claims 15 to 18 comprising utilising a
CBT hook.
20. A method according to any of Claims 15 to 19 comprising utilising a
Msg Proc hook.
21. A method according to any of Claims 15 to 20 comprising storing separately each generic language and any dialects of that language.
22. A method of operating a multi-language computer system comprising a central processor unit and a multi-language unit for providing script in any one of a number of languages for display on a display unit, the method comprising using and removing language-modification signals from signals for input to the display unit.
23. A method according to Claim 22 comprising removing languagemodification signals from user-interface signals.
24. A method according to Claim 22 or 23 comprising utilising a hook in signals for input to the display unit.
25. A method according to any of Claims 22 to 24 comprising utilising a hook in user-interface signals.
26. A method according to any of Claims 22 to 25 comprising utilising a
CBT hook.
27. A method according to any of Claims 22 to 26 comprising utilising a
Msg Proc hook.
28. A method acording to any of Claims 22 to 27 comprising storing separately each generic language and any dialects of that language.
29. A multi-language computer system substantially as hereinbefore described with reference to and/or as shown in the sole accompanying Figure.
30. A method of operating a multi-language computer system substantially as hereinbefore described with reference to and /or as shown in the sole accompanying
Figure.
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB9626576A GB2320593A (en) | 1996-12-20 | 1996-12-20 | Multi-language computer system |
JP52850898A JP2001508895A (en) | 1996-12-20 | 1997-12-19 | Computer system |
EP97949014A EP1008040A2 (en) | 1996-12-20 | 1997-12-19 | Computer system |
AU78755/98A AU7875598A (en) | 1996-12-20 | 1997-12-19 | Computer system |
PCT/GB1997/003374 WO1998028682A2 (en) | 1996-12-20 | 1997-12-19 | Multilingual computer system |
CA002275169A CA2275169A1 (en) | 1996-12-20 | 1997-12-19 | Computer system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB9626576A GB2320593A (en) | 1996-12-20 | 1996-12-20 | Multi-language computer system |
Publications (2)
Publication Number | Publication Date |
---|---|
GB9626576D0 GB9626576D0 (en) | 1997-02-05 |
GB2320593A true GB2320593A (en) | 1998-06-24 |
Family
ID=10804812
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
GB9626576A Withdrawn GB2320593A (en) | 1996-12-20 | 1996-12-20 | Multi-language computer system |
Country Status (6)
Country | Link |
---|---|
EP (1) | EP1008040A2 (en) |
JP (1) | JP2001508895A (en) |
AU (1) | AU7875598A (en) |
CA (1) | CA2275169A1 (en) |
GB (1) | GB2320593A (en) |
WO (1) | WO1998028682A2 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19835920A1 (en) * | 1998-08-07 | 2000-02-17 | Viessmann Werke Kg | Monitoring and operating device for heating systems |
WO2001096969A1 (en) * | 2000-06-16 | 2001-12-20 | Husky Injection Molding Systems Ltd. | Interface for machine operation |
EP1439463A2 (en) * | 2003-01-16 | 2004-07-21 | Siemens Aktiengesellschaft | A drive controller operator interface |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5100798B2 (en) * | 2010-08-18 | 2012-12-19 | キヤノン株式会社 | Information processing apparatus, information processing method, and program |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0047414A1 (en) * | 1980-09-08 | 1982-03-17 | KEARNEY & TRECKER CORPORATION | Method and apparatus for multilingual communications of computer-specified control messages |
EP0121071A2 (en) * | 1983-03-30 | 1984-10-10 | International Business Machines Corporation | Concurrent multi-lingual use in data processing systems |
EP0134897A2 (en) * | 1983-07-27 | 1985-03-27 | International Business Machines Corporation | Method for allowing a program to be independent of the national language in which an input to the data processing system is received |
WO1994011811A1 (en) * | 1992-11-13 | 1994-05-26 | Microsoft Corporation | Multi-lingual computer programs |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01266656A (en) * | 1988-04-18 | 1989-10-24 | Nec Corp | Message managing system |
US5428772A (en) * | 1991-10-01 | 1995-06-27 | Prime Computer, Inc. | Data processing system providing user interaction in multiple natural languages |
US5432940A (en) * | 1992-11-02 | 1995-07-11 | Borland International, Inc. | System and methods for improved computer-based training |
CA2138626A1 (en) * | 1993-12-23 | 1995-06-24 | Timothy L. Smokoff | Method and system for providing multilingual text in a electronic medical device |
-
1996
- 1996-12-20 GB GB9626576A patent/GB2320593A/en not_active Withdrawn
-
1997
- 1997-12-19 WO PCT/GB1997/003374 patent/WO1998028682A2/en not_active Application Discontinuation
- 1997-12-19 CA CA002275169A patent/CA2275169A1/en not_active Abandoned
- 1997-12-19 EP EP97949014A patent/EP1008040A2/en not_active Withdrawn
- 1997-12-19 JP JP52850898A patent/JP2001508895A/en active Pending
- 1997-12-19 AU AU78755/98A patent/AU7875598A/en not_active Abandoned
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0047414A1 (en) * | 1980-09-08 | 1982-03-17 | KEARNEY & TRECKER CORPORATION | Method and apparatus for multilingual communications of computer-specified control messages |
EP0121071A2 (en) * | 1983-03-30 | 1984-10-10 | International Business Machines Corporation | Concurrent multi-lingual use in data processing systems |
EP0134897A2 (en) * | 1983-07-27 | 1985-03-27 | International Business Machines Corporation | Method for allowing a program to be independent of the national language in which an input to the data processing system is received |
WO1994011811A1 (en) * | 1992-11-13 | 1994-05-26 | Microsoft Corporation | Multi-lingual computer programs |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19835920A1 (en) * | 1998-08-07 | 2000-02-17 | Viessmann Werke Kg | Monitoring and operating device for heating systems |
DE19835920C2 (en) * | 1998-08-07 | 2001-08-16 | Viessmann Werke Kg | Monitoring and operating device for heating systems |
WO2001096969A1 (en) * | 2000-06-16 | 2001-12-20 | Husky Injection Molding Systems Ltd. | Interface for machine operation |
EP1439463A2 (en) * | 2003-01-16 | 2004-07-21 | Siemens Aktiengesellschaft | A drive controller operator interface |
EP1439463A3 (en) * | 2003-01-16 | 2006-12-27 | Siemens Aktiengesellschaft | A drive controller operator interface |
Also Published As
Publication number | Publication date |
---|---|
WO1998028682A2 (en) | 1998-07-02 |
JP2001508895A (en) | 2001-07-03 |
WO1998028682A3 (en) | 1999-10-21 |
AU7875598A (en) | 1998-07-17 |
EP1008040A2 (en) | 2000-06-14 |
CA2275169A1 (en) | 1998-07-02 |
GB9626576D0 (en) | 1997-02-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6496203B1 (en) | Standardized and application-independent graphical user interface components implemented with web technology | |
EP0816991B1 (en) | Method and system for providing feedback information on a graphical user interface | |
US5715463A (en) | Installation utility for device drivers and utility programs | |
US6802055B2 (en) | Capturing graphics primitives associated with any display object rendered to a graphical user interface | |
Loy et al. | Java swing | |
US6401134B1 (en) | Detachable java applets | |
US5907326A (en) | System and method for updating cultural profiles with dragging and dropping locale objects | |
US5978585A (en) | Development system with improved methods for recompiling dependent code modules | |
US7908560B2 (en) | Method and system for cross-screen component communication in dynamically created composite applications | |
US5418941A (en) | Method and apparatus for a dynamic application test facility | |
US20010005852A1 (en) | Active debugging environment for applications containing compiled and interpreted programming language code | |
EP1204919A1 (en) | Introspective editor system, program, and method for software translation | |
KR20040068464A (en) | Method and Apparatus For Interoperation Between Legacy Software and Screen Reader Programs | |
US20060090138A1 (en) | Method and apparatus for providing DHTML accessibility | |
EP0602845A2 (en) | Message dispatching in an event driven architecture | |
US6526565B1 (en) | Packaging algorithm for providing object oriented applications having reduced footprints | |
US20100088689A1 (en) | Branding binary modules using resource patching | |
EP1025489B1 (en) | System to associate control with applications using drag and drop interface | |
Brunet et al. | Accessibility requirements for systems design to accommodate users with vision impairments | |
Morris | Delphi Made Simple | |
GB2320593A (en) | Multi-language computer system | |
Smyth | Android Studio 3.0 Development Essentials-Android 8 Edition | |
JP2001318796A (en) | Program execution control method using internal and external event driven system, recording medium and program preparation support system | |
Griffiths et al. | NET Windows forms in a nutshell | |
US20060130027A1 (en) | Data processing system and method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WAP | Application withdrawn, taken to be withdrawn or refused ** after publication under section 16(1) |