COMPUTER SYSTEM

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 locations and instructions inputs. Output signals from unit (2) are handled by user-interface unit (4) (UIU) and passed on to graphics card (5) for display 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 U1 signal by attaching the LM signals to the CBT 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 non- professionals, 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 applying language-modification signals to a hook element of 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 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 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 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 applying language- modification signals to a hook element of 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 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), HCBT_ACTIVATE (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. The present invention preferably uses a CBT hook or Msg Proc hook, but can use other hooks. Prior art multi-language facilities do not utilise these hooks. The present invention may also provide 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 system characterised in that the multi-language unit comprises means to remove language- modification signals from signals for input to the display unit. Thus the present invention may also provide 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 language-modification signals in association with signals for input to the display unit, the method characterised by removing language-modification signals from signals for input to the display unit. 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 Ul 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 UIU 4. MLPU 6 handles the language-changing for a menu as follows: upon noting either message WMJNITMENU 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 multi-language 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 library-defined 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 libary-defined function name.

Claims: CLAIMS 1. A multi-language computer system (1) comprising a central processor unit (2), a multi-language unit (6) for providing script in any one of a number of languages for display on a display unit (3), characterised in that the multi-language unit (6) comprises means (6) for applying language- modification signals (LM) to a hook element of signals (UI) for input to the display unit (3). 2. A system according to Claim 1 characterised in that the multi- language unit (6) comprises means (6) to apply language-modification signals (LM) to a hook element of user-interface signals (UI). 3. A system according to Claim 1 or 2, characterised in that the multi-language unit (6) comprises means (6) to remove language-modification signals (LM) from signals (UI) for input to the display unit (3). 4. A system according to any preceding Claim characterised in that the multi-language unit (6) comprises means (6) to remove language- modification signals (LM) from user-interface signals (UI). 5. A system according to any preceding Claim characterised in that the multi-language unit (6) utilises a CBT hook. 6. A system according to any preceding Claim characterised in that the multi-language unit (6) utilises a MsgProc hook. 7. A system according to any preceding Claim characterised in that the multi-language unit (6) comprises a plurality of data stores (7) each containing a respective generic language and any dialects of that language. 8. A multi-language computer system (1) comprising a central processor unit (2), a multi-language unit (6) for providing script in any one of a number of languages for display on a display unit (3), the multi-language unit comprising means (6) for using language-modification signals (LM) in associationn with signals (UI) for input to the display unit (3), the system characterised in that the multi-language unit (6) comprises means (6) to remove language- modification signals (LM) from signals (UI) for input to the display unit (3). 9. A system according to Claim 8 characterised in that the multi- language unit (6) comprises means (6) to remove language modification signals (LM) from the user-interface signals (UI). 10. A system according to Claim 8 or 9 characterised in that the multi-language unit (6) utilises a hook in a single (UI) for input to the display unit (3). 11. A system according to any of Claims 8 to 10 characterised in that the multi-language unit (6) utilises a hook in a user-interface signal (UI). 12. A system according to any of Claims 8 to 11 characterised in that the multi-language unit (6) utilises a CBT hook. 13. A system according to any of Claims 18 to 12 characterised in that the multi-language unit (6) utilises a MsgProc hook. 14. A system according to any of Claims 8 to 13 characterised in that the multi-language unit (6) comprises a plurality of data stores (7) each containing a respective generic language and any dialects of that language. 15. A method of operating a multi-language computer system (1) comprising a central processor unit (2) and a multi-language unit (6) for providing script in any one of a number of languages for display on a display unit (3), the method characterised by applying language-modification signals (LM) to a hook element of signals (UI) for input to the display unit (3). 16. A method according to Claim 15 characterised by applying language -modification signals (LM) to a hook element of user interface signals (UI). 17. A method according to Claim 15 or 16 characterised by removing language-modification signals (LM) from signals (UI) for input to the display unit (3). 18. A method according to any of Claims 15 to 18 characterised by removing language-modification signals (LM) from user-interface signals (UI). 19. A method according to any of Claims 15 to 18 characterised by utilising a CBT hook. 20. A method according to any of Claims 15 to 19 characterised by utilising a Ms Proc hook. 21. A method according to any of Claims 15 to 20 characterised by storing separately each generic language and any dialects of that language. 22. A method of operating a multi-language computer system (1) comprising a central processor unit (2) and a multi-language unit (6) for providing script in any one of a number of languages for display on a display unit (3), the method comprising using language-modification signals (LM) in association with signals (UI) for input to the display unit (3), the method characterised by removing language-modification signals (LM) from signals (UI) for input to the display unit (3). 23. A method according to Claim 22 characterised by removing language-modification (LM) signals from user-interface signals (UI). 24. A method according to Claim 22 or 23 characterised by utilising a hook in signals (UI) for input to the display unit (3). 25. A method according to any of Claims 22 to 24 characterised by utilising a hook in user-interface signals (UI). 26. A method according to any of Claims 22 to 25 characterised by utilising a CBT hook. 27. A method according to any of Claims 22 to 26 characterised by utilising a Msg Proc hook. 28. A method acording to any of Claims 22 to 27 characterised by storing separately each generic language and any dialects of that language.

Inventors: BACON PAUL, BACON, PAUL
Applicants: BACON PAUL, HONEYWELL OY, BACON, PAUL
Application year: 1997
Main classification: G06F9
IPC codes: G05B19, G06F3, G06F9, G06F17