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éfautmyplugin_messages_fr.properties
- françaismyplugin_messages_fr_FR.properties
- français (France)myplugin_messages_fr_CA.properties
- français (Canada)myplugin_messages_en_US.properties
- anglais (Etats-Unis)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):
Nom du fichiers | <sous-systeme>_messages.properties |
Emplacement du fichier | fr.paris.lutece.portal.resources |
Construction de la clé | portal.<sous-systeme>.<key> |
Nom du fichiers | <plugin>_messages.properties |
Emplacement du fichier | fr.paris.lutece.portal.<plugin>.resources |
Construction de la clé | <plugin>.<key> |
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> |
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 bundle | Nom du template | Nom 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>
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.