forked from I2P_Developers/i2p.i2p
add 2-param method, tag the java messages, fix the buttons, clean up add and create forms
This commit is contained in:
@ -426,4 +426,9 @@ public class I2PSnarkUtil {
|
|||||||
public String getString(String s, Object o) {
|
public String getString(String s, Object o) {
|
||||||
return Translate.getString(s, o, _context, BUNDLE_NAME);
|
return Translate.getString(s, o, _context, BUNDLE_NAME);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** {0} and {1} */
|
||||||
|
public String getString(String s, Object o, Object o2) {
|
||||||
|
return Translate.getString(s, o, o2, _context, BUNDLE_NAME);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -81,7 +81,7 @@ public class SnarkManager implements Snark.CompleteListener {
|
|||||||
_peerCoordinatorSet = new PeerCoordinatorSet();
|
_peerCoordinatorSet = new PeerCoordinatorSet();
|
||||||
_connectionAcceptor = new ConnectionAcceptor(_util);
|
_connectionAcceptor = new ConnectionAcceptor(_util);
|
||||||
int minutes = getStartupDelayMinutes();
|
int minutes = getStartupDelayMinutes();
|
||||||
_messages.add("Adding torrents in " + minutes + (minutes == 1 ? " minute" : " minutes"));
|
_messages.add(_("Adding torrents in {0} minutes", minutes));
|
||||||
I2PAppThread monitor = new I2PAppThread(new DirMonitor(), "Snark DirMonitor");
|
I2PAppThread monitor = new I2PAppThread(new DirMonitor(), "Snark DirMonitor");
|
||||||
monitor.setDaemon(true);
|
monitor.setDaemon(true);
|
||||||
monitor.start();
|
monitor.start();
|
||||||
@ -217,6 +217,7 @@ public class SnarkManager implements Snark.CompleteListener {
|
|||||||
String upLimit, String upBW, boolean useOpenTrackers, String openTrackers) {
|
String upLimit, String upBW, boolean useOpenTrackers, String openTrackers) {
|
||||||
boolean changed = false;
|
boolean changed = false;
|
||||||
if (eepHost != null) {
|
if (eepHost != null) {
|
||||||
|
// unused, we use socket eepget
|
||||||
int port = _util.getEepProxyPort();
|
int port = _util.getEepProxyPort();
|
||||||
try { port = Integer.parseInt(eepPort); } catch (NumberFormatException nfe) {}
|
try { port = Integer.parseInt(eepPort); } catch (NumberFormatException nfe) {}
|
||||||
String host = _util.getEepProxyHost();
|
String host = _util.getEepProxyHost();
|
||||||
@ -237,9 +238,9 @@ public class SnarkManager implements Snark.CompleteListener {
|
|||||||
_util.setMaxUploaders(limit);
|
_util.setMaxUploaders(limit);
|
||||||
changed = true;
|
changed = true;
|
||||||
_config.setProperty(PROP_UPLOADERS_TOTAL, "" + limit);
|
_config.setProperty(PROP_UPLOADERS_TOTAL, "" + limit);
|
||||||
addMessage("Total uploaders limit changed to " + limit);
|
addMessage(_("Total uploaders limit changed to {0}", limit));
|
||||||
} else {
|
} else {
|
||||||
addMessage("Minimum total uploaders limit is " + Snark.MIN_TOTAL_UPLOADERS);
|
addMessage(_("Minimum total uploaders limit is {0}", Snark.MIN_TOTAL_UPLOADERS));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -251,9 +252,9 @@ public class SnarkManager implements Snark.CompleteListener {
|
|||||||
_util.setMaxUpBW(limit);
|
_util.setMaxUpBW(limit);
|
||||||
changed = true;
|
changed = true;
|
||||||
_config.setProperty(PROP_UPBW_MAX, "" + limit);
|
_config.setProperty(PROP_UPBW_MAX, "" + limit);
|
||||||
addMessage("Up BW limit changed to " + limit + "KBps");
|
addMessage(_("Up BW limit changed to {0}KBps", limit));
|
||||||
} else {
|
} else {
|
||||||
addMessage("Minimum Up BW limit is " + MIN_UP_BW + "KBps");
|
addMessage(_("Minimum up bandwidth limit is {0}KBps", MIN_UP_BW));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -297,27 +298,27 @@ public class SnarkManager implements Snark.CompleteListener {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (snarksActive) {
|
if (snarksActive) {
|
||||||
addMessage("Cannot change the I2CP settings while torrents are active");
|
addMessage(_("Cannot change the I2CP settings while torrents are active"));
|
||||||
_log.debug("i2cp host [" + i2cpHost + "] i2cp port " + port + " opts [" + opts
|
_log.debug("i2cp host [" + i2cpHost + "] i2cp port " + port + " opts [" + opts
|
||||||
+ "] oldOpts [" + oldOpts + "]");
|
+ "] oldOpts [" + oldOpts + "]");
|
||||||
} else {
|
} else {
|
||||||
if (_util.connected()) {
|
if (_util.connected()) {
|
||||||
_util.disconnect();
|
_util.disconnect();
|
||||||
addMessage("Disconnecting old I2CP destination");
|
addMessage(_("Disconnecting old I2CP destination"));
|
||||||
}
|
}
|
||||||
Properties p = new Properties();
|
Properties p = new Properties();
|
||||||
p.putAll(opts);
|
p.putAll(opts);
|
||||||
addMessage("I2CP settings changed to " + i2cpHost + ":" + port + " (" + i2cpOpts.trim() + ")");
|
addMessage(_("I2CP settings changed to {0}", i2cpHost + ":" + port + " (" + i2cpOpts.trim() + ")"));
|
||||||
_util.setI2CPConfig(i2cpHost, port, p);
|
_util.setI2CPConfig(i2cpHost, port, p);
|
||||||
boolean ok = _util.connect();
|
boolean ok = _util.connect();
|
||||||
if (!ok) {
|
if (!ok) {
|
||||||
addMessage("Unable to connect with the new settings, reverting to the old I2CP settings");
|
addMessage(_("Unable to connect with the new settings, reverting to the old I2CP settings"));
|
||||||
_util.setI2CPConfig(oldI2CPHost, oldI2CPPort, oldOpts);
|
_util.setI2CPConfig(oldI2CPHost, oldI2CPPort, oldOpts);
|
||||||
ok = _util.connect();
|
ok = _util.connect();
|
||||||
if (!ok)
|
if (!ok)
|
||||||
addMessage("Unable to reconnect with the old settings!");
|
addMessage(_("Unable to reconnect with the old settings!"));
|
||||||
} else {
|
} else {
|
||||||
addMessage("Reconnected on the new I2CP destination");
|
addMessage(_("Reconnected on the new I2CP destination"));
|
||||||
_config.setProperty(PROP_I2CP_HOST, i2cpHost.trim());
|
_config.setProperty(PROP_I2CP_HOST, i2cpHost.trim());
|
||||||
_config.setProperty(PROP_I2CP_PORT, "" + port);
|
_config.setProperty(PROP_I2CP_PORT, "" + port);
|
||||||
_config.setProperty(PROP_I2CP_OPTS, i2cpOpts.trim());
|
_config.setProperty(PROP_I2CP_OPTS, i2cpOpts.trim());
|
||||||
@ -328,7 +329,7 @@ public class SnarkManager implements Snark.CompleteListener {
|
|||||||
Snark snark = getTorrent(name);
|
Snark snark = getTorrent(name);
|
||||||
if ( (snark != null) && (snark.acceptor != null) ) {
|
if ( (snark != null) && (snark.acceptor != null) ) {
|
||||||
snark.acceptor.restart();
|
snark.acceptor.restart();
|
||||||
addMessage("I2CP listener restarted for " + snark.meta.getName());
|
addMessage(_("I2CP listener restarted for \"{0}\"", snark.meta.getName()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -338,26 +339,32 @@ public class SnarkManager implements Snark.CompleteListener {
|
|||||||
}
|
}
|
||||||
if (shouldAutoStart() != autoStart) {
|
if (shouldAutoStart() != autoStart) {
|
||||||
_config.setProperty(PROP_AUTO_START, autoStart + "");
|
_config.setProperty(PROP_AUTO_START, autoStart + "");
|
||||||
addMessage("Adjusted autostart to " + autoStart);
|
if (autoStart)
|
||||||
|
addMessage(_("Enabled autostart"));
|
||||||
|
else
|
||||||
|
addMessage(_("Disabled autostart"));
|
||||||
changed = true;
|
changed = true;
|
||||||
}
|
}
|
||||||
if (_util.shouldUseOpenTrackers() != useOpenTrackers) {
|
if (_util.shouldUseOpenTrackers() != useOpenTrackers) {
|
||||||
_config.setProperty(I2PSnarkUtil.PROP_USE_OPENTRACKERS, useOpenTrackers + "");
|
_config.setProperty(I2PSnarkUtil.PROP_USE_OPENTRACKERS, useOpenTrackers + "");
|
||||||
addMessage((useOpenTrackers ? "En" : "Dis") + "abled open trackers - torrent restart required to take effect.");
|
if (useOpenTrackers)
|
||||||
|
addMessage(_("Enabled open trackers - torrent restart required to take effect."));
|
||||||
|
else
|
||||||
|
addMessage(_("Disabled open trackers - torrent restart required to take effect."));
|
||||||
changed = true;
|
changed = true;
|
||||||
}
|
}
|
||||||
if (openTrackers != null) {
|
if (openTrackers != null) {
|
||||||
if (openTrackers.trim().length() > 0 && !openTrackers.trim().equals(_util.getOpenTrackerString())) {
|
if (openTrackers.trim().length() > 0 && !openTrackers.trim().equals(_util.getOpenTrackerString())) {
|
||||||
_config.setProperty(I2PSnarkUtil.PROP_OPENTRACKERS, openTrackers.trim());
|
_config.setProperty(I2PSnarkUtil.PROP_OPENTRACKERS, openTrackers.trim());
|
||||||
_util.setOpenTrackerString(openTrackers);
|
_util.setOpenTrackerString(openTrackers);
|
||||||
addMessage("Open Tracker list changed - torrent restart required to take effect.");
|
addMessage(_("Open Tracker list changed - torrent restart required to take effect."));
|
||||||
changed = true;
|
changed = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (changed) {
|
if (changed) {
|
||||||
saveConfig();
|
saveConfig();
|
||||||
} else {
|
} else {
|
||||||
addMessage("Configuration unchanged.");
|
addMessage(_("Configuration unchanged."));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -367,7 +374,7 @@ public class SnarkManager implements Snark.CompleteListener {
|
|||||||
DataHelper.storeProps(_config, _configFile);
|
DataHelper.storeProps(_config, _configFile);
|
||||||
}
|
}
|
||||||
} catch (IOException ioe) {
|
} catch (IOException ioe) {
|
||||||
addMessage("Unable to save the config to '" + _configFile.getAbsolutePath() + "'.");
|
addMessage(_("Unable to save the config to {0}", _configFile.getAbsolutePath()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -385,10 +392,10 @@ public class SnarkManager implements Snark.CompleteListener {
|
|||||||
public void addTorrent(String filename) { addTorrent(filename, false); }
|
public void addTorrent(String filename) { addTorrent(filename, false); }
|
||||||
public void addTorrent(String filename, boolean dontAutoStart) {
|
public void addTorrent(String filename, boolean dontAutoStart) {
|
||||||
if ((!dontAutoStart) && !_util.connected()) {
|
if ((!dontAutoStart) && !_util.connected()) {
|
||||||
addMessage("Connecting to I2P");
|
addMessage(_("Connecting to I2P"));
|
||||||
boolean ok = _util.connect();
|
boolean ok = _util.connect();
|
||||||
if (!ok) {
|
if (!ok) {
|
||||||
addMessage("Error connecting to I2P - check your I2CP settings!");
|
addMessage(_("Error connecting to I2P - check your I2CP settings!"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -397,7 +404,7 @@ public class SnarkManager implements Snark.CompleteListener {
|
|||||||
filename = sfile.getCanonicalPath();
|
filename = sfile.getCanonicalPath();
|
||||||
} catch (IOException ioe) {
|
} catch (IOException ioe) {
|
||||||
_log.error("Unable to add the torrent " + filename, ioe);
|
_log.error("Unable to add the torrent " + filename, ioe);
|
||||||
addMessage("ERR: Could not add the torrent '" + filename + "': " + ioe.getMessage());
|
addMessage(_("Error: Could not add the torrent {0}", filename) + ": " + ioe.getMessage());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
File dataDir = getDataDir();
|
File dataDir = getDataDir();
|
||||||
@ -436,7 +443,7 @@ public class SnarkManager implements Snark.CompleteListener {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (IOException ioe) {
|
} catch (IOException ioe) {
|
||||||
addMessage("Torrent in " + sfile.getName() + " is invalid: " + ioe.getMessage());
|
addMessage(_("Torrent in \"{0}\" is invalid", sfile.getName()) + ": " + ioe.getMessage());
|
||||||
if (sfile.exists())
|
if (sfile.exists())
|
||||||
sfile.delete();
|
sfile.delete();
|
||||||
return;
|
return;
|
||||||
@ -451,9 +458,9 @@ public class SnarkManager implements Snark.CompleteListener {
|
|||||||
File f = new File(filename);
|
File f = new File(filename);
|
||||||
if (!dontAutoStart && shouldAutoStart()) {
|
if (!dontAutoStart && shouldAutoStart()) {
|
||||||
torrent.startTorrent();
|
torrent.startTorrent();
|
||||||
addMessage("Torrent added and started: '" + f.getName() + "'.");
|
addMessage(_("Torrent added and started: \"{0}\"", f.getName()));
|
||||||
} else {
|
} else {
|
||||||
addMessage("Torrent added: '" + f.getName() + "'.");
|
addMessage(_("Torrent added: \"{0}\"", f.getName()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -549,19 +556,19 @@ public class SnarkManager implements Snark.CompleteListener {
|
|||||||
// basic validation of url
|
// basic validation of url
|
||||||
if ((!announce.startsWith("http://")) ||
|
if ((!announce.startsWith("http://")) ||
|
||||||
(announce.indexOf(".i2p/") < 0)) // need to do better than this
|
(announce.indexOf(".i2p/") < 0)) // need to do better than this
|
||||||
return "Non-i2p tracker in " + info.getName() + ", deleting it from our list of trackers!";
|
return _("Non-i2p tracker in \"{0}\", deleting it from our list of trackers!", info.getName());
|
||||||
List files = info.getFiles();
|
List files = info.getFiles();
|
||||||
if ( (files != null) && (files.size() > MAX_FILES_PER_TORRENT) ) {
|
if ( (files != null) && (files.size() > MAX_FILES_PER_TORRENT) ) {
|
||||||
return "Too many files in " + info.getName() + " (" + files.size() + "), deleting it!";
|
return _("Too many files in \"{0}\" ({1}), deleting it!", info.getName(), files.size());
|
||||||
} else if ( (files == null) && (info.getName().endsWith(".torrent")) ) {
|
} else if ( (files == null) && (info.getName().endsWith(".torrent")) ) {
|
||||||
return "Torrent file " + info.getName() + " cannot end in '.torrent', deleting it!";
|
return _("Torrent file \"{0}\" cannot end in '.torrent', deleting it!", info.getName());
|
||||||
} else if (info.getPieces() <= 0) {
|
} else if (info.getPieces() <= 0) {
|
||||||
return "No pieces in " + info.getName() + "? deleting it!";
|
return _("No pieces in \"{0}\", deleting it!", info.getName());
|
||||||
} else if (info.getPieces() > Storage.MAX_PIECES) {
|
} else if (info.getPieces() > Storage.MAX_PIECES) {
|
||||||
return "Too many pieces in " + info.getName() + ", limit is " + Storage.MAX_PIECES + ", deleting it!";
|
return _("Too many pieces in \"{0}\", limit is {1}, deleting it!", info.getName(), Storage.MAX_PIECES);
|
||||||
} else if (info.getPieceLength(0) > Storage.MAX_PIECE_SIZE) {
|
} else if (info.getPieceLength(0) > Storage.MAX_PIECE_SIZE) {
|
||||||
return "Pieces are too large in " + info.getName() + " (" + DataHelper.formatSize(info.getPieceLength(0)) +
|
return _("Pieces are too large in \"{0}\" ({1}B), deleting it.", info.getName(), DataHelper.formatSize(info.getPieceLength(0))) + ' ' +
|
||||||
"B, limit is " + DataHelper.formatSize(Storage.MAX_PIECE_SIZE) + "B), deleting it.";
|
_("Limit is {0}B", DataHelper.formatSize(Storage.MAX_PIECE_SIZE));
|
||||||
} else if (info.getTotalLength() > Storage.MAX_TOTAL_SIZE) {
|
} else if (info.getTotalLength() > Storage.MAX_TOTAL_SIZE) {
|
||||||
System.out.println("torrent info: " + info.toString());
|
System.out.println("torrent info: " + info.toString());
|
||||||
List lengths = info.getLengths();
|
List lengths = info.getLengths();
|
||||||
@ -569,8 +576,7 @@ public class SnarkManager implements Snark.CompleteListener {
|
|||||||
for (int i = 0; i < lengths.size(); i++)
|
for (int i = 0; i < lengths.size(); i++)
|
||||||
System.out.println("File " + i + " is " + lengths.get(i) + " long.");
|
System.out.println("File " + i + " is " + lengths.get(i) + " long.");
|
||||||
|
|
||||||
return "Torrents larger than " + DataHelper.formatSize(Storage.MAX_TOTAL_SIZE) +
|
return _("Torrents larger than {0}B are not supported yet, deleting \"{1}\"", Storage.MAX_TOTAL_SIZE, info.getName());
|
||||||
"B are not supported yet (because we're paranoid): " + info.getName() + ", deleting it!";
|
|
||||||
} else {
|
} else {
|
||||||
// ok
|
// ok
|
||||||
return null;
|
return null;
|
||||||
@ -586,7 +592,7 @@ public class SnarkManager implements Snark.CompleteListener {
|
|||||||
filename = sfile.getCanonicalPath();
|
filename = sfile.getCanonicalPath();
|
||||||
} catch (IOException ioe) {
|
} catch (IOException ioe) {
|
||||||
_log.error("Unable to remove the torrent " + filename, ioe);
|
_log.error("Unable to remove the torrent " + filename, ioe);
|
||||||
addMessage("ERR: Could not remove the torrent '" + filename + "': " + ioe.getMessage());
|
addMessage(_("Error: Could not remove the torrent {0}", filename) + ": " + ioe.getMessage());
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
int remaining = 0;
|
int remaining = 0;
|
||||||
@ -607,7 +613,7 @@ public class SnarkManager implements Snark.CompleteListener {
|
|||||||
////_util.
|
////_util.
|
||||||
}
|
}
|
||||||
if (!wasStopped)
|
if (!wasStopped)
|
||||||
addMessage("Torrent stopped: '" + sfile.getName() + "'.");
|
addMessage(_("Torrent stopped: \"{0}\"", sfile.getName()));
|
||||||
}
|
}
|
||||||
return torrent;
|
return torrent;
|
||||||
}
|
}
|
||||||
@ -622,7 +628,7 @@ public class SnarkManager implements Snark.CompleteListener {
|
|||||||
torrentFile.delete();
|
torrentFile.delete();
|
||||||
if (torrent.storage != null)
|
if (torrent.storage != null)
|
||||||
removeTorrentStatus(torrent.storage.getMetaInfo());
|
removeTorrentStatus(torrent.storage.getMetaInfo());
|
||||||
addMessage("Torrent removed: '" + torrentFile.getName() + "'.");
|
addMessage(_("Torrent removed: \"{0}\"", torrentFile.getName()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -655,7 +661,7 @@ public class SnarkManager implements Snark.CompleteListener {
|
|||||||
public void torrentComplete(Snark snark) {
|
public void torrentComplete(Snark snark) {
|
||||||
File f = new File(snark.torrent);
|
File f = new File(snark.torrent);
|
||||||
long len = snark.meta.getTotalLength();
|
long len = snark.meta.getTotalLength();
|
||||||
addMessage("Download finished: " + f.getName() + " (size: " + DataHelper.formatSize(len) + "B)");
|
addMessage(_("Download finished: \"{0}\"", f.getName()) + " (" + _("size: {0}B", DataHelper.formatSize(len)) + ')');
|
||||||
updateStatus(snark);
|
updateStatus(snark);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -683,7 +689,7 @@ public class SnarkManager implements Snark.CompleteListener {
|
|||||||
// already known. noop
|
// already known. noop
|
||||||
} else {
|
} else {
|
||||||
if (shouldAutoStart() && !_util.connect())
|
if (shouldAutoStart() && !_util.connect())
|
||||||
addMessage("Unable to connect to I2P!");
|
addMessage(_("Unable to connect to I2P!"));
|
||||||
addTorrent((String)foundNames.get(i), !shouldAutoStart());
|
addTorrent((String)foundNames.get(i), !shouldAutoStart());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -699,6 +705,21 @@ public class SnarkManager implements Snark.CompleteListener {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** translate */
|
||||||
|
private String _(String s) {
|
||||||
|
return _util.getString(s);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** translate */
|
||||||
|
private String _(String s, Object o) {
|
||||||
|
return _util.getString(s, o);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** translate */
|
||||||
|
private String _(String s, Object o, Object o2) {
|
||||||
|
return _util.getString(s, o, o2);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* "name", "announceURL=websiteURL" pairs
|
* "name", "announceURL=websiteURL" pairs
|
||||||
*/
|
*/
|
||||||
|
@ -215,7 +215,7 @@ public class I2PSnarkServlet extends HttpServlet {
|
|||||||
String action = req.getParameter("action");
|
String action = req.getParameter("action");
|
||||||
if (action == null) {
|
if (action == null) {
|
||||||
// noop
|
// noop
|
||||||
} else if ("Add torrent".equals(action)) {
|
} else if (_("Add torrent").equals(action)) {
|
||||||
String newFile = req.getParameter("newFile");
|
String newFile = req.getParameter("newFile");
|
||||||
String newURL = req.getParameter("newURL");
|
String newURL = req.getParameter("newURL");
|
||||||
// NOTE - newFile currently disabled in HTML form - see below
|
// NOTE - newFile currently disabled in HTML form - see below
|
||||||
@ -259,7 +259,7 @@ public class I2PSnarkServlet extends HttpServlet {
|
|||||||
} else {
|
} else {
|
||||||
// no file or URL specified
|
// no file or URL specified
|
||||||
}
|
}
|
||||||
} else if ("Stop".equals(action)) {
|
} else if (_("Stop").equals(action)) {
|
||||||
String torrent = req.getParameter("torrent");
|
String torrent = req.getParameter("torrent");
|
||||||
if (torrent != null) {
|
if (torrent != null) {
|
||||||
byte infoHash[] = Base64.decode(torrent);
|
byte infoHash[] = Base64.decode(torrent);
|
||||||
@ -274,7 +274,7 @@ public class I2PSnarkServlet extends HttpServlet {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if ("Start".equals(action)) {
|
} else if (_("Start").equals(action)) {
|
||||||
String torrent = req.getParameter("torrent");
|
String torrent = req.getParameter("torrent");
|
||||||
if (torrent != null) {
|
if (torrent != null) {
|
||||||
byte infoHash[] = Base64.decode(torrent);
|
byte infoHash[] = Base64.decode(torrent);
|
||||||
@ -356,7 +356,7 @@ public class I2PSnarkServlet extends HttpServlet {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if ("Save configuration".equals(action)) {
|
} else if (_("Save configuration").equals(action)) {
|
||||||
String dataDir = req.getParameter("dataDir");
|
String dataDir = req.getParameter("dataDir");
|
||||||
boolean autoStart = req.getParameter("autoStart") != null;
|
boolean autoStart = req.getParameter("autoStart") != null;
|
||||||
String seedPct = req.getParameter("seedPct");
|
String seedPct = req.getParameter("seedPct");
|
||||||
@ -370,7 +370,7 @@ public class I2PSnarkServlet extends HttpServlet {
|
|||||||
boolean useOpenTrackers = req.getParameter("useOpenTrackers") != null;
|
boolean useOpenTrackers = req.getParameter("useOpenTrackers") != null;
|
||||||
String openTrackers = req.getParameter("openTrackers");
|
String openTrackers = req.getParameter("openTrackers");
|
||||||
_manager.updateConfig(dataDir, autoStart, seedPct, eepHost, eepPort, i2cpHost, i2cpPort, i2cpOpts, upLimit, upBW, useOpenTrackers, openTrackers);
|
_manager.updateConfig(dataDir, autoStart, seedPct, eepHost, eepPort, i2cpHost, i2cpPort, i2cpOpts, upLimit, upBW, useOpenTrackers, openTrackers);
|
||||||
} else if ("Create torrent".equals(action)) {
|
} else if (_("Create torrent").equals(action)) {
|
||||||
String baseData = req.getParameter("baseFile");
|
String baseData = req.getParameter("baseFile");
|
||||||
if (baseData != null && baseData.trim().length() > 0) {
|
if (baseData != null && baseData.trim().length() > 0) {
|
||||||
File baseFile = new File(_manager.getDataDir(), baseData);
|
File baseFile = new File(_manager.getDataDir(), baseData);
|
||||||
@ -395,12 +395,12 @@ public class I2PSnarkServlet extends HttpServlet {
|
|||||||
FileOutputStream out = new FileOutputStream(torrentFile);
|
FileOutputStream out = new FileOutputStream(torrentFile);
|
||||||
out.write(info.getTorrentData());
|
out.write(info.getTorrentData());
|
||||||
out.close();
|
out.close();
|
||||||
_manager.addMessage(_("Torrent created for {0}", baseFile.getName()) + ": " + torrentFile.getAbsolutePath());
|
_manager.addMessage(_("Torrent created for \"{0}\"", baseFile.getName()) + ": " + torrentFile.getAbsolutePath());
|
||||||
// now fire it up, but don't automatically seed it
|
// now fire it up, but don't automatically seed it
|
||||||
_manager.addTorrent(torrentFile.getCanonicalPath(), true);
|
_manager.addTorrent(torrentFile.getCanonicalPath(), true);
|
||||||
_manager.addMessage(_("Many I2P trackers require you to register new torrents before seeding - please do so before starting {0}", baseFile.getName()));
|
_manager.addMessage(_("Many I2P trackers require you to register new torrents before seeding - please do so before starting \"{0}\"", baseFile.getName()));
|
||||||
} catch (IOException ioe) {
|
} catch (IOException ioe) {
|
||||||
_manager.addMessage(_("Error creating a torrent for {0}", baseFile.getAbsolutePath()) + ": " + ioe.getMessage());
|
_manager.addMessage(_("Error creating a torrent for \"{0}\"", baseFile.getAbsolutePath()) + ": " + ioe.getMessage());
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
_manager.addMessage(_("Cannot create a torrent for the nonexistent data: {0}", baseFile.getAbsolutePath()));
|
_manager.addMessage(_("Cannot create a torrent for the nonexistent data: {0}", baseFile.getAbsolutePath()));
|
||||||
@ -739,19 +739,19 @@ public class I2PSnarkServlet extends HttpServlet {
|
|||||||
out.write("<input type=\"hidden\" name=\"nonce\" value=\"" + _nonce + "\" >\n");
|
out.write("<input type=\"hidden\" name=\"nonce\" value=\"" + _nonce + "\" >\n");
|
||||||
out.write("<div class=\"addtorrentsection\"><span class=\"snarkConfigTitle\">");
|
out.write("<div class=\"addtorrentsection\"><span class=\"snarkConfigTitle\">");
|
||||||
out.write(_("Add Torrent"));
|
out.write(_("Add Torrent"));
|
||||||
out.write("</span><br>\n");
|
out.write("</span><br>\n<table border=\"0\"><tr><td>");
|
||||||
out.write(_("From URL"));
|
out.write(_("From URL"));
|
||||||
out.write(": <input type=\"text\" name=\"newURL\" size=\"80\" value=\"" + newURL + "\" > \n");
|
out.write(":<td><input type=\"text\" name=\"newURL\" size=\"80\" value=\"" + newURL + "\" > \n");
|
||||||
// not supporting from file at the moment, since the file name passed isn't always absolute (so it may not resolve)
|
// 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("From file: <input type=\"file\" name=\"newFile\" size=\"50\" value=\"" + newFile + "\" /><br>\n");
|
||||||
out.write("<input type=\"submit\" value=\"");
|
out.write("<tr><td> <td><input type=\"submit\" value=\"");
|
||||||
out.write(_("Add torrent"));
|
out.write(_("Add torrent"));
|
||||||
out.write("\" name=\"action\" ><br>\n");
|
out.write("\" name=\"action\" ><br>\n");
|
||||||
out.write("<span class=\"snarkAddInfo\">");
|
out.write("<tr><td> <td><span class=\"snarkAddInfo\">");
|
||||||
out.write(_("Alternately, you can copy .torrent files to {0} .", _manager.getDataDir().getAbsolutePath()));
|
out.write(_("Alternately, you can copy .torrent files to the directory {0}.", _manager.getDataDir().getAbsolutePath()));
|
||||||
out.write("<br>\n");
|
out.write("\n");
|
||||||
out.write(_("Removing that .torrent file will cause the torrent to stop."));
|
out.write(_("Removing a .torrent file will cause the torrent to stop."));
|
||||||
out.write("<br></span>\n");
|
out.write("<br></span></table>\n");
|
||||||
out.write("</form>\n</span></div>");
|
out.write("</form>\n</span></div>");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -767,16 +767,16 @@ public class I2PSnarkServlet extends HttpServlet {
|
|||||||
out.write("<input type=\"hidden\" name=\"nonce\" value=\"" + _nonce + "\" >\n");
|
out.write("<input type=\"hidden\" name=\"nonce\" value=\"" + _nonce + "\" >\n");
|
||||||
out.write("<span class=\"snarkConfigTitle\">");
|
out.write("<span class=\"snarkConfigTitle\">");
|
||||||
out.write(_("Create Torrent"));
|
out.write(_("Create Torrent"));
|
||||||
out.write("</span><br>\n");
|
out.write("</span><br>\n<table border=\"0\"><tr><td>");
|
||||||
//out.write("From file: <input type=\"file\" name=\"newFile\" size=\"50\" value=\"" + newFile + "\" /><br>\n");
|
//out.write("From file: <input type=\"file\" name=\"newFile\" size=\"50\" value=\"" + newFile + "\" /><br>\n");
|
||||||
out.write(_("Data to seed"));
|
out.write(_("Data to seed"));
|
||||||
out.write(": " + _manager.getDataDir().getAbsolutePath() + File.separatorChar
|
out.write(":<td>" + _manager.getDataDir().getAbsolutePath() + File.separatorChar
|
||||||
+ "<input type=\"text\" name=\"baseFile\" size=\"20\" value=\"" + baseFile
|
+ "<input type=\"text\" name=\"baseFile\" size=\"20\" value=\"" + baseFile
|
||||||
+ "\" title=\"");
|
+ "\" title=\"");
|
||||||
out.write(_("File to seed (must be within the specified path)"));
|
out.write(_("File or directory to seed (must be within the specified path)"));
|
||||||
out.write("\" ><br>\n");
|
out.write("\" ><tr><td>\n");
|
||||||
out.write(_("Tracker"));
|
out.write(_("Tracker"));
|
||||||
out.write(": <select name=\"announceURL\"><option value=\"\">");
|
out.write(":<td><select name=\"announceURL\"><option value=\"\">");
|
||||||
out.write(_("Select a tracker"));
|
out.write(_("Select a tracker"));
|
||||||
out.write("</option>\n");
|
out.write("</option>\n");
|
||||||
Map trackers = _manager.getTrackers();
|
Map trackers = _manager.getTrackers();
|
||||||
@ -791,13 +791,13 @@ public class I2PSnarkServlet extends HttpServlet {
|
|||||||
}
|
}
|
||||||
out.write("</select>\n");
|
out.write("</select>\n");
|
||||||
out.write(_("or"));
|
out.write(_("or"));
|
||||||
out.write(" <input type=\"text\" name=\"announceURLOther\" size=\"50\" value=\"http://\" " +
|
out.write("<tr><td> <td><input type=\"text\" name=\"announceURLOther\" size=\"50\" value=\"http://\" " +
|
||||||
"title=\"");
|
"title=\"");
|
||||||
out.write(_("Custom tracker URL"));
|
out.write(_("Specify custom tracker announce URL"));
|
||||||
out.write("\" > ");
|
out.write("\" > ");
|
||||||
out.write("<input type=\"submit\" value=\"");
|
out.write("<tr><td> <td><input type=\"submit\" value=\"");
|
||||||
out.write(_("Create torrent"));
|
out.write(_("Create torrent"));
|
||||||
out.write("\" name=\"action\" >\n");
|
out.write("\" name=\"action\" ></table>\n");
|
||||||
out.write("</form>\n</span></div>");
|
out.write("</form>\n</span></div>");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -862,9 +862,9 @@ public class I2PSnarkServlet extends HttpServlet {
|
|||||||
out.write(_("Up bandwidth limit"));
|
out.write(_("Up bandwidth limit"));
|
||||||
out.write(": <td><input type=\"text\" name=\"upBW\" value=\""
|
out.write(": <td><input type=\"text\" name=\"upBW\" value=\""
|
||||||
+ _manager.util().getMaxUpBW() + "\" size=\"3\" maxlength=\"3\" > KBps <i>(");
|
+ _manager.util().getMaxUpBW() + "\" size=\"3\" maxlength=\"3\" > KBps <i>(");
|
||||||
out.write(_("Half available bandwidth< recommended."));
|
out.write(_("Half available bandwidth recommended."));
|
||||||
out.write(" <a href=\"/config.jsp\" target=\"blank\">");
|
out.write(" <a href=\"/config.jsp\" target=\"blank\">");
|
||||||
out.write(_("Configure"));
|
out.write(_("View or change router bandwidth"));
|
||||||
out.write("</a>)</i><br>\n");
|
out.write("</a>)</i><br>\n");
|
||||||
|
|
||||||
out.write("<tr><td>");
|
out.write("<tr><td>");
|
||||||
@ -916,10 +916,12 @@ public class I2PSnarkServlet extends HttpServlet {
|
|||||||
out.write("</form></div>");
|
out.write("</form></div>");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** translate */
|
||||||
private String _(String s) {
|
private String _(String s) {
|
||||||
return _manager.util().getString(s);
|
return _manager.util().getString(s);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** translate */
|
||||||
private String _(String s, Object o) {
|
private String _(String s, Object o) {
|
||||||
return _manager.util().getString(s, o);
|
return _manager.util().getString(s, o);
|
||||||
}
|
}
|
||||||
|
@ -8,7 +8,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: I2P i2psnark\n"
|
"Project-Id-Version: I2P i2psnark\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2009-12-10 14:50+0000\n"
|
"POT-Creation-Date: 2009-12-10 17:41+0000\n"
|
||||||
"PO-Revision-Date: 2009-10-19 12:50+0000\n"
|
"PO-Revision-Date: 2009-10-19 12:50+0000\n"
|
||||||
"Last-Translator: foo <foo@bar>\n"
|
"Last-Translator: foo <foo@bar>\n"
|
||||||
"Language-Team: foo <foo@bar>\n"
|
"Language-Team: foo <foo@bar>\n"
|
||||||
@ -17,6 +17,188 @@ msgstr ""
|
|||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Poedit-Language: German\n"
|
"X-Poedit-Language: German\n"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/SnarkManager.java:84
|
||||||
|
#, java-format
|
||||||
|
msgid "Adding torrents in {0} minutes"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/SnarkManager.java:241
|
||||||
|
#, java-format
|
||||||
|
msgid "Total uploaders limit changed to {0}"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/SnarkManager.java:243
|
||||||
|
#, java-format
|
||||||
|
msgid "Minimum total uploaders limit is {0}"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/SnarkManager.java:255
|
||||||
|
#, java-format
|
||||||
|
msgid "Up BW limit changed to {0}KBps"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/SnarkManager.java:257
|
||||||
|
#, java-format
|
||||||
|
msgid "Minimum up bandwidth limit is {0}KBps"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/SnarkManager.java:301
|
||||||
|
msgid "Cannot change the I2CP settings while torrents are active"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/SnarkManager.java:307
|
||||||
|
msgid "Disconnecting old I2CP destination"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/SnarkManager.java:311
|
||||||
|
#, java-format
|
||||||
|
msgid "I2CP settings changed to {0}"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/SnarkManager.java:315
|
||||||
|
msgid ""
|
||||||
|
"Unable to connect with the new settings, reverting to the old I2CP settings"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/SnarkManager.java:319
|
||||||
|
msgid "Unable to reconnect with the old settings!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/SnarkManager.java:321
|
||||||
|
msgid "Reconnected on the new I2CP destination"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/SnarkManager.java:332
|
||||||
|
#, java-format
|
||||||
|
msgid "I2CP listener restarted for \"{0}\""
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/SnarkManager.java:343
|
||||||
|
msgid "Enabled autostart"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/SnarkManager.java:345
|
||||||
|
msgid "Disabled autostart"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/SnarkManager.java:351
|
||||||
|
msgid "Enabled open trackers - torrent restart required to take effect."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/SnarkManager.java:353
|
||||||
|
msgid "Disabled open trackers - torrent restart required to take effect."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/SnarkManager.java:360
|
||||||
|
msgid "Open Tracker list changed - torrent restart required to take effect."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/SnarkManager.java:367
|
||||||
|
msgid "Configuration unchanged."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/SnarkManager.java:377
|
||||||
|
#, java-format
|
||||||
|
msgid "Unable to save the config to {0}"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/SnarkManager.java:395
|
||||||
|
msgid "Connecting to I2P"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/SnarkManager.java:398
|
||||||
|
msgid "Error connecting to I2P - check your I2CP settings!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/SnarkManager.java:407
|
||||||
|
#, java-format
|
||||||
|
msgid "Error: Could not add the torrent {0}"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/SnarkManager.java:446
|
||||||
|
#, java-format
|
||||||
|
msgid "Torrent in \"{0}\" is invalid"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/SnarkManager.java:461
|
||||||
|
#, java-format
|
||||||
|
msgid "Torrent added and started: \"{0}\""
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/SnarkManager.java:463
|
||||||
|
#, java-format
|
||||||
|
msgid "Torrent added: \"{0}\""
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/SnarkManager.java:559
|
||||||
|
#, java-format
|
||||||
|
msgid "Non-i2p tracker in \"{0}\", deleting it from our list of trackers!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/SnarkManager.java:562
|
||||||
|
#, java-format
|
||||||
|
msgid "Too many files in \"{0}\" ({1}), deleting it!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/SnarkManager.java:564
|
||||||
|
#, java-format
|
||||||
|
msgid "Torrent file \"{0}\" cannot end in '.torrent', deleting it!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/SnarkManager.java:566
|
||||||
|
#, java-format
|
||||||
|
msgid "No pieces in \"{0}\", deleting it!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/SnarkManager.java:568
|
||||||
|
#, java-format
|
||||||
|
msgid "Too many pieces in \"{0}\", limit is {1}, deleting it!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/SnarkManager.java:570
|
||||||
|
#, java-format
|
||||||
|
msgid "Pieces are too large in \"{0}\" ({1}B), deleting it."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/SnarkManager.java:571
|
||||||
|
#, java-format
|
||||||
|
msgid "Limit is {0}B"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/SnarkManager.java:579
|
||||||
|
#, java-format
|
||||||
|
msgid "Torrents larger than {0}B are not supported yet, deleting \"{1}\""
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/SnarkManager.java:595
|
||||||
|
#, java-format
|
||||||
|
msgid "Error: Could not remove the torrent {0}"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/SnarkManager.java:616
|
||||||
|
#, java-format
|
||||||
|
msgid "Torrent stopped: \"{0}\""
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/SnarkManager.java:631
|
||||||
|
#, java-format
|
||||||
|
msgid "Torrent removed: \"{0}\""
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/SnarkManager.java:664
|
||||||
|
#, java-format
|
||||||
|
msgid "Download finished: \"{0}\""
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/SnarkManager.java:664
|
||||||
|
#, java-format
|
||||||
|
msgid "size: {0}B"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/SnarkManager.java:692
|
||||||
|
msgid "Unable to connect to I2P!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:86
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:86
|
||||||
msgid "I2PSnark - Anonymous BitTorrent Client"
|
msgid "I2PSnark - Anonymous BitTorrent Client"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -104,19 +286,24 @@ msgstr ""
|
|||||||
msgid "{0} connected peers"
|
msgid "{0} connected peers"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:218
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:748
|
||||||
|
msgid "Add torrent"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:226
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:226
|
||||||
#, java-format
|
#, java-format
|
||||||
msgid "Torrent file {0} does not exist"
|
msgid "Torrent file {0} does not exist"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:236
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:236
|
||||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:983
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:985
|
||||||
#, java-format
|
#, java-format
|
||||||
msgid "Torrent already running: {0}"
|
msgid "Torrent already running: {0}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:238
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:238
|
||||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:985
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:987
|
||||||
#, java-format
|
#, java-format
|
||||||
msgid "Torrent already in the queue: {0}"
|
msgid "Torrent already in the queue: {0}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -145,6 +332,16 @@ msgstr ""
|
|||||||
msgid "Invalid URL - must start with http://"
|
msgid "Invalid URL - must start with http://"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:262
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:615
|
||||||
|
msgid "Stop"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:277
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:623
|
||||||
|
msgid "Start"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:287
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:287
|
||||||
#, java-format
|
#, java-format
|
||||||
msgid "Starting up torrent {0}"
|
msgid "Starting up torrent {0}"
|
||||||
@ -173,25 +370,35 @@ msgstr ""
|
|||||||
msgid "Data dir deleted: {0}"
|
msgid "Data dir deleted: {0}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:359
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:913
|
||||||
|
msgid "Save configuration"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:373
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:799
|
||||||
|
msgid "Create torrent"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:383
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:383
|
||||||
msgid "Error creating torrent - you must select a tracker"
|
msgid "Error creating torrent - you must select a tracker"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:398
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:398
|
||||||
#, java-format
|
#, java-format
|
||||||
msgid "Torrent created for {0}"
|
msgid "Torrent created for \"{0}\""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:401
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:401
|
||||||
#, java-format
|
#, java-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Many I2P trackers require you to register new torrents before seeding - "
|
"Many I2P trackers require you to register new torrents before seeding - "
|
||||||
"please do so before starting {0}"
|
"please do so before starting \"{0}\""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:403
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:403
|
||||||
#, java-format
|
#, java-format
|
||||||
msgid "Error creating a torrent for {0}"
|
msgid "Error creating a torrent for \"{0}\""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:406
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:406
|
||||||
@ -285,18 +492,10 @@ msgstr ""
|
|||||||
msgid "Stop the torrent"
|
msgid "Stop the torrent"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:615
|
|
||||||
msgid "Stop"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:621
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:621
|
||||||
msgid "Start the torrent"
|
msgid "Start the torrent"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:623
|
|
||||||
msgid "Start"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:628
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:628
|
||||||
msgid "Remove the torrent from the active list, deleting the .torrent file"
|
msgid "Remove the torrent from the active list, deleting the .torrent file"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -341,17 +540,13 @@ msgstr ""
|
|||||||
msgid "From URL"
|
msgid "From URL"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:748
|
|
||||||
msgid "Add torrent"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:751
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:751
|
||||||
#, java-format
|
#, java-format
|
||||||
msgid "Alternately, you can copy .torrent files to {0} ."
|
msgid "Alternately, you can copy .torrent files to {0} ."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:753
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:753
|
||||||
msgid "Removing that .torrent file will cause the torrent to stop."
|
msgid "Removing a .torrent file will cause the torrent to stop."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:769
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:769
|
||||||
@ -378,10 +573,6 @@ msgstr ""
|
|||||||
msgid "Custom tracker URL"
|
msgid "Custom tracker URL"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:799
|
|
||||||
msgid "Create torrent"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:816
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:816
|
||||||
msgid "Configuration"
|
msgid "Configuration"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -448,21 +639,17 @@ msgstr ""
|
|||||||
msgid "I2CP options"
|
msgid "I2CP options"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:913
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:966
|
||||||
msgid "Save configuration"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:964
|
|
||||||
#, java-format
|
#, java-format
|
||||||
msgid "Torrent fetched from {0}"
|
msgid "Torrent fetched from {0}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:991
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:993
|
||||||
#, java-format
|
#, java-format
|
||||||
msgid "Torrent at {0} was not valid"
|
msgid "Torrent at {0} was not valid"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:996
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:998
|
||||||
#, java-format
|
#, java-format
|
||||||
msgid "Torrent was not retrieved from {0}"
|
msgid "Torrent was not retrieved from {0}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -76,6 +76,28 @@ public abstract class Translate {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** for {0} and {1} */
|
||||||
|
public static String getString(String s, Object o, Object o2, I2PAppContext ctx, String bun) {
|
||||||
|
String lang = getLanguage(ctx);
|
||||||
|
if (lang.equals(TEST_LANG))
|
||||||
|
return TEST_STRING + '(' + o + ',' + o2 + ')' + TEST_STRING;
|
||||||
|
String x = getString(s, ctx, bun);
|
||||||
|
Object[] oArray = new Object[2];
|
||||||
|
oArray[0] = o;
|
||||||
|
oArray[1] = o2;
|
||||||
|
try {
|
||||||
|
MessageFormat fmt = new MessageFormat(x, new Locale(lang));
|
||||||
|
return fmt.format(oArray, new StringBuffer(), null).toString();
|
||||||
|
} catch (IllegalArgumentException iae) {
|
||||||
|
System.err.println("Bad format: orig: \"" + s +
|
||||||
|
"\" trans: \"" + x +
|
||||||
|
"\" param1: \"" + o +
|
||||||
|
"\" param2: \"" + o2 +
|
||||||
|
"\" lang: " + lang);
|
||||||
|
return "FIXME: " + x + ' ' + o + ',' + o2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/** @return lang in routerconsole.lang property, else current locale */
|
/** @return lang in routerconsole.lang property, else current locale */
|
||||||
public static String getLanguage(I2PAppContext ctx) {
|
public static String getLanguage(I2PAppContext ctx) {
|
||||||
String lang = ctx.getProperty(PROP_LANG);
|
String lang = ctx.getProperty(PROP_LANG);
|
||||||
|
Reference in New Issue
Block a user