TAlLanguagesStore TAlLanguager ************ (C) 1999 Aldo Ghigliano aldog@ivg.it aldo.ghigliano@iname.com Portions (C) RxLib, AO ROSNO, Master-Bank This is freeware, and "As Is", but: - if you modify this unit, you have to mail to me all modifications, and to obtain my acknowledgment before to distribute them; - gift (may be 5$, enclose it in a sheet, then in an envelope, and send to Ghigliano Aldo - Viale Riviera 82 - 17027 Pietra Ligure - Italy) are well accepted; WARNING Aldo Ghigliano is not responsable of anything happens using this unit. Use it at your own risk 1.01 ************ PURPOSE: Localization (language translation) of forms for large projects by automatically using conditional compiler directives (ifdef..endif). PLATFORMS: Delphi3. Maybe 4. NEEDS: Rx Lib of MasterBank. You can download it from DSP. CREDITS: I have the idea after I have see TVCLlocalizer by Markus Stephany mailto:mirbir.st@t-online.de INSTALLATION: Do "Component >Install Component" of uAlLangs.pas, and insert in the package you wants, as usual. USAGE: To localize your project: 1)Put an AlLanguagesStore to mainform of your project, and set LanguagesPasUnit='c:\yourProjectPath\YourLocFormsUnit.pas'. This file don't need to exists. Set also the DefaultLang (eng is the predefined), and put a list of the defines you will use in conditional compilation in LanguagesDefines property. 2)Put an AlLanguager in any forms of your project. 3)Add in the OnCreate event handler of every form, the code you can see in the demo. 4)Last, link these AlLanguager to AlLanguagesStore. If you change something in a form, simply double-click on the AlLanguager to update strings in the default language. To translate, open 'c:\yourProjectPath\YourLocFormsUnit.pas', and simply edit. See directory demo for a simple example on how to set project options to conditional compile the project in the language you want. In the demo, projIta.dpr runs italian, projEng.dpr runs english. They share same units. Language is defined at compilation, thus: -executable size is lower -you can localize also other program messages by "ifdef"s (but use another '.pas' unit to avoid problems) -only one language is available at runtime Note you can use many AlLanguagesStore as you want; this is useful if for example your program has different versions (i.e. "Standard" edition "Educational",...) that shares some units, and some others not. NOTE - the unit uAlLangs is not planned to be self-localized... to avoid confusion :) - let me know your suggestions / bug reports Enjoy. Al (aldog@ivg.it) NEW IN 1.01 FROM 1.0 - little enhancement. now writes components properties in .pas localization files in lowercase. (sorry, a little incompatible with 1.0, but more affordable!)