************************************************************ 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]