private @Nullable @Nls String getLocalizedString(@Nullable String bundleName, String key) {
    PluginDescriptor descriptor = getPluginDescriptor();
    String baseName = bundleName != null ? bundleName :
                      bundle != null ? bundle :
                      descriptor.getResourceBundleBaseName();
    if (baseName == null || key == null) {
      if (bundleName != null) {
        LOG.warn("Cannot resolve message key '" + key + "' for " + implementationClass);
      }
      return null;
    }
    ResourceBundle resourceBundle = DynamicBundle.getResourceBundle(descriptor.getClassLoader(), baseName);
    return AbstractBundle.message(resourceBundle, key);
  }
private @Nullable @Nls String getLocalizedString(@Nullable String bundleName, String key)