protected String createInfoHtml(TranslateEntry value) {
    String ret = "<html><style>td.a{font-style:italic;}</style><table valign=top>";
    ret += "<tr><td class=a>Key:</td><td>" + value.getKey() + "</td></tr>";

    ret += "<tr><td class=a>Location:</td><td>" + value.getFullKey() + "</td></tr>";
    ret += "<tr><td class=a>Source:</td><td>" + value.getSource() + "</td></tr>";
    ret +=
        "<tr><td class=a>Default:</td><td>"
            + Encoding.cdataEncode(value.getDefault())
            + "</td></tr>";
    ret +=
        "<tr><td class=a>Translation:</td><td>"
            + Encoding.cdataEncode(value.getTranslation())
            + "</td></tr>";
    if (value.isMissing()) {
      ret +=
          "<tr><td class=a><span style='color:#ff0000' >Error:</span></td><td class=a><span style='color:#ff0000' >Not translated yet</span></td></tr>";
    }
    if (value.isDefault()) {
      ret +=
          "<tr><td class=a><font color='#339900' >Warning:</span></td><td class=a><font color='#339900' >The translation equals the english default language.</span></td></tr>";
    }

    if (value.isParameterInvalid()) {
      ret +=
          "<tr><td class=a><span style='color:#ff0000' >Error:</span></td><td class=a><span style='color:#ff0000' >Parameter Wildcards (%s*) do not match.</span></td></tr>";
    }

    Type[] parameters = value.getParameters();
    ret += "<tr><td class=a>Parameters:</td>";
    if (parameters.length == 0) {
      ret += "<td>none</td></tr>";
    } else {
      ret += "<td>";
      int i = 1;
      for (Type t : parameters) {
        ret += "   %s" + i + " (" + t + ")<br>";
        i++;
      }
      ret += "</td>";
      ret += "</tr>";
    }

    System.out.println(ret);
    return ret + "</table></html>";
  }