We are using WIX [Windows Installer XML] to build MSI, we don't care about the UI button or text localization in MSI, the only thing I want to be translated is the license text that appears in the second or third page of the installer. And the easiest way to do that, from user point of view, is to have a combo box where he can choose the language and that change the license text field below.
<Control Id="LanguageComboBox"
Type="ComboBox"
Sorted="yes"
ComboList="yes"
Property="LANGUAGE"
X="86"
Y="52"
Width="200"
Height="15">
<ComboBox Property="LANGUAGE">
<ListItem Text="English"
Value="IT_Upgrade_Mgr_October_2015_FINAL_en-us"/>
Setting up License text:
<Control Id="LicenseText"
Type="ScrollableText"
Property ="EULATEXT"
X="20"
Y="75"
Width="330"
Height="125"
Sunken="yes"
TabSkip="no">
<Text SourceFile="EULA\[LANGUAGE].rtf" />
I was managed to modify existing installer by introducing combo box, but am struggling to fire event for change of the language, it should automatically change the EULA, I have total 18 different EULA RTF files for different languages. Combo box event: Am publishing [LANGUAGE] property using combo box and its setting up property.
Update: I was able to write custom action with Query but its not working? view = session.Database.OpenView("UPDATE Control SET Text='" + sRTFText + "' WHERE Dialog_='LicenseAgreementDlg' AND Control='LicenseText'"); view.Execute();
As Scrollable text doesn’t take dynamic values and can only be changed at build time, only solution is to update MSI ttables using DTF of a running session object, please let me know if your team did anything similar to this.