ResourceMessage

Crée un message localisable (voir Prise en charge de la localisation) depuis une ressource de propriété.

La propriété peut également spécifier des caractères génériques pour les arguments formatés. La prise en charge ainsi que la syntaxe du formatage sont décrites dans le JavaDoc pour MessageFormat.

avertissement : Comme mentionné dans le JavaDoc, si vous avez besoin de générer un guillemet simple ou une apostrophe ('), vous devez spécifier deux guillemets simples dans le texte de propriété ('').

Si vous devez générer un fichier XML ou HTML, et que vous n'avez pas besoin d'un formattage complexe des jetons, ni de modifier le texte du message sans modifier les règles, pensez à utiliser XmlMessage à la place.

<?xml version="1.0" encoding="UTF-8"?>
<RuleSet name="Example_ResourceMessage"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:noNamespaceSchemaLocation=
"http://www.curamsoftware.com/CreoleRulesSchema.xsd">
  <Class name="Person">

    <Attribute name="gender">
      <type>
        <javaclass name="String"/>
      </type>
      <derivation>
        <specified/>
      </derivation>
    </Attribute>

    <Attribute name="isMarried">
      <type>
        <javaclass name="Boolean"/>
      </type>
      <derivation>
        <specified/>
      </derivation>
    </Attribute>

    <Attribute name="firstName">
      <type>
        <javaclass name="String"/>
      </type>
      <derivation>
        <specified/>
      </derivation>
    </Attribute>

    <Attribute name="surname">
      <type>
        <javaclass name="String"/>
      </type>
      <derivation>
        <specified/>
      </derivation>
    </Attribute>

    <Attribute name="income">
      <type>
        <javaclass name="Number"/>
      </type>
      <derivation>
        <specified/>
      </derivation>
    </Attribute>

    <!-- Renvoie un message d'accueil qui peut être
        généré dans l'environnement local de l'utilisateur -->
    <Attribute name="simpleGreetingMessage">
      <type>
        <javaclass name="curam.creole.value.Message"/>
      </type>
      <derivation>
        <ResourceMessage key="simpleGreeting"
          resourceBundle="curam.creole.example.Messages"/>
      </derivation>
    </Attribute>

    <!-- Renvoie un message d'accueil contenant
         le titre ainsi que le prénom de la personne.
         Le message d'accueil et le titre sont localisés,
         tandis que le prénom ne l'est pas (il est identique
         dans tous les environnements locaux). -->
    <Attribute name="parameterizedGreetingMessage">
      <type>
        <javaclass name="curam.creole.value.Message"/>
      </type>
      <derivation>
        <!-- passe des arguments aux
             caractères génériques du message -->
        <ResourceMessage key="parameterizedGreeting"
          resourceBundle="curam.creole.example.Messages">
          <!-- Titre -->
          <choose>
            <type>
              <javaclass name="curam.creole.value.Message"/>
            </type>
            <when>
              <condition>
                <equals>
                  <reference attribute="gender"/>
                  <String value="Male"/>
                </equals>
              </condition>
              <value>
                <ResourceMessage key="title.male"
                  resourceBundle="curam.creole.example.Messages"/>
              </value>
            </when>
            <when>
              <condition>
                <reference attribute="isMarried"/>
              </condition>
              <value>
                <ResourceMessage key="title.female.married"
                  resourceBundle="curam.creole.example.Messages"/>
              </value>
            </when>
            <otherwise>
              <value>
                <ResourceMessage key="title.female.single"
                  resourceBundle="curam.creole.example.Messages"/>
              </value>
            </otherwise>
          </choose>

          <!-- Prénom -->
          <reference attribute="surname"/>

        </ResourceMessage>
      </derivation>
    </Attribute>

    <!-- Définit la mise en forme d'un nombre sur 2 décimales,
         avec un séparateur décimal et un séparateur
         des milliers dans l'environnement local de l'utilisateur -->
    <Attribute name="incomeStatementMessage">
      <type>
        <javaclass name="curam.creole.value.Message"/>
      </type>
      <derivation>
        <ResourceMessage key="incomeStatement"
          resourceBundle="curam.creole.example.Messages">
          <reference attribute="income"/>
        </ResourceMessage>
      </derivation>
    </Attribute>

  </Class>

</RuleSet>
Figure 1. Exemple de propriétés - En anglais
# file curam/creole/example/Messages_en.properties

simpleGreeting=Hello
parameterizedGreeting=Hello, {0} {1}
title.male=Mr.
title.female.single=Miss
title.female.married=Mrs.
incomeStatement=Income: USD{0,number,#0.00}
Figure 2. Exemple de propriétés - En français
# file curam/creole/example/Messages_fr.properties

simpleGreeting=Bonjour
parameterizedGreeting=Bonjour, {0} {1}
title.male=M.
title.female.single=Mlle.
title.female.married=Mme.
incomeStatement=Revenue: EUR{0,number,#0.00}