code: public static String get(String bundleName, Locale locale, String key, Object... args) {
          try {
              ResourceBundle bundle = getResourceBundle(bundleName, locale);
  
              if (bundle == null) {
                  return getDefaultMessage(key, args);
              }
  
              if (key == null) {
                  key = "undefined";
              }
  
              String msg;
              try {
                  msg = bundle.getString(key);
              } catch (MissingResourceException e) {
                  // notice that this may throw a MissingResourceException of its own (caught below)
                  try {
                      msg = bundle.getString("undefined");
                  } catch (MissingResourceException ex) {
                      return getDefaultMessage(key, args);
                  }
              }
  
              return MessageFormat.format(msg, args);
  
          } catch (MissingResourceException e) {
              return getDefaultMessage(key, args);
          }
  
      }
docs: <p>get.</p>
  
  @param bundleName a {@link java.lang.String} object.
  @param locale     a {@link java.util.Locale} object.
  @param key        a {@link java.lang.String} object.
  @param args       a {@link java.lang.Object} object.
  @return a {@link java.lang.String} object.