Sites


Lutece : guide développeur

L'internationalisation (i18n)

Principes de localisation des ressources

Le mécanisme de localisation des libellés et des messages s'appuie sur les recommandations et les outils proposés par l'API Java. Les fichiers contenant les ressources textes localisées sont des fichiers "properties" ayant un suffixe précisant la langue et éventuellement le pays. La lecture des fichiers est réalisée par la classe ResourceBundle qui choisira en fonction de la locale (variable représentant une localisation basée sur une langue et un pays) parmi les fichiers suivants par exemple :

  • myplugin_messages.properties - langage par défaut
  • myplugin_messages_fr.properties - français
  • myplugin_messages_fr_FR.properties - français (France)
  • myplugin_messages_fr_CA.properties - français (Canada)
  • myplugin_messages_en_US.properties - anglais (Etats-Unis)

Règles concernant les fichiers

Afin que Lutece puisse déterminer dans quel fichier rechercher une clé, le nom et l'emplacement des fichiers de ressources sont soumis aux règles suivantes selon le type de composant (élément du noyau, plugin ou module d'un plugin):

Sous-système du noyau

Nom du fichiers <sous-systeme>_messages.properties
Emplacement du fichier fr.paris.lutece.portal.resources
Construction de la clé portal.<sous-systeme>.<key>

Plugin

Nom du fichiers <plugin>_messages.properties
Emplacement du fichier fr.paris.lutece.portal.<plugin>.resources
Construction de la clé <plugin>.<key>

Module d'un Plugin

Nom du fichiers <module>_messages.properties
Emplacement du fichier fr.paris.lutece.portal.<plugin>.modules.<module>.resources
Construction de la clé module.<plugin>.<module>.<key>

Localisation des templates

Les templates sont automatiquement localisés au moment de leur chargement par la methode AppTemplateService.getTemplate( ... , Locale locale , ... ). Les clés à localiser sont indiquées par le préfix #i18n suivi de la clé entourée d'accolades.

La structure des clés est la suivante :

Prefix de localisation du bundleNom du templateNom de libellé (label, titre, bouton)
portal.<sous-systeme>.
<plugin>
module.<plugin>.<module>.
manage_myobjects
create_myobject
titleObjectList
labelName
buttonCreate

 

<h2>#i18n{document.create_document.title} « ${document_type} »</h2>
 <div class="highlight-box">
<p> <label for="document_title">
#i18n{document.create_document.labelDocumentTitle}* : </label>
<input type="text" name="document_title" size="80" maxlength="255"/>
#i18n{document.create_document.helpDocumentTitle}
</p>

Localisation dans le code Java

Dans le code Java, il faut recourir au service I18nService pour localiser une clé en fonction de la locale courante. NB : Les valeurs des clés doivent être déclarées dans des constantes comme dans l'exemple ci-dessous.

private static final 
PROPERTY_MESSAGE_MYMESSAGE = "myplugin.myMessage";
... String strLocalizedMessage = I18nService.getLocalizedString (
PROPERTY_MESSAGE_MYMESSAGE , locale ); ...

Il y a une erreur de communication avec le serveur Booktype. Nous ne savons pas actuellement où est le problème.

Vous devriez rafraîchir la page.