Rules
The following key suffixes can be translated:
headline
headinfo<number>
The built-in translation of these labels can be overridden in the following way:
- Add custom translations to a IzPack resource CustomLangPack.xml_<ISO3>
- The following translation keys and lookup order can be used:
- If a panel ID is defined:
<Fully_qualified_panel_classname>.<panelId>.<subKey>
- If a panel ID is defined:
<Simple_panel_classname>.<panelId>.<subKey>
- If no panel ID is defined:
<Fully_qualified_panel_classname>.<subkey> - If no panel ID is defined:
<Simple_panel_classname>.<subkey> (for compatibility with IzPack 4 translations)
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:
CustomLangPack.xml_eng
<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:
install.xml
<resources> <res id="CustomLangPack.xml_eng" src="i18n/CustomLangPack.xml_eng"/> </resources> <panels> <panel classname="TargetPanel"/> </panels>
A more complex example:
customLangPack.xml_deu
<?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>
install.xml
<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:
install.xml
<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:
CustomLangPack.xml_deu
<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" />
CustomLangPack.xml_eng
<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" />