Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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:
    1. If a panel ID is defined:
      <Fully_qualified_panel_classname>.<panelId>.<subKey>
    2. If a panel ID is defined:
      <Simple_panel_classname>.<panelId>.<subKey>
    3. If a panel ID is defined:
      <panelId>.<subKey>
    4. If no panel ID is defined:
      <Fully_qualified_panel_classname>.<subkey>
    5. If no panel ID is defined:
      <Simple_panel_classname>.<subkey>
       (for compatibility with IzPack 4 translations)
    6. Steps 1., 2., 4., 5. for the next superclass in the given order
      This is repeated for the next superclass of the current class inherited from IzPanel as long as the super class is not the abstract IzPanel itself. 

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

...

:

Code Block
languagehtml/xml
titleCustomLangPack.xml_eng
<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">
  ...
  <str id="TargetPanel.headline" txt="Take a deep breath and gimme an installation directory"/>
</izpack:langpack>

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

Code Block
languagehtml/xml
titleinstall.xml
<resources>
  <res id="CustomLangPack.xml_eng" src="i18n/CustomLangPack.xml_eng"/>
</resources>
 
<panels>
  <panel classname="TargetPanel"/>
</panels>

 

A more complex example:

Code Block
languagexml
titlecustomLangPack.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>

...

Code Block
languagexml
titleinstall.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:

Code Block
languagexml
titleinstall.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:

Code Block
languagexml
titleCustomLangPack.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" />
Code Block
languagexml
titleCustomLangPack.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.
<resources>headline" txt="Update completed" />
	<str id="FinishPanel.panel.uninstall.headline" txt="Uninstallation completed" />