Internationalization of Maps

Internationalization is an important topic for Die Macht des Feuers since I do not intend to create a modification which is only playable by German-speaking people.

Die Macht des Feuers will be translated at least into English (maybe musicial version, too).
The problem is that if you want to do internationalization of Warcraft 3 maps it’s just possible to use strings in the trigger editor (GUI). They will be converted into format GetLocalizedString(“TRIGSTR_”) automatically and written into map file war3map.wts where all translatable strings are saved (all custom strings from object editor etc.).
So if you use Jass or vJass and GetLocalizedString you have to write TRIGSTR_ and give all ids by yourself. Besides you must add all used strings to the global map string file by hand. This would be a huge amount of work and I’m too lazy to do this for all those strings which are used in talks.
Therefore I had the idea to develop a translation tool like gettext or Qt Linguist. Those tools are parsing your source code and searching for specific function calls like gettext(“”) or tr(“”). All found strings will be added to a catalog and at runtime those functions will look up the translated version of string.
Since Jass isn’t a fast interpreted language I do not want to implement a runtime catalog lookup. My little tool called vjasstrans parses source code files replaces strings by STRING_ and creates an fdf file. Fdf files are used for some default user interface strings in Warcraft 3. There are three different fdf files in directory UI/FrameDef.
My plan was to take the file GlobalStrings.fdf and add my own string definitions. Unfortunately this did not seem to work although some BJ functions are using some strings from this file.
Today wc3c’s user ToukoAozaki wrote about his idea of internationalization in vJass (my reply). I hope Vexorian will consider this and maybe add some similar features to next version of JassHelper.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: