Le pouvoir to the народ

Log-in or register.

Le pouvoir to the народ

Published by on March 8th 2009.

From time to time, I receive an email from someone interested in translating one of the freeware RW applications. Unfortunately, translating RealWorld applications is not an easy task. There is a lot of text and due to the plug-in based architecture, making a list of strings to translate is quite difficult. But things are about to change in the future…


The old localization method allows each language to have its own dialog window definitions. Individual controls can be re-positioned. This makes sense, because label texts have different lengths in different languages. The downside is the complexity of the localization process and as a consequence, there is no additional language available (beside Czech, which is my native language).

…is more

The new localization method is using a text file (in the .po format) containing pairs of English and translated strings. Granted, there are downsides too: it may slow things down a bit and some text may not fit in the available space. But there are also great advantages.

It will be very easy to translate the application, multiple people can cooperate on the translation. And the best thing is, I will not need to do anything, everything will be automated or operated by normal users.

Application Options - Language

Users only interested in English language would be able to not install support for translations and enjoy a bit faster and a bit less resource-intensive application.

Centralization vs. plug-ins

I have already mentioned that RealWorld application are heavily using plug-ins. And any centralization goes against the principles of plug-ins. How to build the list of strings to translate, when it is unknown, which plug-ins will be installed at user system? To make it worse, each user may choose different plug-ins. And it is not just plug-ins, the user interface can be modified by users as well.

The solution to this dilemma was to lower the bar again. There is no central list of translatable strings. When “translator mode” is activated, the application monitors the usage of individual strings and builds a list of things to translate on the user’s system. Translators would see, which strings they used most often and they will be able to translate them first and quickly see the results.

It may happen that translating 20% of all strings would be sufficient for normal application usage.

If plug-in developers choose to use the translation API, their plug-ins can instantly be translated by volunteers.

How would users switch language

Ordinary user, who has just installed the application, should go to Application Options window, switch to Language tab, select a language of choice and click “Download” to attempt to download translation table for the selected language.

If the translation table is empty, they should check if a table for similar language is available and if not, they can join the translator crowd.

Translation procedure

If someone decides to contribute to a translation, they have to do the following:

  1. Go to Application Options and enable “Translator mode” in the Language section (assuming they have translation support installed, which will be the default choice).
  2. Click “Download” to download latest version of translation dictionary or at least the base list of strings to translate.
  3. Work with the application for a while. The application will monitor, which strings are used most often.
  4. Go to the Application Options again and translate a couple of strings.
  5. Click Upload to send the translated strings to the server.
  6. If there are still strings left to translate and you are still in the translator mood, go back to point 3.
  7. Disable “Translator mode” to get a small speed gain.


The problem of localization seems easy, but it is not. There is a lot of things to consider: multiple applications (sharing same strings), multiple versions of each application, 3rd party plug-ins, multiple languages, multiple translators (+their roles) and synchronization and distribution of dictionaries. I have a good feeling about this new approach to localization, but only time will tell if it is a success or not. If it delivers results, I bet many freeware and shareware applications will adopt it.

Recent comments

user icon Anonymous
What about ICL files?
I wish there were...
Select background
Vista & Win 7 icons