# Using the Message Catalog

The _Message Catalog_ allows you to provide a localized experience for end users of Vault extensions. For example, you can display a localized error message to the user based on validation criteria. To do this, create a custom _Message Group_ and related _Messages_.

Once created, the message group is immediately available to call by custom code. At runtime, users see messages in their preferred language. If no translation exists, Vault uses the default value in the <a href="/en/gr/13309/#base">base language</a>.

## Limits for Message Groups and Messages

The following limits affect message groups and messages:

  * A message group contains a maximum of 500 messages.
  * Message text cannot exceed 1,500 characters nor 5 lines.
  * When creating a message _Default Value_ or editing an existing _Value_, all tokens used must follow the format `${token_name}`, where "token_name" is a string starting with a letter and followed by zero or more letters and underscores. For example, `${email_input} is not a valid email address`.

## How to Create a Message Group

To create a new message group:

  1. From **Admin** > **Configuration** > **Message Catalog**, click **Create** on the **Message Groups** page.
  2. Enter a **Label** for the group. Values for the label field do not appear to end users nor to developers.
  3. Optional: Vault auto-populates the **Name** field. If you wish, you can edit this field. The name is used by developers to call the message group.
  4. Click **Save**.

## How to Delete a Message Group

<div class="note-border alert-info">
  <div class="alert alert-info" role="alert">
    <div><i class="far fa-info-circle"></i></div>
    <div class="alert-text">
      <p><strong>Note</strong>: Before deleting a message group, ensure the action does not break any existing Vault extension.</p>
    </div>
  </div>
</div>



To delete a message group:

  1. Select a message group.
  2. On the group's edit page, click **Delete**.
  3. Click **Continue** in the dialog.

## How to Add a Message to a Message Group

To add a message to a message group:

  1. Select a message group.
  2. On the _Message Group_ record detail page, click **Create** in the **Messages** section.
  3. Enter a **Name** for the message. The name is used by developers to call the message.
  4.  Enter the **Default Value**. This field is global for all messages in the group.
  5. Click **Save**.
  6. Repeat these steps to add additional messages.

## How to Delete a Message from a Message Group

<div class="note-border alert-info">
  <div class="alert alert-info" role="alert">
    <div><i class="far fa-info-circle"></i></div>
    <div class="alert-text">
      <p><strong>Note</strong>: Before deleting a message, ensure the action does not break any existing Vault extension.</p>
    </div>
  </div>
</div>



To delete a message from a message group:

  1. Select a message group.
  2. Select a message on the _Message Group_ record detail page.
  3. On the **View Message** page, click **Delete**.
  4. Click **Continue** in the dialog.

## How to Edit a Message

To edit a message:

  1. Select a message group.
  2. Select a message on the _Message Group_ record detail page.
  3. On the **View Message** page, click **Edit**.
  4. If desired, enter a new **Name** for the message. The name is used by developers to call the message.
  5. If desired, enter a new **Default Value**. Changes made to this field are global for all messages in the group.
  6. If desired, enter a new **Value** (optional). This field is typically the translated message for the current user's language. If no translation exists or if the value is deleted, Vault uses the **Default Value** regardless of the user's language setting. While it is possible to provide translations by changing languages in your profile and entering the value here, it is recommended to use the <a href="/en/gr/13309/#bulk-translation">Bulk Translation tool</a>.
  7. Click **Save**.

## How to Translate Messages

Translate messages using the **Field Labels** option of the <a href="/en/gr/13309/#bulk-translation">Bulk Translation tool</a>. In the export CSV, messages have the `message__sys` **Type**. Their **Key** follows the pattern `Messagegroup#Message`. For example: `person_validation__c#email_format__c`.
