Registering Messages

If you create custom messages, you must make them available at application startup time. You do this in one of two ways: by queuing the message onto the FacesContext instance programmatically (as described in Performing Localization) or by registering the messages with your application using the application configuration resource file.

Here is the part of the file that registers the messages for the Duke's Bookstore application:

<application>
  <message-bundle>
    resources.ApplicationMessages
  </message-bundle>
  <locale-config>
    <default-locale>en</default-locale>
    <supported-locale>es</supported-locale>
    <supported-locale>de</supported-locale>
    <supported-locale>fr</supported-locale>
  </locale-config>
</application> 

This set of elements will cause your Application instance to be populated with the messages contained in the specified ResourceBundle.

The message-bundle element represents a set of localized messages. It must contain the fully qualified path to the ResourceBundle containing the localized messages--in this case, resources.ApplicationMessages.

The locale-config element lists the default locale and the other supported locales. The locale-config element enables the system to find the correct locale based on the browser's language settings. Duke's Bookstore manually sets the locale and so it overrides these settings. Therefore, it's not necessary to use locale-config to specify the default or supported locales in Duke's Bookstore.

The supported-locale and default-locale tags accept the lower-case, two-character codes as defined by ISO-639 (see http://www.ics.uci.edu/pub/ietf/http/related/iso639.txt). Make sure that your ResourceBundle actually contains the messages for the locales that you specify with these tags.

To access the localized message, the application developer merely references the key of the message from the resource bundle. See Performing Localization for more information.