public static java.lang.String | formatMessage(java.util.Locale locale, java.lang.String key, java.lang.Object[] arguments)Formats a message with the specified arguments using the given
locale information.
ResourceBundle resourceBundle = null;
if (locale != null) {
resourceBundle =
PropertyResourceBundle.getBundle("org.apache.xerces.impl.msg.SAXMessages", locale);
}
else {
resourceBundle =
PropertyResourceBundle.getBundle("org.apache.xerces.impl.msg.SAXMessages");
}
// format message
String msg;
try {
msg = resourceBundle.getString(key);
if (arguments != null) {
try {
msg = java.text.MessageFormat.format(msg, arguments);
}
catch (Exception e) {
msg = resourceBundle.getString("FormatFailed");
msg += " " + resourceBundle.getString(key);
}
}
}
// error
catch (MissingResourceException e) {
msg = resourceBundle.getString("BadMessageKey");
throw new MissingResourceException(key, msg, key);
}
// no message
if (msg == null) {
msg = key;
if (arguments.length > 0) {
StringBuffer str = new StringBuffer(msg);
str.append('?");
for (int i = 0; i < arguments.length; i++) {
if (i > 0) {
str.append('&");
}
str.append(String.valueOf(arguments[i]));
}
}
}
return msg;
|