# Internationalization

Vincent Siveton

# Internationalization

This plugin could produce internationalised Maven1 documentation.

# Used Technologies

XDoc plugin uses Java to produce internationalised documentation. Please refer to:

- Core Java Internationalization
- ResourceBundle (Java 2 Platform SE v1.4.2)
- Supported Locales
- Supported Encodings

The XDoc plugin will generate this following structure:

    |-- en\
            |-- user_dir\
            |-- index.html
            |-- ... (mail-lists.html, maven-reports.html...)
    |-- fr\
            |-- user_dir\
            |-- index.html
            |-- ... (mail-lists.html, maven-reports.html...)
    |-- OTHER_LANGUAGE\
            |-- user_dir\
            |-- index.html
            |-- ... (mail-lists.html, maven-reports.html...)
    |-- images\
    |-- style\
    |-- user_dir\
    |-- index.html
    |-- ... (mail-lists.html, maven-reports.html...)

# Getting started

## First step

You should define a default locale and all supported locales. For example, you want to produce Maven documentation by default in English, and also in French and in German. Just add these properties in your `project.properties` file:

    maven.xdoc.locale.default=en
    maven.xdoc.locale.supported=fr, de

## Second step

You should define your own bundles called `${maven.xdoc.bundle}.properties` in the `${maven.xdoc.bundle.src}` directory. In our example, you should have:

    |-- ${maven.xdoc.bundle.src}\
            |-- user_dir\
            |-- ${maven.xdoc.bundle}.properties
            |-- ${maven.xdoc.bundle}_fr.properties
            |-- ${maven.xdoc.bundle}_de.properties

## Last step

You should create your own XDoc files which supports i18n. For `navigation.xml` :

    <menu key="mykey"/>
    <item key="mykey" href="/mylink.html" />

For `myxdoc.xml` :

    <title key="mykey"/>
    <message key="mykey"/>
    <section key="mykey"/>
    <subsection key="mykey"/>
    <a hrefkey="myhrefkey">My i18n link</a>

NOTE: XDoc plugin always uses key if defined. For instance, this line of code:

    <title key="myKey">blabla</title>

will produce the key value and not "blabla".

## Beautify the generated navigation

If you have lots of languages defined, you can beautify the display with a select form. Just add this following property:

    maven.xdoc.ui.localeList.asSelect=true

# Language supported

Actually, only English, French and German are currently fully supported by Maven. Contributions are welcome!

# Known Issues

## Generated Reports

All generated reports by other plugins are not supported by the XDoc plugin. Each Maven1 plugin should be translated by their authors.

## Others Plugins

Actually, PDF and HTML2XDOC plugins do not support the internationalization.