Listing 3: Two-parameter version of getResourceString

private static Hashtable resourceBundles = new Hashtable();

public static String getResourceString(String key,
                                       String baseName) {
  if (key == null || key.equals("")) return key;
  Locale locale = Locale.getDefault();
  ResourceBundle resource = 
    (ResourceBundle)resourceBundles.get(baseName + "_" + 
                                        locale.toString());
  if (resource == null) {
    try {
      resource = ResourceBundle.getBundle(baseName, locale);
      if (resource != null) {
        resourceBundles.put(baseName + "_" + locale.toString(),
                            resource);
      }
    }
    catch (Exception e) {
      System.out.println(e);
    }
  }
  if (resource != null) {
    try {
      String value = resource.getString(key);
      if (value != null) return value;
    }
    catch (java.util.MissingResourceException mre) {}
  }
  return key;
}
— End of Listing —