Internationalisation

Présentation

L'internationalisation est présente par défaut dans JAXX et utilise la librairie Nuiton-I18n

Configuration

Une option a été ajoutée dans le plugin maven de JAXX : i18nable pour permettre ou non l'utilisation de ce système.

Par défaut, l'option est active (donc aucune configuration supplémentaire n'est nécessaire pour utiliser i18n dans JAXX). Pour la désactiver, il suffit de rajouter <i18nable>false</i18nable> dans la configuration du plugin.

Fonctionnement

Le fonctionnement est simple : lors de la compilation JAXX, lorsque l'on rencontre certains attributs on encapsule la valeur de l'attribution par un appel à la méthode

org.nuiton.i18n.I18n.t(String)

La liste des attributs en question sont les suivants :

  • title
  • text
  • toolTipText

Ensuite l'utilisation du parserJava du plugin i18n permet la détection des clefs i18n.

Exemple

Si on prend l'exemple suivant, on a une JFrame avec le titre myKey

<JFrame id='mainFrame'
      width='800'
      height='800'
      title='myKey'/>

Maintenant, si on configure le plugin i18n de la manière suivante (pour plus d'information sur le plugin i18n, reportez vous à la documentation ad-hoc ):

<plugin>
    <groupId>org.nuiton.i18n</groupId>
    <artifactId>i18n-maven-plugin</artifactId>
    <configuration>
        <entries>
            <entry>
                <basedir>${maven.gen.dir}/java</basedir>
            </entry>
        </entries>
    </configuration>
    <executions>
        <execution>
            <goals>
                <goal>parserJava</goal>
                <goal>bundle</goal>
            </goals>
        </execution>
    </executions>
</plugin>

On peut changer le titre de la JFrame depuis le fichier de traduction en changeant la valeur pour la clé myKey.

Pourquoi ne plus utiliser l'ancien parserJaxx du plugin i18n ?

Le parserJaxx du plugin i18n avait besoin des appels explicites à la méthode de traduction et de par sa conception n'était pas capable de détecter les nouvelles clés à traduire. Il faut lui préférer l'utilisation du parserJava qui se sert du code Java généré pour travailler avec les traductions.