Fields Summary |
---|
protected Locale | fLocaleThe local object to use. |
private static ListResourceBundle | XMLBundleThe language specific resource object for XML messages. |
private static final String | XML_ERROR_RESOURCESThe class name of the XML error message string table. |
protected static final String | BAD_CODEString to use if a bad message code is used. |
protected static final String | FORMAT_FAILEDString to use if the message format operation failed. |
Methods Summary |
---|
public static final java.lang.String | createMsg(java.util.ListResourceBundle fResourceBundle, java.lang.String msgKey, java.lang.Object[] args)Creates a message from the specified key and replacement
arguments, localized to the given locale.
String fmsg = null;
boolean throwex = false;
String msg = null;
if (msgKey != null)
msg = fResourceBundle.getString(msgKey);
if (msg == null)
{
msg = fResourceBundle.getString(BAD_CODE);
throwex = true;
}
if (args != null)
{
try
{
// Do this to keep format from crying.
// This is better than making a bunch of conditional
// code all over the place.
int n = args.length;
for (int i = 0; i < n; i++)
{
if (null == args[i])
args[i] = "";
}
fmsg = java.text.MessageFormat.format(msg, args);
}
catch (Exception e)
{
fmsg = fResourceBundle.getString(FORMAT_FAILED);
fmsg += " " + msg;
}
}
else
fmsg = msg;
if (throwex)
{
throw new RuntimeException(fmsg);
}
return fmsg;
|
public static final java.lang.String | createXMLMessage(java.lang.String msgKey, java.lang.Object[] args)Creates a message from the specified key and replacement
arguments, localized to the given locale.
if (XMLBundle == null)
XMLBundle = loadResourceBundle(XML_ERROR_RESOURCES);
if (XMLBundle != null)
{
return createMsg(XMLBundle, msgKey, args);
}
else
return "Could not load any resource bundles.";
|
public java.util.Locale | getLocale()Get the Locale object that is being used.
return fLocale;
|
protected static java.lang.String | getResourceSuffix(java.util.Locale locale)Return the resource file suffic for the indicated locale
For most locales, this will be based the language code. However
for Chinese, we do distinguish between Taiwan and PRC
String suffix = "_" + locale.getLanguage();
String country = locale.getCountry();
if (country.equals("TW"))
suffix += "_" + country;
return suffix;
|
public static java.util.ListResourceBundle | loadResourceBundle(java.lang.String className)Return a named ResourceBundle for a particular locale. This method mimics the behavior
of ResourceBundle.getBundle().
Locale locale = Locale.getDefault();
try
{
return (ListResourceBundle)ResourceBundle.getBundle(className, locale);
}
catch (MissingResourceException e)
{
try // try to fall back to en_US if we can't load
{
// Since we can't find the localized property file,
// fall back to en_US.
return (ListResourceBundle)ResourceBundle.getBundle(
className, new Locale("en", "US"));
}
catch (MissingResourceException e2)
{
// Now we are really in trouble.
// very bad, definitely very bad...not going to get very far
throw new MissingResourceException(
"Could not load any resource bundles." + className, className, "");
}
}
|
public void | setLocale(java.util.Locale locale)Set the Locale object to use.
fLocale = locale;
|