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:
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.
[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