How to localize the EULA and ReadMe text

ImportantThe 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.

NoteIn 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:

  1. 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
  2. Create a new Advanced Installer project or open an existing one
  3. Go to the Translations page and select the languages "English", "French" and "German" (this is an example, you can select any languages you want)
  4. Go to the Dialogs page and add the "LicenseAgreementDlg" dialog
  5. Click on the localization button (the one with the flags next to the [ ... ] button)
  6. If there is no localization button, right-click in the field you want to localize and select the "Localization..." menu
  7. Make sure that the Always translate this string and Using specified localization identifier options are selected
  8. Make sure that the localization identifier is set to AgreementText
  9. Go to the Project Strings tab of the "Translations" page and click the [ Select... ] button from the "Translation" group on the bottom
  10. In the "Localization Options" dialog check the User Interface option
  11. In the same Project Strings tab click on the [ Create... ] button
  12. Follow the wizard and create a custom dictionary ("My Dictionary EULA.ail") based on the "English" language
  13. open the generated dictionary with a text editor and find the "AgreementText" entry
  14. Since the en (English) value is already set, you need to set the rest of the languages
  15. 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)
  16. Set the de value to the name of the German EULA RTF file
  17. Save and close the dictionary file
  18. 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:

  1. Go to the Dialogs page and add the "ReadmeDlg" dialog
  2. Select the scrollable edit control on this dialog and click into the RTF File field in the Properties section
  3. Click on the [ ... ] button and select the "English" ReadMe RTF file
  4. Click on the localization button (the one with the flags next to the [ ... ] button)
  5. If there is no localization button, right-click in the field you want to localize and select the "Localization..." menu
  6. Make sure that the Always translate this string and Using specified localization identifier options are selected
  7. Make sure that the localization identifier is set to ReadMeText
  8. In the "Translations" page's Languages tab, click on the [ Create... ] button
  9. Follow the wizard and create a custom dictionary ("My Dictionary Readme.ail") based on the "English" language
  10. Open the generated dictionary with a text editor and find the "ReadMeText" entry
  11. Set the fr value to the name of the French ReadMe RTF file
  12. Set the de value to the name of the German ReadMe RTF file
  13. Save and close the dictionary file
  14. 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>