Tutoriel d'application utilisant Nuiton I18n et une librairie utilisant Nuiton I18n (utilisation de Maven)

Dans ce tutoriel nous allons créer une application qui affichera un message à l'utilisateur et appellera l'unique méthode de la librairie que nous avons créé dans le tutoriel précédent. Nous supposons donc dans ce tutoriel que vous avez suivi les deux précédents tutoriels afin de ne pas tout reprendre depuis le début.

Configuration du plugin I18n

Dans la configuration du plugin I18n, nous allons rajouter le goal bundle. Ce goal récupère toutes les chaînes de charactère de l'application et de ses librairies afin de créer un bundle unique.

<goal>bundle</goal>

Le code de l'application

Lors des précédents exemples, nous utilisions les valeurs par défaut de Nuiton I18n, mais afin d'optimiser le chargement, dans une application finale, il est nécéssaire de changer l'initialiseur. L'initialiseur par défaut, ClassPathI18nInitializer, recherche dans le classpath tous les bundles I18n afin de les charger, cependant, comme notre plugin crée un bundle regroupant toutes les chaines i18n, nous pouvons utiliser un DefaultI18nInitializer, qui prend en paramètre le nom du bundle créé par le plugin, ce dernier ne chargera que le bundle en question, ce qui peut faire économiser jusqu'à une dizaine de secondes au démarrage de l'application, suivant la taille du classpath.

package org.myOrganisation.myApplication;

import org.myOrganisation.myLibrary.myLibrary;
import org.nuiton.i18n.I18n;
import org.nuiton.i18n.init.DefaultI18nInitializer;
import java.util.Locale;

public class myApplication {

    public static void main(String[] args){

        I18n.init(new DefaultI18nInitializer("myApplication-i18n"), Locale.FRANCE);

        System.out.println(I18n._("String to translate in my application"));
        myLibrary.myMethod();
    }
}

Configuration

Vous ne devrez pas oublier de préciser le classpath et la classe principale dans la configuration des plugins Maven.

Sources du tutoriel