I have little experience in this area so I will start with the basics and add as I learn (or am told) more I will add to the information here.
You will be wanting to do one of two things:
See the installed sample "TryMeDutch.MM" for one way a dutch language installer could be created.
For more information you can also see the following sections in the platform SDK documentation:
Search the archives of these forums:
There is an undocumented way of imbedding language transforms inside an MSI and having these automatically applied, this is documented at "http://www.installsite.org/pages/en/msi/articles/embeddedlang/".
Windows Installer has two places where code page information is stored, see the following MAKEMSI commands:
There is a hook which can be used to add logic just after the template MSI is read in (named "COMPANY_IMMEDIATELY_AFTER_TEMPLATE_MSI_OPENED"), this may be useful (for example for importing language specific ".idt" files).
Its possible that MAKEMSI is also adding english text which while probably configurable may not be simple, let me know of these issues and I will correct them (one way of handling this without changing the code might be to do post-processing - making specific changes to specific table rows, this is what "TryMeDutch.MM" does).
You should also be aware of the possible need to set the "MAKEMSI_MM_CODEPAGE" environment variable.
The Windows Installer SDK includes some ".IDT" files with differing text for a range of languages. In my case these were in the "C:\Program Files\Microsoft Platform SDK\Samples\SysMgmt\Msi\database\INTL directory.
These SDK files are for the "ActionText" and "Error" tables and could be copied and imported using the "TableImportFromIdt" command. From the "read me" file:
Other tables containing text requiring conversion are:
If you supply ".IDT" files, I can include these in newer versions of the MAKEMSI tool or perhaps a separate download.
I need to do something about the English Text MAKEMSI inserts, in a lot of cases this is default text which you can change but not always.
The "uisample.mmh" header does a lot of "playing", you can selectively disable this, for anything else you may wish to "touch it up" afterwards, so put you cleanup coe in a macro called "UISAMPLE_HOOK_FINISHED_UI_UPDATES".
|One Installer for multiple Languages|
One common way of handling this is with transforms. You have one base MSI and a transform for each language.