************************************************************
README.TXT
Innoview MultilanguageTM for Delphi
Commercial demo of version 1.2 - Released 1/1/1997
************************************************************

Follow the steps to complete the setup and take the product in use:

A. SYSTEM REQUIREMENTS
B. GENERAL INFORMATION
C. HOW TO INSTALL INNOVIEW MULTILANGUAGE
D. USING INNOVIEW MULTILANGUAGE
E. COMMERCIAL VERSION AVAILABILITY
F. REGISTRATION
G. GETTING HELP
H. CONTACTING INNOVIEW PRODUCT SUPPORT
I. COMPANY CONTACT INFO
---------------------------------------------------------------------------


---------------------------------------------------------------------------
A. SYSTEM REQUIREMENTS
---------------------------------------------------------------------------

System Requirements (16 bit):

* Microsoft® Windows version 3.1 or later

* Borland® Delphi 1.0


System Requirements (32 bit):

* Microsoft® Windows NT version 3.51 or later,
  or Microsoft® Windows 95

* Borland® Delphi 2.0 or later


---------------------------------------------------------------------------
B. GENERAL INFORMATION
---------------------------------------------------------------------------

WHAT IS INNOVIEW MULTILANGUAGE?

Innoview Multilanguage is a collection Delphi components and tools 
providing an easy and flexible way to localize your applications or make them
multilingual. The following paragraphs describes some key terms used by 
the Innoview Multilanguage.


LOCALIZED PROGRAM

Localization means converting a program to a local market. In most cases
you only convert all the strings to the local language. In some cases you
also have to make some slight modifications to the program to meet the local
standards and culture. A localized program can only support one language.
For example the native language might be English. If you decide to localize
the program to German, French and Spanish you will have four different
versions of the program - each supporting one language.


MULTILINGUAL PROGRAM

Making multilingual is like localization to many languages simultaneously. 
A multilingual program usually supports multiple languages and the user 
can switch back and forth between the languages - even at run time. You  
do not have to maintain multiple localized versions of the program but 
only one, the multilingual program. This saves time and money. It is also 
more convenient to your customers. Innoview Multilanguage makes it easy 
to create a multilingual application.


DICTIONARY

Dictionary contains the translation, the language and the locale tables.
The translation table contains the words of the application in all supported
languages. The first column contains the strings in the native language. 
This is the language you use to write your application. The other columns 
contains other supported languages. The language table contains information
about each supported language. The locale table contains information about 
each supported locale.


TARGET PROPERTIES

Target properties are string based properties you define. Innoview Multilanguage
translates all the target properties found in the components laying on the same
form than the TIvMultiLanguage component.


SIMPLE PROPERTIES

A simple property is a target property that type is either String or TStrings.
The TIvMultiLanguage translates simple properties if the property name is included
in the Targets property. For example, the Caption property of the TLabel component 
is a simple property.


COMPLEX PROPERTIES

A complex property is a target property that type is not String or TStrings but
that contains string data. By default the TIvMultiLanguage does not translate
complex properties. To translate them you must derive your own multilanguage
component from the TIvMultiLanguage and override the TranslateComplexProperties
method. For example, the Items properties of the TListView and TTreeView are 
complex properties.


STRING SCANNER

The String Scanner is a program that scans your application and adds all 
the simple properties you specify to Innoview Multilanguage compatible
dictionary. This dictionary is called the project dictionary. String Scanner
also creates the dictionary tables for you. String Scanner makes it easy to 
pick up all the simple properties of the application. You no longer need to
search manually the strings to be translated. String Scanner does this for you.
It scans the form and/or unit files adding new strings to the native column 
of the dictionary. You are responsible to add the translate columns to the 
dictionary.


COMPATIBLE LANGUAGES

Innoview Multilanguage works with all the languages that use single byte, 
left to right character set such as the languages using either Latin or 
Cyrillic character sets. The languages in the dictionary must use the same
character set if you want to switch language on the fly.


MULTILANGUAGE COMPONENTS

Innoview Multilanguage contains Delphi components to be included into your 
application. Each component can be compiled using either Delphi 1.0 or 
Delphi 2.0.



---------------------------------------------------------------------------
C. HOW TO INSTALL INNOVIEW MULTILANGUAGE
---------------------------------------------------------------------------

To set up Innoview Multilanguage component:
1. Choose either the 16 bit or the 32 bit EXE file.
3. Run the setup program by double clicking the EXE file.
4. Follow the instructions that appear on the screen.
5. Add the components into component library of Delphi. IVMULREG.DCU 
   (IVMULREG.PAS if you have the source codes) contains the Register
   function.
6. Merge the IVMULTI.KWF (IVMULT16.KWF in 16 bit) help keyword file.
7. Copy the IVMULTI.HLP and IVMULTI.CNT (IVMULT16.HLP in 16 bit) file into 
   the directory on the search path.


---------------------------------------------------------------------------
D. USING INNOVIEW MULTILANGUAGE
---------------------------------------------------------------------------

The following steps will explain you a typical way to use Innoview 
Multilanguage. It is not the only way to use the product but it is
a good place to start. In time you will modify the procedure to meet
you requirements.


STEP 1: CREATE A DICTIONARY

The main idea of a multilanguage component is to iterate each child component
of the form or the component and translate their Labels, Hints, Text... to 
another language. The translation is made by finding the corresponding string
and replacing the old with the new one. For that Multilanguage needs a lookup 
table - the translation table. It contains all the strings the application uses
in each language.

In addition to the translate table Multilanguage (and Windows) need to know what
is the current language. To provide this information each dictionary contains 
another table called the language table. It contains information about the 
languages the translation table contains.

Switching between languages is not good enough in a good multilingual program. 
The program also have to adapt to some local customs and standards such date
and time formats, currency and measurement system. To provide this Multilanguage
uses locale data. 32-bit Multilanguage uses Win32 NLSAPI to get the locale 
information. 16-bit Multilanguage needs a third table called the locale table.
Also 32-bit Multilanguage can contain a locale table. The component uses this 
table if it fails to find the data from the NLSAPI.

These three tables has been include into a dictionary component. Generally 
there is only one dictionary for whole application. Innoview Multilanguage
contains three kind of dictionary implementations: file (TIvFileDictionary), 
embedded (TIvEmbeddedDictionary) and database dictionaries (TIvDBDictionary).
The database dictionary is generally the easiest, fastest and the most 
convenient to maintain. On the other hand there is no point to use the database 
dictionary if your program does not use databases. Having database support (BDE)
would only add more overhead and complexity to the program itself and especially
to the setup program.

In cases like that you can either uses a text file or an embedded dictionary. 
To choose the right one depends on the needs of your program. Use an embedded 
dictionary if you do not have to add any new languages after the compilation. 
Using an embedded dictionary it is possible to build up a single file 
application - the EXE file. Use a text file dictionary if you have to add new
languages after the compilation (e.g. your local distributor could do this).

If neither of the dictionaries components should meet you need you can always 
derive your own dictionary. You can create an empty dictionary manually but 
the best way it to let the Project Expert create it. Start String Scanner and 
choose File -> New... from the String Scanner.


Step 2: ADD THE MULTILANGUAGE COMPONENTS

Generally you have to create one dictionary object for the application and 
one multilanguage component for each form you have. You can visually insert
a dictionary component and multilanguage component to each form, set the 
properties and finally open the component in the constructor of the form.
Add a TIvMultilanguage or TIvExtendedMultilanguage (if your application 
uses TTreeView, TListView or TOutline components) component to each form 
of your application. This might, however, be quite laborious in the case 
you have several forms. In such case it is usually a good idea to derive 
your own form from the TForm and include TIvMultilanguage component to the
derived form. By doing this you do not have to manually include TIvMultilanguage
component to every form. See online help to get more information.


Step 3: WRITE THE APPLICATION

Each dictionary must contain the translation, language and the locales (only
16-bit Multilanguage) tables. If you use TIvFileDictionary or TIvEmbeddedDictionary
component set the FileName, LanguageFileName and the LocaleFileName properties. 
If you use TIvDBDictionary set the DatabaseName, TableName, LanguageTableName and 
LocaleTableName properties. You must also specify the language using the 
PrimaryLanguage and the SubLanguage properties. Set the Targets and Dictionary 
properties of the TIvMultilanguage component. You must open the TIvMultilanguage 
component in the constructor of the form by calling the Open method. That will 
open the dictionary (if not already open), iterate each component in the form and 
translate their texts. If you will later change the language, just set the new value
to the Locale or the Language property. The Translate method of the TIvDictionary 
component can be used to translate other text (e.g. the system messages) from 
the native language to the current language. Use the multilingual routines to format
measure quantities, format messages, show message or query boxes.


Step 4: SCAN THE APPLICATION

Every now and then it is a good place to scan the application with the String 
Scanner. It will inform you if it found any new strings.


Step 5: TRANSLATE THE DICTIONARY

Up till now you have programmed the application, created the dictionary and 
scanned the program files to update the dictionary. Your multilingual program
is almost ready. The last task to accomplish is to translate the dictionary.
If you use a file dictionary or an embedded dictionary you can edit the 
dictionary file by any Windows based text editor (e.g. Notepad). If the 
dictionary is large or the word varies in width it is quite hard to follows
the text in a text editor. 
In such case you can load the dictionary file into a spreadsheet program 
(e.g. Excel), edit the dictionary and write it back to the text file.
If you use a database dictionary you can edit the dictionary file by 
the Database Desktop application.



---------------------------------------------------------------------------
E. COMMERCIAL VERSION AVAILABILITY
---------------------------------------------------------------------------

If you have uploaded the demo version of Innoview Multilanguage, you may wish
to obtain the official version of the product or order additional copies for
other developers.

The commercial version of Innoview Multilanguage for Delphi comes complete 
with all source code.  It is only available by direct purchase from Innoview
authorized resellers listed at:

  http://www.innoview-data.com/products/multi/order.htm


Suggested retail pricing for our products is as follows:

* Innoview Multilanguage for Delphi (ver. 1.2) - $ 190 USD
- includes technical support, source 16/32-bit code and 
  programmers manual.

* Multilingual Common Dialog Components (Add On) - $290 USD
- includes technical support, source 16/32-bit code and 
  programmers manual.


We also offer volume discounts for purchase of 10 or more 
licenses.

You can contact Innoview Data Technology at:

http:	www.innoview-data.com
E-mail  info@innoview-data.com
Fax     +358-(0)9-4762 0555
Phone   +358-(0)9-4762 0550



---------------------------------------------------------------------------
F. REGISTRATION
---------------------------------------------------------------------------

You can make the online registration at our Web (at address: http://www.
innoview-data.com/support/) or fill up the registration card and mail it 
to us. This will enable your personal account in our Internet server.

Using the account you can download updates and bug fixes. You can also 
join to mailing list that keeps you updated about Innoview Multilanguage
and multilingual programming technology.

Note: the registration card comes only with commercial product purchased
      from authorized Innoview reseller (look your nearest vendor at:
      http://www.innoview-data.com/products/multi/order.htm).


---------------------------------------------------------------------------
G. GETTING HELP
---------------------------------------------------------------------------

For complete instructions on using Innoview Multilanguage component, see 
Multilanguage component online Help. 

You can also get more information and tips from our Internet site:
http://www.innoview-data.com/products/multi/.


---------------------------------------------------------------------------
H. CONTACTING INNOVIEW PRODUCT SUPPORT
---------------------------------------------------------------------------

If you have a question about Innoview Multilanguage component, first look 
in online Help. If you still cannot find the answer, contact Innoview Product
Support by:

* Email:    multilanguage@innoview-data.com
* Tel:      +358-9-4762 0550
* Fax:      +358-9-4762 0555
* Internet: http://www.innoview-data.com/support/


---------------------------------------------------------------------------
I. COMPANY CONTACT INFO
---------------------------------------------------------------------------

Postal address:

Innoview Data Technologies Ltd.
Etelaranta 14 A 6
FIN-00130 Helsinki
Finland

Email:	   info@innoview-data.com
Internet:  http://www.innoview-data.com
Phone:     +358-9-4762 0550
Fax:       +358-9-4762 0555


[EOF]