Rules

The following key suffixes can be translated:

The built-in translation of these labels can be overridden in the following way:

Usage

Headlines on all kind of installer panels can be translated in the following manner:

Create a custom translations file for each language, for instance:

<langpack>
  <str id="TargetPanel.headline" txt="Take a deep breath and gimme an installation directory"/>
</langpack>

and add it as resource to the installation descriptor using predefined key depending on each language used:

<resources>
  <res id="CustomLangPack.xml_eng" src="i18n/CustomLangPack.xml_eng"/>
</resources>
 
<panels>
  <panel classname="TargetPanel"/>
</panels>

 

A more complex example:

<?xml version="1.0" encoding="UTF-8"?>
<izpack:langpack version="5.0" xmlns:izpack="http://izpack.org/schema/langpack" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://izpack.org/schema/langpack http://izpack.org/schema/5.0/izpack-langpack-5.0.xsd">
	<!-- Headlines of panels -->
	<str id="HelloPanel.headline" txt="Willkommen" />
	<str id="LicencePanel.headline" txt="Lizenzvereinbarung" />
	<str id="TargetPanel.headline" txt="Installationsverzeichnis" />
	<str id="PacksPanel.headline" txt="Installationspakete" />
	<str id="InstallPanel.headline" txt="Installation läuft" />
	<str id="FinishPanel.headline" txt="Installation abgeschlossen" />
	<str id="UserInputPanel.panel.tomcatsettings.headline" txt="Tomcat-Einstellungen" />
</izpack:langpack>
<resources>
	<res id="CustomLangPack.xml_eng" src="i18n/customLangPack.xml_eng"/>
	<res id="CustomLangPack.xml_deu" src="i18n/customLangPack.xml_deu"/>
	...
<resources>

 

A special use case are translations depending on conditions. Language packs don't "know" conditioned translations. You can workaround this by defining one and the same panel for different conditions with a separate panel ID:

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

The translations are divided now depending on the panel ID for the appropriate panel:

	<str id="InstallPanel.panel.install.install.headline" txt="Installation wird durchgeführt" />
	<str id="InstallPanel.panel.install.update.headline" txt="Aktualisierung wird durchgeführt" />
	<str id="InstallPanel.panel.install.uninstall.headline" txt="Anwendung wird deinstalliert" />
	<str id="FinishPanel.panel.install.headline" txt="Die Installation ist beendet" />
	<str id="FinishPanel.panel.update.headline" txt="Die Aktualisierung ist beendet" />
	<str id="FinishPanel.panel.uninstall.headline" txt="Die Deinstallation ist beendet" />
	<str id="InstallPanel.panel.install.install.headline" txt="Installation in progress" />
	<str id="InstallPanel.panel.install.update.headline" txt="Update in progress" />
	<str id="InstallPanel.panel.install.uninstall.headline" txt="Uninstallation in progress" />
	<str id="FinishPanel.panel.install.headline" txt="Installation completed" />
	<str id="FinishPanel.panel.update.headline" txt="Update completed" />
	<str id="FinishPanel.panel.uninstall.headline" txt="Uninstallation completed" />