ResourceMessage

Crea un mensaje traducible (consulte Soporte de localización) a partir de un recurso de propiedad.

Opcionalmente, la propiedad puede especificar marcadores para argumentos formateados. El soporte y la sintaxis para el formato se describe en el JavaDoc para MessageFormat.

aviso: Como se menciona en el JavaDoc, si necesita producir una comilla simple o apóstrofo ('), debe especificar dos comillas simples en el texto de propiedad ('').

Si necesita producir XML o HTML y no necesita formato de símbolos complejo o la posibilidad de cambiar texto de mensaje sin cambiar reglas, tenga en cuenta la posibilidad de utilizar XmlMessage en su lugar.

<?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>

    <!-- Devuelve un saludo que puede
        salir en la configuración regional del usuario -->
    <Attribute name="simpleGreetingMessage">
      <type>
        <javaclass name="curam.creole.value.Message"/>
      </type>
      <derivation>
        <ResourceMessage key="simpleGreeting"
          resourceBundle="curam.creole.example.Messages"/>
      </derivation>
    </Attribute>

    <!-- Devuelve un saludo que contiene
         el título y el apellido de la persona.
         El saludo y el título se pueden localizar,
         el apellido no (es idéntico
         en todas las configuraciones regionales). -->
    <Attribute name="parameterizedGreetingMessage">
      <type>
        <javaclass name="curam.creole.value.Message"/>
      </type>
      <derivation>
        <!-- pasar argumentos a
             los marcadores de mensaje -->
        <ResourceMessage key="parameterizedGreeting"
          resourceBundle="curam.creole.example.Messages">
          <!-- Título -->
          <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>

          <!-- Apellido -->
          <reference attribute="surname"/>

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

    <!-- Formatea un número de 2 decimales,
         con coma decimal y separador de
         miles en la configuración regional del usuario -->
    <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>
Figura 1. Ejemplo de propiedades - Inglés
# 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}
Figura 2. Ejemplo de propiedades - Francés
# 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}