I'm using TsiLang version 6.3.0.4 in Delphi 2009, update 2. When attempting to switch between two languages that have Extended Translations (in this case, the Left/Width of labels and buttons) I continually get an EConvertError in the internal ChangeLangForExtended method, with the message similar to:

Note that the "xxx" isn't literal: It's actually a combination of non-Latin characters that I can't reproduce here.

It looks like the ChangeLangForExtended method is expecting an integer (for the width or left of the button/label), but is returning a value with some extra characters prefixed. In my case, the "Left" value for the button in the secondary language should be "56", but the method is receiving something like "xxx56".

I have reproduced this in the simplest, single-form project started from scratch, with one tsiLang component, two languages (French/English), and a button and a label, with all properties set to default. It seems that this affects only integer values in the Extended Translation: I've tried with properties like Font.Name, Borderstyle, Enabled, and they are handled correctly.

Still the same problem with Version 6.3.1: Extended translations are giving me an EConvertError for integer values. However, it seems only to happen when changing back to "Language N1" from "Language N2". Can I e-mail you a zipped project file with the problem?

I also had to delete all the extended translation in my project after upgrading because TsiLang got stuck when loading 8MB of garbage data that probably came from a bug in the previous version. (Fortunately I had only 1 extended translation property on that form).

When can I expect a bugfix for the extended translations? Delphi 2009 has been out for quite a while.

Same here. Version 6.4 reintroduced the original problem, and also caused the loading of translations to be slowed down by a factor of a hundred or so. As BenjyKid reported, this is likely due to the megabytes of garbage data that seems to be generated in the translatio component in some instances. In my case, the a 500 KB form balooned to almost 100 Megabytes in size after repeated loads and saves.

We cannot use this component in its current state, and have fallen back to using the previous version.

Sorry for the slow reply to this issue -- we've been too busy to revisit it until now.

I am now attempting to use TSILang 6.4 with Delphi 2009, update 2. The issue discussed in the original post above (EConvertError when translating forms with extended properties) seems to have been reintroduced into TSILang 6.4: It had been corrected in 6.3.0.1. We cannot successfully switch between languages without this exception appearing.

I have a small sample project that easily recreates the error, and will send it to you at your Support address.

Please let me know if you are able to find and correct the problem. We would very much like to begin using TSILang 6.4 for our production code.

@johncbennett
Please try to find all the tsilang bpl and dcp files on your harddisc and delete them. Then compile the package on your own. This fixed it for me. I'm wondering if the installer had installed an old version of the packages because I had to delete the old packages when I needed to patch the old version of tsilang.