/**
   * Attempts to resolve a MessageFormat for the code from the list of plugin base names
   *
   * @param code The code
   * @param locale The locale
   * @return a MessageFormat
   */
  protected MessageFormat resolveCodeFromPlugins(String code, Locale locale) {
    if (this.pluginCacheMillis < 0) {
      PropertiesHolder propHolder = getMergedPluginProperties(locale);
      MessageFormat result = propHolder.getMessageFormat(code, locale);
      if (result != null) {
        return result;
      }
    } else {

      for (String pluginBaseName : pluginBaseNames) {
        List filenames = calculateAllFilenames(pluginBaseName, locale);
        for (Object o : filenames) {
          String filename = (String) o;
          PropertiesHolder holder = getProperties(filename);
          MessageFormat result = holder.getMessageFormat(code, locale);
          if (result != null) return result;
        }
      }
    }
    return null;
  }