Wintermute Engine Forum

Wintermute Engine => Scripts, plugins, utilities, goodies => Topic started by: SBOVIS on May 13, 2007, 02:18:11 PM

Title: INNOSETUP scripts
Post by: SBOVIS on May 13, 2007, 02:18:11 PM
Hi has anyone used this with multi language function and using multiple string table files from WME?

If so example scripts for INNOSETUP would be handy, I have looked at the scripts it comes with and do not really want to learn another language just to create an installer. hahahahahahahaha


Many thanks

 
Title: Re: INNOSETUP scripts
Post by: Malasieno on May 14, 2007, 04:51:29 AM
First af all, thank to Mnemonic, i've learned how packages could be VERY usefull!

if you put string.tab inside a package you can choose wich package to install depending the language. I mean:
let's suppose you have compiled this:

Code: [Select]
game.exe
settings.exe
data.dcp
language.dcp

You can make a eng_language.dcp and ita_language.dcp where there is a localized string.tab. The filename must be the same for both compiled packages.

A part of inno setup script could be something like this, check the correct syntax with inno help file, i could be forgetting something, but it's just to make the idea.

Code: [Select]
[Languages]
Name: eng; MessagesFile: "compiler:Default.isl"
Name: ita; MessagesFile: "compiler:Languages\Italian.is

[Files]
Source: "{sourcedir}game.exe"; DestDir: "{destdir}";
Source: "{sourcedir}settings.exe"; DestDir: "{destdir}";
Source: "{sourcedir}eng_language.dcp"; DestName: "language.dcp"; DestDir: "{destdir}";  Languages: eng
Source: "{sourcedir}ita_language.dcp"; DestName: "language.dcp"; DestDir: "{destdir}";  Languages: ita

game.exe and settings.exe will be installed with unchanged name, but according to user language selection, the language packages will be istalled with changed name.
For example, if user chosed the english language, (labeled in innoscript whith ENG), eng_language.dcp would be copied as language.dcp.

this is how i made to have multiple languages installed with InnoSetup, but don't know if there is a better method. I am not a real programmer.
Hope it helps you,
Bye
Title: Re: INNOSETUP scripts
Post by: SBOVIS on May 14, 2007, 10:29:46 AM
Many thanks, But I was under the impression that you would have multiple string files not packages.
One string file for each language then at time of install the player would select the certain string file for their language which would be loaded. The string file contains tags which connect the translated text to the game.


Is this not the case??


 ???
Title: Re: INNOSETUP scripts
Post by: Mnemonic on May 14, 2007, 03:25:22 PM
Packages are more flexible, because you might need to use more localized resources than just string tables, for example different fonts, some images containing text etc.
Title: Re: INNOSETUP scripts
Post by: SBOVIS on May 14, 2007, 03:33:57 PM
ah yes of course!! I understand.

Many thanks
Title: Re: INNOSETUP scripts
Post by: SBOVIS on May 14, 2007, 04:01:10 PM
So let me get this straight in my head, My publisher wants the game in these langauges -

Initially - English

Then: - Russian, German, French, Spanish, Italian



So I would create 6 packages ENG_LANGUAGE, RUS_LANGUAGE etc and put a copy of the string.tab (always the same file name) in these packages.
Each version of string.tab has the text in the reflective langauge to the package.

Then using INNOSETUP at time of install get the player to select the string from the appropriate package? yes??

If so how do I initially compile the project? using English string.tab?? or nothing selected in PRIOJECT MANAGER??


Also how would graphical elements, fonts be loaded?? for example backgrounds that hold english text translated into say......German, or fonts for specfic langauge??



Thanks for this , as I think Localisation is a nightmare!!! hahahahahahahaha

Title: Re: INNOSETUP scripts
Post by: Mnemonic on May 14, 2007, 05:01:16 PM
Your project structure would look like this:

Code: [Select]
[data]
  [images]
    some_image_with_text.png
  string.tab
  [all the other game files]
[english]
  [images]
    some_image_with_text.png
  string.tab
[german]
  [images]
    some_image_with_text.png
  string.tab

where "data", "english" and "german" folders are marked as packages in ProjectMan. Now when you compile the project, you'll end up with data.dcp, english.dcp and german.dcp. And that's it.

For testing and development you'll probably want to degrade the language packages to normal folders, so that the game runs in english when you run it from ProjectMan.

Also, the language packages should probably use higher priority than the general "data" package, so that the localized resources always override the original ones.
Title: Re: INNOSETUP scripts
Post by: SBOVIS on May 14, 2007, 05:18:21 PM
OK at the moment I have the packages setup and PROJECT MANAGER linked to the script.tab in the english package for development/testing purposes.

So I take it by your reply the higher the priority of the package the sequence the data is overriden??
Title: Re: INNOSETUP scripts
Post by: Mnemonic on May 14, 2007, 05:21:56 PM
Yes.