merge of '4ef1d99f924ee431587d6f85241540e031fecbc1'
and '56c6ae6a06651a05025a2e4f76ba35985a8ff372'
@ -169,7 +169,7 @@ public class I2PSnarkServlet extends Default {
|
||||
|
||||
PrintWriter out = resp.getWriter();
|
||||
out.write("<html>\n" +
|
||||
"<head>\n" +
|
||||
"<head><link rel=\"shortcut icon\" href=\"/themes/console/snark/favicon.ico\">\n" +
|
||||
"<title>");
|
||||
out.write(_("I2PSnark - Anonymous BitTorrent Client"));
|
||||
out.write("</title>\n");
|
||||
@ -190,7 +190,7 @@ public class I2PSnarkServlet extends Default {
|
||||
out.write("<div class=\"snarknavbar\"><a href=\"" + req.getRequestURI() + peerString + "\" title=\"");
|
||||
out.write(_("Refresh page"));
|
||||
out.write("\" class=\"snarkRefresh\">");
|
||||
out.write(_("I2PSnark"));
|
||||
out.write(_("<img border=\"0\" src=\"/themes/console/snark/images/arrow_refresh.png\"> I2PSnark"));
|
||||
out.write("</a> <a href=\"http://forum.i2p/viewforum.php?f=21\" class=\"snarkRefresh\" target=\"_blank\">");
|
||||
out.write(_("Forum"));
|
||||
out.write("</a>\n");
|
||||
@ -217,7 +217,7 @@ public class I2PSnarkServlet extends Default {
|
||||
out.write("</pre></td></tr></table></div>");
|
||||
|
||||
if (isConfigure) {
|
||||
out.write("</div>\n");
|
||||
out.write("<div class=\"logshim\"></div></div>\n");
|
||||
writeConfigForm(out, req);
|
||||
} else {
|
||||
writeTorrents(out, req);
|
||||
@ -237,31 +237,31 @@ public class I2PSnarkServlet extends Default {
|
||||
List snarks = getSortedSnarks(req);
|
||||
String uri = req.getRequestURI();
|
||||
out.write(TABLE_HEADER);
|
||||
out.write(_("Status"));
|
||||
out.write(_("<img border=\"0\" src=\"/themes/console/snark/images/status.png\" title=\"Torrent Status\">Status"));
|
||||
if (_manager.util().connected() && !snarks.isEmpty()) {
|
||||
out.write(" (<a href=\"");
|
||||
out.write(" » <a href=\"");
|
||||
out.write(req.getRequestURI());
|
||||
if (peerParam != null) {
|
||||
out.write("\">");
|
||||
out.write(_("Hide Peers"));
|
||||
out.write(_("<img border=\"0\" src=\"/themes/console/snark/images/showpeers.png\" title=\"Toggle Peer Visibility\" alt=\"Hide Peers\">"));
|
||||
} else {
|
||||
out.write("?p=1\">");
|
||||
out.write(_("Show Peers"));
|
||||
out.write(_("<img border=\"0\" src=\"/themes/console/snark/images/hidepeers.png\" title=\"Toggle Peer Visibility\" alt=\"Show Peers\">"));
|
||||
}
|
||||
out.write("</a>)<br>\n");
|
||||
out.write("</a><br>\n");
|
||||
}
|
||||
out.write("</th>\n<th align=\"left\">");
|
||||
out.write(_("Torrent"));
|
||||
out.write(_("<img border=\"0\" src=\"/themes/console/snark/images/torrent.png\" title=\"Loaded Torrents\">Torrent"));
|
||||
out.write("</th>\n<th align=\"center\">");
|
||||
out.write(_("ETA"));
|
||||
out.write("</th>\n<th align=\"right\">");
|
||||
out.write(_("Downloaded"));
|
||||
out.write("</th>\n<th align=\"right\">");
|
||||
out.write(_("Uploaded"));
|
||||
out.write("</th>\n<th align=\"right\">");
|
||||
out.write(_("Down Rate"));
|
||||
out.write("</th>\n<th align=\"right\">");
|
||||
out.write(_("Up Rate"));
|
||||
out.write(_("<img border=\"0\" src=\"/themes/console/snark/images/eta.png\" title=\"Estimated Download Time\">ETA"));
|
||||
out.write("</th>\n<th align=\"center\">");
|
||||
out.write(_("<img border=\"0\" src=\"/themes/console/images/inbound.png\" title=\"Data Downloaded\">RX"));
|
||||
out.write("</th>\n<th align=\"center\">");
|
||||
out.write(_("<img border=\"0\" src=\"/themes/console/images/outbound.png\" title=\"Data Uploaded\">TX"));
|
||||
out.write("</th>\n<th align=\"center\">");
|
||||
out.write(_("<img border=\"0\" src=\"/themes/console/images/inbound.png\" title=\"Download Speed\">Rate"));
|
||||
out.write("</th>\n<th align=\"center\">");
|
||||
out.write(_("<img border=\"0\" src=\"/themes/console/images/outbound.png\" title=\"Upload Speed\">Rate"));
|
||||
out.write("</th>\n");
|
||||
|
||||
out.write("<th align=\"center\">");
|
||||
@ -270,14 +270,14 @@ public class I2PSnarkServlet extends Default {
|
||||
"\" title=\"");
|
||||
out.write(_("Stop all torrents and the I2P tunnel"));
|
||||
out.write("\">");
|
||||
out.write(_("Stop All"));
|
||||
out.write(_("<img src=\"/themes/console/snark/images/stop_all.png\" title=\"Stop All Torrents\" alt=\"Stop All\">"));
|
||||
out.write("</a>");
|
||||
} else if (!snarks.isEmpty()) {
|
||||
out.write("<a href=\"" + uri + "?action=StartAll&nonce=" + _nonce +
|
||||
"\" title=\"");
|
||||
out.write(_("Start all torrents and the I2P tunnel"));
|
||||
out.write("\">");
|
||||
out.write(_("Start All"));
|
||||
out.write(_("<img src=\"/themes/console/snark/images/start_all.png\" title=\"Start All Torrents\" alt=\"Start All\">"));
|
||||
out.write("</a>");
|
||||
} else {
|
||||
out.write(" ");
|
||||
@ -291,8 +291,8 @@ public class I2PSnarkServlet extends Default {
|
||||
}
|
||||
|
||||
if (snarks.isEmpty()) {
|
||||
out.write("<tr class=\"snarkTorrentEven\">" +
|
||||
"<td class=\"snarkTorrentEven\" align=\"center\"" +
|
||||
out.write("<tr class=\"snarkTorrentNoneLoaded\">" +
|
||||
"<td class=\"snarkTorrentNoneLoaded\"" +
|
||||
" colspan=\"8\"><i>");
|
||||
out.write(_("No torrents loaded."));
|
||||
out.write("</i></td></tr>\n");
|
||||
@ -300,12 +300,12 @@ public class I2PSnarkServlet extends Default {
|
||||
out.write("<tfoot><tr>\n" +
|
||||
" <th align=\"left\" colspan=\"2\">");
|
||||
out.write(_("Totals"));
|
||||
out.write(" (");
|
||||
out.write(" » ");
|
||||
out.write(ngettext("1 torrent", "{0} torrents", snarks.size()));
|
||||
out.write(", ");
|
||||
out.write(DataHelper.formatSize2(stats[5]) + "B, ");
|
||||
out.write(ngettext("1 connected peer", "{0} connected peers", (int) stats[4]));
|
||||
out.write(")</th>\n" +
|
||||
out.write("</th>\n" +
|
||||
" <th> </th>\n" +
|
||||
" <th align=\"right\">" + formatSize(stats[0]) + "</th>\n" +
|
||||
" <th align=\"right\">" + formatSize(stats[1]) + "</th>\n" +
|
||||
@ -598,7 +598,7 @@ public class I2PSnarkServlet extends Default {
|
||||
return rv;
|
||||
}
|
||||
|
||||
private static final int MAX_DISPLAYED_FILENAME_LENGTH = 44;
|
||||
private static final int MAX_DISPLAYED_FILENAME_LENGTH = 42;
|
||||
private static final int MAX_DISPLAYED_ERROR_LENGTH = 40;
|
||||
private void displaySnark(PrintWriter out, Snark snark, String uri, int row, long stats[], boolean showPeers, boolean showDebug) throws IOException {
|
||||
String filename = snark.torrent;
|
||||
@ -657,13 +657,13 @@ public class I2PSnarkServlet extends Default {
|
||||
String statusString = _("Unknown");
|
||||
if (err != null) {
|
||||
if (isRunning && curPeers > 0 && !showPeers)
|
||||
statusString = "<a title=\"" + err + "\">" + _("TrackerErr") + "</a> (" +
|
||||
statusString = "<a title=\"" + err + "\">" + _("TrackerErr") + "</a> » " +
|
||||
"<a href=\"" + uri + "?p=" + Base64.encode(snark.meta.getInfoHash()) + "\">" +
|
||||
curPeers + '/' +
|
||||
ngettext("1 peer", "{0} peers", knownPeers) + "</a>)";
|
||||
ngettext("1 peer", "{0} peers", knownPeers) + "</a>";
|
||||
else if (isRunning)
|
||||
statusString = "<a title=\"" + err + "\">" + _("TrackerErr") + " (" + curPeers + '/' +
|
||||
ngettext("1 peer", "{0} peers", knownPeers) + ')';
|
||||
statusString = "<a title=\"" + err + "\">" + _("TrackerErr") + " » " + curPeers + '/' +
|
||||
ngettext("1 peer", "{0} peers", knownPeers);
|
||||
else {
|
||||
if (err.length() > MAX_DISPLAYED_ERROR_LENGTH)
|
||||
err = err.substring(0, MAX_DISPLAYED_ERROR_LENGTH) + "…";
|
||||
@ -671,34 +671,34 @@ public class I2PSnarkServlet extends Default {
|
||||
}
|
||||
} else if (remaining <= 0) {
|
||||
if (isRunning && curPeers > 0 && !showPeers)
|
||||
statusString = _("Seeding") + " (" +
|
||||
statusString = _("Seeding") + " » " +
|
||||
"<a href=\"" + uri + "?p=" + Base64.encode(snark.meta.getInfoHash()) + "\">" +
|
||||
curPeers + '/' +
|
||||
ngettext("1 peer", "{0} peers", knownPeers) + "</a>)";
|
||||
ngettext("1 peer", "{0} peers", knownPeers) + "</a>";
|
||||
else if (isRunning)
|
||||
statusString = _("Seeding") + " (" + curPeers + "/" +
|
||||
ngettext("1 peer", "{0} peers", knownPeers) + ')';
|
||||
statusString = _("Seeding") + " » " + curPeers + "/" +
|
||||
ngettext("1 peer", "{0} peers", knownPeers);
|
||||
else
|
||||
statusString = _("Complete");
|
||||
} else {
|
||||
if (isRunning && curPeers > 0 && downBps > 0 && !showPeers)
|
||||
statusString = _("OK") + " (" +
|
||||
statusString = _("OK") + " » " +
|
||||
"<a href=\"" + uri + "?p=" + Base64.encode(snark.meta.getInfoHash()) + "\">" +
|
||||
curPeers + "/" +
|
||||
ngettext("1 peer", "{0} peers", knownPeers) + "</a>)";
|
||||
ngettext("1 peer", "{0} peers", knownPeers) + "</a>";
|
||||
else if (isRunning && curPeers > 0 && downBps > 0)
|
||||
statusString = _("OK") + " (" + curPeers + "/" +
|
||||
ngettext("1 peer", "{0} peers", knownPeers) + ')';
|
||||
else if (isRunning && curPeers > 0 && !showPeers)
|
||||
statusString = _("Stalled") + " (" +
|
||||
statusString = _("Stalled") + " » " +
|
||||
"<a href=\"" + uri + "?p=" + Base64.encode(snark.meta.getInfoHash()) + "\">" +
|
||||
curPeers + '/' +
|
||||
ngettext("1 peer", "{0} peers", knownPeers) + "</a>)";
|
||||
ngettext("1 peer", "{0} peers", knownPeers) + "</a>";
|
||||
else if (isRunning && curPeers > 0)
|
||||
statusString = _("Stalled") + " (" + curPeers + '/' +
|
||||
ngettext("1 peer", "{0} peers", knownPeers) + ')';
|
||||
statusString = _("Stalled") + " » " + curPeers + '/' +
|
||||
ngettext("1 peer", "{0} peers", knownPeers);
|
||||
else if (isRunning)
|
||||
statusString = _("No Peers") + " (0/" + knownPeers + ')';
|
||||
statusString = _("No Peers") + " » 0/" + knownPeers;
|
||||
else
|
||||
statusString = _("Stopped");
|
||||
}
|
||||
@ -745,11 +745,11 @@ public class I2PSnarkServlet extends Default {
|
||||
if (e < 0)
|
||||
continue;
|
||||
baseURL = baseURL.substring(e + 1);
|
||||
out.write(" [<a href=\"" + baseURL + "details.php?dllist=1&filelist=1&info_hash=");
|
||||
out.write(" <a href=\"" + baseURL + "details.php?dllist=1&filelist=1&info_hash=");
|
||||
out.write(TrackerClient.urlencode(snark.meta.getInfoHash()));
|
||||
out.write("\" title=\"" + name + ' ' + _("Tracker") + "\">");
|
||||
out.write(_("Details"));
|
||||
out.write("</a>]");
|
||||
out.write("\" title=\"" + name + ' ' + _("Tracker") + "\" target=\"_blank\">");
|
||||
out.write(_("<img border=\"0\" src=\"/themes/console/snark/images/details.png\">"));
|
||||
out.write("</a>");
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -761,7 +761,7 @@ public class I2PSnarkServlet extends Default {
|
||||
out.write("</td>\n\t");
|
||||
out.write("<td align=\"right\" class=\"snarkTorrentDownloaded " + rowClass + "\">");
|
||||
if (remaining > 0)
|
||||
out.write(formatSize(total-remaining) + " / " + formatSize(total)); // 18MB/3GB
|
||||
out.write("<i>" + formatSize(total-remaining) + "</i> /" + formatSize(total)); // 18MB/3GB
|
||||
else
|
||||
out.write(formatSize(total)); // 3GB
|
||||
out.write("</td>\n\t");
|
||||
@ -784,7 +784,7 @@ public class I2PSnarkServlet extends Default {
|
||||
+ "\" title=\"");
|
||||
out.write(_("Stop the torrent"));
|
||||
out.write("\">");
|
||||
out.write(_("Stop"));
|
||||
out.write(_("<img src=\"/themes/console/snark/images/stop.png\" title=\"Stop Torrent\" alt=\"Stop\">"));
|
||||
out.write("</a>");
|
||||
} else {
|
||||
if (isValid) {
|
||||
@ -792,8 +792,8 @@ public class I2PSnarkServlet extends Default {
|
||||
+ "\" title=\"");
|
||||
out.write(_("Start the torrent"));
|
||||
out.write("\">");
|
||||
out.write(_("Start"));
|
||||
out.write("</a>\n");
|
||||
out.write(_("<img src=\"/themes/console/snark/images/start.png\" title=\"Start Torrent\" alt=\"Start\">"));
|
||||
out.write("</a>");
|
||||
}
|
||||
out.write("<a href=\"" + uri + "?action=Remove" + parameters
|
||||
+ "\" title=\"");
|
||||
@ -804,8 +804,8 @@ public class I2PSnarkServlet extends Default {
|
||||
// Then the remaining single quite must be escaped
|
||||
out.write(_("Are you sure you want to delete the file \\''{0}.torrent\\'' (downloaded data will not be deleted) ?", fullFilename));
|
||||
out.write("')) { return false; }\">");
|
||||
out.write(_("Remove"));
|
||||
out.write("</a><br>");
|
||||
out.write(_("<img src=\"/themes/console/snark/images/remove.png\" title=\"Remove Torrent\" alt=\"Remove\">"));
|
||||
out.write("</a>");
|
||||
out.write("<a href=\"" + uri + "?action=Delete" + parameters
|
||||
+ "\" title=\"");
|
||||
out.write(_("Delete the .torrent file and the associated data file(s)"));
|
||||
@ -815,7 +815,7 @@ public class I2PSnarkServlet extends Default {
|
||||
// Then the remaining single quite must be escaped
|
||||
out.write(_("Are you sure you want to delete the torrent \\''{0}\\'' and all downloaded data?", fullFilename));
|
||||
out.write("')) { return false; }\">");
|
||||
out.write(_("Delete"));
|
||||
out.write(_("<img src=\"/themes/console/snark/images/delete.png\" title=\"Delete Torrent + Data\" alt=\"Delete\">"));
|
||||
out.write("</a>");
|
||||
}
|
||||
out.write("</td>\n</tr>\n");
|
||||
@ -871,10 +871,10 @@ public class I2PSnarkServlet extends Default {
|
||||
out.write("<td align=\"right\" class=\"snarkTorrentStatus " + rowClass + "\">");
|
||||
if (remaining > 0) {
|
||||
if (peer.isInteresting() && !peer.isChoked()) {
|
||||
out.write("<font color=#008000>");
|
||||
out.write("<font color=#00ff00>");
|
||||
out.write(formatSize(peer.getDownloadRate()) + "ps</font>");
|
||||
} else {
|
||||
out.write("<font color=#a00000><a title=\"");
|
||||
out.write("<font color=#ff0000><a title=\"");
|
||||
if (!peer.isInteresting())
|
||||
out.write(_("Uninteresting (The peer has no pieces we need)"));
|
||||
else
|
||||
@ -887,10 +887,10 @@ public class I2PSnarkServlet extends Default {
|
||||
out.write("<td align=\"right\" class=\"snarkTorrentStatus " + rowClass + "\">");
|
||||
if (pct != 100.0) {
|
||||
if (peer.isInterested() && !peer.isChoking()) {
|
||||
out.write("<font color=#008000>");
|
||||
out.write("<font color=#00ff00>");
|
||||
out.write(formatSize(peer.getUploadRate()) + "ps</font>");
|
||||
} else {
|
||||
out.write("<font color=#a00000><a title=\"");
|
||||
out.write("<font color=#ff0000><a title=\"");
|
||||
if (!peer.isInterested())
|
||||
out.write(_("Uninterested (We have no pieces the peer needs)"));
|
||||
else
|
||||
@ -924,19 +924,19 @@ public class I2PSnarkServlet extends Default {
|
||||
out.write("<input type=\"hidden\" name=\"nonce\" value=\"" + _nonce + "\" >\n");
|
||||
out.write("<input type=\"hidden\" name=\"action\" value=\"Add\" >\n");
|
||||
out.write("<div class=\"addtorrentsection\"><span class=\"snarkConfigTitle\">");
|
||||
out.write(_("Add Torrent"));
|
||||
out.write("</span><br>\n<table border=\"0\"><tr><td>");
|
||||
out.write(_("<img border=\"0\" src=\"/themes/console/snark/images/add.png\">Add Torrent"));
|
||||
out.write("</span><hr>\n<table border=\"0\"><tr><td>");
|
||||
out.write(_("From URL"));
|
||||
out.write(":<td><input type=\"text\" name=\"newURL\" size=\"80\" value=\"" + newURL + "\" > \n");
|
||||
out.write(":<td><input type=\"text\" name=\"newURL\" size=\"85\" value=\"" + newURL + "\" > \n");
|
||||
// not supporting from file at the moment, since the file name passed isn't always absolute (so it may not resolve)
|
||||
//out.write("From file: <input type=\"file\" name=\"newFile\" size=\"50\" value=\"" + newFile + "\" /><br>\n");
|
||||
out.write("<tr><td> <td><input type=\"submit\" value=\"");
|
||||
//out.write("From file: <input type=\"file\" name=\"newFile\" size=\"50\" value=\"" + newFile + "\" /><br>");
|
||||
out.write("<input type=\"submit\" value=\"");
|
||||
out.write(_("Add torrent"));
|
||||
out.write("\" name=\"foo\" ><br>\n");
|
||||
out.write("<tr><td> <td><span class=\"snarkAddInfo\">");
|
||||
out.write(_("Alternately, you can copy .torrent files to the directory {0}.", _manager.getDataDir().getAbsolutePath()));
|
||||
out.write("\n");
|
||||
out.write(_("Removing a .torrent file will cause the torrent to stop."));
|
||||
out.write(_("You can also copy .torrent files to: <code>{0}", _manager.getDataDir().getAbsolutePath()));
|
||||
out.write("</code>.\n");
|
||||
out.write(_("Removing a .torrent will cause it to stop."));
|
||||
out.write("<br></span></table>\n");
|
||||
out.write("</form>\n</span></div>");
|
||||
}
|
||||
@ -955,12 +955,12 @@ public class I2PSnarkServlet extends Default {
|
||||
out.write("<input type=\"hidden\" name=\"nonce\" value=\"" + _nonce + "\" >\n");
|
||||
out.write("<input type=\"hidden\" name=\"action\" value=\"Create\" >\n");
|
||||
out.write("<span class=\"snarkConfigTitle\">");
|
||||
out.write(_("Create Torrent"));
|
||||
out.write("</span><br>\n<table border=\"0\"><tr><td>");
|
||||
out.write(_("<img border=\"0\" src=\"/themes/console/snark/images/create.png\">Create Torrent"));
|
||||
out.write("</span><hr>\n<table border=\"0\"><tr><td>");
|
||||
//out.write("From file: <input type=\"file\" name=\"newFile\" size=\"50\" value=\"" + newFile + "\" /><br>\n");
|
||||
out.write(_("Data to seed"));
|
||||
out.write(":<td>" + _manager.getDataDir().getAbsolutePath() + File.separatorChar
|
||||
+ "<input type=\"text\" name=\"baseFile\" size=\"40\" value=\"" + baseFile
|
||||
out.write(":<td><code>" + _manager.getDataDir().getAbsolutePath() + File.separatorChar
|
||||
+ "</code><input type=\"text\" name=\"baseFile\" size=\"58\" value=\"" + baseFile
|
||||
+ "\" title=\"");
|
||||
out.write(_("File or directory to seed (must be within the specified path)"));
|
||||
out.write("\" ><tr><td>\n");
|
||||
@ -979,12 +979,12 @@ public class I2PSnarkServlet extends Default {
|
||||
out.write("\t<option value=\"" + announceURL + "\">" + name + "</option>\n");
|
||||
}
|
||||
out.write("</select>\n");
|
||||
out.write(_("or"));
|
||||
out.write("<tr><td> <td><input type=\"text\" name=\"announceURLOther\" size=\"50\" value=\"http://\" " +
|
||||
out.write(_("or "));
|
||||
out.write("<input type=\"text\" name=\"announceURLOther\" size=\"57\" value=\"http://\" " +
|
||||
"title=\"");
|
||||
out.write(_("Specify custom tracker announce URL"));
|
||||
out.write("\" > ");
|
||||
out.write("<tr><td> <td><input type=\"submit\" value=\"");
|
||||
out.write("<input type=\"submit\" value=\"");
|
||||
out.write(_("Create torrent"));
|
||||
out.write("\" name=\"foo\" ></table>\n");
|
||||
out.write("</form>\n</span></div>");
|
||||
@ -999,12 +999,12 @@ public class I2PSnarkServlet extends Default {
|
||||
//int seedPct = 0;
|
||||
|
||||
out.write("<form action=\"" + uri + "\" method=\"POST\">\n");
|
||||
out.write("<div class=\"configsection\"><span class=\"snarkConfig\">\n");
|
||||
out.write("<div class=\"configsectionpanel\"><span class=\"snarkConfig\">\n");
|
||||
out.write("<input type=\"hidden\" name=\"nonce\" value=\"" + _nonce + "\" >\n");
|
||||
out.write("<input type=\"hidden\" name=\"action\" value=\"Save\" >\n");
|
||||
out.write("<span class=\"snarkConfigTitle\">");
|
||||
out.write(_("Configuration"));
|
||||
out.write("</span><br>\n");
|
||||
out.write(_("<img border=\"0\" src=\"/themes/console/snark/images/config.png\">Configuration"));
|
||||
out.write("</span><hr>\n");
|
||||
out.write("<table border=\"0\"><tr><td>");
|
||||
out.write(_("Data directory"));
|
||||
out.write(": <td><input type=\"text\" size=\"50\" name=\"dataDir\" value=\"" + dataDir + "\" ");
|
||||
@ -1130,7 +1130,7 @@ public class I2PSnarkServlet extends Default {
|
||||
private void writeConfigLink(PrintWriter out) throws IOException {
|
||||
out.write("<div class=\"configsection\"><span class=\"snarkConfig\">\n");
|
||||
out.write("<span class=\"snarkConfigTitle\"><a href=\"configure\">");
|
||||
out.write(_("Configuration"));
|
||||
out.write(_("<img border=\"0\" src=\"/themes/console/snark/images/config.png\">Configuration"));
|
||||
out.write("</a></span></span></div>\n");
|
||||
}
|
||||
|
||||
@ -1203,7 +1203,7 @@ public class I2PSnarkServlet extends Default {
|
||||
return buf.toString();
|
||||
}
|
||||
|
||||
private static final String HEADER = "<link href=\"/themes/console/snark.css\" rel=\"stylesheet\" type=\"text/css\" >";
|
||||
private static final String HEADER = "<link href=\"/themes/console/snark/snark.css\" rel=\"stylesheet\" type=\"text/css\" >";
|
||||
|
||||
|
||||
private static final String TABLE_HEADER = "<table border=\"0\" class=\"snarkTorrents\" width=\"100%\" cellpadding=\"0 10px\">\n" +
|
||||
@ -1270,23 +1270,13 @@ public class I2PSnarkServlet extends Default {
|
||||
title = title.substring(0, title.length() - 1);
|
||||
title = _("Torrent") + ": " + title;
|
||||
buf.append(title);
|
||||
buf.append("</TITLE>").append(HEADER).append("</HEAD><BODY>\n<div class=\"snarknavbar\">");
|
||||
buf.append(title);
|
||||
|
||||
if (parent)
|
||||
{
|
||||
buf.append("\n<br><A HREF=\"");
|
||||
// corrupts utf-8
|
||||
//buf.append(URI.encodePath(URI.addPaths(base,"../")));
|
||||
buf.append(URI.addPaths(base,"../"));
|
||||
buf.append("\"><img border=\"0\" src=\"/themes/console/images/outbound.png\"> ")
|
||||
.append(_("Up to higher level directory")).append("</A>\n");
|
||||
}
|
||||
|
||||
buf.append("</div><div class=\"page\"><div class=\"mainsection\">" +
|
||||
buf.append("</TITLE>").append(HEADER).append("<link rel=\"shortcut icon\" href=\"/themes/console/snark/favicon.ico\"></HEAD><BODY>\n<div class=\"snarknavbar\"> <a href=\"/i2psnark/\" title=\"Torrents\"");
|
||||
buf.append(" class=\"snarkRefresh\">I2PSnark</a>").append("</div>");
|
||||
|
||||
buf.append("<div class=\"page\"><div class=\"mainsection\">" +
|
||||
"<TABLE BORDER=0 class=\"snarkTorrents\" cellpadding=\"5px 10px\">" +
|
||||
"<thead><tr><th>").append(_("File")).append("</th><th>").append(_("Size"))
|
||||
.append("</th><th>").append(_("Status")).append("</th></tr></thead>");
|
||||
"<thead><tr><th>").append(_("<img border=\"0\" src=\"/themes/console/snark/images/file.png\" title=\"File\" alt=\"File\"> ")).append(title).append("</th><th>").append(_("<img border=\"0\" src=\"/themes/console/snark/images/size.png\" title=\"FileSize\" alt=\"FileSize\">Size"))
|
||||
.append("</th><th>").append(_("<img border=\"0\" src=\"/themes/console/snark/images/status.png\" title=\"Download Status\">Status")).append("</th></tr></thead>");
|
||||
//DateFormat dfmt=DateFormat.getDateTimeInstance(DateFormat.MEDIUM,
|
||||
// DateFormat.MEDIUM);
|
||||
for (int i=0 ; i< ls.length ; i++)
|
||||
@ -1372,6 +1362,21 @@ public class I2PSnarkServlet extends Default {
|
||||
buf.append(status);
|
||||
buf.append("</TD></TR>\n");
|
||||
}
|
||||
|
||||
if (parent)
|
||||
{
|
||||
buf.append("<tfoot align=\"left\"><tr><td colspan=\"3\"><A HREF=\"");
|
||||
// corrupts utf-8
|
||||
//buf.append(URI.encodePath(URI.addPaths(base,"../")));
|
||||
buf.append(URI.addPaths(base,"../"));
|
||||
buf.append("\"><img border=\"0\" src=\"/themes/console/snark/images/up.png\"> ")
|
||||
.append(_("Up to higher level directory")).append("</A></td></tr></thead>\n");
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
buf.append("</TABLE>\n");
|
||||
buf.append("</div></div></BODY></HTML>\n");
|
||||
|
||||
|
@ -8,8 +8,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: I2P i2psnark\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2010-07-01 04:52+0000\n"
|
||||
"PO-Revision-Date: 2010-07-01 12:53+0800\n"
|
||||
"POT-Creation-Date: 2010-10-04 02:45+0000\n"
|
||||
"PO-Revision-Date: 2010-10-04 12:00+0800\n"
|
||||
"Last-Translator: walking <walking@mail.i2p>\n"
|
||||
"Language-Team: foo <foo@bar>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@ -224,7 +224,6 @@ msgid "Torrents"
|
||||
msgstr "种子"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:187
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:193
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:837
|
||||
msgid "I2PSnark"
|
||||
msgstr ""
|
||||
@ -233,63 +232,65 @@ msgstr ""
|
||||
msgid "Refresh page"
|
||||
msgstr "刷新页面"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:193
|
||||
msgid "<img border=\"0\" src=\"/themes/console/snark/images/arrow_refresh.png\"> I2PSnark"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:195
|
||||
msgid "Forum"
|
||||
msgstr "论坛"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:240
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1289
|
||||
msgid "Status"
|
||||
msgstr "状态"
|
||||
msgid "<img border=\"0\" src=\"/themes/console/snark/images/status.png\" title=\"Torrent Status\">Status"
|
||||
msgstr "<img border=\"0\" src=\"/themes/console/snark/images/status.png\" title=\"种子状态\">状态"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:246
|
||||
msgid "Hide Peers"
|
||||
msgstr "隐藏用户"
|
||||
msgid "<img border=\"0\" src=\"/themes/console/snark/images/showpeers.png\" title=\"Toggle Peer Visibility\" alt=\"Hide Peers\">"
|
||||
msgstr "<img border=\"0\" src=\"/themes/console/snark/images/showpeers.png\" title=\"隐藏节点\" alt=\"隐藏节点\">"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:249
|
||||
msgid "Show Peers"
|
||||
msgstr "显示用户"
|
||||
msgid "<img border=\"0\" src=\"/themes/console/snark/images/hidepeers.png\" title=\"Toggle Peer Visibility\" alt=\"Show Peers\">"
|
||||
msgstr "<img border=\"0\" src=\"/themes/console/snark/images/hidepeers.png\" title=\"显示节点\" alt=\"显示节点\">"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:254
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1271
|
||||
msgid "Torrent"
|
||||
msgstr "种子"
|
||||
msgid "<img border=\"0\" src=\"/themes/console/snark/images/torrent.png\" title=\"Loaded Torrents\">Torrent"
|
||||
msgstr "<img border=\"0\" src=\"/themes/console/snark/images/torrent.png\" title=\"载入的种子\">种子"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:256
|
||||
msgid "ETA"
|
||||
msgstr "预计剩余时间"
|
||||
msgid "<img border=\"0\" src=\"/themes/console/snark/images/eta.png\" title=\"Estimated Download Time\">ETA"
|
||||
msgstr "<img border=\"0\" src=\"/themes/console/snark/images/eta.png\" title=\"预计剩余时间\">预计剩余时间"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:258
|
||||
msgid "Downloaded"
|
||||
msgstr "已下载"
|
||||
msgid "<img border=\"0\" src=\"/themes/console/images/inbound.png\" title=\"Data Downloaded\">RX"
|
||||
msgstr "<img border=\"0\" src=\"/themes/console/images/inbound.png\" title=\"下载数据量\">下载"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:260
|
||||
msgid "Uploaded"
|
||||
msgstr "已上传"
|
||||
msgid "<img border=\"0\" src=\"/themes/console/images/outbound.png\" title=\"Data Uploaded\">TX"
|
||||
msgstr "<img border=\"0\" src=\"/themes/console/images/outbound.png\" title=\"上传数据量\">上传"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:262
|
||||
msgid "Down Rate"
|
||||
msgstr "下载速度"
|
||||
msgid "<img border=\"0\" src=\"/themes/console/images/inbound.png\" title=\"Download Speed\">Rate"
|
||||
msgstr "<img border=\"0\" src=\"/themes/console/images/inbound.png\" title=\"下载速度\">下载速度"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:264
|
||||
msgid "Up Rate"
|
||||
msgstr "上传速度"
|
||||
msgid "<img border=\"0\" src=\"/themes/console/images/outbound.png\" title=\"Upload Speed\">Rate"
|
||||
msgstr "<img border=\"0\" src=\"/themes/console/images/outbound.png\" title=\"上传速度\">上传速度"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:271
|
||||
msgid "Stop all torrents and the I2P tunnel"
|
||||
msgstr "停止全部种子及I2P隧道"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:273
|
||||
msgid "Stop All"
|
||||
msgstr "停止全部"
|
||||
msgid "<img src=\"/themes/console/snark/images/stop_all.png\" title=\"Stop All Torrents\" alt=\"Stop All\">"
|
||||
msgstr "<img src=\"/themes/console/snark/images/stop_all.png\" title=\"全部停止\" alt=\"全部停止\">"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:278
|
||||
msgid "Start all torrents and the I2P tunnel"
|
||||
msgstr "启动全部种子及I2P隧道"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:280
|
||||
msgid "Start All"
|
||||
msgstr "启动全部"
|
||||
msgid "<img src=\"/themes/console/snark/images/start_all.png\" title=\"Start All Torrents\" alt=\"Start All\">"
|
||||
msgstr "<img src=\"/themes/console/snark/images/start_all.png\" title=\"全部开始\" alt=\"全部开始\">"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:297
|
||||
msgid "No torrents loaded."
|
||||
@ -317,13 +318,13 @@ msgid "Torrent file {0} does not exist"
|
||||
msgstr "种子文件{0}不存在"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:346
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1476
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1481
|
||||
#, java-format
|
||||
msgid "Torrent already running: {0}"
|
||||
msgstr "种子已启动:{0}"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:348
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1478
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1483
|
||||
#, java-format
|
||||
msgid "Torrent already in the queue: {0}"
|
||||
msgstr "种子排队中:{0}"
|
||||
@ -450,7 +451,7 @@ msgid "Seeding"
|
||||
msgstr "正做种"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:682
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1327
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1317
|
||||
msgid "Complete"
|
||||
msgstr "完成"
|
||||
|
||||
@ -486,24 +487,24 @@ msgid "Tracker"
|
||||
msgstr "Tracker服务器"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:751
|
||||
msgid "Details"
|
||||
msgstr "详情"
|
||||
msgid "<img border=\"0\" src=\"/themes/console/snark/images/details.png\">"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:785
|
||||
msgid "Stop the torrent"
|
||||
msgstr "停止种子"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:787
|
||||
msgid "Stop"
|
||||
msgstr "停止"
|
||||
msgid "<img src=\"/themes/console/snark/images/stop.png\" title=\"Stop Torrent\" alt=\"Stop\">"
|
||||
msgstr "<img src=\"/themes/console/snark/images/stop.png\" title=\"停止下载\" alt=\"停止\">"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:793
|
||||
msgid "Start the torrent"
|
||||
msgstr "启动种子"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:795
|
||||
msgid "Start"
|
||||
msgstr "启动"
|
||||
msgid "<img src=\"/themes/console/snark/images/start.png\" title=\"Start Torrent\" alt=\"Start\">"
|
||||
msgstr "<img src=\"/themes/console/snark/images/start.png\" title=\"开始下载\" alt=\"开始\">"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:800
|
||||
msgid "Remove the torrent from the active list, deleting the .torrent file"
|
||||
@ -518,8 +519,8 @@ msgid "Are you sure you want to delete the file \\''{0}.torrent\\'' (downloaded
|
||||
msgstr "您确定要删除文件“{0}.torrent”(下载的数据文件不会被删除)?"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:807
|
||||
msgid "Remove"
|
||||
msgstr "移除"
|
||||
msgid "<img src=\"/themes/console/snark/images/remove.png\" title=\"Remove Torrent\" alt=\"Remove\">"
|
||||
msgstr "<img src=\"/themes/console/snark/images/remove.png\" title=\"删除种子\" alt=\"删除种子\">"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:811
|
||||
msgid "Delete the .torrent file and the associated data file(s)"
|
||||
@ -534,8 +535,8 @@ msgid "Are you sure you want to delete the torrent \\''{0}\\'' and all downloade
|
||||
msgstr "您确定要删除种子“{0}”(下载的数据文件会一并被删除)?"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:818
|
||||
msgid "Delete"
|
||||
msgstr "删除"
|
||||
msgid "<img src=\"/themes/console/snark/images/delete.png\" title=\"Delete Torrent + Data\" alt=\"Delete\">"
|
||||
msgstr "<img src=\"/themes/console/snark/images/delete.png\" title=\"删除种子 + 数据\" alt=\"删除种子 + 数据\">"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:861
|
||||
msgid "Seed"
|
||||
@ -558,8 +559,8 @@ msgid "Choking (We are not allowing the peer to request pieces)"
|
||||
msgstr "拒绝请求"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:927
|
||||
msgid "Add Torrent"
|
||||
msgstr "添加种子"
|
||||
msgid "<img border=\"0\" src=\"/themes/console/snark/images/add.png\">Add Torrent"
|
||||
msgstr "<img border=\"0\" src=\"/themes/console/snark/images/add.png\">添加种子"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:929
|
||||
msgid "From URL"
|
||||
@ -571,16 +572,16 @@ msgstr "添加种子"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:937
|
||||
#, java-format
|
||||
msgid "Alternately, you can copy .torrent files to the directory {0}."
|
||||
msgstr "或者您可以将.torrent文件复制到以下目录{0}."
|
||||
msgid "You can also copy .torrent files to: <code>{0}"
|
||||
msgstr "或者您可以将.torrent文件复制到<code>{0}."
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:939
|
||||
msgid "Removing a .torrent file will cause the torrent to stop."
|
||||
msgstr "删除种子文件将导致中止该下载任务。"
|
||||
msgid "Removing a .torrent will cause it to stop."
|
||||
msgstr "删除种子文件将导致该下载任务中止。"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:958
|
||||
msgid "Create Torrent"
|
||||
msgstr "创建种子"
|
||||
msgid "<img border=\"0\" src=\"/themes/console/snark/images/create.png\">Create Torrent"
|
||||
msgstr "<img border=\"0\" src=\"/themes/console/snark/images/create.png\">创建种子"
|
||||
|
||||
#. out.write("From file: <input type=\"file\" name=\"newFile\" size=\"50\" value=\"" + newFile + "\" /><br>\n");
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:961
|
||||
@ -596,8 +597,8 @@ msgid "Select a tracker"
|
||||
msgstr "选择一个Tracker"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:982
|
||||
msgid "or"
|
||||
msgstr "或"
|
||||
msgid "or "
|
||||
msgstr "或 "
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:985
|
||||
msgid "Specify custom tracker announce URL"
|
||||
@ -609,8 +610,8 @@ msgstr "创建种子"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1006
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1133
|
||||
msgid "Configuration"
|
||||
msgstr "设置"
|
||||
msgid "<img border=\"0\" src=\"/themes/console/snark/images/config.png\">Configuration"
|
||||
msgstr "<img border=\"0\" src=\"/themes/console/snark/images/config.png\">设置"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1009
|
||||
msgid "Data directory"
|
||||
@ -709,53 +710,103 @@ msgid "1 tunnel"
|
||||
msgid_plural "{0} tunnels"
|
||||
msgstr[0] "{0}隧道"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1283
|
||||
msgid "Up to higher level directory"
|
||||
msgstr "上一层文件夹"
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1271
|
||||
msgid "Torrent"
|
||||
msgstr "种子"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1288
|
||||
msgid "File"
|
||||
msgstr "文件"
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1278
|
||||
msgid "<img border=\"0\" src=\"/themes/console/snark/images/file.png\" title=\"File\" alt=\"File\"> "
|
||||
msgstr "<img border=\"0\" src=\"/themes/console/snark/images/file.png\" title=\"文件\" alt=\"文件\"> "
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1288
|
||||
msgid "Size"
|
||||
msgstr "大小"
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1278
|
||||
msgid "<img border=\"0\" src=\"/themes/console/snark/images/size.png\" title=\"FileSize\" alt=\"FileSize\">Size"
|
||||
msgstr "<img border=\"0\" src=\"/themes/console/snark/images/size.png\" title=\"文件大小\" alt=\"文件大小\">大小"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1311
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1279
|
||||
msgid "<img border=\"0\" src=\"/themes/console/snark/images/status.png\" title=\"Download Status\">Status"
|
||||
msgstr "<img border=\"0\" src=\"/themes/console/snark/images/status.png\" title=\"下载状态\">状态"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1301
|
||||
msgid "Directory"
|
||||
msgstr "文件夹"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1316
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1306
|
||||
msgid "Torrent not found?"
|
||||
msgstr "种子未找到"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1324
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1314
|
||||
msgid "File not found in torrent?"
|
||||
msgstr "种子中没有发现文件?"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1330
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1320
|
||||
msgid "complete"
|
||||
msgstr "完成"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1331
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1321
|
||||
msgid "bytes remaining"
|
||||
msgstr "剩余字节数"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1456
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1373
|
||||
msgid "Up to higher level directory"
|
||||
msgstr "上一层文件夹"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1461
|
||||
#, java-format
|
||||
msgid "Torrent fetched from {0}"
|
||||
msgstr "从{0}获取种子成功"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1484
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1489
|
||||
#, java-format
|
||||
msgid "Torrent at {0} was not valid"
|
||||
msgstr "{0}的种子中有错误"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1489
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1494
|
||||
#, java-format
|
||||
msgid "Torrent was not retrieved from {0}"
|
||||
msgstr "从{0}获得种子失败"
|
||||
|
||||
#~ msgid "Status"
|
||||
#~ msgstr "状态"
|
||||
#~ msgid "Hide Peers"
|
||||
#~ msgstr "隐藏用户"
|
||||
#~ msgid "Show Peers"
|
||||
#~ msgstr "显示用户"
|
||||
#~ msgid "ETA"
|
||||
#~ msgstr "预计剩余时间"
|
||||
#~ msgid "Downloaded"
|
||||
#~ msgstr "已下载"
|
||||
#~ msgid "Uploaded"
|
||||
#~ msgstr "已上传"
|
||||
#~ msgid "Down Rate"
|
||||
#~ msgstr "下载速度"
|
||||
#~ msgid "Up Rate"
|
||||
#~ msgstr "上传速度"
|
||||
#~ msgid "Stop All"
|
||||
#~ msgstr "停止全部"
|
||||
#~ msgid "Start All"
|
||||
#~ msgstr "启动全部"
|
||||
#~ msgid "Details"
|
||||
#~ msgstr "详情"
|
||||
#~ msgid "Stop"
|
||||
#~ msgstr "停止"
|
||||
#~ msgid "Start"
|
||||
#~ msgstr "启动"
|
||||
#~ msgid "Remove"
|
||||
#~ msgstr "移除"
|
||||
#~ msgid "Delete"
|
||||
#~ msgstr "删除"
|
||||
#~ msgid "Add Torrent"
|
||||
#~ msgstr "添加种子"
|
||||
#~ msgid "Create Torrent"
|
||||
#~ msgstr "创建种子"
|
||||
#~ msgid "or"
|
||||
#~ msgstr "或"
|
||||
#~ msgid "Configuration"
|
||||
#~ msgstr "设置"
|
||||
#~ msgid "File"
|
||||
#~ msgstr "文件"
|
||||
#~ msgid "Size"
|
||||
#~ msgstr "大小"
|
||||
#~ msgid "Cannot change the I2CP settings while torrents are active"
|
||||
#~ msgstr "正在下载/上传,无法更改I2CP设置"
|
||||
#~ msgid "{0} torrents"
|
||||
|
@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: I2P i2ptunnel\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2010-07-01 04:52+0000\n"
|
||||
"POT-Creation-Date: 2010-10-04 02:45+0000\n"
|
||||
"PO-Revision-Date: 2010-05-29 10:57+0800\n"
|
||||
"Last-Translator: walking <walking@mail.i2p>\n"
|
||||
"Language-Team: foo <foo@bar>\n"
|
||||
@ -17,7 +17,7 @@ msgstr ""
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Poedit-Language: Chinese\n"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:493
|
||||
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:492
|
||||
#, java-format
|
||||
msgid ""
|
||||
"To visit the destination in your host database, click <a href=\"{0}\">here</"
|
||||
@ -35,55 +35,55 @@ msgstr ""
|
||||
"请点击下面的链接通过【跳转(Jump)】服务提供的【地址助手】链接跳转至域名对应的"
|
||||
"主机:"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:369
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:372
|
||||
msgid "New Tunnel"
|
||||
msgstr "新建隧道"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:389
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:392
|
||||
msgid "Standard client"
|
||||
msgstr "标准客户端"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:390
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:393
|
||||
msgid "HTTP client"
|
||||
msgstr "HTTP 客户端"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:391
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:394
|
||||
msgid "IRC client"
|
||||
msgstr "IRC 客户端"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:392
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:395
|
||||
msgid "Standard server"
|
||||
msgstr "标准服务器"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:393
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:396
|
||||
msgid "HTTP server"
|
||||
msgstr "HTTP 服务器"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:394
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:397
|
||||
msgid "SOCKS 4/4a/5 proxy"
|
||||
msgstr "SOCKS4/4A/5 代理"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:395
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:398
|
||||
msgid "SOCKS IRC proxy"
|
||||
msgstr "SOCKS IRC 代理"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:396
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:399
|
||||
msgid "CONNECT/SSL/HTTPS proxy"
|
||||
msgstr "CONNECT/SSL/HTTPS 代理"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:397
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:400
|
||||
msgid "IRC server"
|
||||
msgstr "IRC 服务器"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:398
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:401
|
||||
msgid "Streamr client"
|
||||
msgstr "Streamr 客户端"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:399
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:402
|
||||
msgid "Streamr server"
|
||||
msgstr "Streamr 服务器"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:400
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:403
|
||||
msgid "HTTP bidir"
|
||||
msgstr "双向http"
|
||||
|
||||
|
32
build.xml
@ -153,16 +153,20 @@
|
||||
destdir="./build/javadoc"
|
||||
packagenames="*"
|
||||
use="true"
|
||||
group="SDK net.i2p:net.i2p.*:net.i2p.client:net.i2p.client.*:freenet.support.CPUInformation,
|
||||
Streaming net.i2p.client.streaming,
|
||||
BOB net.i2p.BOB,
|
||||
SAM net.i2p.sam:net.i2p.sam.client,
|
||||
RouterConsole net.i2p.router.web,
|
||||
Router net.i2p.router:net.i2p.router.*:net.i2p.data.i2np,
|
||||
Systray net.i2p.apps.systray,
|
||||
I2PTunnel net.i2p.i2ptunnel:net.i2p.i2ptunnel.*"
|
||||
splitindex="true"
|
||||
windowtitle="I2P">
|
||||
windowtitle="I2P Anonymous Network - Java Documentation">
|
||||
<group title="Core SDK (i2p.jar)" packages="net.i2p:net.i2p.*:net.i2p.client:net.i2p.client.*:freenet.support.CPUInformation:org.bouncycastle.crypto:org.bouncycastle.crypto.*:gnu.crypto.*:gnu.gettext:org.xlattice.crypto.filters:com.nettgryppa.security" />
|
||||
<group title="Streaming Library" packages="net.i2p.client.streaming" />
|
||||
<group title="Router" packages="net.i2p.router:net.i2p.router.*:net.i2p.data.i2np:org.cybergarage.*:org.freenetproject" />
|
||||
<group title="Router Console" packages="net.i2p.router.web" />
|
||||
<group title="Addressbook Application" packages="net.i2p.addressbook" />
|
||||
<group title="BOB Bridge" packages="net.i2p.BOB" />
|
||||
<group title="I2PSnark Application" packages="org.klomp.snark:org.klomp.snark.*" />
|
||||
<group title="I2PTunnel Application" packages="net.i2p.i2ptunnel:net.i2p.i2ptunnel.*" />
|
||||
<group title="SAM Bridge" packages="net.i2p.sam:net.i2p.sam.client" />
|
||||
<group title="SusiDNS Application" packages="i2p.susi.dns" />
|
||||
<group title="SusiMail Application" packages="i2p.susi.webmail:i2p.susi.webmail.*:i2p.susi.debug:i2p.susi.util" />
|
||||
<group title="Systray Application" packages="net.i2p.apps.systray" />
|
||||
<sourcepath>
|
||||
<pathelement location="core/java/src" />
|
||||
<!--<pathelement location="core/java/test" />-->
|
||||
@ -177,6 +181,8 @@
|
||||
<pathelement location="apps/i2psnark/java/src" />
|
||||
<pathelement location="apps/sam/java/src" />
|
||||
<pathelement location="apps/BOB/src" />
|
||||
<pathelement location="apps/susidns/src/java/src" />
|
||||
<pathelement location="apps/susimail/src/src" />
|
||||
</sourcepath>
|
||||
<classpath>
|
||||
<pathelement location="apps/jetty/jettylib/org.mortbay.jetty.jar" />
|
||||
@ -406,9 +412,11 @@
|
||||
<copy file="installer/lib/launch4j/lib/XStream.LICENSE.txt" tofile="pkg-temp/licenses/LICENSE-XStream.txt" />
|
||||
</target>
|
||||
<target name="prepthemeupdates">
|
||||
<!-- Add extricated I2PSnark css here, for now -->
|
||||
<copy file="installer/resources/themes/console/snark.css" todir="pkg-temp/docs/themes/console/" />
|
||||
<!-- these files now in docs/, not in the .war -->
|
||||
<!-- Migrated all Snark content to its own dir. Need to ensure snark dir excluded from console theme choices!! -->
|
||||
<!-- Snark's visible Assets -->
|
||||
<copy todir="pkg-temp/docs/themes/console/snark/" >
|
||||
<fileset dir="installer/resources/themes/console/snark/" />
|
||||
</copy>
|
||||
<!-- No need to copy these individually, we're copying the whole dir below..
|
||||
<copy file="installer/resources/themes/console/images/favicon.ico" todir="pkg-temp/docs/themes/console/images/" />
|
||||
<copy file="installer/resources/themes/console/images/i2plogo.png" todir="pkg-temp/docs/themes/console/images/" />
|
||||
|
@ -1,3 +1,6 @@
|
||||
2010-09-15 dr|z3d
|
||||
* I2PSnark: Overhaul UI, implement new theme.
|
||||
|
||||
* 2010-07-12 0.8 released
|
||||
|
||||
2010-07-08 zzz
|
||||
|
@ -1,338 +0,0 @@
|
||||
/* Not yet complete. Subject to flux and change. dr|z3d - 07.25.09 */
|
||||
|
||||
body {
|
||||
background: #eef;
|
||||
color: #001;
|
||||
font: 8pt "Lucida Sans Unicode","Bitstream Vera Sans",Verdana,Tahoma,Helvetica,sans-serif;
|
||||
}
|
||||
|
||||
.snarkTitle {
|
||||
font-size: 12pt;
|
||||
font-weight: bold;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.snarkRefresh:link,.snarkRefresh:visited {
|
||||
text-decoration: none !important;
|
||||
text-transform: uppercase !important;
|
||||
padding: 0 16px;
|
||||
letter-spacing: 0.05em;
|
||||
font-weight: bold;
|
||||
font-size: 11pt;
|
||||
color: #005;
|
||||
}
|
||||
|
||||
.snarkRefresh:hover {
|
||||
text-decoration: none !important;
|
||||
text-transform: uppercase !important;
|
||||
padding: 0 16px;
|
||||
letter-spacing: 0.05em;
|
||||
font-weight: bold;
|
||||
font-size: 11pt;
|
||||
color: #f60;
|
||||
border-bottom: 3px solid #f60;
|
||||
border-top: 3px solid #f60;
|
||||
}
|
||||
|
||||
.snarkRefresh:active {
|
||||
text-decoration: none !important;
|
||||
text-transform: uppercase !important;
|
||||
padding: 0 16px;
|
||||
letter-spacing: 0.05em;
|
||||
font-weight: bold;
|
||||
font-size: 11pt;
|
||||
color: #f30;
|
||||
border-bottom: 3px solid #f30;
|
||||
border-top: 3px solid #f30;
|
||||
}
|
||||
|
||||
.snarkMessages {
|
||||
font: bold 9pt "Lucida Console","DejaVu Sans Mono",Courier,mono !important;
|
||||
text-align: left;
|
||||
margin: 0 0px 10px 0px;
|
||||
padding: 0;
|
||||
border-spacing: 0px;
|
||||
-moz-border-radius: 4px 0 0 0;
|
||||
-khtml-border-radius: 4px;
|
||||
border-radius: 4px;
|
||||
border: 2px solid #930;
|
||||
overflow: auto;
|
||||
color: #531;
|
||||
height: 79px;
|
||||
width: auto;
|
||||
background: #f0dea0;
|
||||
}
|
||||
|
||||
pre {
|
||||
width: 100%;
|
||||
font: 8pt "Lucida Console","DejaVu Sans Mono",Courier,mono !important;
|
||||
padding: 0;
|
||||
text-align: left !important;
|
||||
height: 8px;
|
||||
}
|
||||
|
||||
table {
|
||||
margin: 0px 0px 10px 0px;
|
||||
border: 0px;
|
||||
padding: 0px;
|
||||
border-spacing: 0px;
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
th {
|
||||
padding: 4px;
|
||||
font-size: 9pt;
|
||||
border-top: 1px outset #001;
|
||||
border-bottom: 1px inset #001;
|
||||
background: #fda;
|
||||
whitespace: nowrap;
|
||||
}
|
||||
|
||||
.SnarkTorrents {
|
||||
margin: 0;
|
||||
border: 1px solid #001;
|
||||
background: #f9f;
|
||||
}
|
||||
|
||||
td {
|
||||
padding: 4px;
|
||||
}
|
||||
|
||||
.snarkTorrentEven {
|
||||
background: #fea;
|
||||
font-size: 8pt;
|
||||
}
|
||||
|
||||
.snarkTorrentOdd {
|
||||
background: #f0dea0;
|
||||
font-size: 8pt;
|
||||
}
|
||||
|
||||
.snarkFileName {
|
||||
min-width: 25em;
|
||||
padding: 4px 10px;
|
||||
}
|
||||
|
||||
.snarkFileSize {
|
||||
padding: 4px 10px;
|
||||
}
|
||||
|
||||
.snarkFileStatus {
|
||||
padding: 4px 10px;
|
||||
}
|
||||
|
||||
.thumb {
|
||||
max-height: 64px;
|
||||
max-width: 96px;
|
||||
}
|
||||
|
||||
.snarkNewTorrent {
|
||||
font-size: 9pt;
|
||||
}
|
||||
|
||||
.snarkAddInfo {
|
||||
font-size: 9pt;
|
||||
line-height: 130% !important;
|
||||
}
|
||||
|
||||
.snarkConfigTitle {
|
||||
font-size: 11pt;
|
||||
font-weight: bold;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.snarkConfig {
|
||||
font-size: 10pt;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.page {
|
||||
background: #fff;
|
||||
color: #310;
|
||||
min-width: 800px !important;
|
||||
margin: 5px 0 0 0;
|
||||
padding: 10px 10px 0px 10px;
|
||||
-moz-border-radius: 4px;
|
||||
-khtml-border-radius: 4px;
|
||||
border-radius: 4px;
|
||||
border: 1px solid #001;
|
||||
font-size: 9pt !important;
|
||||
line-height: 160% !important;
|
||||
-moz-box-shadow: inset 0px 0px 1px 0px #002;
|
||||
text-align: center;
|
||||
opacity: 1.0;
|
||||
}
|
||||
|
||||
form {
|
||||
line-height: 250%;
|
||||
}
|
||||
|
||||
p {
|
||||
line-height: 150%;
|
||||
}
|
||||
|
||||
hr {
|
||||
color: #003;
|
||||
background: #003;
|
||||
height: 1px;
|
||||
border: 0px solid #003;
|
||||
width: 100%;
|
||||
margin: 10px 0 7px 0;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
a:link {
|
||||
color: #930;
|
||||
text-decoration: none;
|
||||
font-weight: bold;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
|
||||
a:visited {
|
||||
color: #606;
|
||||
text-decoration: none;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
color: #900;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
input {
|
||||
font-size: 9pt;
|
||||
font-weight: bold;
|
||||
text-align: left;
|
||||
padding: 2px 4px;
|
||||
-moz-border-radius: 4px;
|
||||
border-radius: 4px;
|
||||
border: 1px;
|
||||
background: #ffe;
|
||||
}
|
||||
|
||||
input.r {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
select {
|
||||
background: #ffe;
|
||||
color: #310;
|
||||
font: 9pt "Lucida Sans Unicode","Bitstream Vera Sans",Verdana,Tahoma,Helvetica,sans-serif;
|
||||
font-weight: bold;
|
||||
padding: 2px 2px 2px 3px;
|
||||
-moz-border-radius: 4px;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
textarea {
|
||||
background: #ffe;
|
||||
color: #310;
|
||||
font-weight: bold;
|
||||
padding: 1px 4px 0px;
|
||||
-moz-border-radius: 4px;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
img {
|
||||
border: none;
|
||||
margin: 3px 8px 5px 4px;
|
||||
vertical-align: middle;
|
||||
opacity: 1.0;
|
||||
line-height: 100%;
|
||||
}
|
||||
|
||||
img: hover {
|
||||
border: none;
|
||||
margin: 5px 5px 0px 5px;
|
||||
opacity: 0.5;
|
||||
line-height: 100%;
|
||||
}
|
||||
|
||||
div.section,div.mainsection {
|
||||
margin: 0 0 10px 0;
|
||||
padding: 10px;
|
||||
border: 1px solid #001;
|
||||
color: #001;
|
||||
-moz-border-radius: 4px;
|
||||
-khtml-border-radius: 4px;
|
||||
border-radius: 4px;
|
||||
-moz-box-shadow: inset 0px 0px 1px 0px #002;
|
||||
word-wrap: break-word;
|
||||
text-align: center;
|
||||
background: #ffe url('../console/light/images/tabletile.png');
|
||||
opacity: 1.0;
|
||||
}
|
||||
|
||||
div.newtorrentsection {
|
||||
margin: 0 0 10px 0;
|
||||
padding: 0 10px 10px 10px;
|
||||
border: 1px solid #001;
|
||||
text-align: center;
|
||||
color: #001;
|
||||
-moz-border-radius: 4px;
|
||||
-khtml-border-radius: 4px;
|
||||
border-radius: 4px;
|
||||
-moz-box-shadow: inset 0px 0px 1px 0px #002;
|
||||
word-wrap: break-word;
|
||||
background: #bb4 url('../console/images/yellowtile.png');
|
||||
opacity: 1.0;
|
||||
}
|
||||
|
||||
div.addtorrentsection {
|
||||
margin: 0 0 10px 0;
|
||||
padding: 0 10px 10px 10px;
|
||||
border: 1px solid #001;
|
||||
text-align: center;
|
||||
color: #001;
|
||||
-moz-border-radius: 4px;
|
||||
-khtml-border-radius: 4px;
|
||||
border-radius: 4px;
|
||||
-moz-box-shadow: inset 0px 0px 1px 0px #002;
|
||||
word-wrap: break-word;
|
||||
background: #7f7 url('../console/images/greentile.png');
|
||||
opacity: 1.0;
|
||||
}
|
||||
|
||||
div.configsection {
|
||||
margin: 0;
|
||||
padding: 0 10px 10px 10px;
|
||||
border: 1px solid #001;
|
||||
color: #ffb;
|
||||
-moz-border-radius: 4px;
|
||||
-khtml-border-radius: 4px;
|
||||
border-radius: 4px;
|
||||
-moz-box-shadow: inset 0px 0px 0px 1px #900;
|
||||
word-wrap: break-word;
|
||||
text-align: center;
|
||||
background: #700 url('../console/light/images/darkbluetile.png');
|
||||
font-weight: bold;/* red tile needs bold text! */
|
||||
}
|
||||
|
||||
div.configsection table{
|
||||
color: #ffb;
|
||||
}
|
||||
|
||||
div.configsection a {
|
||||
color: #f90;
|
||||
}
|
||||
|
||||
div.configsection a: hover {
|
||||
color: #f60;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.snarknavbar {
|
||||
margin: 0 0 10px 0 !important;
|
||||
padding: 10px;
|
||||
border: 1px solid #001;
|
||||
-moz-border-radius: 4px;
|
||||
-khtml-border-radius: 4px;
|
||||
border-radius: 4px;
|
||||
-moz-box-shadow: inset 0px 0px 1px 0px #002;
|
||||
background: #ddf url('../console/light/images/tabletile.png');
|
||||
text-transform: uppercase !important;
|
||||
letter-spacing: 0.05em;
|
||||
font-weight: bold;
|
||||
font-size: 11pt;
|
||||
color: #001;
|
||||
}
|
BIN
installer/resources/themes/console/snark/favicon.ico
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
installer/resources/themes/console/snark/images/add.png
Normal file
After Width: | Height: | Size: 733 B |
After Width: | Height: | Size: 631 B |
BIN
installer/resources/themes/console/snark/images/config.png
Normal file
After Width: | Height: | Size: 584 B |
After Width: | Height: | Size: 3.8 KiB |
BIN
installer/resources/themes/console/snark/images/create.png
Normal file
After Width: | Height: | Size: 570 B |
BIN
installer/resources/themes/console/snark/images/delete.png
Normal file
After Width: | Height: | Size: 716 B |
BIN
installer/resources/themes/console/snark/images/details.png
Normal file
After Width: | Height: | Size: 778 B |
BIN
installer/resources/themes/console/snark/images/eta.png
Normal file
After Width: | Height: | Size: 561 B |
BIN
installer/resources/themes/console/snark/images/file.png
Normal file
After Width: | Height: | Size: 216 B |
BIN
installer/resources/themes/console/snark/images/graytile.png
Normal file
After Width: | Height: | Size: 571 B |
BIN
installer/resources/themes/console/snark/images/hat.png
Normal file
After Width: | Height: | Size: 5.7 KiB |
BIN
installer/resources/themes/console/snark/images/hidepeers.png
Normal file
After Width: | Height: | Size: 921 B |
BIN
installer/resources/themes/console/snark/images/remove.png
Normal file
After Width: | Height: | Size: 486 B |
BIN
installer/resources/themes/console/snark/images/showpeers.png
Normal file
After Width: | Height: | Size: 920 B |
BIN
installer/resources/themes/console/snark/images/size.png
Normal file
After Width: | Height: | Size: 454 B |
BIN
installer/resources/themes/console/snark/images/snark_add.png
Normal file
After Width: | Height: | Size: 3.5 KiB |
BIN
installer/resources/themes/console/snark/images/snark_create.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
installer/resources/themes/console/snark/images/snark_thead.png
Normal file
After Width: | Height: | Size: 121 B |
BIN
installer/resources/themes/console/snark/images/snarknav.png
Normal file
After Width: | Height: | Size: 167 B |
BIN
installer/resources/themes/console/snark/images/snarknav_on.png
Normal file
After Width: | Height: | Size: 193 B |
BIN
installer/resources/themes/console/snark/images/start.png
Normal file
After Width: | Height: | Size: 499 B |
BIN
installer/resources/themes/console/snark/images/start_all.png
Normal file
After Width: | Height: | Size: 1.0 KiB |
BIN
installer/resources/themes/console/snark/images/status.png
Normal file
After Width: | Height: | Size: 369 B |
BIN
installer/resources/themes/console/snark/images/stop.png
Normal file
After Width: | Height: | Size: 424 B |
BIN
installer/resources/themes/console/snark/images/stop_all.png
Normal file
After Width: | Height: | Size: 1008 B |
BIN
installer/resources/themes/console/snark/images/tile2.png
Normal file
After Width: | Height: | Size: 156 B |
BIN
installer/resources/themes/console/snark/images/torrent.png
Normal file
After Width: | Height: | Size: 543 B |
BIN
installer/resources/themes/console/snark/images/up.png
Normal file
After Width: | Height: | Size: 341 B |
553
installer/resources/themes/console/snark/snark.css
Normal file
@ -0,0 +1,553 @@
|
||||
/* I2PSnark theme "Ubergine" by dr|z3d */
|
||||
/* Guantanamo Commemorative Edition. */
|
||||
|
||||
body {
|
||||
background: #101 url('/themes/console/snark/images/graytile.png');
|
||||
color: #001;
|
||||
font: 8pt "Lucida Sans Unicode","Bitstream Vera Sans",Verdana,Tahoma,Helvetica,sans-serif;
|
||||
}
|
||||
|
||||
.snarkTitle {
|
||||
font-size: 12pt;
|
||||
font-weight: bold;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.snarkRefresh:link,.snarkRefresh:visited {
|
||||
text-decoration: none !important;
|
||||
text-transform: uppercase !important;
|
||||
padding: 2px 16px;
|
||||
margin: -5px -7px -5px 0 !important;
|
||||
letter-spacing: 0.05em;
|
||||
font-weight: bold;
|
||||
font-size: 11pt;
|
||||
color: #f70;
|
||||
text-shadow: 1px 1px #420;
|
||||
}
|
||||
|
||||
.snarkRefresh:hover {
|
||||
text-decoration: none !important;
|
||||
text-transform: uppercase !important;
|
||||
padding: 1px 16px;
|
||||
letter-spacing: 0.05em;
|
||||
font-weight: bold;
|
||||
font-size: 11pt;
|
||||
color: #f90;
|
||||
background: #310 url('/themes/console/snark/images/snarknav_on.png') repeat-x scroll center center;
|
||||
-moz-border-radius: 3px;
|
||||
-khtml-border-radius: 3px;
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
.snarkRefresh:active {
|
||||
text-decoration: none !important;
|
||||
text-transform: uppercase !important;
|
||||
padding: 0 16px;
|
||||
letter-spacing: 0.05em;
|
||||
font-weight: bold;
|
||||
font-size: 11pt;
|
||||
color: #fb0;
|
||||
background: #310 url('/themes/console/snark/images/snarknav_on.png') repeat-x scroll center center;
|
||||
}
|
||||
|
||||
.snarkMessages {
|
||||
font: bold 9pt "Lucida Console","DejaVu Sans Mono",Courier,mono !important;
|
||||
text-align: left;
|
||||
margin: 0 0 10px 0;
|
||||
padding: 3px 0;
|
||||
border-spacing: 0px;
|
||||
-moz-border-radius: 4px 0 0 0;
|
||||
-khtml-border-radius: 4px 0 0 0;
|
||||
border-radius: 4px 0 0 0;
|
||||
border: 1px solid #000;
|
||||
overflow: auto;
|
||||
color: #22f;
|
||||
height: 70px;
|
||||
width: auto;
|
||||
background: #111 url('/themes/console/snark/images/hat.png') no-repeat scroll right center;
|
||||
}
|
||||
|
||||
.logshim {
|
||||
margin-top: -10px !important;
|
||||
}
|
||||
|
||||
pre {
|
||||
width: 100%;
|
||||
font: 8pt "Lucida Console","DejaVu Sans Mono",Courier,mono !important;
|
||||
padding: 0;
|
||||
text-align: left !important;
|
||||
height: 8px;
|
||||
color: #070;
|
||||
font-weight: bold !important;
|
||||
}
|
||||
|
||||
table {
|
||||
margin: 0px 0px 10px 0px;
|
||||
border: 0px;
|
||||
padding: 0px;
|
||||
border-spacing: 0px;
|
||||
border-collapse: collapse;
|
||||
color: #323 url("/themes/console/snark/images/hat.png");
|
||||
width: 100%;
|
||||
opacity: 1 !important;
|
||||
}
|
||||
|
||||
tr {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
thead, tfoot {
|
||||
background: url("/themes/console/snark/images/snark_thead.png") repeat-x scroll 0 0 #101;
|
||||
text-shadow:0 2px 5px #333333;
|
||||
}
|
||||
|
||||
thead a, tfoot a {
|
||||
text-shadow:1px 1px #550000;
|
||||
}
|
||||
|
||||
thead {
|
||||
border-bottom: 2px solid #101;
|
||||
}
|
||||
|
||||
th {
|
||||
padding: 4px 2px 1px 4px;
|
||||
font-size: 9pt;
|
||||
border-top: 1px outset #001;
|
||||
border-bottom: 1px inset #001;
|
||||
color: #ddd;
|
||||
whitespace: nowrap;
|
||||
}
|
||||
|
||||
th:first-child {
|
||||
text-align: left !important;
|
||||
padding-left: 3px;
|
||||
max-width: 120px;
|
||||
}
|
||||
|
||||
tfoot td:first-child {
|
||||
text-align: left !important;
|
||||
padding-left: 0px;
|
||||
}
|
||||
|
||||
th:first-child img {
|
||||
margin: 1px 2px 3px 1px;
|
||||
}
|
||||
|
||||
th:nth-child(2) img {
|
||||
margin: 1px 7px 3px 2px;
|
||||
}
|
||||
|
||||
tfoot th {
|
||||
padding-bottom: 4px !important;
|
||||
}
|
||||
|
||||
.SnarkTorrents {
|
||||
margin: 0;
|
||||
border: 1px solid #001;
|
||||
background: #212;
|
||||
}
|
||||
|
||||
td {
|
||||
padding: 1px;
|
||||
color: #ddd !important;
|
||||
font-size: 9.5pt;
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.mainsection td {
|
||||
color: #111;
|
||||
}
|
||||
|
||||
td:first-child {
|
||||
text-align: right;
|
||||
padding-left: 10px;
|
||||
}
|
||||
|
||||
.snarkTorrentName {
|
||||
text-shadow:1px 1px #550000;
|
||||
padding: 2px 0 0;
|
||||
}
|
||||
|
||||
.snarkTorrentAction {
|
||||
text-shadow:1px 1px #550000;
|
||||
padding: 1px 1px 1px 1px !important;
|
||||
margin: 0 !important;
|
||||
text-align: center;
|
||||
width: 68px;
|
||||
}
|
||||
|
||||
.snarkTorrentAction img {
|
||||
margin: 0 2px !important;
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
.snarkTorrentAction img:hover {
|
||||
-moz-box-shadow: 0 0 1px 1px #f90;
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.snarkTorrentEven {
|
||||
background: #545;
|
||||
font-size: 8pt;
|
||||
}
|
||||
|
||||
.snarkTorrentNoneLoaded {
|
||||
background: #323;
|
||||
font-size: 8.5pt;
|
||||
font-weight: bold;
|
||||
text-align: center !important;
|
||||
color: #bbb !important;
|
||||
}
|
||||
|
||||
.snarkTorrentStatus {
|
||||
padding: 1px 0 2px;
|
||||
}
|
||||
|
||||
.snarkTorrentStatus:first-child {
|
||||
text-align: left !important;
|
||||
font-style: italic;
|
||||
padding-left: 8px;
|
||||
}
|
||||
|
||||
.snarkTorrentRate, .snarkTorrentDownloaded, .snarkTorrentUploaded {
|
||||
font-size: 8pt;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.snarkTorrentOdd {
|
||||
background: #656;
|
||||
font-size: 8pt;
|
||||
border: 1px inset #434 !important;
|
||||
border-left: 0 !important;
|
||||
border-right: 0 !important;
|
||||
}
|
||||
|
||||
.snarkFileName {
|
||||
/* min-width: 25em;*/
|
||||
padding: 4px 0px !important;
|
||||
text-align: left !important;
|
||||
}
|
||||
|
||||
.snarkFileSize {
|
||||
padding: 4px 10px;
|
||||
}
|
||||
|
||||
.snarkFileStatus {
|
||||
padding: 4px 10px;
|
||||
text-align: center;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.thumb {
|
||||
max-height: 64px;
|
||||
max-width: 96px;
|
||||
}
|
||||
|
||||
.snarkNewTorrent {
|
||||
font-size: 9pt;
|
||||
}
|
||||
|
||||
.snarkAddInfo {
|
||||
font-size: 9pt;
|
||||
line-height: 130% !important;
|
||||
}
|
||||
|
||||
.snarkConfigTitle {
|
||||
font-size: 11pt;
|
||||
font-weight: bold;
|
||||
padding: 0 25px 3px 25px;
|
||||
margin: 5px 0 10px 0 !important;
|
||||
letter-spacing: 0.25em;
|
||||
border: 1px solid #111;
|
||||
-moz-border-radius: 0 0 5px 5px;
|
||||
-khtml-border-radius: 0 0 5px 5px;
|
||||
border-radius: 0 0 5px 5px;
|
||||
border-top: 0;
|
||||
text-shadow: 0px 3px 5px #323;
|
||||
background: #101 url('/themes/console/snark/images/snarknav.png') repeat-x scroll center center !important;
|
||||
font-variant: small-caps !important;
|
||||
}
|
||||
|
||||
.snarkConfig {
|
||||
font-size: 10pt;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.page {
|
||||
background: #323 url('/themes/console/snark/images/tile2.png');
|
||||
color: #310;
|
||||
min-width: 820px !important;
|
||||
margin: 5px 0 0 0;
|
||||
padding: 10px 10px 0px 10px;
|
||||
-moz-border-radius: 4px;
|
||||
-khtml-border-radius: 4px;
|
||||
border-radius: 4px;
|
||||
border: 1px solid #101;
|
||||
font-size: 9pt !important;
|
||||
line-height: 160% !important;
|
||||
-moz-box-shadow: inset 0px 0px 1px 0px #212;
|
||||
-khtml-box-shadow: inset 0px 0px 1px 0px #002;
|
||||
box-shadow: inset 0px 0px 1px 0px #002;
|
||||
text-align: center;
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
form {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
p {
|
||||
line-height: 150%;
|
||||
}
|
||||
|
||||
hr {
|
||||
color: #444;
|
||||
background: #444;
|
||||
height: 1px;
|
||||
border: 0px solid #444;
|
||||
width: 0%;
|
||||
margin: 5px 0 7px 0;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
a:link {
|
||||
color: #f70;
|
||||
text-decoration: none;
|
||||
font-weight: bold;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
|
||||
a:visited {
|
||||
color: #f50;
|
||||
text-decoration: none;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
color: #f90;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
input {
|
||||
font-size: 9pt;
|
||||
font-weight: bold;
|
||||
text-align: left;
|
||||
padding: 2px 4px;
|
||||
-moz-border-radius: 4px;
|
||||
-khtml-border-radius: 4px;
|
||||
border-radius: 4px;
|
||||
border: 1px inset #000;
|
||||
background: url('/themes/console/snark/images/graytile.png');
|
||||
color: #f60;
|
||||
}
|
||||
|
||||
input.r {
|
||||
text-align: right;
|
||||
background: url('/themes/console/snark/images/graytile.png');
|
||||
}
|
||||
|
||||
input[type=submit] {
|
||||
text-shadow: 0px 0px #410;
|
||||
color: #000;
|
||||
background: #989;
|
||||
border: 1px inset #bbb;
|
||||
}
|
||||
|
||||
input[type=submit]:hover {
|
||||
border: 1px outset #bbb;
|
||||
text-shadow: 0 0;
|
||||
background: #f60;
|
||||
color: #fff;
|
||||
text-shadow: 0px 1px 5px #f00;
|
||||
}
|
||||
|
||||
input[type=submit]:active {
|
||||
background: #000 !important;
|
||||
color: #f60 !important;
|
||||
text-shadow: 0 !important;
|
||||
}
|
||||
|
||||
input[type=text]:active, input[type=text]:hover, input.r:hover {
|
||||
background: #f60;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
select {
|
||||
background: #333;
|
||||
background: url('/themes/console/snark/images/graytile.png') !important;
|
||||
color: #f60;
|
||||
font: 9pt "Lucida Sans Unicode","Bitstream Vera Sans",Verdana,Tahoma,Helvetica,sans-serif;
|
||||
font-weight: bold;
|
||||
padding: 2px 2px 2px 3px;
|
||||
-moz-border-radius: 4px 0 0 4px;
|
||||
-khtml-border-radius: 4px 0 0 4px;
|
||||
border-radius: 4px 0 0 4px;
|
||||
border: 1px solid #000;
|
||||
}
|
||||
|
||||
select:hover, textarea:hover {
|
||||
background: #f60 !important;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
textarea {
|
||||
background: #111 url('/themes/console/snark/images/graytile.png');
|
||||
color: #f60;
|
||||
font-weight: bold;
|
||||
padding: 1px 4px 0px;
|
||||
-moz-border-radius: 4px;
|
||||
-khtml-border-radius: 4px;
|
||||
border-radius: 4px;
|
||||
border: 1px inset #000;
|
||||
}
|
||||
|
||||
img {
|
||||
border: none;
|
||||
margin: 1px 3px 3px 4px;
|
||||
vertical-align: middle;
|
||||
opacity: 1.0;
|
||||
line-height: 100%;
|
||||
}
|
||||
|
||||
img: hover {
|
||||
border: none;
|
||||
margin: 5px 5px 0px 5px;
|
||||
opacity: 0.5;
|
||||
line-height: 100%;
|
||||
}
|
||||
|
||||
div.section,div.mainsection {
|
||||
margin: 0 0 10px 0;
|
||||
padding: 10px;
|
||||
border: 1px solid #001;
|
||||
color: #001;
|
||||
-moz-border-radius: 4px;
|
||||
-khtml-border-radius: 4px;
|
||||
border-radius: 4px;
|
||||
-moz-box-shadow: inset 0px 0px 1px 0px #212;
|
||||
word-wrap: break-word;
|
||||
text-align: center;
|
||||
background: #545;
|
||||
opacity: 1 !important;
|
||||
}
|
||||
|
||||
div.newtorrentsection {
|
||||
margin: 0 0 10px 0;
|
||||
padding: 0 10px 0px 10px;
|
||||
border: 1px solid #001;
|
||||
text-align: center;
|
||||
color: #ddd;
|
||||
-moz-border-radius: 4px;
|
||||
-khtml-border-radius: 4px;
|
||||
border-radius: 4px;
|
||||
-moz-box-shadow: inset 0px 0px 1px 0px #101;
|
||||
-khtml-box-shadow: inset 0px 0px 1px 0px #101;
|
||||
box-shadow: inset 0px 0px 1px 0px #101;
|
||||
word-wrap: break-word;
|
||||
background: #545 url('/themes/console/snark/images/snark_create.png') no-repeat scroll right center;
|
||||
opacity: 1.0;
|
||||
}
|
||||
|
||||
div.addtorrentsection {
|
||||
margin: 0 0 10px 0;
|
||||
padding: 0 10px 0px 10px;
|
||||
border: 1px solid #001;
|
||||
text-align: center;
|
||||
color: #ddd;
|
||||
-moz-border-radius: 4px;
|
||||
-khtml-border-radius: 4px;
|
||||
border-radius: 4px;
|
||||
-moz-box-shadow: inset 0px 0px 1px 0px #101;
|
||||
-khtml-box-shadow: inset 0px 0px 1px 0px #101;
|
||||
box-shadow: inset 0px 0px 1px 0px #101;
|
||||
word-wrap: break-word;
|
||||
background: #545 url('/themes/console/snark/images/snark_add.png') no-repeat scroll right center;
|
||||
opacity: 1.0;
|
||||
}
|
||||
|
||||
div.configsection {
|
||||
margin: 0 0 10px 0;
|
||||
padding: 0 10px 15px 10px;
|
||||
border: 1px solid #000;
|
||||
color: #ddd;
|
||||
-moz-border-radius: 4px;
|
||||
-khtml-border-radius: 4px;
|
||||
border-radius: 4px;
|
||||
-moz-box-shadow: inset 0px 0px 1px 0px #101;
|
||||
-khtml-box-shadow: inset 0px 0px 1px 0px #101;
|
||||
box-shadow: inset 0px 0px 1px 0px #101;
|
||||
word-wrap: break-word;
|
||||
text-align: center;
|
||||
background: #545;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
div.configsectionpanel {
|
||||
margin: 0 0 10px 0;
|
||||
padding: 0 10px;
|
||||
border: 1px solid #000;
|
||||
color: #ddd;
|
||||
-moz-border-radius: 4px;
|
||||
-khtml-border-radius: 4px;
|
||||
border-radius: 4px;
|
||||
-moz-box-shadow: inset 0px 0px 1px 0px #101;
|
||||
-khtml-box-shadow: inset 0px 0px 1px 0px #101;
|
||||
box-shadow: inset 0px 0px 1px 0px #101;
|
||||
word-wrap: break-word;
|
||||
text-align: center;
|
||||
background: #545 url('/themes/console/snark/images/configuration.png') no-repeat scroll right center;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.newtorrentsection form, .configsection form, .addtorrentsection form {
|
||||
color: #ddd !important;
|
||||
}
|
||||
|
||||
div.configsection table{
|
||||
color: #ffb;
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
div.configsection a {
|
||||
color: #f60;
|
||||
text-shadow: 1px 1px #500;
|
||||
}
|
||||
|
||||
div.configsection a:hover {
|
||||
color: #f90;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
code {
|
||||
font-size: 9pt;
|
||||
color: #b8b;
|
||||
padding: 0 2px;
|
||||
font-weight: bold;
|
||||
font-family: "Lucida Console", "DejaVu Sans Mono", Courier, mono;
|
||||
}
|
||||
.snarknavbar {
|
||||
margin: 0 0 10px 0 !important;
|
||||
padding: 4px 10px 4px;
|
||||
border: 1px solid #001;
|
||||
-moz-border-radius: 4px;
|
||||
-khtml-border-radius: 4px;
|
||||
border-radius: 4px;
|
||||
-moz-box-shadow: inset 0px 0px 1px 0px #002;
|
||||
-khtml-box-shadow: inset 0px 0px 1px 0px #002;
|
||||
box-shadow: inset 0px 0px 1px 0px #002;
|
||||
background: #111 url('/themes/console/snark/images/snarknav.png') repeat-x scroll center center;
|
||||
text-transform: uppercase !important;
|
||||
letter-spacing: 0.05em;
|
||||
font-weight: bold;
|
||||
font-size: 11.5pt;
|
||||
color: #001;
|
||||
min-width: 820px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.snarknavbar img {
|
||||
border: 0;
|
||||
margin: 0 -2px 0 -3px;
|
||||
padding: 1px 0 0px !important;
|
||||
vertical-align: top;
|
||||
}
|
@ -18,7 +18,7 @@ public class RouterVersion {
|
||||
/** deprecated */
|
||||
public final static String ID = "Monotone";
|
||||
public final static String VERSION = CoreVersion.VERSION;
|
||||
public final static long BUILD = 0;
|
||||
public final static long BUILD = 03;
|
||||
|
||||
/** for example "-test" */
|
||||
public final static String EXTRA = "";
|
||||
|