Dividing panel translations to installation, update and uninstallation

A user defined update and uninstallation is not a standard use-case in IzPack. It can be mostly controlled either by choosing different packs Installation / Update / Uninstallation or dedicated conditions depending on whether there has been found a previous installation or on what the user has chosen on several UserInputPanels.

There is still remaining the problem of the "static" translations for the label texts at the InstallPanel and FinishPanel:

  • "Unpack installation data"
  • "Pack installation progress"
  • "Overall installation progress"

 

This can be solved in a quite easy way:

Separate the panel definitions of InstallPanell and FinishPanel depending on conditions and add custom language packs for the according translations.

install.xml
<resources>
	...
	<res id="CustomLangPack.xml_eng" src="i18n/customLangPack.xml_eng" />
	<res id="CustomLangPack.xml_deu" src="i18n/customLangPack.xml_deu" />
</resources>
 
...
 
<panels>
    <panel classname="InstallPanel" id="panel.install.install" condition="Install"/>
    <panel classname="InstallPanel" id="panel.install.update" condition="Update"/>
    <panel classname="InstallPanel" id="panel.install.uninstall" condition="Uninstall"/>
    <panel classname="FinishPanel" id="panel.finish.install" condition="Install"/>
    <panel classname="FinishPanel" id="panel.finish.update" condition="Update"/>
    <panel classname="FinishPanel" id="panel.finish.uninstall" condition="Uninstall"/>
</panels>

Override dedicated built-in translations:

CustomLangPack.xml_eng (english)
  <str id="InstallPanel.panel.install.install.headline" txt="Installation in progress" />
  <str id="InstallPanel.panel.install.install.tip" txt="Pack installation progress:" />
  <str id="InstallPanel.panel.install.install.install" txt="Install!"/>
  <str id="InstallPanel.panel.install.install.progress" txt="Overall installation progress:"/>
  <str id="InstallPanel.panel.install.update.headline" txt="Update in progress" />
  <str id="InstallPanel.panel.install.update.tip" txt="Pack update progress:" />
  <str id="InstallPanel.panel.install.update.install" txt="Update!"/>
  <str id="InstallPanel.panel.install.update.progress" txt="Overall update progress:"/>
  <str id="InstallPanel.panel.install.uninstall.headline" txt="Uninstallation in progress" />
  <str id="InstallPanel.panel.install.uninstall.tip" txt="Pack uninstallation progress:" />
  <str id="InstallPanel.panel.install.uninstall.install" txt="Uninstall!"/>
  <str id="InstallPanel.panel.install.uninstall.progress" txt="Overall uninstallation progress:"/>

  <str id="FinishPanel.panel.install.headline" txt="Installation completed" />
  <str id="FinishPanel.panel.install.success" txt="The installation has been successfully finished." />
  <str id="FinishPanel.panel.update.headline" txt="Update completed" />
  <str id="FinishPanel.panel.update.success" txt="The update has been successfully finished." />
  <str id="FinishPanel.panel.uninstall.headline" txt="Uninstallation completed" />
  <str id="FinishPanel.panel.uninstall.success" txt="The application has been successfully removed." />
CustomLangPack.xml_deu (german)
  <str id="InstallPanel.panel.install.install.headline" txt="Installation wird durchgeführt" />
  <str id="InstallPanel.panel.install.install.tip" txt="Installationsfortschritt des Pakets:" />
  <str id="InstallPanel.panel.install.install.install" txt="Installation!"/>
  <str id="InstallPanel.panel.install.install.progress" txt="Gesamtfortschritt der Installation:"/>
  <str id="InstallPanel.panel.install.update.headline" txt="Aktualisierung wird durchgeführt" />
  <str id="InstallPanel.panel.install.update.tip" txt="Fortschritt der Aktualisierung des Pakets:" />
  <str id="InstallPanel.panel.install.update.install" txt="Aktualisierung!"/>
  <str id="InstallPanel.panel.install.update.progress" txt="Gesamtfortschritt der Aktualisierung:"/>
  <str id="InstallPanel.panel.install.uninstall.headline" txt="Anwendung wird deinstalliert" />
  <str id="InstallPanel.panel.install.uninstall.tip" txt="Fortschritt beim Deinstallieren des Pakets:" />
  <str id="InstallPanel.panel.install.uninstall.install" txt="Deinstallation!"/>
  <str id="InstallPanel.panel.install.uninstall.progress" txt="Gesamtfortschritt der Deinstallation:"/>

  <str id="FinishPanel.panel.install.headline" txt="Installation beendet" />
  <str id="FinishPanel.panel.install.success" txt="Die Installation wurde erfolgreich abgeschlossen." />
  <str id="FinishPanel.panel.update.headline" txt="Aktualisierung beendet" />
  <str id="FinishPanel.panel.update.success" txt="Die Aktualisierung wurde erfolgreich abgeschlossen." />
  <str id="FinishPanel.panel.uninstall.headline" txt="Deinstallation beendet" />
  <str id="FinishPanel.panel.uninstall.success" txt="Die Anwendung wurde erfolgreich entfernt." />