The ability of defining facesMessages using icefaces' resourseBundle and overriding these messages by an application has been added to the icefaces. So now messages of the custom components can be I18N and overridden by the application developers. Technical details: - The messages files of icefaces has been added under the component branch: location:svn\ossrepo\icefaces\trunk\icefaces\component\src\com\icesoft\faces\resources package:com.icesoft.faces.resources messages.properties messages_fr.properties - A utility class added under the component branch: location: svn\ossrepo\icefaces\trunk\icefaces\component\src\com\icesoft\faces\utils\MessageUtils.java fully qualified name: com.icesoft.faces.utils.MessageUtils How to use with the components? 1- Create a static messageId in the component class (e.g.) public static final String UNKNOWN_SIZE_MESSAGE_ID="com.icesoft.faces.component.inputfile.UNKNOWN_SIZE"; 2- Define messageId and its associated message in the messages file as key-value pair(e.g.) com.icesoft.faces.component.inputfile.UNKNOWN_SIZE=the request was rejected because it's size is unknown 3- in order to get a FacesMessage associates with the messageId, the following call need to be made MessageUtil.getMessage(facesContext, messageId). It would return an instance of FacesMessage based on Locale and the bundle either ICE bundle or application bundle if overridden. (e.g.) FacesMessage message = MessageUtils.getMessage(context, UNKNOWN_SIZE_MESSAGE_ID); message.setSeverity(FacesMessage.SEVERITY_ERROR); context.addMessage(getClientId(context), message); How to override a message by an application? 1- Define the message bundle of an application in the faces-config.xml (e.g.) en mycompany.myapp.resources.messages 2- Assign a custom message to the messageId inside the application's "messages" file as key-value pair(e.g.) com.icesoft.faces.component.inputfile.UNKNOWN_SIZE=This message has been overridden by the application Note: The inputFile component is using I18N messages.