How to localize the EULA and ReadMe text
The following article uses options that are available starting with the Enterprise edition and project type.
When creating a multi-language installation package you may want to localize some of the custom elements in it. This How-To explains how to localize the EULA and ReadMe text showed to the user during the installation.
In a Professional or Java Application project the localization button was replaced by a context menu. In order to access it, you can right-click into the field which contains the path to the RTF file.
Localize the EULA text
In order to localize the End-User License Agreement text, you can follow these steps:
- Create the RTF files which contain the EULA text for each language in your package and move them into the folder which will contain your project
- Create a new Advanced Installer project or open an existing one
- Go to the Translations page and select the languages "English", "French" and "German" (this is an example, you can select any languages you want)
- Go to the Dialogs page and add the "LicenseAgreementDlg" dialog
- Click on the localization button (the one with the flags next to the button)
- If there is no localization button, right-click in the field you want to localize and select the "Localization..." menu
- Make sure that the Always translate this string and Using specified localization identifier options are selected
- Make sure that the localization identifier is set to AgreementText
- Go to the Project Strings tab of the "Translations" page and click the button from the "Translation" group on the bottom
- In the "Localization Options" dialog check the User Interface option
- In the same Project Strings tab click on the button
- Follow the wizard and create a custom dictionary ("My Dictionary EULA.ail") based on the "English" language
- open the generated dictionary with a text editor and find the "AgreementText" entry
- Since the en (English) value is already set, you need to set the rest of the languages
- Set the fr value to the name of the French EULA RTF file (since it is in the same folder as the English RTF file, you don't need to specify the full path)
- Set the de value to the name of the German EULA RTF file
- Save and close the dictionary file
- Save and build the Advanced Installer project
The dictionary entry for the license agreement text should look like this:
<ENTRY id="AgreementText"> <STRING lang="en" value="C:\My Installation Project\EULA English.rtf"/> <STRING lang="fr" value="EULA French.rtf"/> <STRING lang="de" value="EULA German.rtf"/> </ENTRY>
Localize the ReadMe Text
In order to localize the ReadMe text you can follow these steps:
- Go to the Dialogs page and add the "ReadmeDlg" dialog
- Select the scrollable edit control on this dialog and click into the RTF File field in the Properties section
- Click on the button and select the "English" ReadMe RTF file
- Click on the localization button (the one with the flags next to the button)
- If there is no localization button, right-click in the field you want to localize and select the "Localization..." menu
- Make sure that the Always translate this string and Using specified localization identifier options are selected
- Make sure that the localization identifier is set to ReadMeText
- In the "Translations" page's Languages tab, click on the button
- Follow the wizard and create a custom dictionary ("My Dictionary Readme.ail") based on the "English" language
- Open the generated dictionary with a text editor and find the "ReadMeText" entry
- Set the fr value to the name of the French ReadMe RTF file
- Set the de value to the name of the German ReadMe RTF file
- Save and close the dictionary file
- Save and build the Advanced Installer project
After following this How-To, you will have two different dictionaries: one that includes the translations for the EULA text and another that includes the translations for the ReadMe text. If you want to only use one dictionary, you can copy/paste the ReadMe entry into the EULA dictionary. In the end, the custom dictionary can look like this:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <DICTIONARY type="multi-language" ignore="en"> <ENTRY id="AgreementText"> <STRING lang="en" value="C:\My Installation Project\EULA English.rtf"/> <STRING lang="fr" value="EULA French.rtf"/> <STRING lang="de" value="EULA German.rtf"/> </ENTRY> <ENTRY id="ReadMeText"> <STRING lang="en" value="C:\My Installation Project\Readme English.rtf"/> <STRING lang="fr" value="Readme French.rtf"/> <STRING lang="de" value="Readme German.rtf"/> </ENTRY> </DICTIONARY>