• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

[General] Multiple languages

Status
Not open for further replies.
Level 11
Joined
Nov 23, 2013
Messages
665
Hello Hive,

I've been working on my campaign project for a while, and even if I'm probably halfway only of a releasable version, I have started to think about the language matter.

My campaign is in French (units names, dialogs...), so I can share it with my fellow countrymen (sadly not everybody reads English here). It is also easier for me to come up with dialogs and names with my mother tongue, and I can translate later on.

However, I want to make an English version of my campaign so I can share it here some day (hopefully!). So I'm wondering what would be the better way to manage two versions, one in English and one in French. The main problem is that I will have trouble to make modifications in the campaign if I have two different versions. For example, if I want to add or remove some units or doodads, or modify some triggers, I will have to do it in both versions, which will be a pain if not impossible...

I was thinking of extracting the strings from all maps (File > Export strings), translating all texts, and importing them again into the English version. Whenever I need to modify something in the campaign, I just do it, then copy the campaign file, and import the English strings again.

Will it be possible to do it like that?
Did anybody have the same problem, and managed to solve it this way? Or by other means?
Would there a tool out there that I could use to make it easier?

I've been looking around to see if other people had the same needs, but I couldn't find a good solution.

Thanks for your suggestions!
 
Multiple language has always been a pain. As far as I am aware, there was a map which has both German and English, which inside the map is a complete duplicate of the same unit. In campaign, such a method is a very painful one.

I also tried a bit once, but an approach I would not recommend either : use a boolean for language control.
 
Level 11
Joined
Nov 23, 2013
Messages
665
Thanks guys!

I'll have a look at this Chaosium, thanks a lot. :csmile:
 
Last edited:
Level 11
Joined
Nov 23, 2013
Messages
665
You mean war3.mpq etc? I'm not very familiar with manipulating MPQ files. But wouldn't it be effective only for me?
 
Level 11
Joined
Nov 23, 2013
Messages
665
Ok I see. If I understood correctly, it's pretty much what the tutorial Chaosium linked is about. One can extract the strings file (.wts) from a map/campaign with WinMPQ, and change its local ID so it can match the users's Windows LANGID (I have no idea what could happen with Mac though). Then add the translated file to the archive, and the game should pick the language according to the one the player is using. The only thing to do after that is to go back to .wts files whenever strings are modified.
I'll give it a try soon, but first I need to translate everything, this will be the big part :cgrin:
 
Level 11
Joined
Nov 23, 2013
Messages
665
Translating everything is probably something I will have to do at some point anyway, but a small test map is a good idea.

I've created a small campaign with two maps. I put a few custom objects (items, units, destructibles, spells), created either with object editor or campaign object editor, and I changed their names. I also put some text: floating text, unit transmission, game - text message.

It was a bit painful but it seems to work. It's quite easy to do with one single map, but when it comes to a campaign it gets harder because there are strings inside the campaign mpq and inside each of the maps within the campaign file. Trouble is, you have to do it in a very precise order or it won't work. Apparently, saving a map within a campaign erases the other languages files that are stored in it. So you need to be very careful at what you do and when you do it. But it seems possible.

I've attached my test campaign. Would there be anyone willing to test what language they see when playing it? It only takes a couple of minutes. If you play with your game in French, you should see French; if you play it with any other language, there should be English. Thanks! :csmile:
 

Attachments

  • TestLanguage.w3n
    45.4 KB · Views: 51
Level 11
Joined
Nov 23, 2013
Messages
665
Hurray! Thanks Daffa!
If I find time, I'll update my initial post with the procedure I used, it might help other people too. :csmile:
Since it involves only MPQs and text files containing strings, I guess it should be easy to develop a tool that allows multiple languages managing, if some developer gets bored someday, here's an idea... :p
 
Level 11
Joined
Nov 23, 2013
Messages
665
Oh it's probably due to me going too fast in the translation process! I also forgot to translate the destructible gate's name. Which proves that one ought to be meticulous and careful when translating maps! :cgrin: Anyway, as long as the method works, I'm satisfied :cwink:

There are still a few issues that still can't be addressed though:
  • Custom audio files (units sound sets for example). All languages versions will have to be imported, and all units using custom sound sets will have to be managed via triggers, which will increase dramatically the file size... Another option would be to duplicate the campaign file and modify audio files... But then there would be two different files, so the process will have to be repeated every time a modification is made to the map.
  • Any modification in the campaign will result in the necessity to repeat the whole procedure of .wts and .mpq managing.
  • If a string is removed/added, I'm not sure what would happen. I guess you'll have to edit the original .wts file again, search for the string number that was removed/added, and modify the secondary /wts file to match the first one.
So it's a bit complicated and not perfect, but it's good to know that a solution exists. :csmile: The best way is probably to start managing two languages versions at the very end of a project, to avoid some of said issues.
 
  • Like
Reactions: pyf
Status
Not open for further replies.
Top