The basic ideas for I18NEdit date back into the year 2000 when I produced my first internationalized Java programs. The ResourceBundle framework urges you to organize the ressources class-wise and this leads to ressource files for each and every class file. Unfortunately, there were no tools for managing this bunch of files, especially when it comes to program changes or extension which need changes in the ressources. I developed a first version of I18NEdit which knew about the "Seven league boots" feature - but only for new properties, not for changed ones.
The problem became urgent again in 2002, when for the first time someone else translated a program system of mine into a language I do not speak (it happened to be Swedish, by the way...). I extended the I18NEdit program to be able to track changes in the properties. This was more or less the first version which was a real program.
Later in 2002, a russian trainee in our company digged into our projects. As a finger excercise (and to see how to do it...) I implemented the keyboard translator so that he could take I18NEdit for translating a program of ours into Russian even though we do not have Cyrillic keyboards.
Also as a finger excercise, I implemented the Unicode character dialog. Here, the most interesting problem was to bring the faked key stroke events to the right component.
In September of 2003, our i18n projects became more dynamic. First, we now have also PHP-driven web sites which are made multi-lingual be these concepts, second the number of translators of a project has become larger. Therefore, the merging facilities were needed and implemented.
Version 1.0.0 was released in November of 2003. Development was rather slow until then and the naming as 1.0 was more due to the fact that somewhen, somehow, a program should get a non-zero at the beginning of the version number.
However, that version of I18NEdit was not that badly selected for being the "first stable" version. Actually, it lasted unchanged for almost three years.
About three years after version 1.0, the next release of I18NEdit happens. Compared to its predecessor, there are some enhancements:
The seletion of shown locales is uncoupled from the translation mode. Even when translating from Englisch to German, the French locale can be shown additionally.
All shown locales and the comment fields can be edited, even in translation mode.
The checksums for finding changed strings are always computed on the UTF-8 representation of the string. I18NEdit is clever enough to transform old checksums automatically without marking these strings as "changed".
The editor fields take all the available space and do not limit themselves to a short amount of lines any more when there are loads of free space...
I18NEdit is spiced up with showing flag icons and coloring source and target locale.
Finally, we have a French translation on behalf of Bart Jourquin. Thanks for this!
Compared to the 1.0 → 1.1 step, development pace increased tremendously. Only about half a year later, in mid-2007, this new version brings the following changes:
Many internal structures reworked. As I18NEdit is such an old project with a quite changing history, its source code is not in really good shape. This has changed a bit, but after all it's an ongoing project.
Redefinition of the "find changed locales" feature as a "search". This is not really a change in the feature itself, but a change in its perception and presentation.
String search feature. This is the only really new feature visible to the user.
Dialog beautification. Some of the configuration dialogs are much nicer now: Locales can be given by clicking on lists instead by writing their internal representation down in a text field. Most prominent exception to this cleanup is the main project configuration dialog.
Immediate locale change of the interface. As a side-effect of some enhancements in the underlying QJCC library, I18NEdit's interface locale can now be changed during runtime.
Program icon. Finally...