Overriding Built-in Translations

 

IzPack supports many languages out of the box.

If a country or language is not supported, the following instructions can be used to add a new one.

Background

In IzPack, language packs are identified by a 3 character ISO country or language code. Country codes are converted to lowercase.

Country codes are used in preference to language codes. This is to handle the case where a language variation is spoken for which there is no ISO language code.

E.g. Portuguese and Brazilian Portuguese - these must be specified using "prt" and "bra" respectively.

Each language pack must have a corresponding resource file located at:

com/izforge/izpack/bin/langpacks/installer/<ISO code>.xml

There must also be a flag resource located at:

com/izforge/izpack/bin/langpacks/flags/<ISO code>.gif

 

E..g The English language pack is used for all English speaking countries, and uses the eng ISO language code..

It has the following resources:

com/izforge/izpack/bin/langpacks/installer/eng.xml

com/izforge/izpack/bin/langpacks/flags/eng.gif

Adding a language pack

To add a country specific variant of the English language pack, e,g. for Australia

  1. Create the langpack resource in:
    com/izforge/izpack/bin/langpacks/installer/aus.xml
    This can be derived from the English language pack here:
    https://github.com/izpack/izpack/blob/master/izpack-core/src/main/resources/com/izforge/izpack/bin/langpacks/installer/eng.xml
  2. Create a flag resource in:
    com/izforge/izpack/bin/langpacks/flags/aus.gif
  3. Create a jar (call it myjar) containing these resources
  4. The izpack-maven-plugin needs to reference the jar in order for it to locate the resources

    pom.xml
    <plugin>
             <groupId>org.codehaus.izpack</groupId>
             <artifactId>izpack-maven-plugin</artifactId>
             <version>5.0.0-rc1-SNAPSHOT</version>
             <configuration>
                 <installFile>${staging.dir}/install.xml</installFile>
                 <baseDir>${staging.dir}</baseDir>
             </configuration>
             <executions>
                 <execution>
                     <id>installer</id>
                     <phase>package</phase>
                     <goals>
                         <goal>izpack</goal>
                     </goals>
                 </execution>
             </executions>
             <dependencies>
                 <dependency>
                     <groupId>com.mystuff</groupId>
                     <artifactId>myjar</artifactId>
                     <version>${project.version}</version>
                 </dependency>
             </dependencies>
    </plugin>