Author: jcouteau Date: 2010-05-26 15:13:13 +0200 (Wed, 26 May 2010) New Revision: 1932 Url: http://nuiton.org/repositories/revision/jaxx/1932 Log: Doc about internationalisation (i18n) Modified: trunk/src/site/rst/I18n.rst trunk/src/site/site_fr.xml Modified: trunk/src/site/rst/I18n.rst =================================================================== --- trunk/src/site/rst/I18n.rst 2010-05-23 19:00:50 UTC (rev 1931) +++ trunk/src/site/rst/I18n.rst 2010-05-26 13:13:13 UTC (rev 1932) @@ -22,59 +22,94 @@ .. * <http://www.gnu.org/licenses/lgpl-3.0.html>. .. * #L% .. - ----- -I18n ----- +==================== +Internationalisation +==================== + .. contents:: Présentation ============ -Ajout du support i18n dans JAXX. +L'internationalisation est présente par défaut dans JAXX et utilise la librairie +`Nuiton-I18n`_ -On utilise la système i18n développé dans la librairie des lutins (*lutinlib*). +.. _Nuiton-I18n::http://maven-site.nuiton.org/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. +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). +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 +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._(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. -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 :: -Pourquoi ne plus utiliser l'ancien parserJaxx du plugin i18n -============================================================ + <JFrame id='mainFrame' + width='800' + height='800' + title='myKey'/> -Un parseur avait été développé initialement pour détecter dans les fichiers JAXX (*parserJaxx*), les appels à la méthode de traduction -i18n dans les attributs. +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`_ ):: -Ce parseur n'est plus d'actualité car on ne doit plus avoir d'appel explicite à cette méthode dans les fichiers JAXX. + <plugin> + <groupId>org.nuiton.i18n</groupId> + <artifactId>maven-i18n-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> -De plus, même sans avoir mis en place le mécanisme i18n dans JAXX, ce parseur n'était plus d'actualité : il se base -sur une liste prédéfinie d'attributs xml à scanner pour détecter des appels i18n; ce qui n'était pas acceptable à terme -car si on ajoute un nouveau composent dans JAXX, le plugin i18n n'est pas capable de détecter les nouvelles clefs. +On peut changer le titre de la +JFrame depuis le fichier de traduction en changeant la valeur pour la clé myKey. -Donc on préconise l'utilisation du *parserJava* du plugin i18n qui lui est capable de détecter tous les appels i18n. +.. _documentation ad-hoc::http://maven-site.nuiton.org/i18n/ + + +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. Modified: trunk/src/site/site_fr.xml =================================================================== --- trunk/src/site/site_fr.xml 2010-05-23 19:00:50 UTC (rev 1931) +++ trunk/src/site/site_fr.xml 2010-05-26 13:13:13 UTC (rev 1932) @@ -57,6 +57,9 @@ <item name="Le data-binding" href="dataBinding.html"/> <item name="Utiliser des styles" href="useStylesheets.html"/> </item> + <item name="Fonctionnalités avancées"> + <item name="Internationalisation" href="I18n.html"/> + </item> <item name="Démo" href="demo.html"/> <item name="Tutoriels"> <item name="Hello World" href="tutos/helloworld.html"/>