Language Illuminator - Internationalise your application using an application localisation and translation tool

Extract, edit, translate and replace program interface strings without the original resource files.

First a caveat - I helped Bernd Klaiber, the author of Language Illuminator, by editing and tidying up his English help file and I also did some testing and usability work during the development process. If the program sells well I will receive a small fee for this, so I have a vested interest in its success that naturally prevents me from being completely objective. Please bear this in mind and form your own opinion by trying it out before you buy. ;)

What Language Illuminator does Introducing a completely new type of program is always a little difficult. A review of a debugger or compiler or word processor is easy - you just have to show how the new application differs from known tools that perform the same tasks. When you're describing a program as new as Language Illuminator you first have to explain why anyone would need it in the first place. Basically, Language Illuminator enables you to read, edit, translate and replace all the text resources in any Windows program created with most standard compilers, particularly Delphi.

Its primary purpose is to make it easier to produce localised and multi-language versions of Windows applications. Among other things, it can create a project package for outside translators that includes a license-free runtime version of the Language Illuminator program for the translators to work with. You don't need the original resource files to do this. Illuminator can edit the interface texts of any program installed on your Windows system, provided it was generated with one of the supported compilers. Borland® Delphi, C Builder and C and Microsoft® Visual Studio are all supported fully, and the string table and forms texts generated by some other compilers can also be accessed. The supported language resources include forms, string tables, dialogs, menus and accelerators.

LImainwindow.gif (16034 bytes)

How it works

Illuminator scans and extracts the text resources from the original application. You just specify the names of the .exe and/or .dll files, select Scan and Illuminator finds all the text resource strings and writes them to its database. It provides a suite of editing tools with which you can create new versions of the texts, displaying the new and original versions side by side for comparison. You can then generate new versions of the program files with the new texts. You have a choice of output options:

  1. Replace the existing resources, overwriting the original texts in the .exe file.
  2. Add a supplementary localised resource to the .exe file.
  3. Generate a new, separate resource .dll for each new language or version. The new versions of the .exe files with overwritten or supplementary language resources are generally immediately executable.

If you have added supplementary language resources to the .exe Windows will normally automatically display the language version corresponding to the user's current Windows language settings. This doesn't apply to new separate resource .dll files you create, of course - here the programmer has to provide a facility for switching between the different languages or versions. This is generally the option you will use for multi-lingual programs as it provides the greatest flexibility.

Editing features

The Language Illuminator editor is quite powerful and user-friendly. You can load individual items (single forms, string tables etc,), entire categories (e.g. all forms) or the entire project into the editing window, with separate columns side by side for your source and target versions. When you start work the target and source texts are identical, which is useful if you only need to make a few changes. The search and replace functions work on all the items currently loaded in the editor, so if you load the entire project you can search all the available program strings.

A quick editing window where you can edit shorter strings directly is always visible, or you can open a separate multiline editor for longer texts. Selection functions are also quite strong. Each item has a status: Untranslated, Translated, To be Reviewed, Autotranslated or Unused, and you can select or deselect items on the basis of their status. "Translated" is set automatically when you change an item, but all status properties can also be set manually. Just about the only thing missing from the editor is spell checking; it would be great if the program could at least access the MS Office spell checker like some mail clients can, for example. As it is you have to do all your spell-checking yourself, which can be a bit of a drag for those of us who haven't been doing that since we first discovered WordStar back in the Stone Age.

LIeditorwindow.gif (19122 bytes)

Autotranslation features

Language Illuminator comes with two autotranslation systems: It can automatically translate known strings stored its own database, and it can also translate strings by accessing the BabelFish online automated translation service. Both systems can be applied to individual strings, selected strings or all strings in the editor, using the selection options mentioned above. The BabelFish option is more a bit of fun and an interesting demonstration of distributed computing technology than anything else. If you've ever used BabelFish on the web you probably already know you wouldn't really want to use the translations it delivers without serious proof-reading by a native speaker; at least, not unless you're planning to use the results in a Monty Python sketch.

That being said, Language Illuminator's interface to BabelFish is impressive. It's virtually seamless, it works for all the language pairs supported by BabelFish and the selection options make sure that it only gets applied where you want it. You just select Translate Selected with BabelFish and a few seconds later the strings are replaced with BabelFish's output. The only caveat is that the translations it delivers are often entertaining rather than really useful, but that's the fault of BabelFish, not of Language Illuminator.

The second autotranslation feature is seriously cool, and it gets more and more useful the more you use it. Language Illuminator maintains a database called the Repository to which you can add any or all of your translated text string pairs. Here too, you can use the selection options to choose which strings you want to add to the Repository, so you have full control. As soon as a string language pair - for example for English and German - is stored in the Repository you never need to translate it manually again. You just select Autotranslate all Untranslated from Repository or Autotranslate Selected from Repository and any strings found in the database are replaced automatically in the target version. This is a huge work-saver for standard program interface texts, and it gets better and better the more you use it.

Import and export features

The program has several useful functions for importing data and exporting it for editing by colleagues and outside translators. To begin with, you can import pre-translated language resource files created with Borland ITE for Delphi or C++ Builder. You can also export and import individual projects for editing by colleagues who also use Language Illuminator. However, the most useful export function is what Illuminator calls the "Distribution Wizard". This automatically generates a complete zip project package for outside translators, including a license-free, runtime version of Language Illuminator itself, which the translators can then use legally and free of charge to do the work. This is a terrific feature because it eliminates all the import/export problems that are often associated with farming out program interface translation to outside contractors. And since the runtime version of Language Illuminator also generates executable files the translators can immediately check the results of their work in context instead of wasting time sending it back to the programmers for compiling.

Other features and conclusion

Language Illuminator has too many capabilities to describe them all in a brief review like this. There are a couple of other things that are worth mentioning, however: Data security is good; Illuminator cannot accidentally overwrite any original program files. It automatically creates a subdirectory for the output files and the user must then copy them to the program directory manually to execute them. The program also has full batch processing capabilities for those that need them. Batch processing can be used to overwrite original program files for faster testing - then it's up to you to protect your own data. Overall Language Illuminator is an impressive product that does what it says it does. With its powerful features - particularly the integrated autotranslation database and generation of export packages for translators - it has the potential to radically increase the efficiency and reduce the costs of program translation and localisation. It's also rock solid stable - in extensive work with it on two major projects I've never experienced a single crash or any data loss. If it only had a spell checker it would be perfect, but I'm sure that that will come in the course of time.

Tim Green (

Language Illuminator was programmed by Bernd Klaiber. For more information and trial downloads see Bernd's website at

Tim Green is a technical writer, help author and translator. He is based in Brühl, Germany, and hosts and manages the online forum for the Help & Manual help authoring tool.

H&M Forum: