Do Translations actually work?

I’ve completed a German translation of one of my modules. Using my original module as a starting point, I followed the documentation’s instructions for adding a translation and then inserted all the modified text for piece names, menu prompts, messages, etc.

Then I sent the module to the German user who requested it, and he reports that all of the menu items and messages are still displaying in English. When trying it on my own PC (Windows 7), I’ve been informed that I don’t need to change the locale of my operating system, but simply change the Language in VASSAL’s preferences. Having done that, I still don’t see any of the German text displaying.

Is there something I’m missing, or is there so little use of this feature that we don’t know if it actually works properly? I can supply a link to the module if anyone (particularly a German user) wants to take a gander.

Bump. Before I give up on this completely, I’m hoping someone can shed some light on this. Is anyone successfully using a module with the Translation feature (as opposed to one where all the piece names and traits themselves have been edited to paste in text of another language)?

Apparently you are not alone. I just received an email on this asking if translation was bugged as they tried to do the same with their module - said the trigger action did not translate properly - so seems there is something to it

"I want to report u that the translation in vassal is bad… realy bad… the tigger action comands can’t be translate, I’ve to create a new tigger action comand for each lengauge and restrict its with a global variable for each lengauges…

Greetings, Jorge"

I am looking into this. Parts of the translation seem to work (e.g. toolbar buttons) but others, including trait names, are not being translated.

have just test this out and in general, I find that translations are working as expected.

First important rule of translations is that you do NOT see any translations applied to a module that you have open for Editing. You ONLY see translations when you Play a module. This is an unchangeable fact of the way translations are implemented. If you try and play a module that you have open for editing, you will only ever see the native language of the module.

Next thing about translations is that it is not possible to translate the values inside Markers or Dynamic properties. This is because the values of properties may be referenced elsewhere in the module in property expressions and allowing the property values to be translated will break the module.

A possible way forward on this issue is to add a Checkbox option to Marker Traits, Dynamic Property Traits and and all Global Properties

‘Allow values to be translated’

that defaults to off. Checking this box will allow downstream translators to translate the value in a marker, and the initial value and selection lists in dynamic properties and global properties. This could be used by module developers on traits that they know are used only for display purposes and are never used internally in the module.

The final thing about translations is that there may be specific commands here or there that have not been set up to be translated. Please let us know about these so we can look into them.

For any Translation problems, please provide a link to the module you are having problems with and an exact description of the item you cannot translate.


Right, I understand that translated items should only appear during actual play, as opposed to seeing them in the Editor. That was the point of my post–both my own testing and that of the German recipient resulted in none of the German translations appearing during play (e.g., translated Report Action traits, map window movement reporting, etc). It would be nice if Markers could be translated, but that is small potatoes compared to the bulk of the translation that was done but isn’t appearing for me.

I will PM you shortly with a link to the module in question and some details on basic module procedures that I’ve tried. Thanks very much for the investigation!

Ok, the problem is in the way you have defined the translation. You have set the language to English and Country to Germany, so you have created a variant English translation for English speaking users residing in Germany.

The language needs to be set to the language that you are translating into. Normally, you should leave the country set to ‘Any Country’. The Country field is used only if you need to create variant translations for specific countries that require different translations. For example, you might create a ‘German, Any Country’ translation as a general purpose German translation and also create a ‘German, Switzerland’ translations that will only be active for German speakers in Switzerland.

To convert your existing ‘English, Germany’ translation to a ‘Germany, Any country’ translation, follow these steps:

  1. Open up your module with 7-zip or similiar and copy out the file named Close the module.

  2. Open the module with the Vassal editor and add a new translation for Language = German, Country = Any Country. Save the module.

  3. Take the from step 1 and rename it to

  4. Open up your module with 7-zip or similiar and copy the newly created file back into the module. Close the module.

  5. Edit your module and check the translation. You should now be able to select German as the language and should see all of you existing translations. You can now delete the old English (Germany) translation.

  6. Try it out!


Thanks! This sorted it out. I’m a bit embarrassed that I had it configured improperly. Maybe I was too used to using Google Translate where you have to specify the “From” and “To” languages.