From 615257831cd416d1dc69ce80e89efb1a3f282807 Mon Sep 17 00:00:00 2001 From: zzz Date: Wed, 30 Jun 2010 23:28:44 +0000 Subject: [PATCH 01/75] * Transport: Fix NTCP address generation when host is specified but port is auto --- .../router/transport/CommSystemFacadeImpl.java | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/router/java/src/net/i2p/router/transport/CommSystemFacadeImpl.java b/router/java/src/net/i2p/router/transport/CommSystemFacadeImpl.java index 3e5eafd74..196876383 100644 --- a/router/java/src/net/i2p/router/transport/CommSystemFacadeImpl.java +++ b/router/java/src/net/i2p/router/transport/CommSystemFacadeImpl.java @@ -316,6 +316,7 @@ public class CommSystemFacadeImpl extends CommSystemFacade { String ohost = newProps.getProperty(NTCPAddress.PROP_HOST); String enabled = _context.getProperty(PROP_I2NP_NTCP_AUTO_IP, "true"); String name = _context.getProperty(PROP_I2NP_NTCP_HOSTNAME); + // hostname config trumps auto config if (name != null && name.length() > 0) enabled = "false"; Transport udp = _manager.getTransport(UDPTransport.STYLE); @@ -335,6 +336,17 @@ public class CommSystemFacadeImpl extends CommSystemFacade { newProps.setProperty(NTCPAddress.PROP_HOST, nhost); changed = true; } + } else if (enabled.equalsIgnoreCase("false") && + name != null && name.length() > 0 && + !name.equals(ohost) && + nport != null) { + // Host name is configured, and we have a port (either auto or configured) + // but we probably only get here if the port is auto, + // otherwise createNTCPAddress() would have done it already + if (_log.shouldLog(Log.INFO)) + _log.info("old: " + ohost + " config: " + name + " new: " + name); + newProps.setProperty(NTCPAddress.PROP_HOST, name); + changed = true; } else if (ohost == null || ohost.length() <= 0) { return; } else if (enabled.equalsIgnoreCase("true") && status != STATUS_OK) { @@ -359,10 +371,10 @@ public class CommSystemFacadeImpl extends CommSystemFacade { if (_log.shouldLog(Log.WARN)) _log.warn("Changing NTCP cost from " + oldCost + " to " + newCost); } else { - _log.warn("No change to NTCP Address"); + _log.info("No change to NTCP Address"); } } else { - _log.warn("No change to NTCP Address"); + _log.info("No change to NTCP Address"); } return; } From d241afcbd8493bba5b2eeb806fee97e26ddc82df Mon Sep 17 00:00:00 2001 From: zzz Date: Wed, 30 Jun 2010 23:29:31 +0000 Subject: [PATCH 02/75] * EventDispatcher: Minor cleanups and comments --- .../src/net/i2p/util/EventDispatcher.java | 4 +++- .../src/net/i2p/util/EventDispatcherImpl.java | 19 ++++++++++--------- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/core/java/src/net/i2p/util/EventDispatcher.java b/core/java/src/net/i2p/util/EventDispatcher.java index ba7cc4394..8f74beae7 100644 --- a/core/java/src/net/i2p/util/EventDispatcher.java +++ b/core/java/src/net/i2p/util/EventDispatcher.java @@ -31,6 +31,8 @@ import java.util.Set; * public Object waitEventValue(String n) { return _event.waitEventValue(n); } * * + * Deprecated - Used only by I2PTunnel + * * @author human */ public interface EventDispatcher { @@ -101,4 +103,4 @@ public interface EventDispatcher { * @return value specified for that event */ public Object waitEventValue(String name); -} \ No newline at end of file +} diff --git a/core/java/src/net/i2p/util/EventDispatcherImpl.java b/core/java/src/net/i2p/util/EventDispatcherImpl.java index 2600be7a8..306925aff 100644 --- a/core/java/src/net/i2p/util/EventDispatcherImpl.java +++ b/core/java/src/net/i2p/util/EventDispatcherImpl.java @@ -24,6 +24,8 @@ import java.util.Set; * each object it is used by, ala: * private final EventDispatcher _event = new EventDispatcher(); * + * Deprecated - Used only by I2PTunnel + * * If there is anything in here that doesn't make sense, turn off * your computer and go fly a kite - (c) 2004 by jrandom @@ -32,10 +34,10 @@ import java.util.Set; */ public class EventDispatcherImpl implements EventDispatcher { - private final static Log _log = new Log(EventDispatcherImpl.class); + //private final static Log _log = new Log(EventDispatcherImpl.class); private boolean _ignore = false; - private /* FIXME final FIXME */ HashMap _events = new HashMap(4); + private final HashMap _events = new HashMap(4); private final ArrayList _attached = new ArrayList(); public EventDispatcher getEventDispatcher() { @@ -45,7 +47,7 @@ public class EventDispatcherImpl implements EventDispatcher { public void attachEventDispatcher(EventDispatcher ev) { if (ev == null) return; synchronized (_attached) { - _log.debug(this.hashCode() + ": attaching EventDispatcher " + ev.hashCode()); + //_log.debug(this.hashCode() + ": attaching EventDispatcher " + ev.hashCode()); _attached.add(ev); } } @@ -68,7 +70,7 @@ public class EventDispatcherImpl implements EventDispatcher { if (args == null) { args = "[null value]"; } - _log.debug(this.hashCode() + ": got notification [" + eventName + "] = [" + args + "]"); + //_log.debug(this.hashCode() + ": got notification [" + eventName + "] = [" + args + "]"); synchronized (_events) { _events.put(eventName, args); _events.notifyAll(); @@ -77,8 +79,8 @@ public class EventDispatcherImpl implements EventDispatcher { EventDispatcher e; while (it.hasNext()) { e = (EventDispatcher) it.next(); - _log.debug(this.hashCode() + ": notifying attached EventDispatcher " + e.hashCode() + ": [" - + eventName + "] = [" + args + "]"); + //_log.debug(this.hashCode() + ": notifying attached EventDispatcher " + e.hashCode() + ": [" + // + eventName + "] = [" + args + "]"); e.notifyEvent(eventName, args); } } @@ -112,7 +114,6 @@ public class EventDispatcherImpl implements EventDispatcher { synchronized (_events) { _events.clear(); } - _events = null; } public void unIgnoreEvents() { @@ -123,7 +124,7 @@ public class EventDispatcherImpl implements EventDispatcher { if (_ignore) return null; Object val; - _log.debug(this.hashCode() + ": waiting for [" + name + "]"); + //_log.debug(this.hashCode() + ": waiting for [" + name + "]"); do { synchronized (_events) { if (_events.containsKey(name)) { @@ -139,4 +140,4 @@ public class EventDispatcherImpl implements EventDispatcher { return val; } -} \ No newline at end of file +} From 00102293638f205f70052f175fbb9c26db480fbe Mon Sep 17 00:00:00 2001 From: zzz Date: Wed, 30 Jun 2010 23:30:50 +0000 Subject: [PATCH 03/75] unused icon --- apps/i2psnark/_icons/bug.png | Bin 774 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 apps/i2psnark/_icons/bug.png diff --git a/apps/i2psnark/_icons/bug.png b/apps/i2psnark/_icons/bug.png deleted file mode 100644 index 2d5fb90ec6ee08f53947e0266a87b03f75893446..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 774 zcmV+h1Nr=kP) zlgUq0Q544c8(ae&UR$8ps&snq6^bPY3v3xAmMW74Di$h~GCH6E3TaYs2#6A<7K*gC z777H71_Wa;(dfp+g-drPCSWu)#PInZi72LJ;o?i~$-U=y&UbQ89Dul3%3P+Axkzc* zbH-y;QF=hR{qLItf%ci2_&e5wNo0gnVatG?ul6Zw=o$I9Ljfn*ic3`U?>IfEim3g{ zujU&$-hy6wn;w(xme|zJm;lWJxtTFfM)q0`kX!Vu0+d${$}LCddK1<^htTe-fUYL3 zB`SdNsZD>RgvLj1<^@h6_+cDRK2Brcr2~>%$*5S)hyV33PV^teac3%|4lz@8p4?)5 z?t5o^?q+%^%)Yygo~I^U4VR!bTnWuE35hcWrfCDR3q+sxJ79e7Fg`&)RCqLA^2^y^ z0laVfadW90_Fz8Brm|r47sB^u1VgI>kanj)Z4`zMSfHlm8>CwXa$JVM`$2RrmZB-3 zN10m-!;BvH*Br3V8t`DH7m`jf#2upVDXl{5ff18_pzCPK1Zu$$CKKvd8FGeFf)+K<|x33pc7P&S#3GZT4mEw;nr(Ze*F z3&*?-4U-lm*#tber5 z%S_ceqB`b3ko6r~BbvDwdohTvP(3a(pq{x#T$yQsu#OKwEe}KuH^Mh@nxg_(Nw136 zq#a^3xNBke)In+!?qk3%4wB69{pF`Tzg`07*qoM6N<$ Eg55P&8UO$Q From 530a3fcd1082b8364f31d6e9c3743feae41c2fc0 Mon Sep 17 00:00:00 2001 From: zzz Date: Wed, 30 Jun 2010 23:37:25 +0000 Subject: [PATCH 04/75] * I2PTunnel: Don't start a tunnel if no valid destinations; cleanups, logging, and error propagation fixes --- .../java/src/net/i2p/i2ptunnel/I2PTunnel.java | 29 +++++++++++- .../net/i2p/i2ptunnel/I2PTunnelClient.java | 21 ++++++--- .../i2p/i2ptunnel/I2PTunnelClientBase.java | 2 + .../net/i2p/i2ptunnel/I2PTunnelIRCClient.java | 24 +++++++--- .../net/i2p/i2ptunnel/TunnelController.java | 31 ++++++++----- .../i2p/i2ptunnel/TunnelControllerGroup.java | 45 ++++++++++--------- history.txt | 6 +++ .../src/net/i2p/router/RouterVersion.java | 2 +- 8 files changed, 115 insertions(+), 45 deletions(-) diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnel.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnel.java index 363cd0679..3a7e986d8 100644 --- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnel.java +++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnel.java @@ -69,6 +69,9 @@ import net.i2p.util.EventDispatcher; import net.i2p.util.EventDispatcherImpl; import net.i2p.util.Log; +/** + * Todo: Most events are not listened to elsewhere, so error propagation is poor + */ public class I2PTunnel implements Logging, EventDispatcher { private Log _log; private EventDispatcherImpl _event; @@ -180,6 +183,7 @@ public class I2PTunnel implements Logging, EventDispatcher { } } + /** @return non-null */ List getSessions() { synchronized (_sessions) { return new ArrayList(_sessions); @@ -585,6 +589,9 @@ public class I2PTunnel implements Logging, EventDispatcher { * Run the server pointing at the host and port specified using the private i2p * destination loaded from the given base64 stream.

* + * Deprecated? Why run a server with a private destination? + * Not available from the war GUI + * * Sets the event "serverTaskId" = Integer(taskId) after the tunnel has been started (or -1 on error) * Also sets the event "openServerResult" = "ok" or "error" (displaying "Ready!" on the logger after * 'ok'). So, success = serverTaskId != -1 and openServerResult = ok. @@ -666,6 +673,11 @@ public class I2PTunnel implements Logging, EventDispatcher { _log.error(getPrefix() + "Invalid I2PTunnel config to create a client [" + host + ":"+ port + "]", iae); l.log("Invalid I2PTunnel configuration [" + host + ":" + port + "]"); notifyEvent("clientTaskId", Integer.valueOf(-1)); + // Since nothing listens to TaskID events, use this to propagate the error to TunnelController + // Otherwise, the tunnel stays up even though the port is down + // This doesn't work for CLI though... and the tunnel doesn't close itself after error, + // so this probably leaves the tunnel open if called from the CLI + throw iae; } } else { l.log("client [,]|file:[ ] []"); @@ -733,6 +745,11 @@ public class I2PTunnel implements Logging, EventDispatcher { _log.error(getPrefix() + "Invalid I2PTunnel config to create an httpclient [" + host + ":"+ clientPort + "]", iae); l.log("Invalid I2PTunnel configuration [" + host + ":" + clientPort + "]"); notifyEvent("httpclientTaskId", Integer.valueOf(-1)); + // Since nothing listens to TaskID events, use this to propagate the error to TunnelController + // Otherwise, the tunnel stays up even though the port is down + // This doesn't work for CLI though... and the tunnel doesn't close itself after error, + // so this probably leaves the tunnel open if called from the CLI + throw iae; } } else { l.log("httpclient [] []"); @@ -789,7 +806,12 @@ public class I2PTunnel implements Logging, EventDispatcher { task = new I2PTunnelConnectClient(_port, l, ownDest, proxy, (EventDispatcher) this, this); addtask(task); } catch (IllegalArgumentException iae) { - _log.error(getPrefix() + "Invalid I2PTunnel config to create an httpclient [" + host + ":"+ _port + "]", iae); + _log.error(getPrefix() + "Invalid I2PTunnel config to create a connect client [" + host + ":"+ _port + "]", iae); + // Since nothing listens to TaskID events, use this to propagate the error to TunnelController + // Otherwise, the tunnel stays up even though the port is down + // This doesn't work for CLI though... and the tunnel doesn't close itself after error, + // so this probably leaves the tunnel open if called from the CLI + throw iae; } } else { l.log("connectclient [] []"); @@ -848,6 +870,11 @@ public class I2PTunnel implements Logging, EventDispatcher { _log.error(getPrefix() + "Invalid I2PTunnel config to create an ircclient [" + host + ":"+ _port + "]", iae); l.log("Invalid I2PTunnel configuration [" + host + ":" + _port + "]"); notifyEvent("ircclientTaskId", Integer.valueOf(-1)); + // Since nothing listens to TaskID events, use this to propagate the error to TunnelController + // Otherwise, the tunnel stays up even though the port is down + // This doesn't work for CLI though... and the tunnel doesn't close itself after error, + // so this probably leaves the tunnel open if called from the CLI + throw iae; } } else { l.log("ircclient [ []]"); diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelClient.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelClient.java index 89339bf04..d5b88d4d3 100644 --- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelClient.java +++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelClient.java @@ -20,7 +20,7 @@ public class I2PTunnelClient extends I2PTunnelClientBase { private static final Log _log = new Log(I2PTunnelClient.class); /** list of Destination objects that we point at */ - protected List dests; + protected List dests; private static final long DEFAULT_READ_TIMEOUT = 5*60*1000; // -1 protected long readTimeout = DEFAULT_READ_TIMEOUT; @@ -55,9 +55,20 @@ public class I2PTunnelClient extends I2PTunnelClientBase { } if (dests.isEmpty()) { - l.log("No target destinations found"); + l.log("No valid target destinations found"); notifyEvent("openClientResult", "error"); - return; + // Nothing is listening for the above event, so it's useless + // Maybe figure out where to put a waitEventValue("openClientResult") ?? + // In the meantime, let's do this the easy way + // Note that b32 dests will often not be resolvable at instantiation time; + // a delayed resolution system would be even better. + + // Don't close() here, because it does a removeSession() and then + // TunnelController can't acquire() it to release() it. + //close(true); + // Unfortunately, super() built the whole tunnel before we get here. + throw new IllegalArgumentException("No valid target destinations found"); + //return; } setName(getLocalPort() + " -> " + destinations); @@ -98,8 +109,8 @@ public class I2PTunnelClient extends I2PTunnelClientBase { return null; } if (size == 1) // skip the rand in the most common case - return (Destination)dests.get(0); + return dests.get(0); int index = I2PAppContext.getGlobalContext().random().nextInt(size); - return (Destination)dests.get(index); + return dests.get(index); } } diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelClientBase.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelClientBase.java index 398fd7349..71a1561ea 100644 --- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelClientBase.java +++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelClientBase.java @@ -583,6 +583,8 @@ public abstract class I2PTunnelClientBase extends I2PTunnelTask implements Runna } public boolean close(boolean forced) { + if (_log.shouldLog(Log.INFO)) + _log.info("close() called: forced = " + forced + " open = " + open + " sockMgr = " + sockMgr); if (!open) return true; // FIXME: here we might have to wait quite a long time if // there is a connection attempt atm. But without waiting we diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelIRCClient.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelIRCClient.java index a7fbcf37b..2892d71b7 100644 --- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelIRCClient.java +++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelIRCClient.java @@ -17,6 +17,9 @@ import net.i2p.util.EventDispatcher; import net.i2p.util.I2PAppThread; import net.i2p.util.Log; +/** + * Todo: Can we extend I2PTunnelClient instead and remove some duplicated code? + */ public class I2PTunnelIRCClient extends I2PTunnelClientBase implements Runnable { private static final Log _log = new Log(I2PTunnelIRCClient.class); @@ -25,7 +28,7 @@ public class I2PTunnelIRCClient extends I2PTunnelClientBase implements Runnable private static volatile long __clientId = 0; /** list of Destination objects that we point at */ - protected List dests; + protected List dests; private static final long DEFAULT_READ_TIMEOUT = 5*60*1000; // -1 protected long readTimeout = DEFAULT_READ_TIMEOUT; @@ -47,7 +50,7 @@ public class I2PTunnelIRCClient extends I2PTunnelClientBase implements Runnable "IRCHandler " + (++__clientId), tunnel, pkf); StringTokenizer tok = new StringTokenizer(destinations, ", "); - dests = new ArrayList(1); + dests = new ArrayList(2); while (tok.hasMoreTokens()) { String destination = tok.nextToken(); try { @@ -64,7 +67,18 @@ public class I2PTunnelIRCClient extends I2PTunnelClientBase implements Runnable if (dests.isEmpty()) { l.log("No target destinations found"); notifyEvent("openClientResult", "error"); - return; + // Nothing is listening for the above event, so it's useless + // Maybe figure out where to put a waitEventValue("openClientResult") ?? + // In the meantime, let's do this the easy way + // Note that b32 dests will often not be resolvable at instantiation time; + // a delayed resolution system would be even better. + + // Don't close() here, because it does a removeSession() and then + // TunnelController can't acquire() it to release() it. + //close(true); + // Unfortunately, super() built the whole tunnel before we get here. + throw new IllegalArgumentException("No valid target destinations found"); + //return; } setName(getLocalPort() + " -> IRCClient"); @@ -109,9 +123,9 @@ public class I2PTunnelIRCClient extends I2PTunnelClientBase implements Runnable return null; } if (size == 1) // skip the rand in the most common case - return (Destination)dests.get(0); + return dests.get(0); int index = I2PAppContext.getGlobalContext().random().nextInt(size); - return (Destination)dests.get(index); + return dests.get(index); } /************************************************************************* diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/TunnelController.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/TunnelController.java index 7235507ba..fa0564be8 100644 --- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/TunnelController.java +++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/TunnelController.java @@ -29,8 +29,8 @@ public class TunnelController implements Logging { private Log _log; private Properties _config; private I2PTunnel _tunnel; - private List _messages; - private List _sessions; + private List _messages; + private List _sessions; private boolean _running; private boolean _starting; @@ -120,6 +120,9 @@ public class TunnelController implements Logging { } catch (Exception e) { _log.error("Error starting up the tunnel", e); log("Error starting up the tunnel - " + e.getMessage()); + // if we don't acquire() then the release() in stopTunnel() won't work + acquire(); + stopTunnel(); } _starting = false; } @@ -256,15 +259,18 @@ public class TunnelController implements Logging { * closed by some other tunnels */ private void acquire() { - List sessions = _tunnel.getSessions(); - if (sessions != null) { + List sessions = _tunnel.getSessions(); + if (!sessions.isEmpty()) { for (int i = 0; i < sessions.size(); i++) { - I2PSession session = (I2PSession)sessions.get(i); + I2PSession session = sessions.get(i); + if (_log.shouldLog(Log.INFO)) + _log.info("Acquiring session " + session); TunnelControllerGroup.getInstance().acquire(this, session); } _sessions = sessions; } else { - _log.error("No sessions to acquire?"); + if (_log.shouldLog(Log.WARN)) + _log.warn("No sessions to acquire? for " + getName()); } } @@ -273,13 +279,16 @@ public class TunnelController implements Logging { * no other tunnels are using them, close them. */ private void release() { - if (_sessions != null) { + if (_sessions != null && !_sessions.isEmpty()) { for (int i = 0; i < _sessions.size(); i++) { - I2PSession s = (I2PSession)_sessions.get(i); + I2PSession s = _sessions.get(i); + if (_log.shouldLog(Log.INFO)) + _log.info("Releasing session " + s); TunnelControllerGroup.getInstance().release(this, s); } } else { - _log.error("No sessions to release?"); + if (_log.shouldLog(Log.WARN)) + _log.warn("No sessions to release? for " + getName()); } } @@ -370,7 +379,7 @@ public class TunnelController implements Logging { _tunnel.port = "7654"; } } - + public void stopTunnel() { _tunnel.runClose(new String[] { "forced", "all" }, this); release(); @@ -597,7 +606,7 @@ public class TunnelController implements Logging { * * @return list of messages pulled off (each is a String, earliest first) */ - public List clearMessages() { + public List clearMessages() { List rv = null; synchronized (this) { rv = new ArrayList(_messages); diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/TunnelControllerGroup.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/TunnelControllerGroup.java index 112f0d62f..169f56954 100644 --- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/TunnelControllerGroup.java +++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/TunnelControllerGroup.java @@ -25,13 +25,14 @@ import net.i2p.util.Log; * Coordinate a set of tunnels within the JVM, loading and storing their config * to disk, and building new ones as requested. * + * Warning - this is a singleton. Todo: fix */ public class TunnelControllerGroup { - private Log _log; + private final Log _log; private static TunnelControllerGroup _instance; static final String DEFAULT_CONFIG_FILE = "i2ptunnel.config"; - private List _controllers; + private final List _controllers; private String _configFile = DEFAULT_CONFIG_FILE; /** @@ -40,7 +41,7 @@ public class TunnelControllerGroup { * no more tunnels are using it) * */ - private final Map _sessions; + private final Map> _sessions; public static TunnelControllerGroup getInstance() { synchronized (TunnelControllerGroup.class) { @@ -104,7 +105,7 @@ public class TunnelControllerGroup { private class StartControllers implements Runnable { public void run() { for (int i = 0; i < _controllers.size(); i++) { - TunnelController controller = (TunnelController)_controllers.get(i); + TunnelController controller = _controllers.get(i); if (controller.getStartOnLoad()) controller.startTunnel(); } @@ -141,10 +142,10 @@ public class TunnelControllerGroup { * * @return list of messages from the controller as it is stopped */ - public List removeController(TunnelController controller) { + public List removeController(TunnelController controller) { if (controller == null) return new ArrayList(); controller.stopTunnel(); - List msgs = controller.clearMessages(); + List msgs = controller.clearMessages(); _controllers.remove(controller); msgs.add("Tunnel " + controller.getName() + " removed"); return msgs; @@ -155,10 +156,10 @@ public class TunnelControllerGroup { * * @return list of messages the tunnels generate when stopped */ - public List stopAllControllers() { - List msgs = new ArrayList(); + public List stopAllControllers() { + List msgs = new ArrayList(); for (int i = 0; i < _controllers.size(); i++) { - TunnelController controller = (TunnelController)_controllers.get(i); + TunnelController controller = _controllers.get(i); controller.stopTunnel(); msgs.addAll(controller.clearMessages()); } @@ -172,10 +173,10 @@ public class TunnelControllerGroup { * * @return list of messages the tunnels generate when started */ - public List startAllControllers() { - List msgs = new ArrayList(); + public List startAllControllers() { + List msgs = new ArrayList(); for (int i = 0; i < _controllers.size(); i++) { - TunnelController controller = (TunnelController)_controllers.get(i); + TunnelController controller = _controllers.get(i); controller.startTunnelBackground(); msgs.addAll(controller.clearMessages()); } @@ -190,10 +191,10 @@ public class TunnelControllerGroup { * * @return list of messages the tunnels generate when restarted */ - public List restartAllControllers() { - List msgs = new ArrayList(); + public List restartAllControllers() { + List msgs = new ArrayList(); for (int i = 0; i < _controllers.size(); i++) { - TunnelController controller = (TunnelController)_controllers.get(i); + TunnelController controller = _controllers.get(i); controller.restartTunnel(); msgs.addAll(controller.clearMessages()); } @@ -207,10 +208,10 @@ public class TunnelControllerGroup { * * @return list of messages the tunnels have generated */ - public List clearAllMessages() { - List msgs = new ArrayList(); + public List clearAllMessages() { + List msgs = new ArrayList(); for (int i = 0; i < _controllers.size(); i++) { - TunnelController controller = (TunnelController)_controllers.get(i); + TunnelController controller = _controllers.get(i); msgs.addAll(controller.clearMessages()); } return msgs; @@ -240,7 +241,7 @@ public class TunnelControllerGroup { TreeMap map = new TreeMap(); for (int i = 0; i < _controllers.size(); i++) { - TunnelController controller = (TunnelController)_controllers.get(i); + TunnelController controller = _controllers.get(i); Properties cur = controller.getConfig("tunnel." + i + "."); map.putAll(cur); } @@ -296,7 +297,7 @@ public class TunnelControllerGroup { * * @return list of TunnelController objects */ - public List getControllers() { return _controllers; } + public List getControllers() { return _controllers; } /** @@ -306,7 +307,7 @@ public class TunnelControllerGroup { */ void acquire(TunnelController controller, I2PSession session) { synchronized (_sessions) { - Set owners = (Set)_sessions.get(session); + Set owners = _sessions.get(session); if (owners == null) { owners = new HashSet(1); _sessions.put(session, owners); @@ -326,7 +327,7 @@ public class TunnelControllerGroup { void release(TunnelController controller, I2PSession session) { boolean shouldClose = false; synchronized (_sessions) { - Set owners = (Set)_sessions.get(session); + Set owners = _sessions.get(session); if (owners != null) { owners.remove(controller); if (owners.isEmpty()) { diff --git a/history.txt b/history.txt index 9bd64c102..9f7f8c2dd 100644 --- a/history.txt +++ b/history.txt @@ -1,3 +1,9 @@ +2010-07-01 zzz + * EventDispatcher: Minor cleanups and comments + * I2PTunnel: Don't start a tunnel if no valid destinations; + cleanups, logging, and error propagation fixes + * Transport: Fix NTCP address generation when host is specified but port is auto + 2010-06-29 sponge * 25%-50% cpu savings in BOB. The remainder of the fix is in streaming lib, which aparently keeps running and does not sleep according to diff --git a/router/java/src/net/i2p/router/RouterVersion.java b/router/java/src/net/i2p/router/RouterVersion.java index 4e28a2c8d..c10128fe6 100644 --- a/router/java/src/net/i2p/router/RouterVersion.java +++ b/router/java/src/net/i2p/router/RouterVersion.java @@ -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 = 5; + public final static long BUILD = 6; /** for example "-test" */ public final static String EXTRA = ""; From ee09bfac664e019ff2563d6946eff392b0410e0d Mon Sep 17 00:00:00 2001 From: walking Date: Thu, 1 Jul 2010 11:09:15 +0000 Subject: [PATCH 05/75] translation fix --- apps/i2psnark/locale/messages_zh.po | 402 ++++--- apps/i2ptunnel/locale/messages_zh.po | 1378 +++++++++++----------- apps/routerconsole/locale/messages_zh.po | 2 +- 3 files changed, 914 insertions(+), 868 deletions(-) diff --git a/apps/i2psnark/locale/messages_zh.po b/apps/i2psnark/locale/messages_zh.po index e5538dd48..e39ae0970 100644 --- a/apps/i2psnark/locale/messages_zh.po +++ b/apps/i2psnark/locale/messages_zh.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: I2P i2psnark\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-05-29 02:34+0000\n" -"PO-Revision-Date: 2010-05-29 10:55+0800\n" +"POT-Creation-Date: 2010-07-01 04:52+0000\n" +"PO-Revision-Date: 2010-07-01 12:53+0800\n" "Last-Translator: walking \n" "Language-Team: foo \n" "MIME-Version: 1.0\n" @@ -18,718 +18,740 @@ msgstr "" "X-Poedit-Language: Chinese\n" "Plural-Forms: nplurals=1; plural=0\n" -#: ../java/src/org/klomp/snark/SnarkManager.java:87 +#: ../java/src/org/klomp/snark/SnarkManager.java:88 #, java-format msgid "Adding torrents in {0} minutes" msgstr "{0}分钟内完成添加" -#: ../java/src/org/klomp/snark/SnarkManager.java:251 +#: ../java/src/org/klomp/snark/SnarkManager.java:258 #, java-format msgid "Total uploaders limit changed to {0}" msgstr "总上传种子数限制已更新为{0}" -#: ../java/src/org/klomp/snark/SnarkManager.java:253 +#: ../java/src/org/klomp/snark/SnarkManager.java:260 #, java-format msgid "Minimum total uploaders limit is {0}" msgstr "最低上传种子数限制为{0}" -#: ../java/src/org/klomp/snark/SnarkManager.java:265 +#: ../java/src/org/klomp/snark/SnarkManager.java:272 #, java-format msgid "Up BW limit changed to {0}KBps" msgstr "上传带宽限制改为 {0} KBps" -#: ../java/src/org/klomp/snark/SnarkManager.java:267 +#: ../java/src/org/klomp/snark/SnarkManager.java:274 #, java-format msgid "Minimum up bandwidth limit is {0}KBps" msgstr "最小上传带宽限制为 {0} KBps" -#: ../java/src/org/klomp/snark/SnarkManager.java:314 +#: ../java/src/org/klomp/snark/SnarkManager.java:286 +#, java-format +msgid "Startup delay limit changed to {0} minutes" +msgstr "启动延迟已更新为{0}" + +#: ../java/src/org/klomp/snark/SnarkManager.java:333 msgid "I2CP and tunnel changes will take effect after stopping all torrents" msgstr "I2CP与隧道设置的变化在所有种子停止后才能生效" -#: ../java/src/org/klomp/snark/SnarkManager.java:320 +#: ../java/src/org/klomp/snark/SnarkManager.java:339 msgid "Disconnecting old I2CP destination" msgstr "正在断开旧的I2CP目标" -#: ../java/src/org/klomp/snark/SnarkManager.java:324 +#: ../java/src/org/klomp/snark/SnarkManager.java:343 #, java-format msgid "I2CP settings changed to {0}" msgstr "I2CP设置改为{0}" -#: ../java/src/org/klomp/snark/SnarkManager.java:328 +#: ../java/src/org/klomp/snark/SnarkManager.java:347 msgid "Unable to connect with the new settings, reverting to the old I2CP settings" msgstr "无法通过新设置连接,恢复I2CP的旧设置" -#: ../java/src/org/klomp/snark/SnarkManager.java:332 +#: ../java/src/org/klomp/snark/SnarkManager.java:351 msgid "Unable to reconnect with the old settings!" msgstr "旧设置也无法连接!" -#: ../java/src/org/klomp/snark/SnarkManager.java:334 +#: ../java/src/org/klomp/snark/SnarkManager.java:353 msgid "Reconnected on the new I2CP destination" msgstr "重新连接新I2CP目标" -#: ../java/src/org/klomp/snark/SnarkManager.java:345 +#: ../java/src/org/klomp/snark/SnarkManager.java:364 #, java-format msgid "I2CP listener restarted for \"{0}\"" msgstr "\"{0}\"的I2CP监听端口已启动" -#: ../java/src/org/klomp/snark/SnarkManager.java:356 +#: ../java/src/org/klomp/snark/SnarkManager.java:375 msgid "Enabled autostart" msgstr "启用自动启动" -#: ../java/src/org/klomp/snark/SnarkManager.java:358 +#: ../java/src/org/klomp/snark/SnarkManager.java:377 msgid "Disabled autostart" msgstr "禁用自动启动" -#: ../java/src/org/klomp/snark/SnarkManager.java:364 +#: ../java/src/org/klomp/snark/SnarkManager.java:383 msgid "Enabled open trackers - torrent restart required to take effect." msgstr "启用OpenTracker-重新启动种子后生效" -#: ../java/src/org/klomp/snark/SnarkManager.java:366 +#: ../java/src/org/klomp/snark/SnarkManager.java:385 msgid "Disabled open trackers - torrent restart required to take effect." msgstr "禁用OpenTracker - 重新启动种子后生效" -#: ../java/src/org/klomp/snark/SnarkManager.java:373 +#: ../java/src/org/klomp/snark/SnarkManager.java:392 msgid "Open Tracker list changed - torrent restart required to take effect." msgstr "OpenTracker列表已改变 - 重新启动种子后生效" -#: ../java/src/org/klomp/snark/SnarkManager.java:380 +#: ../java/src/org/klomp/snark/SnarkManager.java:399 msgid "Configuration unchanged." msgstr "设置未改变" -#: ../java/src/org/klomp/snark/SnarkManager.java:390 +#: ../java/src/org/klomp/snark/SnarkManager.java:409 #, java-format msgid "Unable to save the config to {0}" msgstr "无法保存设置到{0}" -#: ../java/src/org/klomp/snark/SnarkManager.java:408 +#: ../java/src/org/klomp/snark/SnarkManager.java:445 msgid "Connecting to I2P" msgstr "正在连接到I2P" -#: ../java/src/org/klomp/snark/SnarkManager.java:411 +#: ../java/src/org/klomp/snark/SnarkManager.java:448 msgid "Error connecting to I2P - check your I2CP settings!" msgstr "连接I2P时发生错误 - 请检查I2CP设置!" -#: ../java/src/org/klomp/snark/SnarkManager.java:420 +#: ../java/src/org/klomp/snark/SnarkManager.java:457 #, java-format msgid "Error: Could not add the torrent {0}" msgstr "错误:无法添加种子{0}" -#: ../java/src/org/klomp/snark/SnarkManager.java:442 +#. catch this here so we don't try do delete it below +#: ../java/src/org/klomp/snark/SnarkManager.java:479 #, java-format msgid "Cannot open \"{0}\"" msgstr "无法打开 \"{0}\"" -#: ../java/src/org/klomp/snark/SnarkManager.java:455 +#: ../java/src/org/klomp/snark/SnarkManager.java:492 #, java-format msgid "Warning - Ignoring non-i2p tracker in \"{0}\", will announce to i2p open trackers only" msgstr "警告 - 忽略\"{0}\"文件中I2P网络外的Tracker服务器,文件将仅发布至 I2P 内的 Open Tracker 服务器。" -#: ../java/src/org/klomp/snark/SnarkManager.java:457 +#: ../java/src/org/klomp/snark/SnarkManager.java:494 #, java-format msgid "Warning - Ignoring non-i2p tracker in \"{0}\", and open trackers are disabled, you must enable open trackers before starting the torrent!" msgstr "警告 - 忽略\"{0}\"文件中I2P网络外的Tracker服务器,OpenTracker已禁用,启动此种子前您必须启用OpenTracker。" -#: ../java/src/org/klomp/snark/SnarkManager.java:476 +#: ../java/src/org/klomp/snark/SnarkManager.java:513 #, java-format msgid "Torrent in \"{0}\" is invalid" msgstr "无效种子 \"{0}\" " -#: ../java/src/org/klomp/snark/SnarkManager.java:491 +#: ../java/src/org/klomp/snark/SnarkManager.java:528 #, java-format msgid "Torrent added and started: \"{0}\"" msgstr "已添加并启动种子:\"{0}\"" -#: ../java/src/org/klomp/snark/SnarkManager.java:493 +#: ../java/src/org/klomp/snark/SnarkManager.java:530 #, java-format msgid "Torrent added: \"{0}\"" msgstr "已添加种子:\"{0}\"" -#: ../java/src/org/klomp/snark/SnarkManager.java:590 +#: ../java/src/org/klomp/snark/SnarkManager.java:627 #, java-format msgid "Too many files in \"{0}\" ({1}), deleting it!" msgstr "\"{0}\" ({1}) 含有太多文件,删除之!" -#: ../java/src/org/klomp/snark/SnarkManager.java:592 +#: ../java/src/org/klomp/snark/SnarkManager.java:629 #, java-format msgid "Torrent file \"{0}\" cannot end in \".torrent\", deleting it!" msgstr "种子文件 \"{0}\" 不以 \".torrent\"结尾,正在删除!" -#: ../java/src/org/klomp/snark/SnarkManager.java:594 +#: ../java/src/org/klomp/snark/SnarkManager.java:631 #, java-format msgid "No pieces in \"{0}\", deleting it!" msgstr "\"{0}\" 中没有数据片,删除之!" -#: ../java/src/org/klomp/snark/SnarkManager.java:596 +#: ../java/src/org/klomp/snark/SnarkManager.java:633 #, java-format msgid "Too many pieces in \"{0}\", limit is {1}, deleting it!" msgstr "\"{0}\" 中文件分片太多,限额为{1},删除之!" -#: ../java/src/org/klomp/snark/SnarkManager.java:598 +#: ../java/src/org/klomp/snark/SnarkManager.java:635 #, java-format msgid "Pieces are too large in \"{0}\" ({1}B), deleting it." msgstr "\"{0}\" ({1}B) 中文件分片过大,删除之。" -#: ../java/src/org/klomp/snark/SnarkManager.java:599 +#: ../java/src/org/klomp/snark/SnarkManager.java:636 #, java-format msgid "Limit is {0}B" msgstr "限额为 {0}B" -#: ../java/src/org/klomp/snark/SnarkManager.java:607 +#: ../java/src/org/klomp/snark/SnarkManager.java:644 #, java-format msgid "Torrents larger than {0}B are not supported yet, deleting \"{1}\"" msgstr "目前不支持大于{0}B 的种子,正在删除\"{1}\"" -#: ../java/src/org/klomp/snark/SnarkManager.java:623 +#: ../java/src/org/klomp/snark/SnarkManager.java:660 #, java-format msgid "Error: Could not remove the torrent {0}" msgstr "错误:无法删除种子{0}" -#: ../java/src/org/klomp/snark/SnarkManager.java:644 +#: ../java/src/org/klomp/snark/SnarkManager.java:681 #, java-format msgid "Torrent stopped: \"{0}\"" msgstr "种子已停止:\"{0}\"" -#: ../java/src/org/klomp/snark/SnarkManager.java:659 +#: ../java/src/org/klomp/snark/SnarkManager.java:696 #, java-format msgid "Torrent removed: \"{0}\"" msgstr "种子已删除:\"{0}\"" -#: ../java/src/org/klomp/snark/SnarkManager.java:692 +#: ../java/src/org/klomp/snark/SnarkManager.java:729 #, java-format msgid "Download finished: \"{0}\"" msgstr "下载已完成:\"{0}\"" -#: ../java/src/org/klomp/snark/SnarkManager.java:692 +#: ../java/src/org/klomp/snark/SnarkManager.java:729 #, java-format msgid "size: {0}B" msgstr "大小:{0}B" -#: ../java/src/org/klomp/snark/SnarkManager.java:720 +#: ../java/src/org/klomp/snark/SnarkManager.java:757 msgid "Unable to connect to I2P!" msgstr "无法连接至I2P!" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:169 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:174 msgid "I2PSnark - Anonymous BitTorrent Client" msgstr "I2PSnark - 匿名BitTorrent客户端" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:178 -msgid "Refresh page" -msgstr "刷新页面" +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:185 +msgid "Torrents" +msgstr "种子" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:180 -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:808 +#: ../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 "" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:182 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:191 +msgid "Refresh page" +msgstr "刷新页面" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:195 msgid "Forum" msgstr "论坛" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:208 -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1243 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:240 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1289 msgid "Status" msgstr "状态" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:214 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:246 msgid "Hide Peers" msgstr "隐藏用户" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:217 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:249 msgid "Show Peers" msgstr "显示用户" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:222 -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1225 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:254 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1271 msgid "Torrent" msgstr "种子" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:224 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:256 msgid "ETA" msgstr "预计剩余时间" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:226 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:258 msgid "Downloaded" msgstr "已下载" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:228 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:260 msgid "Uploaded" msgstr "已上传" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:230 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:262 msgid "Down Rate" msgstr "下载速度" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:232 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:264 msgid "Up Rate" msgstr "上传速度" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:239 +#: ../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:241 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:273 msgid "Stop All" msgstr "停止全部" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:246 +#: ../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:248 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:280 msgid "Start All" msgstr "启动全部" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:265 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:297 msgid "No torrents loaded." msgstr "未载入任何种子" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:270 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:302 msgid "Totals" msgstr "总计" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:272 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:304 #, java-format msgid "1 torrent" msgid_plural "{0} torrents" msgstr[0] "{0}个种子" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:275 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:307 #, java-format msgid "1 connected peer" msgid_plural "{0} connected peers" msgstr[0] "{0}个已连接用户" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:310 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:336 #, java-format msgid "Torrent file {0} does not exist" msgstr "种子文件{0}不存在" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:320 -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1428 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:346 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1476 #, java-format msgid "Torrent already running: {0}" msgstr "种子已启动:{0}" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:322 -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1430 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:348 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1478 #, java-format msgid "Torrent already in the queue: {0}" msgstr "种子排队中:{0}" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:326 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:352 #, java-format msgid "Copying torrent to {0}" msgstr "正在复制种子到{0}" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:329 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:355 #, java-format msgid "Unable to copy the torrent to {0}" msgstr "无法复制种子文件到{0}" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:329 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:355 #, java-format msgid "from {0}" msgstr "来源{0}" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:337 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:363 #, java-format msgid "Fetching {0}" msgstr "正在获取{0}" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:341 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:367 msgid "Invalid URL - must start with http://" msgstr "无效链接 - 必须以http:// 开头" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:371 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:397 #, java-format msgid "Starting up torrent {0}" msgstr "正在启动种子{0}" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:391 -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:409 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:417 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:435 #, java-format msgid "Torrent file deleted: {0}" msgstr "种子文件已删除:{0}" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:415 -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:425 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:441 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:451 #, java-format msgid "Data file deleted: {0}" msgstr "数据文件已删除:{0}" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:417 -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:427 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:443 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:453 #, java-format msgid "Data file could not be deleted: {0}" msgstr "无法删除数据文件:{0}" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:436 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:462 #, java-format msgid "Data dir deleted: {0}" msgstr "数据文件夹已删除:{0}" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:467 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:494 msgid "Error creating torrent - you must select a tracker" msgstr "创建种子时发生错误 - 您必须选择一个Tracker" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:482 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:509 #, java-format msgid "Torrent created for \"{0}\"" msgstr "种子创建成功\"{0}\"" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:485 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:512 #, java-format msgid "Many I2P trackers require you to register new torrents before seeding - please do so before starting \"{0}\"" msgstr "多数I2PTracker需要用户在做种前注册新种子 - 请在启动 \"{0}\"前到所使用的Tracker进行注册。" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:487 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:514 #, java-format msgid "Error creating a torrent for \"{0}\"" msgstr "创建种子时发生错误 \"{0}\"" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:490 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:517 #, java-format msgid "Cannot create a torrent for the nonexistent data: {0}" msgstr "无法为不存在的数据文件创建种子:{0}" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:493 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:520 msgid "Error creating torrent - you must enter a file or directory" msgstr "创建种子时发生错误 - 必须指定文件或文件夹" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:496 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:523 msgid "Stopping all torrents and closing the I2P tunnel." msgstr "正在停用所有种子并关闭I2P隧道。" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:505 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:532 msgid "I2P tunnel closed." msgstr "I2P隧道已关闭" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:508 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:535 msgid "Opening the I2P tunnel and starting all torrents." msgstr "正在打开I2P隧道并启动所有种子" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:628 -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:822 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:657 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:851 msgid "Unknown" msgstr "未知" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:631 -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:636 -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:641 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:660 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:665 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:670 msgid "TrackerErr" msgstr "Tracker错误" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:634 -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:637 -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:648 -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:651 -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:659 -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:662 -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:667 -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:670 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:663 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:666 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:677 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:680 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:688 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:691 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:696 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:699 #, java-format msgid "1 peer" msgid_plural "{0} peers" msgstr[0] "{0}个用户" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:645 -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:650 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:674 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:679 msgid "Seeding" msgstr "正做种" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:653 -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1281 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:682 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1327 msgid "Complete" msgstr "完成" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:656 -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:661 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:685 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:690 msgid "OK" msgstr "确定" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:664 -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:669 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:693 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:698 msgid "Stalled" msgstr "等待" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:672 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:701 msgid "No Peers" msgstr "没有用户" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:674 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:703 msgid "Stopped" msgstr "已停用" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:689 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:718 msgid "View files" msgstr "浏览文件" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:691 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:720 msgid "Open file" msgstr "打开文件" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:721 -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:933 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:750 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:967 msgid "Tracker" msgstr "Tracker服务器" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:722 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:751 msgid "Details" msgstr "详情" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:756 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:785 msgid "Stop the torrent" msgstr "停止种子" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:758 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:787 msgid "Stop" msgstr "停止" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:764 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:793 msgid "Start the torrent" msgstr "启动种子" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:766 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:795 msgid "Start" msgstr "启动" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:771 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:800 msgid "Remove the torrent from the active list, deleting the .torrent file" msgstr "取消下载任务并删除对应种子文件。" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:776 +#. Can't figure out how to escape double quotes inside the onclick string. +#. Single quotes in translate strings with parameters must be doubled. +#. Then the remaining single quite must be escaped +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:805 #, java-format msgid "Are you sure you want to delete the file \\''{0}.torrent\\'' (downloaded data will not be deleted) ?" msgstr "您确定要删除文件“{0}.torrent”(下载的数据文件不会被删除)?" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:778 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:807 msgid "Remove" msgstr "移除" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:782 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:811 msgid "Delete the .torrent file and the associated data file(s)" msgstr "删除种子及所下载的文件" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:787 +#. Can't figure out how to escape double quotes inside the onclick string. +#. Single quotes in translate strings with parameters must be doubled. +#. Then the remaining single quite must be escaped +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:816 #, java-format msgid "Are you sure you want to delete the torrent \\''{0}\\'' and all downloaded data?" msgstr "您确定要删除种子“{0}”(下载的数据文件会一并被删除)?" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:789 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:818 msgid "Delete" msgstr "删除" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:832 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:861 msgid "Seed" msgstr "种子" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:850 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:879 msgid "Uninteresting (The peer has no pieces we need)" msgstr "无需要部分" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:852 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:881 msgid "Choked (The peer is not allowing us to request pieces)" msgstr "拒绝请求" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:866 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:895 msgid "Uninterested (We have no pieces the peer needs)" msgstr "无需要部分" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:868 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:897 msgid "Choking (We are not allowing the peer to request pieces)" msgstr "拒绝请求" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:895 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:927 msgid "Add Torrent" msgstr "添加种子" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:897 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:929 msgid "From URL" msgstr "从URL" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:902 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:934 msgid "Add torrent" msgstr "添加种子" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:905 +#: ../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}." -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:907 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:939 msgid "Removing a .torrent file will cause the torrent to stop." msgstr "删除种子文件将导致中止该下载任务。" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:924 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:958 msgid "Create Torrent" msgstr "创建种子" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:927 +#. out.write("From file:
\n"); +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:961 msgid "Data to seed" msgstr "做种数据" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:931 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:965 msgid "File or directory to seed (must be within the specified path)" msgstr "做种文件或文件夹(必须下面为Snark指定的文件夹中)" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:935 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:969 msgid "Select a tracker" msgstr "选择一个Tracker" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:948 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:982 msgid "or" msgstr "或" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:951 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:985 msgid "Specify custom tracker announce URL" msgstr "指定Open Tracker发布链接" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:954 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:988 msgid "Create torrent" msgstr "创建种子" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:972 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1006 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1133 msgid "Configuration" msgstr "设置" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:975 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1009 msgid "Data directory" msgstr "数据文件夹" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:978 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1012 msgid "Directory to store torrents and data" msgstr "种子及被做种文件的保存位置。" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:980 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1014 msgid "Edit i2psnark.config and restart to change" msgstr "编辑 i2psnark.config 并重启Snark后生效" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:984 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1018 msgid "Auto start" msgstr "自动启动" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:988 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1022 msgid "If checked, automatically start torrents that are added" msgstr "选中后Snark将自动启动已添加的所有种子。" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1011 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1026 +msgid "Startup delay" +msgstr "启动延迟" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1028 +msgid "minutes" +msgstr "分" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1052 msgid "Total uploader limit" msgstr "限制总上传种子数为" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1014 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1055 msgid "peers" msgstr "用户" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1018 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1059 msgid "Up bandwidth limit" msgstr "上传带宽限制" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1021 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1062 msgid "Half available bandwidth recommended." msgstr "推荐设置为可用带宽的一半。" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1023 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1064 msgid "View or change router bandwidth" msgstr "浏览或修改路由器带宽" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1027 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1068 msgid "Use open trackers also" msgstr "同时使用OpenTracker" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1031 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1072 msgid "If checked, announce torrents to open trackers as well as the tracker listed in the torrent file" msgstr "选择后在OpenTracker及种子文件中的Tracker上同时发布。" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1035 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1076 msgid "Open tracker announce URLs" msgstr "Open Tracker发布链接" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1047 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1088 msgid "Inbound Settings" msgstr "入站设置" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1053 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1094 msgid "Outbound Settings" msgstr "出站设置" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1060 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1101 msgid "I2CP host" msgstr "I2CP主机" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1065 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1106 msgid "I2CP port" msgstr "I2CP端口" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1077 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1118 msgid "I2CP options" msgstr "I2CP选项" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1082 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1124 msgid "Save configuration" msgstr "保存设置" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1092 +#. * dummies for translation +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1141 #, java-format msgid "1 hop" msgid_plural "{0} hops" msgstr[0] "{0}跳" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1093 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1142 #, java-format msgid "1 tunnel" msgid_plural "{0} tunnels" msgstr[0] "{0}隧道" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1107 -#, java-format -msgid "1 " -msgid_plural "{0} " -msgstr[0] "" - -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1237 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1283 msgid "Up to higher level directory" msgstr "上一层文件夹" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1242 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1288 msgid "File" msgstr "文件" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1242 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1288 msgid "Size" msgstr "大小" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1265 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1311 msgid "Directory" msgstr "文件夹" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1270 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1316 msgid "Torrent not found?" msgstr "种子未找到" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1278 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1324 msgid "File not found in torrent?" msgstr "种子中没有发现文件?" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1284 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1330 msgid "complete" msgstr "完成" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1285 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1331 msgid "bytes remaining" msgstr "剩余字节数" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1408 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1456 #, java-format msgid "Torrent fetched from {0}" msgstr "从{0}获取种子成功" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1436 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1484 #, java-format msgid "Torrent at {0} was not valid" msgstr "{0}的种子中有错误" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1441 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1489 #, java-format msgid "Torrent was not retrieved from {0}" msgstr "从{0}获得种子失败" diff --git a/apps/i2ptunnel/locale/messages_zh.po b/apps/i2ptunnel/locale/messages_zh.po index 833b62fe9..0955d4e0c 100644 --- a/apps/i2ptunnel/locale/messages_zh.po +++ b/apps/i2ptunnel/locale/messages_zh.po @@ -1,677 +1,701 @@ -# I2P -# Copyright (C) 2009 The I2P Project -# This file is distributed under the same license as the i2ptunnel package. -# To contribute translations, see http://www.i2p2.de/newdevelopers -# foo , 2009. -# -msgid "" -msgstr "" -"Project-Id-Version: I2P i2ptunnel\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-05-29 02:35+0000\n" -"PO-Revision-Date: 2010-05-29 10:57+0800\n" -"Last-Translator: walking \n" -"Language-Team: foo \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Poedit-Language: Chinese\n" - -#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:493 -#, java-format -msgid "To visit the destination in your host database, click here. To visit the conflicting addresshelper destination, click here." -msgstr "域名冲突:要访问您本地【地址簿】中设置的目标主机(相当与IP),请点击这里。要访问【地址助手】返回的目标主机请点这里。" - -#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:904 -msgid "Click a link below to look for an address helper by using a \"jump\" service:" -msgstr "请点击下面的链接通过【跳转(Jump)】服务提供的【地址助手】链接跳转至域名对应的主机:" - -#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:369 -msgid "New Tunnel" -msgstr "新建隧道" - -#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:389 -msgid "Standard client" -msgstr "标准客户端" - -#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:390 -msgid "HTTP client" -msgstr "HTTP 客户端" - -#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:391 -msgid "IRC client" -msgstr "IRC 客户端" - -#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:392 -msgid "Standard server" -msgstr "标准服务器" - -#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:393 -msgid "HTTP server" -msgstr "HTTP 服务器" - -#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:394 -msgid "SOCKS 4/4a/5 proxy" -msgstr "SOCKS4/4A/5 代理" - -#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:395 -msgid "SOCKS IRC proxy" -msgstr "SOCKS IRC 代理" - -#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:396 -msgid "CONNECT/SSL/HTTPS proxy" -msgstr "CONNECT/SSL/HTTPS 代理" - -#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:397 -msgid "IRC server" -msgstr "IRC 服务器" - -#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:398 -msgid "Streamr client" -msgstr "Streamr 客户端" - -#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:399 -msgid "Streamr server" -msgstr "Streamr 服务器" - -#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:400 -msgid "HTTP bidir" -msgstr "双向http" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:73 -msgid "I2P Tunnel Manager - Edit Client Tunnel" -msgstr "I2P 隧道管理器 - 编辑客户端隧道" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:93 -msgid "Edit proxy settings" -msgstr "编辑代理设置" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:101 -msgid "New proxy settings" -msgstr "新建代理设置" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:112 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:112 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:107 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:121 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:242 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:257 -msgid "Name" -msgstr "名称" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:116 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:116 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:246 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:270 -msgid "Type" -msgstr "类型" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:120 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:120 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:226 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:358 -msgid "Description" -msgstr "描述" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:126 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:136 -msgid "Target" -msgstr "目标" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:130 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:132 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:167 -msgid "Access Point" -msgstr "接入点" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:137 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:179 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:207 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:157 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:172 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:228 -msgid "required" -msgstr "必要" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:150 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:142 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:183 -msgid "Reachable by" -msgstr "访问地址" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:162 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:195 -msgid "Locally (127.0.0.1)" -msgstr "本地(127.0.0.1)" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:166 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:199 -msgid "Everyone (0.0.0.0)" -msgstr "任何人(0.0.0.0)" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:170 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:203 -msgid "LAN Hosts (Please specify your LAN address)" -msgstr "局域网(请指定LAN地址)" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:186 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:205 -msgid "Other" -msgstr "其他" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:195 -msgid "Outproxies" -msgstr "出口代理" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:202 -msgid "Tunnel Destination" -msgstr "隧道目标" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:214 -msgid "name or destination" -msgstr "名称或描述" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:220 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:237 -msgid "Profile" -msgstr "连接类型" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:227 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:244 -msgid "interactive connection" -msgstr "速度连接" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:231 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:248 -msgid "bulk connection (downloads/websites/BT)" -msgstr "效率连接(下载/WEB/BT)" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:233 -msgid "Delay Connect" -msgstr "连接延迟断开" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:237 -msgid "for request/response connections" -msgstr "单请求/响应连接" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:239 -msgid "Shared Client" -msgstr "共享客户端" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:243 -msgid "(Share tunnels with other clients and irc/httpclients? Change requires restart of client proxy)" -msgstr "(与其他客户端例如IRC/HTTP共享隧道?修改需要重新启动)" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:247 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:124 -msgid "Auto Start" -msgstr "自动启动" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:251 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:128 -msgid "(Check the Box for 'YES')" -msgstr "(选中表示\"是\")" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:253 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:266 -msgid "Advanced networking options" -msgstr "高级网络设置" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:255 -msgid "(NOTE: when this client proxy is configured to share tunnels, then these options are for all the shared proxy clients!)" -msgstr "(注意:此客户代理被设置使用共享隧道时,这些设置将影响所有使用共享隧道的客户端!)" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:257 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:268 -msgid "Tunnel Options" -msgstr "隧道选项" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:259 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:270 -msgid "Length" -msgstr "长度" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:266 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:277 -msgid "0 hop tunnel (low anonymity, low latency)" -msgstr "直连(匿名性无,延迟低)" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:270 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:281 -msgid "1 hop tunnel (medium anonymity, medium latency)" -msgstr "隧道跳点x1(匿名性中,延迟中)" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:274 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:285 -msgid "2 hop tunnel (high anonymity, high latency)" -msgstr "隧道跳点x2(匿名性高,延迟高)" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:278 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:289 -msgid "3 hop tunnel (very high anonymity, poor performance)" -msgstr "隧道跳点x3(匿名性优,影响性能)" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:287 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:298 -msgid "hop tunnel (very poor performance)" -msgstr "跳点隧道(严重影响性能)" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:292 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:303 -msgid "Variance" -msgstr "随机变化" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:299 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:310 -msgid "0 hop variance (no randomisation, consistant performance)" -msgstr "隧道长度恒定(随机性无,性能稳定)" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:303 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:314 -msgid "+ 0-1 hop variance (medium additive randomisation, subtractive performance)" -msgstr "隧道长度+ 0-1(随机性中,影响性能)" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:307 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:318 -msgid "+ 0-2 hop variance (high additive randomisation, subtractive performance)" -msgstr "隧道长度+ 0-2(随机性高,影响性能)" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:311 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:322 -msgid "+/- 0-1 hop variance (standard randomisation, standard performance)" -msgstr "隧道长度+/- 0-1(随机性标准,正常性能)" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:315 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:326 -msgid "+/- 0-2 hop variance (not recommended)" -msgstr "隧道程度+/- 0-2(不推荐)" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:327 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:338 -msgid "hop variance" -msgstr "节点数量" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:332 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:343 -msgid "Count" -msgstr "计数" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:339 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:350 -msgid "1 inbound, 1 outbound tunnel (low bandwidth usage, less reliability)" -msgstr "出/入站隧道x1(带宽低,低可靠性)" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:343 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:354 -msgid "2 inbound, 2 outbound tunnels (standard bandwidth usage, standard reliability)" -msgstr "出/入站隧道x2(带宽标准,标准稳定性)" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:347 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:358 -msgid "3 inbound, 3 outbound tunnels (higher bandwidth usage, higher reliability)" -msgstr "出/入站隧道x3(带宽高,高稳定性)" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:356 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:367 -msgid "tunnels" -msgstr "隧道" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:361 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:372 -msgid "Backup Count" -msgstr "备用数量" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:368 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:379 -msgid "0 backup tunnels (0 redundancy, no added resource usage)" -msgstr "无备用隧道(无冗余,不增加资源占用)" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:372 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:383 -msgid "1 backup tunnel each direction (low redundancy, low resource usage)" -msgstr "备用隧道对x1 (低冗余,低资源占用)" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:376 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:387 -msgid "2 backup tunnels each direction (medium redundancy, medium resource usage)" -msgstr "备用隧道对x2 (中冗余,中资源占用)" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:380 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:391 -msgid "3 backup tunnels each direction (high redundancy, high resource usage)" -msgstr "备用隧道对x3 (高冗余,高资源占用)" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:389 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:400 -msgid "backup tunnels" -msgstr "备用隧道" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:394 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:405 -msgid "I2CP Options" -msgstr "I2CP选项" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:396 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:146 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:407 -msgid "Host" -msgstr "主机" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:400 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:152 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:411 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:244 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:266 -msgid "Port" -msgstr "端口" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:406 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:443 -msgid "Reduce tunnel quantity when idle" -msgstr "空闲时缩减隧道数量" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:408 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:422 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:430 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:442 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:452 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:417 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:433 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:445 -msgid "Enable" -msgstr "启用" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:412 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:449 -msgid "Reduced tunnel count" -msgstr "削减后的隧道数量" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:416 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:436 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:453 -msgid "Idle minutes" -msgstr "空闲时间(分钟)" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:420 -msgid "Close tunnels when idle" -msgstr "空闲时关闭隧道" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:426 -msgid "New Keys on Reopen" -msgstr "重新打开隧道时使用新密钥" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:434 -msgid "Disable" -msgstr "禁用" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:440 -msgid "Delay tunnel open until required" -msgstr "仅在请求时打开" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:450 -msgid "Persistent private key" -msgstr "永久私有密钥" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:456 -msgid "File" -msgstr "文件" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:460 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:252 -msgid "Local destination" -msgstr "本地目标" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:464 -msgid "(if known)" -msgstr "(如果已知)" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:468 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:489 -msgid "Custom options" -msgstr "自定义选项" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:472 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:493 -msgid "NOTE: If tunnel is currently running, most changes will not take effect until tunnel is stopped and restarted." -msgstr "注意:如果当前隧道已经启动,设置需要【停止】并重新【启动】相应隧道后才能生效。" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:474 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:495 -msgid "Cancel" -msgstr "取消" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:478 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:499 -msgid "Delete" -msgstr "删除" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:480 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:501 -msgid "Save" -msgstr "保存" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:73 -msgid "I2P Tunnel Manager - Edit Server Tunnel" -msgstr "I2P隧道管理器 - 编辑服务器隧道" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:93 -msgid "Edit server settings" -msgstr "服务器隧道设置" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:101 -msgid "New server settings" -msgstr "新建服务器设置" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:214 -msgid "Website name" -msgstr "网站名称" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:218 -msgid "(leave blank for outproxies)" -msgstr "(出口代理这里请置空)" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:223 -msgid "Private key file" -msgstr "私钥文件" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:262 -msgid "Add to local addressbook" -msgstr "添加至本地地址簿" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:415 -msgid "Encrypt Leaseset" -msgstr "加密赁集" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:421 -msgid "Encryption Key" -msgstr "加密密钥" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:425 -msgid "Generate New Key" -msgstr "生成新密钥" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:427 -msgid "Generate" -msgstr "生成" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:429 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:487 -msgid "(Tunnel must be stopped first)" -msgstr "(必须先停止隧道)" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:431 -msgid "Restricted Access List" -msgstr "限制访问列表" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:437 -msgid "Access List" -msgstr "访问列表" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:441 -msgid "(Restrict to these clients only)" -msgstr "(仅允许这些客户访问)" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:457 -msgid "New Certificate type" -msgstr "新建证书类型" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:459 -msgid "None" -msgstr "无" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:463 -msgid "Hashcash (effort)" -msgstr "Hashcash (强度)" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:469 -msgid "Hashcash Calc Time" -msgstr "Hashcash 计算时间" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:471 -msgid "Estimate" -msgstr "估算" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:473 -msgid "Hidden" -msgstr "隐藏" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:477 -msgid "Signed (signed by)" -msgstr "签名(签名者)" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:483 -msgid "Modify Certificate" -msgstr "修改证书" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:485 -msgid "Modify" -msgstr "修改" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:71 -msgid "I2P Tunnel Manager - List" -msgstr "I2P隧道管理器 - 列表" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:83 -msgid "Status Messages" -msgstr "状态信息" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:87 -msgid "Refresh" -msgstr "刷新" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:91 -msgid "Stop All" -msgstr "全部停止" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:95 -msgid "Start All" -msgstr "全部启动" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:99 -msgid "Restart All" -msgstr "全部重启" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:103 -msgid "Reload Config" -msgstr "重新载入设置" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:105 -msgid "I2P Server Tunnels" -msgstr "I2P服务端隧道" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:109 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:130 -msgid "Points at" -msgstr "指向" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:111 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:153 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:157 -msgid "Preview" -msgstr "预览" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:113 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:177 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:250 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:278 -msgid "Status" -msgstr "状态" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:163 -msgid "Base32 Address" -msgstr "Base32地址" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:171 -msgid "No Preview" -msgstr "无预览" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:184 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:285 -msgid "Starting..." -msgstr "正在启动..." - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:191 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:205 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:292 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:306 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:320 -msgid "Stop" -msgstr "停止" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:198 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:313 -msgid "Running" -msgstr "运行中" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:212 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:327 -msgid "Stopped" -msgstr "已停止" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:219 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:334 -msgid "Start" -msgstr "启动" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:234 -msgid "New server tunnel" -msgstr "新建服务器隧道" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:236 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:368 -msgid "Standard" -msgstr "标准" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:238 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:370 -msgid "Create" -msgstr "创建" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:240 -msgid "I2P Client Tunnels" -msgstr "I2P客户端隧道" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:248 -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:274 -msgid "Interface" -msgstr "网络接口" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:299 -msgid "Standby" -msgstr "等待" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:346 -msgid "Outproxy" -msgstr "出口代理" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:350 -msgid "Destination" -msgstr "目标" - -#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:366 -msgid "New client tunnel" -msgstr "新建客户隧道" - -#~ msgid "Unimplemented" -#~ msgstr "尚未实现" - +# I2P +# Copyright (C) 2009 The I2P Project +# This file is distributed under the same license as the i2ptunnel package. +# To contribute translations, see http://www.i2p2.de/newdevelopers +# foo , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: I2P i2ptunnel\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-07-01 04:52+0000\n" +"PO-Revision-Date: 2010-05-29 10:57+0800\n" +"Last-Translator: walking \n" +"Language-Team: foo \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: Chinese\n" + +#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:493 +#, java-format +msgid "" +"To visit the destination in your host database, click here. To visit the conflicting addresshelper destination, click here." +msgstr "" +"域名冲突:要访问您本地【地址簿】中设置的目标主机(相当与IP),请点击这里。要访问【地址助手】返回的目标主机请点这里。" + +#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:909 +msgid "" +"Click a link below to look for an address helper by using a \"jump\" service:" +msgstr "" +"请点击下面的链接通过【跳转(Jump)】服务提供的【地址助手】链接跳转至域名对应的" +"主机:" + +#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:369 +msgid "New Tunnel" +msgstr "新建隧道" + +#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:389 +msgid "Standard client" +msgstr "标准客户端" + +#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:390 +msgid "HTTP client" +msgstr "HTTP 客户端" + +#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:391 +msgid "IRC client" +msgstr "IRC 客户端" + +#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:392 +msgid "Standard server" +msgstr "标准服务器" + +#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:393 +msgid "HTTP server" +msgstr "HTTP 服务器" + +#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:394 +msgid "SOCKS 4/4a/5 proxy" +msgstr "SOCKS4/4A/5 代理" + +#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:395 +msgid "SOCKS IRC proxy" +msgstr "SOCKS IRC 代理" + +#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:396 +msgid "CONNECT/SSL/HTTPS proxy" +msgstr "CONNECT/SSL/HTTPS 代理" + +#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:397 +msgid "IRC server" +msgstr "IRC 服务器" + +#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:398 +msgid "Streamr client" +msgstr "Streamr 客户端" + +#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:399 +msgid "Streamr server" +msgstr "Streamr 服务器" + +#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:400 +msgid "HTTP bidir" +msgstr "双向http" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:73 +msgid "I2P Tunnel Manager - Edit Client Tunnel" +msgstr "I2P 隧道管理器 - 编辑客户端隧道" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:93 +msgid "Edit proxy settings" +msgstr "编辑代理设置" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:101 +msgid "New proxy settings" +msgstr "新建代理设置" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:112 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:112 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:107 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:121 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:242 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:257 +msgid "Name" +msgstr "名称" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:116 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:116 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:246 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:270 +msgid "Type" +msgstr "类型" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:120 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:120 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:226 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:358 +msgid "Description" +msgstr "描述" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:126 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:136 +msgid "Target" +msgstr "目标" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:130 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:132 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:167 +msgid "Access Point" +msgstr "接入点" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:137 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:179 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:207 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:157 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:172 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:228 +msgid "required" +msgstr "必要" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:150 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:142 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:183 +msgid "Reachable by" +msgstr "访问地址" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:162 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:195 +msgid "Locally (127.0.0.1)" +msgstr "本地(127.0.0.1)" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:166 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:199 +msgid "Everyone (0.0.0.0)" +msgstr "任何人(0.0.0.0)" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:170 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:203 +msgid "LAN Hosts (Please specify your LAN address)" +msgstr "局域网(请指定LAN地址)" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:186 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:205 +msgid "Other" +msgstr "其他" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:195 +msgid "Outproxies" +msgstr "出口代理" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:202 +msgid "Tunnel Destination" +msgstr "隧道目标" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:214 +msgid "name or destination" +msgstr "名称或描述" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:220 +msgid "Shared Client" +msgstr "共享客户端" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:224 +msgid "" +"(Share tunnels with other clients and irc/httpclients? Change requires " +"restart of client proxy)" +msgstr "(与其他客户端例如IRC/HTTP共享隧道?修改需要重新启动)" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:228 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:124 +msgid "Auto Start" +msgstr "自动启动" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:232 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:128 +msgid "(Check the Box for 'YES')" +msgstr "(选中表示\"是\")" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:234 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:249 +msgid "Advanced networking options" +msgstr "高级网络设置" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:236 +msgid "" +"(NOTE: when this client proxy is configured to share tunnels, then these " +"options are for all the shared proxy clients!)" +msgstr "" +"(注意:此客户代理被设置使用共享隧道时,这些设置将影响所有使用共享隧道的客户" +"端!)" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:238 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:251 +msgid "Tunnel Options" +msgstr "隧道选项" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:240 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:253 +msgid "Length" +msgstr "长度" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:247 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:260 +msgid "0 hop tunnel (low anonymity, low latency)" +msgstr "直连(匿名性无,延迟低)" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:251 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:264 +msgid "1 hop tunnel (medium anonymity, medium latency)" +msgstr "隧道跳点x1(匿名性中,延迟中)" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:255 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:268 +msgid "2 hop tunnel (high anonymity, high latency)" +msgstr "隧道跳点x2(匿名性高,延迟高)" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:259 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:272 +msgid "3 hop tunnel (very high anonymity, poor performance)" +msgstr "隧道跳点x3(匿名性优,影响性能)" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:268 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:281 +msgid "hop tunnel (very poor performance)" +msgstr "跳点隧道(严重影响性能)" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:273 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:286 +msgid "Variance" +msgstr "随机变化" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:280 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:293 +msgid "0 hop variance (no randomisation, consistant performance)" +msgstr "隧道长度恒定(随机性无,性能稳定)" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:284 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:297 +msgid "" +"+ 0-1 hop variance (medium additive randomisation, subtractive performance)" +msgstr "隧道长度+ 0-1(随机性中,影响性能)" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:288 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:301 +msgid "" +"+ 0-2 hop variance (high additive randomisation, subtractive performance)" +msgstr "隧道长度+ 0-2(随机性高,影响性能)" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:292 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:305 +msgid "+/- 0-1 hop variance (standard randomisation, standard performance)" +msgstr "隧道长度+/- 0-1(随机性标准,正常性能)" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:296 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:309 +msgid "+/- 0-2 hop variance (not recommended)" +msgstr "隧道程度+/- 0-2(不推荐)" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:308 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:321 +msgid "hop variance" +msgstr "节点数量" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:313 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:326 +msgid "Count" +msgstr "计数" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:320 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:333 +msgid "1 inbound, 1 outbound tunnel (low bandwidth usage, less reliability)" +msgstr "出/入站隧道x1(带宽低,低可靠性)" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:324 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:337 +msgid "" +"2 inbound, 2 outbound tunnels (standard bandwidth usage, standard " +"reliability)" +msgstr "出/入站隧道x2(带宽标准,标准稳定性)" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:328 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:341 +msgid "" +"3 inbound, 3 outbound tunnels (higher bandwidth usage, higher reliability)" +msgstr "出/入站隧道x3(带宽高,高稳定性)" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:337 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:350 +msgid "tunnels" +msgstr "隧道" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:342 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:355 +msgid "Backup Count" +msgstr "备用数量" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:349 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:362 +msgid "0 backup tunnels (0 redundancy, no added resource usage)" +msgstr "无备用隧道(无冗余,不增加资源占用)" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:353 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:366 +msgid "1 backup tunnel each direction (low redundancy, low resource usage)" +msgstr "备用隧道对x1 (低冗余,低资源占用)" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:357 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:370 +msgid "" +"2 backup tunnels each direction (medium redundancy, medium resource usage)" +msgstr "备用隧道对x2 (中冗余,中资源占用)" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:361 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:374 +msgid "3 backup tunnels each direction (high redundancy, high resource usage)" +msgstr "备用隧道对x3 (高冗余,高资源占用)" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:370 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:383 +msgid "backup tunnels" +msgstr "备用隧道" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:377 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:390 +msgid "Profile" +msgstr "连接类型" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:384 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:397 +msgid "interactive connection" +msgstr "速度连接" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:388 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:401 +msgid "bulk connection (downloads/websites/BT)" +msgstr "效率连接(下载/WEB/BT)" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:390 +msgid "Delay Connect" +msgstr "连接延迟断开" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:394 +msgid "for request/response connections" +msgstr "单请求/响应连接" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:398 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:405 +msgid "I2CP Options" +msgstr "I2CP选项" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:400 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:146 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:407 +msgid "Host" +msgstr "主机" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:404 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:152 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:411 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:244 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:266 +msgid "Port" +msgstr "端口" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:410 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:443 +msgid "Reduce tunnel quantity when idle" +msgstr "空闲时缩减隧道数量" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:412 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:426 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:434 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:446 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:456 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:417 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:433 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:445 +msgid "Enable" +msgstr "启用" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:416 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:449 +msgid "Reduced tunnel count" +msgstr "削减后的隧道数量" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:420 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:440 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:453 +msgid "Idle minutes" +msgstr "空闲时间(分钟)" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:424 +msgid "Close tunnels when idle" +msgstr "空闲时关闭隧道" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:430 +msgid "New Keys on Reopen" +msgstr "重新打开隧道时使用新密钥" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:438 +msgid "Disable" +msgstr "禁用" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:444 +msgid "Delay tunnel open until required" +msgstr "仅在请求时打开" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:454 +msgid "Persistent private key" +msgstr "永久私有密钥" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:460 +msgid "File" +msgstr "文件" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:464 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:235 +msgid "Local destination" +msgstr "本地目标" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:468 +msgid "(if known)" +msgstr "(如果已知)" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:472 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:489 +msgid "Custom options" +msgstr "自定义选项" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:476 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:493 +msgid "" +"NOTE: If tunnel is currently running, most changes will not take effect " +"until tunnel is stopped and restarted." +msgstr "" +"注意:如果当前隧道已经启动,设置需要【停止】并重新【启动】相应隧道后才能生" +"效。" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:478 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:495 +msgid "Cancel" +msgstr "取消" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:482 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:499 +msgid "Delete" +msgstr "删除" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:484 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:501 +msgid "Save" +msgstr "保存" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:73 +msgid "I2P Tunnel Manager - Edit Server Tunnel" +msgstr "I2P隧道管理器 - 编辑服务器隧道" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:93 +msgid "Edit server settings" +msgstr "服务器隧道设置" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:101 +msgid "New server settings" +msgstr "新建服务器设置" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:214 +msgid "Website name" +msgstr "网站名称" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:218 +msgid "(leave blank for outproxies)" +msgstr "(出口代理这里请置空)" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:223 +msgid "Private key file" +msgstr "私钥文件" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:245 +msgid "Add to local addressbook" +msgstr "添加至本地地址簿" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:415 +msgid "Encrypt Leaseset" +msgstr "加密赁集" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:421 +msgid "Encryption Key" +msgstr "加密密钥" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:425 +msgid "Generate New Key" +msgstr "生成新密钥" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:427 +msgid "Generate" +msgstr "生成" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:429 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:487 +msgid "(Tunnel must be stopped first)" +msgstr "(必须先停止隧道)" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:431 +msgid "Restricted Access List" +msgstr "限制访问列表" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:437 +msgid "Access List" +msgstr "访问列表" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:441 +msgid "(Restrict to these clients only)" +msgstr "(仅允许这些客户访问)" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:457 +msgid "New Certificate type" +msgstr "新建证书类型" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:459 +msgid "None" +msgstr "无" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:463 +msgid "Hashcash (effort)" +msgstr "Hashcash (强度)" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:469 +msgid "Hashcash Calc Time" +msgstr "Hashcash 计算时间" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:471 +msgid "Estimate" +msgstr "估算" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:473 +msgid "Hidden" +msgstr "隐藏" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:477 +msgid "Signed (signed by)" +msgstr "签名(签名者)" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:483 +msgid "Modify Certificate" +msgstr "修改证书" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:485 +msgid "Modify" +msgstr "修改" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:71 +msgid "I2P Tunnel Manager - List" +msgstr "I2P隧道管理器 - 列表" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:83 +msgid "Status Messages" +msgstr "状态信息" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:87 +msgid "Refresh" +msgstr "刷新" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:91 +msgid "Stop All" +msgstr "全部停止" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:95 +msgid "Start All" +msgstr "全部启动" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:99 +msgid "Restart All" +msgstr "全部重启" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:103 +msgid "Reload Config" +msgstr "重新载入设置" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:105 +msgid "I2P Server Tunnels" +msgstr "I2P服务端隧道" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:109 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:130 +msgid "Points at" +msgstr "指向" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:111 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:153 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:157 +msgid "Preview" +msgstr "预览" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:113 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:177 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:250 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:278 +msgid "Status" +msgstr "状态" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:163 +msgid "Base32 Address" +msgstr "Base32地址" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:171 +msgid "No Preview" +msgstr "无预览" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:184 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:285 +msgid "Starting..." +msgstr "正在启动..." + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:191 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:205 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:292 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:306 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:320 +msgid "Stop" +msgstr "停止" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:198 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:313 +msgid "Running" +msgstr "运行中" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:212 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:327 +msgid "Stopped" +msgstr "已停止" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:219 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:334 +msgid "Start" +msgstr "启动" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:234 +msgid "New server tunnel" +msgstr "新建服务器隧道" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:236 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:368 +msgid "Standard" +msgstr "标准" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:238 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:370 +msgid "Create" +msgstr "创建" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:240 +msgid "I2P Client Tunnels" +msgstr "I2P客户端隧道" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:248 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:274 +msgid "Interface" +msgstr "网络接口" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:299 +msgid "Standby" +msgstr "等待" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:346 +msgid "Outproxy" +msgstr "出口代理" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:350 +msgid "Destination" +msgstr "目标" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:366 +msgid "New client tunnel" +msgstr "新建客户隧道" + +#~ msgid "Unimplemented" +#~ msgstr "尚未实现" diff --git a/apps/routerconsole/locale/messages_zh.po b/apps/routerconsole/locale/messages_zh.po index d3c68fd8e..ad0d9dc7c 100644 --- a/apps/routerconsole/locale/messages_zh.po +++ b/apps/routerconsole/locale/messages_zh.po @@ -3147,7 +3147,7 @@ msgstr "设置路由的带宽分配" #: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:326 msgid "Bandwidth in/out" -msgstr "带宽(上/下行)" +msgstr "带宽(进/出站)" #: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:343 msgid "Total" From 115016e75ee903eaccecece63b096fe0ad5fd352 Mon Sep 17 00:00:00 2001 From: zzz Date: Thu, 1 Jul 2010 12:36:09 +0000 Subject: [PATCH 06/75] add trac.i2p2.i2p (linked from logs.jsp) --- installer/resources/hosts.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/installer/resources/hosts.txt b/installer/resources/hosts.txt index 80e52bb7a..8be2459a5 100644 --- a/installer/resources/hosts.txt +++ b/installer/resources/hosts.txt @@ -320,3 +320,4 @@ sponge.i2p=VG4Bd~q1RA3BdoF3z5fSR7p0xe1CTVgDMWVGyFchA9Wm2iXUkIR35G45XE31Uc9~IOt-k docs.i2p2.i2p=BhSHFwXW7zGTLRVTRuTfgxWC1PxKGDyY2OYpS0IrDnYhQklWVFxHz4xVpw8UXo8LTFXAnAjknrcYdLt6DfHcO-ZkFPo5UbOIfywSsHoet4J6BQ1MOt1MLTAejks4Rkj3~sfK2fJHHvHYTjm1v5~f8c13ZH5fPfQ3A71RRCyiYaeO5-VxC6rqvW~z0dNO~-jakjwD7tHtzQL2vQTqarYT859yUiHmLJ~yw5jXfxNBhlxIxaXg0Nat9S5N2W4Eqemy-UYtSGOM4IUGKoM902JxhVpz~O1~iB5H211E3x-o8dKTt9Yz2G5Qcp1kRB0NCO2Noivsxjnfv~64zoUVbPepyJFQKenRtX844HgOESNcUp~FoVzI~QJne5irJDMLK1dNsua3L1kz0MA-2Aev8byWe4TIXeZCuDpYi4bRK6OPKDETwJG8edw7CFtsQaFI-2wGMFu8GDH7pUL8~1qyDjjFv5c~q1MFhty9q8LRUGHHgWP47u9n8OX4zcS4P1~5z2M3AAAA paste.i2p2.i2p=PbHXL5PXan7siJiFcUAV~VC0JCLxgnoOnZFjyvJ0dbYlQ3fi1K6SD961pjQ51OSeTnbe5iGRzbY2X0~pG4k~hexau4NizxprAdgdiC-4J3-xpVRjZ4IxuMoDXp-V8Nhv8pLCQcxiEXbWft2v7zLvkp2y6uqH7kab8FXL~z568rMMH0DDs8imwAawasyGtLLo77X8n-C0K~7orcWDVZicWABJ-zky1Zlllx~Y~S8RHWyN4dueP6wkH484b81xNbbt3P-HzE3TcKAvUcSV1Bq4J5UNafQYU7DhV7roUtw4HuJYoxiXnlXVeC-uTCGF~bPrjrB-~Yn0KyObmXs5yvAcKHIS2tgmlsP9nahyn1ZOrlZc0L3DEsv4rkfQyzHVBxcCzMUOchWehE09GLy3bviWZ43lB7kU8kRaja7G4xLrD-CXNXq6q7WNYXrqX7EmtsvCo8VDcFn2ODyLb3eyDe~CkO7ES7mv3u8jJxJRQEcjj71pvu7bMzSMh-xN08X6vx9AAAAA outproxy.h2ik.i2p=Wa-LfCQjQBcJVItWynp6NWNnjbCDNAD9HJl2v6koEq3B3nGfID7Xxbyq17h9mY-dTQRmScduOhdlqjuZwpFOoGBDV3cS9n5F2GnV~ih1FxiRJUrPXD1CNJMTUN9FAv49Wpup0a~HW2u2kvdWQfuw3N1dlpEUxUh6BE2v~ssewSno~6QOl-Bi0FM1qaWig8ct0-JRuG8vxtcNcQBzIHvC~kxwh6e70c6-tRdfYUcqbkEPcd2GKuHlYhHbOOPQIwntuFAZ17FWrGUSNmxrGFb-z5tjhHb1pD2BTjYlRG5NYKGWKqUee1kWpzxB-3O2frbBvMvM-r6lQLaGx1juAk3vypkJs4644vBrvvkDunJdIaFjzdaK9DdIzOTGxOVzPcVMw9AhAmj-nlE-wMsKAowP-DYATk2-SjMEAIXG~oz3Piz0tW1bfBCILgoOkxwsm39noQ8gBjIxQckfeMXYsVLOCiDmsfwJzjXwT1vzKDrErL9f0TM2jqyjdBlEeFQdo0SSAAAA +trac.i2p2.i2p=24SmhWiRDm-GzpV5Gq2sXhuvPpa1OihY7rkxQO4aHy5qKjr6zmEnZ3xQXdkFJJ0Z1lKy73XRmgCyys02G25Hl3cuxlZ2fNbp6KhOzlRKpOIAWFdSWZNF4Fp7sos0x-a-9fxOWnwwQ9MFcRYwixE~iCZf4JG~-Pd-MHgAuDhIX0P3~GmfUvo~9xPjof1ZsnaOV1zC0XUkHxZA5D6V0Bse~Ptfb66lPNcgBxIEntCStBAy~rTjaA3SdAufG29IRWDscpFq1-D4XPaXHnlXu7n7WdpFEM8WWd3ebUMqnq8XvLL1eqoWYzKCe3aaavC3W6~pJp8cxKl2IKrhvSFatHZ0chRg3B4~ja1Cxmw1psisplSkJqMnF921E6pury0i6GH52XAVoj4iiDY~EAvqDhzG-ThwlzTs~2JKzslwxOrD2ejd-dcKdi4i9xvi2JQ4Ib2Mw2ktaQhuAw3Y9EkqAs7oriQQN8N8dwIoYkJLfvh7ousm0iKJJvMt3s55PccM46SoAAAA From 63ece7e1aa821b81cd97a44c705800037b2b9082 Mon Sep 17 00:00:00 2001 From: zzz Date: Sat, 3 Jul 2010 13:37:52 +0000 Subject: [PATCH 07/75] cleanup --- core/java/src/net/i2p/data/DataHelper.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/java/src/net/i2p/data/DataHelper.java b/core/java/src/net/i2p/data/DataHelper.java index 07997fd10..3c83d6527 100644 --- a/core/java/src/net/i2p/data/DataHelper.java +++ b/core/java/src/net/i2p/data/DataHelper.java @@ -829,14 +829,14 @@ public class DataHelper { */ public static int hashCode(byte b[]) { // Java 5 now has its own method, and the old way - // is horrible for arrays smaller than 32. + // was horrible for arrays much smaller than 32. // otoh, for sizes >> 32, java's method may be too slow int rv = 0; if (b != null) { if (b.length <= 32) { rv = Arrays.hashCode(b); } else { - for (int i = 0; i < b.length && i < 32; i++) + for (int i = 0; i < 32; i++) rv ^= (b[i] << i); // xor better than + in tests } } From 4fa89d5e86ce9c36e5ce3939918b41585414e069 Mon Sep 17 00:00:00 2001 From: zzz Date: Sat, 3 Jul 2010 13:38:13 +0000 Subject: [PATCH 08/75] javadoc --- apps/i2ptunnel/java/src/net/i2p/i2ptunnel/web/EditBean.java | 4 ++++ apps/i2ptunnel/java/src/net/i2p/i2ptunnel/web/IndexBean.java | 3 +++ 2 files changed, 7 insertions(+) diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/web/EditBean.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/web/EditBean.java index e6db8ae3d..38bc8b4db 100644 --- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/web/EditBean.java +++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/web/EditBean.java @@ -18,6 +18,10 @@ import net.i2p.i2ptunnel.TunnelControllerGroup; /** * Ugly little accessor for the edit page + * + * Warning - This class is not part of the i2ptunnel API, and at some point + * it will be moved from the jar to the war. + * Usage by classes outside of i2ptunnel.war is deprecated. */ public class EditBean extends IndexBean { public EditBean() { super(); } diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/web/IndexBean.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/web/IndexBean.java index b09452734..2a77b9be8 100644 --- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/web/IndexBean.java +++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/web/IndexBean.java @@ -31,6 +31,9 @@ import net.i2p.util.Log; /** * Simple accessor for exposing tunnel info, but also an ugly form handler * + * Warning - This class is not part of the i2ptunnel API, and at some point + * it will be moved from the jar to the war. + * Usage by classes outside of i2ptunnel.war is deprecated. */ public class IndexBean { protected I2PAppContext _context; From b9452546c5e604cc360c8ce243453722f164c8f1 Mon Sep 17 00:00:00 2001 From: zzz Date: Sat, 3 Jul 2010 13:39:25 +0000 Subject: [PATCH 09/75] fix ant distclean poupdate --- apps/i2psnark/java/build.xml | 2 +- apps/i2ptunnel/java/build.xml | 12 +++++++----- build.xml | 2 +- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/apps/i2psnark/java/build.xml b/apps/i2psnark/java/build.xml index d3b653d59..4d7fbbe94 100644 --- a/apps/i2psnark/java/build.xml +++ b/apps/i2psnark/java/build.xml @@ -73,7 +73,7 @@ - + diff --git a/apps/i2ptunnel/java/build.xml b/apps/i2ptunnel/java/build.xml index 9647fa8d1..7b66b6882 100644 --- a/apps/i2ptunnel/java/build.xml +++ b/apps/i2ptunnel/java/build.xml @@ -1,7 +1,7 @@ - + @@ -34,6 +34,10 @@ + + @@ -41,8 +45,6 @@ - - @@ -77,13 +79,13 @@ - + - + diff --git a/build.xml b/build.xml index 615608737..b9b532831 100644 --- a/build.xml +++ b/build.xml @@ -65,7 +65,7 @@ - + From cd7a41924dbbf0d5b3ce198d0d422f91cf1a78d8 Mon Sep 17 00:00:00 2001 From: zzz Date: Sat, 3 Jul 2010 13:40:27 +0000 Subject: [PATCH 10/75] cleanup --- .../java/src/net/i2p/i2ptunnel/TunnelController.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/TunnelController.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/TunnelController.java index fa0564be8..dc6ded46e 100644 --- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/TunnelController.java +++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/TunnelController.java @@ -448,9 +448,9 @@ public class TunnelController implements Logging { public boolean getPersistentClientKey() { return Boolean.valueOf(_config.getProperty("option.persistentClientKey")).booleanValue(); } public String getMyDestination() { if (_tunnel != null) { - List sessions = _tunnel.getSessions(); + List sessions = _tunnel.getSessions(); for (int i = 0; i < sessions.size(); i++) { - I2PSession session = (I2PSession)sessions.get(i); + I2PSession session = sessions.get(i); Destination dest = session.getMyDestination(); if (dest != null) return dest.toBase64(); @@ -461,9 +461,9 @@ public class TunnelController implements Logging { public String getMyDestHashBase32() { if (_tunnel != null) { - List sessions = _tunnel.getSessions(); + List sessions = _tunnel.getSessions(); for (int i = 0; i < sessions.size(); i++) { - I2PSession session = (I2PSession)sessions.get(i); + I2PSession session = sessions.get(i); Destination dest = session.getMyDestination(); if (dest != null) return Base32.encode(dest.calculateHash().getData()); @@ -565,9 +565,9 @@ public class TunnelController implements Logging { if ( (opts != null) && (opts.length() > 0) ) buf.append("Network options: ").append(opts).append("
\n"); if (_running) { - List sessions = _tunnel.getSessions(); + List sessions = _tunnel.getSessions(); for (int i = 0; i < sessions.size(); i++) { - I2PSession session = (I2PSession)sessions.get(i); + I2PSession session = sessions.get(i); Destination dest = session.getMyDestination(); if (dest != null) { buf.append("Destination hash: ").append(dest.calculateHash().toBase64()).append("
\n"); From 6435514e0dccec40fe70735bbe141545e20997a2 Mon Sep 17 00:00:00 2001 From: zzz Date: Sat, 3 Jul 2010 13:41:24 +0000 Subject: [PATCH 11/75] * I2PTunnelHTTPClient: Don't use BufferedReader --- .../src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java | 10 +++++----- .../java/src/net/i2p/i2ptunnel/I2PTunnelIRCClient.java | 2 ++ 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java index 62450a755..cfcfaca01 100644 --- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java +++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java @@ -33,7 +33,6 @@ import net.i2p.data.Destination; import net.i2p.util.EventDispatcher; import net.i2p.util.FileUtil; import net.i2p.util.Log; - import net.i2p.util.Translate; /** @@ -772,11 +771,12 @@ public class I2PTunnelHTTPClient extends I2PTunnelClientBase implements Runnable _s = s; } String readLine(String method) throws IOException { - if (method == null || "POST".equals(method)) + // Use unbuffered until we can find a BufferedReader that limits line length + //if (method == null || "POST".equals(method)) return DataHelper.readLine(_s); - if (_br == null) - _br = new BufferedReader(new InputStreamReader(_s, "ISO-8859-1")); - return _br.readLine(); + //if (_br == null) + // _br = new BufferedReader(new InputStreamReader(_s, "ISO-8859-1")); + //return _br.readLine(); } } diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelIRCClient.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelIRCClient.java index 2892d71b7..a1cd1256e 100644 --- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelIRCClient.java +++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelIRCClient.java @@ -144,6 +144,7 @@ public class I2PTunnelIRCClient extends I2PTunnelClientBase implements Runnable } public void run() { + // Todo: Don't use BufferedReader - IRC spec limits line length to 512 but... BufferedReader in; OutputStream output; try { @@ -218,6 +219,7 @@ public class I2PTunnelIRCClient extends I2PTunnelClientBase implements Runnable } public void run() { + // Todo: Don't use BufferedReader - IRC spec limits line length to 512 but... BufferedReader in; OutputStream output; try { From 2a96c9a145ddada5b5186e3d48c233f6d609a3be Mon Sep 17 00:00:00 2001 From: zzz Date: Sat, 3 Jul 2010 13:58:59 +0000 Subject: [PATCH 12/75] static --- .../src/net/i2p/i2ptunnel/I2PTunnelHTTPServer.java | 13 ++++++++----- .../src/net/i2p/i2ptunnel/I2PTunnelIRCServer.java | 2 +- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPServer.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPServer.java index 418dd1de9..728d3537c 100644 --- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPServer.java +++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPServer.java @@ -151,7 +151,7 @@ public class I2PTunnelHTTPServer extends I2PTunnelServer { _log.warn("Took a while to handle the request [" + timeToHandle + ", socket create: " + (afterSocket-afterAccept) + "]"); } - private class CompressedRequestor implements Runnable { + private static class CompressedRequestor implements Runnable { private Socket _webserver; private I2PSocket _browser; private String _headers; @@ -214,7 +214,8 @@ public class I2PTunnelHTTPServer extends I2PTunnelServer { } } } - private class Sender implements Runnable { + + private static class Sender implements Runnable { private OutputStream _out; private InputStream _in; private String _name; @@ -248,7 +249,8 @@ public class I2PTunnelHTTPServer extends I2PTunnelServer { } } } - private class CompressedResponseOutputStream extends HTTPResponseOutputStream { + + private static class CompressedResponseOutputStream extends HTTPResponseOutputStream { private InternalGZIPOutputStream _gzipOut; public CompressedResponseOutputStream(OutputStream o) { super(o); @@ -287,7 +289,8 @@ public class I2PTunnelHTTPServer extends I2PTunnelServer { return 0; } } - private class InternalGZIPOutputStream extends GZIPOutputStream { + + private static class InternalGZIPOutputStream extends GZIPOutputStream { public InternalGZIPOutputStream(OutputStream target) throws IOException { super(target); } @@ -309,7 +312,7 @@ public class I2PTunnelHTTPServer extends I2PTunnelServer { } } - private String formatHeaders(Properties headers, StringBuilder command) { + private static String formatHeaders(Properties headers, StringBuilder command) { StringBuilder buf = new StringBuilder(command.length() + headers.size() * 64); buf.append(command.toString().trim()).append("\r\n"); for (Iterator iter = headers.keySet().iterator(); iter.hasNext(); ) { diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelIRCServer.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelIRCServer.java index 3e8d927f2..1d05103e7 100644 --- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelIRCServer.java +++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelIRCServer.java @@ -170,7 +170,7 @@ public class I2PTunnelIRCServer extends I2PTunnelServer implements Runnable { } /** keep reading until we see USER or SERVER */ - private String filterRegistration(InputStream in, String newHostname) throws IOException { + private static String filterRegistration(InputStream in, String newHostname) throws IOException { StringBuilder buf = new StringBuilder(128); int lineCount = 0; From 5dee6cb3d5ed37d2d2256676f6899194f7ada610 Mon Sep 17 00:00:00 2001 From: zzz Date: Sat, 3 Jul 2010 13:59:46 +0000 Subject: [PATCH 13/75] * I2PTunnel: More error propagation fixes --- .../java/src/net/i2p/i2ptunnel/I2PTunnel.java | 75 +++++++++++++------ history.txt | 5 ++ .../src/net/i2p/router/RouterVersion.java | 2 +- 3 files changed, 60 insertions(+), 22 deletions(-) diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnel.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnel.java index 3a7e986d8..f09f03ca4 100644 --- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnel.java +++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnel.java @@ -166,7 +166,12 @@ public class I2PTunnel implements Logging, EventDispatcher { System.out.print("I2PTunnel>"); String cmd = r.readLine(); if (cmd == null) break; - runCommand(cmd, this); + if (cmd.length() <= 0) continue; + try { + runCommand(cmd, this); + } catch (Throwable t) { + t.printStackTrace(); + } } } catch (IOException ex) { ex.printStackTrace(); @@ -355,6 +360,7 @@ public class I2PTunnel implements Logging, EventDispatcher { * * @param args {hostname, portNumber, privKeyFilename} * @param l logger to receive events and output + * @throws IllegalArgumentException on config problem */ public void runServer(String args[], Logging l) { if (args.length == 3) { @@ -367,7 +373,7 @@ public class I2PTunnel implements Logging, EventDispatcher { l.log("unknown host"); _log.error(getPrefix() + "Error resolving " + args[0], uhe); notifyEvent("serverTaskId", Integer.valueOf(-1)); - return; + throw new IllegalArgumentException(getPrefix() + "Error resolving " + args[0] + uhe.getMessage()); } try { @@ -376,8 +382,9 @@ public class I2PTunnel implements Logging, EventDispatcher { l.log("invalid port"); _log.error(getPrefix() + "Port specified is not valid: " + args[1], nfe); notifyEvent("serverTaskId", Integer.valueOf(-1)); - return; } + if (portNum <= 0) + throw new IllegalArgumentException(getPrefix() + "Bad port " + args[1]); privKeyFile = new File(args[2]); if (!privKeyFile.isAbsolute()) @@ -404,6 +411,7 @@ public class I2PTunnel implements Logging, EventDispatcher { /** * Same args as runServer * (we should stop duplicating all this code...) + * @throws IllegalArgumentException on config problem */ public void runIrcServer(String args[], Logging l) { if (args.length == 3) { @@ -416,7 +424,7 @@ public class I2PTunnel implements Logging, EventDispatcher { l.log("unknown host"); _log.error(getPrefix() + "Error resolving " + args[0], uhe); notifyEvent("serverTaskId", Integer.valueOf(-1)); - return; + throw new IllegalArgumentException(getPrefix() + "Error resolving " + args[0] + uhe.getMessage()); } try { @@ -425,8 +433,9 @@ public class I2PTunnel implements Logging, EventDispatcher { l.log("invalid port"); _log.error(getPrefix() + "Port specified is not valid: " + args[1], nfe); notifyEvent("serverTaskId", Integer.valueOf(-1)); - return; } + if (portNum <= 0) + throw new IllegalArgumentException(getPrefix() + "Bad port " + args[1]); privKeyFile = new File(args[2]); if (!privKeyFile.isAbsolute()) @@ -461,6 +470,7 @@ public class I2PTunnel implements Logging, EventDispatcher { * * @param args {hostname, portNumber, spoofedHost, privKeyFilename} * @param l logger to receive events and output + * @throws IllegalArgumentException on config problem */ public void runHttpServer(String args[], Logging l) { if (args.length == 4) { @@ -473,7 +483,7 @@ public class I2PTunnel implements Logging, EventDispatcher { l.log("unknown host"); _log.error(getPrefix() + "Error resolving " + args[0], uhe); notifyEvent("serverTaskId", Integer.valueOf(-1)); - return; + throw new IllegalArgumentException(getPrefix() + "Error resolving " + args[0] + uhe.getMessage()); } try { @@ -482,8 +492,9 @@ public class I2PTunnel implements Logging, EventDispatcher { l.log("invalid port"); _log.error(getPrefix() + "Port specified is not valid: " + args[1], nfe); notifyEvent("serverTaskId", Integer.valueOf(-1)); - return; } + if (portNum <= 0) + throw new IllegalArgumentException(getPrefix() + "Bad port " + args[1]); String spoofedHost = args[2]; @@ -523,6 +534,7 @@ public class I2PTunnel implements Logging, EventDispatcher { * * @param args {hostname, portNumber, proxyPortNumber, spoofedHost, privKeyFilename} * @param l logger to receive events and output + * @throws IllegalArgumentException on config problem */ public void runHttpBidirServer(String args[], Logging l) { if (args.length == 5) { @@ -536,7 +548,7 @@ public class I2PTunnel implements Logging, EventDispatcher { l.log("unknown host"); _log.error(getPrefix() + "Error resolving " + args[0], uhe); notifyEvent("serverTaskId", Integer.valueOf(-1)); - return; + throw new IllegalArgumentException(getPrefix() + "Error resolving " + args[0] + uhe.getMessage()); } try { @@ -545,7 +557,6 @@ public class I2PTunnel implements Logging, EventDispatcher { l.log("invalid port"); _log.error(getPrefix() + "Port specified is not valid: " + args[1], nfe); notifyEvent("serverTaskId", Integer.valueOf(-1)); - return; } try { @@ -554,8 +565,11 @@ public class I2PTunnel implements Logging, EventDispatcher { l.log("invalid port"); _log.error(getPrefix() + "Port specified is not valid: " + args[2], nfe); notifyEvent("serverTaskId", Integer.valueOf(-1)); - return; } + if (portNum <= 0) + throw new IllegalArgumentException(getPrefix() + "Bad port " + args[1]); + if (port2Num <= 0) + throw new IllegalArgumentException(getPrefix() + "Bad port " + args[2]); String spoofedHost = args[3]; @@ -598,6 +612,7 @@ public class I2PTunnel implements Logging, EventDispatcher { * * @param args {hostname, portNumber, privKeyBase64} * @param l logger to receive events and output + * @throws IllegalArgumentException on config problem */ public void runTextServer(String args[], Logging l) { if (args.length == 3) { @@ -609,7 +624,7 @@ public class I2PTunnel implements Logging, EventDispatcher { l.log("unknown host"); _log.error(getPrefix() + "Error resolving " + args[0], uhe); notifyEvent("serverTaskId", Integer.valueOf(-1)); - return; + throw new IllegalArgumentException(getPrefix() + "Error resolving " + args[0] + uhe.getMessage()); } try { @@ -618,8 +633,9 @@ public class I2PTunnel implements Logging, EventDispatcher { l.log("invalid port"); _log.error(getPrefix() + "Port specified is not valid: " + args[1], nfe); notifyEvent("serverTaskId", Integer.valueOf(-1)); - return; } + if (portNum <= 0) + throw new IllegalArgumentException(getPrefix() + "Bad port " + args[1]); I2PTunnelServer serv = new I2PTunnelServer(serverHost, portNum, args[2], l, (EventDispatcher) this, this); serv.setReadTimeout(readTimeout); @@ -645,6 +661,7 @@ public class I2PTunnel implements Logging, EventDispatcher { * * @param args {portNumber, destinationBase64 or "file:filename"[, sharedClient [, privKeyFile]]} * @param l logger to receive events and output + * @throws IllegalArgumentException on config problem */ public void runClient(String args[], Logging l) { boolean isShared = true; @@ -658,8 +675,10 @@ public class I2PTunnel implements Logging, EventDispatcher { l.log("invalid port"); _log.error(getPrefix() + "Port specified is not valid: " + args[0], nfe); notifyEvent("clientTaskId", Integer.valueOf(-1)); - return; } + if (portNum <= 0) + throw new IllegalArgumentException(getPrefix() + "Bad port " + args[0]); + I2PTunnelTask task; ownDest = !isShared; try { @@ -699,6 +718,7 @@ public class I2PTunnel implements Logging, EventDispatcher { * * @param args {portNumber[, sharedClient][, proxy to be used for the WWW]} * @param l logger to receive events and output + * @throws IllegalArgumentException on config problem */ public void runHttpClient(String args[], Logging l) { if (args.length >= 1 && args.length <= 3) { @@ -709,8 +729,9 @@ public class I2PTunnel implements Logging, EventDispatcher { l.log("invalid port"); _log.error(getPrefix() + "Port specified is not valid: " + args[0], nfe); notifyEvent("httpclientTaskId", Integer.valueOf(-1)); - return; } + if (clientPort <= 0) + throw new IllegalArgumentException(getPrefix() + "Bad port " + args[0]); String proxy = ""; boolean isShared = true; @@ -766,6 +787,7 @@ public class I2PTunnel implements Logging, EventDispatcher { * * @param args {portNumber[, sharedClient][, proxy to be used for the WWW]} * @param l logger to receive events and output + * @throws IllegalArgumentException on config problem */ public void runConnectClient(String args[], Logging l) { if (args.length >= 1 && args.length <= 3) { @@ -774,8 +796,9 @@ public class I2PTunnel implements Logging, EventDispatcher { _port = Integer.parseInt(args[0]); } catch (NumberFormatException nfe) { _log.error(getPrefix() + "Port specified is not valid: " + args[0], nfe); - return; } + if (_port <= 0) + throw new IllegalArgumentException(getPrefix() + "Bad port " + args[0]); String proxy = ""; boolean isShared = true; @@ -831,6 +854,7 @@ public class I2PTunnel implements Logging, EventDispatcher { * * @param args {portNumber,destinationBase64 or "file:filename" [, sharedClient [, privKeyFile]]} * @param l logger to receive events and output + * @throws IllegalArgumentException on config problem */ public void runIrcClient(String args[], Logging l) { if (args.length >= 2) { @@ -841,8 +865,9 @@ public class I2PTunnel implements Logging, EventDispatcher { l.log("invalid port"); _log.error(getPrefix() + "Port specified is not valid: " + args[0], nfe); notifyEvent("ircclientTaskId", Integer.valueOf(-1)); - return; } + if (_port <= 0) + throw new IllegalArgumentException(getPrefix() + "Bad port " + args[0]); boolean isShared = true; if (args.length > 2) { @@ -894,6 +919,7 @@ public class I2PTunnel implements Logging, EventDispatcher { * * @param args {portNumber [, sharedClient]} * @param l logger to receive events and output + * @throws IllegalArgumentException on config problem */ public void runSOCKSTunnel(String args[], Logging l) { if (args.length >= 1 && args.length <= 2) { @@ -904,8 +930,9 @@ public class I2PTunnel implements Logging, EventDispatcher { l.log("invalid port"); _log.error(getPrefix() + "Port specified is not valid: " + args[0], nfe); notifyEvent("sockstunnelTaskId", Integer.valueOf(-1)); - return; } + if (_port <= 0) + throw new IllegalArgumentException(getPrefix() + "Bad port " + args[0]); boolean isShared = false; if (args.length > 1) @@ -927,6 +954,7 @@ public class I2PTunnel implements Logging, EventDispatcher { /** * Run an SOCKS IRC tunnel on the given port number * @param args {portNumber [, sharedClient]} or (portNumber, ignored (false), privKeyFile) + * @throws IllegalArgumentException on config problem * @since 0.7.12 */ public void runSOCKSIRCTunnel(String args[], Logging l) { @@ -938,8 +966,9 @@ public class I2PTunnel implements Logging, EventDispatcher { l.log("invalid port"); _log.error(getPrefix() + "Port specified is not valid: " + args[0], nfe); notifyEvent("sockstunnelTaskId", Integer.valueOf(-1)); - return; } + if (_port <= 0) + throw new IllegalArgumentException(getPrefix() + "Bad port " + args[0]); boolean isShared = false; if (args.length == 2) @@ -965,6 +994,7 @@ public class I2PTunnel implements Logging, EventDispatcher { * * @param args {targethost, targetport, destinationString} * @param l logger to receive events and output + * @throws IllegalArgumentException on config problem */ public void runStreamrClient(String args[], Logging l) { if (args.length == 3) { @@ -985,8 +1015,9 @@ public class I2PTunnel implements Logging, EventDispatcher { l.log("invalid port"); _log.error(getPrefix() + "Port specified is not valid: " + args[0], nfe); notifyEvent("streamrtunnelTaskId", Integer.valueOf(-1)); - return; } + if (_port <= 0) + throw new IllegalArgumentException(getPrefix() + "Bad port " + args[0]); StreamrConsumer task = new StreamrConsumer(_host, _port, args[2], l, (EventDispatcher) this, this); task.startRunning(); @@ -1004,6 +1035,7 @@ public class I2PTunnel implements Logging, EventDispatcher { * * @param args {port, privkeyfile} * @param l logger to receive events and output + * @throws IllegalArgumentException on config problem */ public void runStreamrServer(String args[], Logging l) { if (args.length == 2) { @@ -1014,8 +1046,9 @@ public class I2PTunnel implements Logging, EventDispatcher { l.log("invalid port"); _log.error(getPrefix() + "Port specified is not valid: " + args[0], nfe); notifyEvent("streamrtunnelTaskId", Integer.valueOf(-1)); - return; } + if (_port <= 0) + throw new IllegalArgumentException(getPrefix() + "Bad port " + args[0]); File privKeyFile = new File(args[1]); if (!privKeyFile.isAbsolute()) @@ -1556,7 +1589,7 @@ public class I2PTunnel implements Logging, EventDispatcher { } } - private String getPrefix() { return '[' + _tunnelId + "]: "; } + private String getPrefix() { return "[" + _tunnelId + "]: "; } public I2PAppContext getContext() { return _context; } diff --git a/history.txt b/history.txt index 9f7f8c2dd..5b16d142b 100644 --- a/history.txt +++ b/history.txt @@ -1,3 +1,8 @@ +2010-07-03 zzz + * Build: Fix poupdate dependencies + * I2PTunnel: More error propagation fixes + * I2PTunnelHTTPClient: Don't use BufferedReader + 2010-07-01 zzz * EventDispatcher: Minor cleanups and comments * I2PTunnel: Don't start a tunnel if no valid destinations; diff --git a/router/java/src/net/i2p/router/RouterVersion.java b/router/java/src/net/i2p/router/RouterVersion.java index c10128fe6..fecba78d6 100644 --- a/router/java/src/net/i2p/router/RouterVersion.java +++ b/router/java/src/net/i2p/router/RouterVersion.java @@ -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 = 6; + public final static long BUILD = 7; /** for example "-test" */ public final static String EXTRA = ""; From 30d3f52f300c65fcd460856f2bc5b239a8b7ba93 Mon Sep 17 00:00:00 2001 From: duck Date: Sun, 4 Jul 2010 13:13:45 +0000 Subject: [PATCH 14/75] RouterConsole: Dutch translation (thanks to monkeybrains) --- apps/routerconsole/locale/messages_nl.po | 5024 ++++++++++++++++++++++ history.txt | 3 + 2 files changed, 5027 insertions(+) create mode 100644 apps/routerconsole/locale/messages_nl.po diff --git a/apps/routerconsole/locale/messages_nl.po b/apps/routerconsole/locale/messages_nl.po new file mode 100644 index 000000000..d9f5af53b --- /dev/null +++ b/apps/routerconsole/locale/messages_nl.po @@ -0,0 +1,5024 @@ +# I2P +# Copyright (C) 2009 The I2P Project +# This file is distributed under the same license as the routerconsole package. +# To contribute translations, see http://www.i2p2.de/newdevelopers +# foo , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: I2P routerconsole\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-07-04 13:00+0000\n" +"PO-Revision-Date: 2010-07-04 15:04+0100\n" +"Last-Translator: duck \n" +"Language-Team: duck , monkeybrains \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: Dutch\n" + +#: ../../../router/java/src/net/i2p/router/Blocklist.java:126 +#, java-format +msgid "Banned by router hash: {0}" +msgstr "Verbannen wegens router hash: {0}" + +#: ../../../router/java/src/net/i2p/router/Blocklist.java:128 +msgid "Banned by router hash" +msgstr "Verbannen wegens router hash" + +#. Temporary reason, until the job finishes +#: ../../../router/java/src/net/i2p/router/Blocklist.java:673 +msgid "IP banned" +msgstr "IP verbannen" + +#: ../../../router/java/src/net/i2p/router/Blocklist.java:743 +#, java-format +msgid "IP banned by blocklist.txt entry {0}" +msgstr "IP verbannen wegens blocklist.txt item {0}" + +#: ../../../router/java/src/net/i2p/router/RouterThrottleImpl.java:92 +msgid "Rejecting tunnels: Shutting down" +msgstr "Tunnels geweigerd: Aan het afsluiten" + +#: ../../../router/java/src/net/i2p/router/RouterThrottleImpl.java:141 +msgid "Rejecting tunnels: High message delay" +msgstr "Tunnels geweigerd: Hoge bericht vertraging" + +#. hard to do {0} from here +#. setTunnelStatus("Rejecting " + (100 - (int) probAccept*100) + "% of tunnels: High number of requests"); +#: ../../../router/java/src/net/i2p/router/RouterThrottleImpl.java:177 +msgid "Rejecting most tunnels: High number of requests" +msgstr "Meeste tunnels geweigerd: Hoog aantal aanvragen" + +#: ../../../router/java/src/net/i2p/router/RouterThrottleImpl.java:233 +msgid "Rejecting tunnels: Limit reached" +msgstr "Tunnels geweigerd: Limiet bereikt" + +#. .067KBps +#. * also limited to 90% - see below +#. always leave at least 4KBps free when allowing +#: ../../../router/java/src/net/i2p/router/RouterThrottleImpl.java:301 +msgid "Rejecting tunnels: Bandwidth limit" +msgstr "Tunnels geweigerd: Bandbreedte limiet" + +#. hard to do {0} from here +#. setTunnelStatus("Rejecting " + ((int)(100.0*probReject)) + "% of tunnels: Bandwidth limit"); +#: ../../../router/java/src/net/i2p/router/RouterThrottleImpl.java:371 +msgid "Rejecting most tunnels: Bandwidth limit" +msgstr "Meeste tunnels geweigerd: Bandbreedte limiet" + +#. hard to do {0} from here +#. setTunnelStatus("Accepting " + (100-(int)(100.0*probReject)) + "% of tunnels"); +#: ../../../router/java/src/net/i2p/router/RouterThrottleImpl.java:375 +msgid "Accepting most tunnels" +msgstr "Meeste tunnels geaccepteerd" + +#: ../../../router/java/src/net/i2p/router/RouterThrottleImpl.java:377 +msgid "Accepting tunnels" +msgstr "Tunnels geaccepteerd" + +#. NPE, too early +#. if (_context.router().getRouterInfo().getBandwidthTier().equals("K")) +#. setTunnelStatus("Not expecting tunnel requests: Advertised bandwidth too low"); +#. else +#: ../../../router/java/src/net/i2p/router/RouterThrottleImpl.java:487 +msgid "Rejecting tunnels" +msgstr "Tunnels geweigerd" + +#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:49 +msgid "Ensure that nothing blocks outbound HTTP, check
logs and if nothing helps, read the FAQ about reseeding manually." +msgstr "Controlleer of uitgaand HTTP verkeer niet geblokkeerd wordt, kijk in de logs en wanneer niets anders helpt, zie de FAQ over handmatig reseeden." + +#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:81 +msgid "Reseeding" +msgstr "Reseeden" + +#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:145 +msgid "Reseeding: fetching seed URL." +msgstr "Reseed: opvragen seed URL." + +#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:151 +msgid "Last reseed failed fully (failed reading seed URL)." +msgstr "Laatste reseed volledig gefaald (kan seed URL niet lezen)." + +#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:177 +msgid "Last reseed failed fully (no routerInfo URLs at seed URL)." +msgstr "Laatste reseed volledig gefaald (geen routerInfo URLs op de seed URL)." + +#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:190 +#, java-format +msgid "Reseeding: fetching router info from seed URL ({0} successful, {1} errors)." +msgstr "Reseeden: opvragen router info van seed URL ({0} succesvol, {1} fouten)." + +#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:211 +#, java-format +msgid "Last reseed failed partly ({0}% of {1})." +msgstr "Laatste reseed gedeeltelijk gefaald ({0}% van {1})." + +#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:216 +#, java-format +msgid "Last reseed failed ({0}% of {1})." +msgstr "Laatste reseed gefaald ({0}% van {1})." + +#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:226 +msgid "Last reseed failed fully (exception caught)." +msgstr "Laatste reseed volledig gefaald (exception opgetreden)." + +#: ../../../router/java/src/net/i2p/router/transport/CommSystemFacadeImpl.java:510 +msgid "NetDb entry" +msgstr "NetDd item" + +#. This used to be "no common transports" but it is almost always no transports at all +#: ../../../router/java/src/net/i2p/router/transport/GetBidsJob.java:70 +msgid "No transports (hidden or starting up?)" +msgstr "Geen transport (verborgen of aan het opstarten?)" + +#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:457 +msgid "Unreachable on any transport" +msgstr "Onbereikbaar op alle transports" + +#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:508 +msgid "Router Transport Addresses" +msgstr "Router Transport Adressen" + +#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:514 +#, java-format +msgid "{0} is used for outbound connections only" +msgstr "{0} is alleen gebruikt voor uitgaande connecties" + +#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:528 +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:257 +msgid "Definitions" +msgstr "Definities" + +#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:529 +#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:715 +#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1885 +#: ../java/src/net/i2p/router/web/ConfigPeerHandler.java:24 +#: ../java/src/net/i2p/router/web/ConfigPeerHandler.java:33 +#: ../java/src/net/i2p/router/web/ConfigPeerHandler.java:35 +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:81 +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:187 +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:238 +msgid "Peer" +msgstr "Peer" + +#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:529 +msgid "The remote peer, identified by router hash" +msgstr "De remote peer, geïdentificeerd door de router hash" + +#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:530 +#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:716 +#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1889 +msgid "Dir" +msgstr "Richting" + +#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:531 +msgid "Inbound connection" +msgstr "Inkomende connectie" + +#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:533 +msgid "Outbound connection" +msgstr "Uitgaande connectie" + +#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:535 +msgid "They offered to introduce us (help other peers traverse our firewall)" +msgstr "Ze hebben aangeboden ons te introduceren (helpt andere peers om door onze firewall te komen)" + +#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:537 +msgid "We offered to introduce them (help other peers traverse their firewall)" +msgstr "We hebben aangeboden ze te introduceren (helpt andere peers om door hun firewall te komen)" + +#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:538 +msgid "How long since a packet has been received / sent" +msgstr "Hoe lang sinds een pakket ontvangen / verstuurd is" + +#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:538 +#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:717 +#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1890 +msgid "Idle" +msgstr "Idle" + +#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:539 +#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:718 +#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1895 +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:156 +msgid "In/Out" +msgstr "In/Uit" + +#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:539 +msgid "The smoothed inbound / outbound transfer rate (KBytes per second)" +msgstr "De afgevlakte inkomende / uitgaande overdrachtsnelheid (KBytes per seconde)" + +#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:540 +msgid "How long ago this connection was established" +msgstr "Hoe lang sinds deze connectie is gemaakt" + +#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:540 +#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:719 +#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1900 +msgid "Up" +msgstr "Up" + +#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:541 +#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:720 +#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1902 +msgid "Skew" +msgstr "Afwijking" + +#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:541 +msgid "The difference between the peer's clock and your own" +msgstr "Het verschil tussen de klok van de peer en je eigen" + +#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:542 +msgid "The congestion window, which is how many bytes can be sent without an acknowledgement" +msgstr "Het congestion window, hoeveel bytes verzonden kunnen worden zonder een bevestiging" + +#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:543 +msgid "The number of sent messages awaiting acknowledgement" +msgstr "Het aantal verzonden berichten, wachtend op bevestiging" + +#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:544 +msgid "The maximum number of concurrent messages to send" +msgstr "Het maximum aantal berichten om gelijktijdig te verzenden" + +#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:545 +msgid "The number of pending sends which exceed congestion window" +msgstr "Het aantal wachtende uitgaande berichten dat het congestion window overschrijdt" + +#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:546 +msgid "The slow start threshold" +msgstr "De vertraagde-start drempel" + +#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:547 +msgid "The round trip time in milliseconds" +msgstr "De rondgangstijd in milliseconden" + +#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:548 +#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1912 +msgid "Dev" +msgstr "SD" + +#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:548 +msgid "The standard deviation of the round trip time in milliseconds" +msgstr "De standaarddeviatie van de rondgangstijd in milliseconden" + +#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:549 +msgid "The retransmit timeout in milliseconds" +msgstr "De herzend time-out in milliseconden" + +#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:550 +msgid "Current maximum send packet size / estimated maximum receive packet size (bytes)" +msgstr "Huidige maximum verzonden pakket grootte / verwachte maximimum ontvangen pakket grootte (bytes)" + +#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:551 +#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:721 +#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1919 +msgid "TX" +msgstr "TX" + +#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:551 +msgid "The total number of packets sent to the peer" +msgstr "Het totaal aantal pakketten verzonden aan de peer" + +#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:552 +#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:722 +#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1921 +msgid "RX" +msgstr "RX" + +#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:552 +msgid "The total number of packets received from the peer" +msgstr "Het totaal aantal ontvangen pakketten van de peer" + +#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:553 +#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1924 +msgid "Dup TX" +msgstr "Dup TX" + +#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:553 +msgid "The total number of packets retransmitted to the peer" +msgstr "Het totaal aantal pakketten dat opnieuw is verzonden aan de peer" + +#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:554 +#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1926 +msgid "Dup RX" +msgstr "Dup RX" + +#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:554 +msgid "The total number of duplicate packets received from the peer" +msgstr "Het totaal aantal pakketten dat dubbel is ontvangen van de peer" + +#: ../../../router/java/src/net/i2p/router/transport/ntcp/EstablishState.java:380 +#: ../../../router/java/src/net/i2p/router/transport/ntcp/EstablishState.java:594 +#, java-format +msgid "Excessive clock skew: {0}" +msgstr "Te grote klok afwijking: {0}" + +#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:710 +msgid "NTCP connections" +msgstr "NTCP connecties" + +#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:711 +#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1881 +msgid "Limit" +msgstr "Limiet" + +#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:712 +#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1882 +msgid "Timeout" +msgstr "Time-out" + +#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:723 +msgid "Out Queue" +msgstr "Uitgaande wachtrij" + +#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:724 +msgid "Backlogged?" +msgstr "In achterstand?" + +#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:738 +#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1944 +#: ../java/src/net/i2p/router/web/ConfigTunnelsHelper.java:82 +msgid "Inbound" +msgstr "Inkomend" + +#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:740 +#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1946 +#: ../java/src/net/i2p/router/web/ConfigTunnelsHelper.java:82 +msgid "Outbound" +msgstr "Uitgaand" + +#. buf.append("


\n"); +#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:787 +msgid "peers" +msgstr "peers" + +#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1880 +msgid "UDP connections" +msgstr "UDP connecties" + +#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1887 +msgid "Sort by peer hash" +msgstr "Gesorteerd op peer hash" + +#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1889 +msgid "Direction/Introduction" +msgstr "Richting/Introductie" + +#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1891 +msgid "Sort by idle inbound" +msgstr "Gesorteerd op idle inkomend" + +#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1893 +msgid "Sort by idle outbound" +msgstr "Gesorteerd op idle uitgaand" + +#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1896 +msgid "Sort by inbound rate" +msgstr "Gesorteerd op inkomende snelheid" + +#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1898 +msgid "Sort by outbound rate" +msgstr "Gesorteerd op uitgaande snelheid" + +#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1901 +msgid "Sort by connection uptime" +msgstr "Gesorteerd op uptime van de connectie" + +#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1903 +msgid "Sort by clock skew" +msgstr "Gesorteerd op klok afwijking" + +#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1906 +msgid "Sort by congestion window" +msgstr "Gesorteerd op congestion window" + +#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1908 +msgid "Sort by slow start threshold" +msgstr "Gesorteerd op vertraagde-start drempel" + +#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1911 +msgid "Sort by round trip time" +msgstr "Gesorteerd op rondgangstijd" + +#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1913 +msgid "Sort by round trip time deviation" +msgstr "Gesorteerd op rondgangstijd afwijking" + +#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1915 +msgid "Sort by retransmission timeout" +msgstr "Gesorteerd op herzendings time-out" + +#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1918 +msgid "Sort by outbound maximum transmit unit" +msgstr "Gesorteerd op uitgaande maximum verzend unit" + +#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1920 +msgid "Sort by packets sent" +msgstr "Gesorteerd op verzonden pakketten" + +#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1922 +msgid "Sort by packets received" +msgstr "Gesorteerd op ontvangen pakketten" + +#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1925 +msgid "Sort by packets retransmitted" +msgstr "Gesorteerd op herzonden pakketten" + +#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1927 +msgid "Sort by packets received more than once" +msgstr "Gesorteerd op meerdere keren ontvangen pakketten" + +#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1948 +msgid "We offered to introduce them" +msgstr "We hebben aangeboden ze te introduceren" + +#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1950 +msgid "They offered to introduce us" +msgstr "Zij hebben aangeboden ons te introduceren" + +#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1954 +msgid "Choked" +msgstr "Verstikt" + +#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1962 +msgid "1 fail" +msgstr "1 gefaald" + +#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1964 +#, java-format +msgid "{0} fails" +msgstr "{0} gefaald" + +#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1970 +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:162 +msgid "Banned" +msgstr "Verbannen" + +#. buf.append("
\n"); +#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2102 +msgid "SUMMARY" +msgstr "SAMENVATTING" + +#: ../../../router/java/src/net/i2p/router/tunnel/pool/BuildHandler.java:145 +msgid "Dropping tunnel requests: Too slow" +msgstr "Negeer tunnel aanvragen: Te traag" + +#. don't even bother, since we are so overloaded locally +#: ../../../router/java/src/net/i2p/router/tunnel/pool/BuildHandler.java:352 +msgid "Dropping tunnel requests: Overloaded" +msgstr "Negeer tunnel aanvragen: Overladen" + +#: ../../../router/java/src/net/i2p/router/tunnel/pool/BuildHandler.java:523 +msgid "Rejecting tunnels: Request overload" +msgstr "Weiger tunnels: Overladen met aanvragen" + +#: ../../../router/java/src/net/i2p/router/tunnel/pool/BuildHandler.java:548 +msgid "Rejecting tunnels: Connection limit" +msgstr "Weiger tunnels: Connectie limiet" + +#: ../../../router/java/src/net/i2p/router/tunnel/pool/BuildHandler.java:742 +msgid "Dropping tunnel requests: High load" +msgstr "Negeer tunnel aanvragen: Hoge load" + +#: ../../../router/java/src/net/i2p/router/tunnel/pool/BuildHandler.java:751 +msgid "Dropping tunnel requests: Queue time" +msgstr "Negeer tunnel aanvragen: Wachttijd" + +#. Automatically generated pseudo-java for xgettext - do not edit +#. Translators may wish to translate a few of these, do not bother to translate all of them!! +#: ../java/build/Countries.java:3 +msgid "Andorra" +msgstr "Andorra" + +#: ../java/build/Countries.java:4 +msgid "United Arab Emirates" +msgstr "Verenigde Arabische Emiraten" + +#: ../java/build/Countries.java:5 +msgid "Afghanistan" +msgstr "Afghanistan" + +#: ../java/build/Countries.java:6 +msgid "Antigua and Barbuda" +msgstr "Antigua en Barbuda" + +#: ../java/build/Countries.java:7 +msgid "Anguilla" +msgstr "Anguilla" + +#: ../java/build/Countries.java:8 +msgid "Albania" +msgstr "Albanië" + +#: ../java/build/Countries.java:9 +msgid "Armenia" +msgstr "Armenië" + +#: ../java/build/Countries.java:10 +msgid "Netherlands Antilles" +msgstr "Nederlandse Antillen" + +#: ../java/build/Countries.java:11 +msgid "Angola" +msgstr "Angola" + +#: ../java/build/Countries.java:12 +msgid "Antarctica" +msgstr "Antarctica" + +#: ../java/build/Countries.java:13 +msgid "Argentina" +msgstr "Argentinië" + +#: ../java/build/Countries.java:14 +msgid "American Samoa" +msgstr "Amerikaans-Samoa" + +#: ../java/build/Countries.java:15 +msgid "Austria" +msgstr "Oostenrijk" + +#: ../java/build/Countries.java:16 +msgid "Australia" +msgstr "Australië" + +#: ../java/build/Countries.java:17 +msgid "Aruba" +msgstr "Aruba" + +#: ../java/build/Countries.java:19 +msgid "Azerbaijan" +msgstr "Azerbeidzjan" + +#: ../java/build/Countries.java:20 +msgid "Bosnia and Herzegovina" +msgstr "Bosnië en Herzegovina" + +#: ../java/build/Countries.java:21 +msgid "Barbados" +msgstr "Barbados" + +#: ../java/build/Countries.java:22 +msgid "Bangladesh" +msgstr "Bangladesh" + +#: ../java/build/Countries.java:23 +msgid "Belgium" +msgstr "België" + +#: ../java/build/Countries.java:24 +msgid "Burkina Faso" +msgstr "Burkina Faso" + +#: ../java/build/Countries.java:25 +msgid "Bulgaria" +msgstr "Bulgarije" + +#: ../java/build/Countries.java:26 +msgid "Bahrain" +msgstr "Bahrein" + +#: ../java/build/Countries.java:27 +msgid "Burundi" +msgstr "Burundi" + +#: ../java/build/Countries.java:28 +msgid "Benin" +msgstr "Benin" + +#: ../java/build/Countries.java:29 +msgid "Bermuda" +msgstr "Bermuda" + +#: ../java/build/Countries.java:30 +msgid "Brunei Darussalam" +msgstr "Brunei" + +#: ../java/build/Countries.java:31 +msgid "Bolivia" +msgstr "Bolivia" + +#: ../java/build/Countries.java:32 +msgid "Brazil" +msgstr "Brazilië" + +#: ../java/build/Countries.java:33 +msgid "Bahamas" +msgstr "Bahama's" + +#: ../java/build/Countries.java:34 +msgid "Bhutan" +msgstr "Bhutan" + +#: ../java/build/Countries.java:35 +msgid "Bouvet Island" +msgstr "Bouvet eiland" + +#: ../java/build/Countries.java:36 +msgid "Botswana" +msgstr "Botswana" + +#: ../java/build/Countries.java:37 +msgid "Belarus" +msgstr "Wit-Rusland" + +#: ../java/build/Countries.java:38 +msgid "Belize" +msgstr "Belize" + +#: ../java/build/Countries.java:39 +msgid "Canada" +msgstr "Canada" + +#: ../java/build/Countries.java:40 +msgid "The Democratic Republic of the Congo" +msgstr "Congo, Democratische Republiek" + +#: ../java/build/Countries.java:41 +msgid "Central African Republic" +msgstr "Centraal-Afrikaanse Republiek" + +#: ../java/build/Countries.java:42 +msgid "Congo" +msgstr "Congo" + +#: ../java/build/Countries.java:43 +msgid "Switzerland" +msgstr "Zwitserland" + +#: ../java/build/Countries.java:44 +msgid "Cote D'Ivoire" +msgstr "Ivoorkust" + +#: ../java/build/Countries.java:45 +msgid "Cook Islands" +msgstr "Cookeilanden" + +#: ../java/build/Countries.java:46 +msgid "Chile" +msgstr "Chili" + +#: ../java/build/Countries.java:47 +msgid "Cameroon" +msgstr "Kameroen" + +#: ../java/build/Countries.java:48 +msgid "China" +msgstr "China" + +#: ../java/build/Countries.java:49 +msgid "Colombia" +msgstr "Colombia" + +#: ../java/build/Countries.java:50 +msgid "Costa Rica" +msgstr "Costa Rica" + +#: ../java/build/Countries.java:51 +msgid "Serbia and Montenegro" +msgstr "Servië en Montenegro" + +#: ../java/build/Countries.java:52 +msgid "Cuba" +msgstr "Cuba" + +#: ../java/build/Countries.java:53 +msgid "Cape Verde" +msgstr "Kaapverdië" + +#: ../java/build/Countries.java:54 +msgid "Cyprus" +msgstr "Cyprus" + +#: ../java/build/Countries.java:55 +msgid "Czech Republic" +msgstr "Tsjechische Republiek" + +#: ../java/build/Countries.java:56 +msgid "Germany" +msgstr "Duitsland" + +#: ../java/build/Countries.java:57 +msgid "Djibouti" +msgstr "Djibouti" + +#: ../java/build/Countries.java:58 +msgid "Denmark" +msgstr "Denemarken" + +#: ../java/build/Countries.java:59 +msgid "Dominica" +msgstr "Dominica" + +#: ../java/build/Countries.java:60 +msgid "Dominican Republic" +msgstr "Dominicaanse Republiek" + +#: ../java/build/Countries.java:61 +msgid "Algeria" +msgstr "Algerije" + +#: ../java/build/Countries.java:62 +msgid "Ecuador" +msgstr "Ecuador" + +#: ../java/build/Countries.java:63 +msgid "Estonia" +msgstr "Estland" + +#: ../java/build/Countries.java:64 +msgid "Egypt" +msgstr "Egypte" + +#: ../java/build/Countries.java:65 +msgid "Eritrea" +msgstr "Eritrea" + +#: ../java/build/Countries.java:66 +msgid "Spain" +msgstr "Spanje" + +#: ../java/build/Countries.java:67 +msgid "Ethiopia" +msgstr "Ethiopië" + +#: ../java/build/Countries.java:68 +msgid "Finland" +msgstr "Finland" + +#: ../java/build/Countries.java:69 +msgid "Fiji" +msgstr "Fiji" + +#: ../java/build/Countries.java:70 +msgid "Falkland Islands (Malvinas)" +msgstr "Falklandeilanden" + +#: ../java/build/Countries.java:71 +msgid "Federated States of Micronesia" +msgstr "Federale Staten van Micronesia" + +#: ../java/build/Countries.java:72 +msgid "Faroe Islands" +msgstr "Faeröer" + +#: ../java/build/Countries.java:73 +msgid "France" +msgstr "Frankrijk" + +#: ../java/build/Countries.java:74 +msgid "Gabon" +msgstr "Gabon" + +#: ../java/build/Countries.java:75 +msgid "United Kingdom" +msgstr "Verenigd Koninkrijk" + +#: ../java/build/Countries.java:76 +msgid "Grenada" +msgstr "Grenada" + +#: ../java/build/Countries.java:77 +msgid "Georgia" +msgstr "Georgië" + +#: ../java/build/Countries.java:78 +msgid "French Guiana" +msgstr "Frans-Guyana" + +#: ../java/build/Countries.java:79 +msgid "Ghana" +msgstr "Ghana" + +#: ../java/build/Countries.java:80 +msgid "Gibraltar" +msgstr "Gibraltar" + +#: ../java/build/Countries.java:81 +msgid "Greenland" +msgstr "Groenland" + +#: ../java/build/Countries.java:82 +msgid "Gambia" +msgstr "Gambia" + +#: ../java/build/Countries.java:83 +msgid "Guinea" +msgstr "Guinee" + +#: ../java/build/Countries.java:84 +msgid "Guadeloupe" +msgstr "Guadeloupe" + +#: ../java/build/Countries.java:85 +msgid "Equatorial Guinea" +msgstr "Equatoriaal-Guinea" + +#: ../java/build/Countries.java:86 +msgid "Greece" +msgstr "Griekenland" + +#: ../java/build/Countries.java:87 +msgid "South Georgia and the South Sandwich Islands" +msgstr "Zuid-Georgië en de Zuidelijke Sandwicheilanden" + +#: ../java/build/Countries.java:88 +msgid "Guatemala" +msgstr "Guatemala" + +#: ../java/build/Countries.java:89 +msgid "Guam" +msgstr "Guam" + +#: ../java/build/Countries.java:90 +msgid "Guinea-Bissau" +msgstr "Guinee-Bissau" + +#: ../java/build/Countries.java:91 +msgid "Guyana" +msgstr "Guyana" + +#: ../java/build/Countries.java:92 +msgid "Hong Kong" +msgstr "Hong Kong" + +#: ../java/build/Countries.java:93 +msgid "Honduras" +msgstr "Honduras" + +#: ../java/build/Countries.java:94 +msgid "Croatia" +msgstr "Kroatië" + +#: ../java/build/Countries.java:95 +msgid "Haiti" +msgstr "Haïti" + +#: ../java/build/Countries.java:96 +msgid "Hungary" +msgstr "Hongarije" + +#: ../java/build/Countries.java:97 +msgid "Indonesia" +msgstr "Indonesië" + +#: ../java/build/Countries.java:98 +msgid "Ireland" +msgstr "Ierland" + +#: ../java/build/Countries.java:99 +msgid "Israel" +msgstr "Israel" + +#: ../java/build/Countries.java:101 +msgid "India" +msgstr "India" + +#: ../java/build/Countries.java:102 +msgid "British Indian Ocean Territory" +msgstr "Brits Territorium in de Indische Oceaan" + +#: ../java/build/Countries.java:103 +msgid "Iraq" +msgstr "Iraq" + +#: ../java/build/Countries.java:104 +msgid "Islamic Republic of Iran" +msgstr "Islamitische Republiek Iran" + +#: ../java/build/Countries.java:105 +msgid "Iceland" +msgstr "IJsland" + +#: ../java/build/Countries.java:106 +msgid "Italy" +msgstr "Italië" + +#: ../java/build/Countries.java:108 +msgid "Jamaica" +msgstr "Jamaica" + +#: ../java/build/Countries.java:109 +msgid "Jordan" +msgstr "Jordanië" + +#: ../java/build/Countries.java:110 +msgid "Japan" +msgstr "Japan" + +#: ../java/build/Countries.java:111 +msgid "Kenya" +msgstr "Kenia" + +#: ../java/build/Countries.java:112 +msgid "Kyrgyzstan" +msgstr "Kirgizië" + +#: ../java/build/Countries.java:113 +msgid "Cambodia" +msgstr "Cambodja" + +#: ../java/build/Countries.java:114 +msgid "Kiribati" +msgstr "Kiribati" + +#: ../java/build/Countries.java:115 +msgid "Comoros" +msgstr "Comoren" + +#: ../java/build/Countries.java:116 +msgid "Saint Kitts and Nevis" +msgstr "Saint Kitts en Nevis" + +#: ../java/build/Countries.java:117 +msgid "Republic of Korea" +msgstr "Republiek Korea" + +#: ../java/build/Countries.java:118 +msgid "Kuwait" +msgstr "Koeweit" + +#: ../java/build/Countries.java:119 +msgid "Cayman Islands" +msgstr "Caymaneilanden" + +#: ../java/build/Countries.java:120 +msgid "Kazakhstan" +msgstr "Kazachstan" + +#: ../java/build/Countries.java:121 +msgid "Lao People's Democratic Republic" +msgstr "Laos Democratische Volksrepubliek" + +#: ../java/build/Countries.java:122 +msgid "Lebanon" +msgstr "Libanon" + +#: ../java/build/Countries.java:123 +msgid "Saint Lucia" +msgstr "Saint Lucia" + +#: ../java/build/Countries.java:124 +msgid "Liechtenstein" +msgstr "Liechtenstein" + +#: ../java/build/Countries.java:125 +msgid "Sri Lanka" +msgstr "Sri Lanka" + +#: ../java/build/Countries.java:126 +msgid "Liberia" +msgstr "Liberia" + +#: ../java/build/Countries.java:127 +msgid "Lesotho" +msgstr "Lesotho" + +#: ../java/build/Countries.java:128 +msgid "Lithuania" +msgstr "Litouwen" + +#: ../java/build/Countries.java:129 +msgid "Luxembourg" +msgstr "Luxemburg" + +#: ../java/build/Countries.java:130 +msgid "Latvia" +msgstr "Letland" + +#: ../java/build/Countries.java:131 +msgid "Libyan Arab Jamahiriya" +msgstr "Libië" + +#: ../java/build/Countries.java:132 +msgid "Morocco" +msgstr "Marokko" + +#: ../java/build/Countries.java:133 +msgid "Monaco" +msgstr "Monaco" + +#: ../java/build/Countries.java:134 +msgid "Republic of Moldova" +msgstr "Republiek Moldavië" + +#: ../java/build/Countries.java:137 +msgid "Madagascar" +msgstr "Madagaskar" + +#: ../java/build/Countries.java:138 +msgid "Marshall Islands" +msgstr "Marshalleilanden" + +#: ../java/build/Countries.java:139 +msgid "The Former Yugoslav Republic of Macedonia" +msgstr "Voormalige Joegoslavische Republiek Macedonië" + +#: ../java/build/Countries.java:140 +msgid "Mali" +msgstr "Mali" + +#: ../java/build/Countries.java:141 +msgid "Myanmar" +msgstr "Myanmar" + +#: ../java/build/Countries.java:142 +msgid "Mongolia" +msgstr "Mongolië" + +#: ../java/build/Countries.java:143 +msgid "Macao" +msgstr "Macau" + +#: ../java/build/Countries.java:144 +msgid "Northern Mariana Islands" +msgstr "Noordelijke Marianen" + +#: ../java/build/Countries.java:145 +msgid "Martinique" +msgstr "Martinique" + +#: ../java/build/Countries.java:146 +msgid "Mauritania" +msgstr "Mauritanië" + +#: ../java/build/Countries.java:147 +msgid "Montserrat" +msgstr "Montserrat" + +#: ../java/build/Countries.java:148 +msgid "Malta" +msgstr "Malta" + +#: ../java/build/Countries.java:149 +msgid "Mauritius" +msgstr "Mauritius" + +#: ../java/build/Countries.java:150 +msgid "Maldives" +msgstr "Maldiven" + +#: ../java/build/Countries.java:151 +msgid "Malawi" +msgstr "Malawi" + +#: ../java/build/Countries.java:152 +msgid "Mexico" +msgstr "Mexico" + +#: ../java/build/Countries.java:153 +msgid "Malaysia" +msgstr "Maleisië" + +#: ../java/build/Countries.java:154 +msgid "Mozambique" +msgstr "Mozambique" + +#: ../java/build/Countries.java:155 +msgid "Namibia" +msgstr "Namibië" + +#: ../java/build/Countries.java:156 +msgid "New Caledonia" +msgstr "Nieuw-Caledonië" + +#: ../java/build/Countries.java:157 +msgid "Niger" +msgstr "Niger" + +#: ../java/build/Countries.java:158 +msgid "Norfolk Island" +msgstr "Norfolk" + +#: ../java/build/Countries.java:159 +msgid "Nigeria" +msgstr "Nigeria" + +#: ../java/build/Countries.java:160 +msgid "Nicaragua" +msgstr "Nicaragua" + +#: ../java/build/Countries.java:161 +msgid "Netherlands" +msgstr "Nederland" + +#: ../java/build/Countries.java:162 +msgid "Norway" +msgstr "Noorwegen" + +#: ../java/build/Countries.java:163 +msgid "Nepal" +msgstr "Nepal" + +#: ../java/build/Countries.java:164 +msgid "Nauru" +msgstr "Nauru" + +#: ../java/build/Countries.java:165 +msgid "Niue" +msgstr "Niue" + +#: ../java/build/Countries.java:166 +msgid "New Zealand" +msgstr "Nieuw Zeeland" + +#: ../java/build/Countries.java:167 +msgid "Oman" +msgstr "Oman" + +#: ../java/build/Countries.java:168 +msgid "Panama" +msgstr "Panama" + +#: ../java/build/Countries.java:169 +msgid "Peru" +msgstr "Peru" + +#: ../java/build/Countries.java:170 +msgid "French Polynesia" +msgstr "Frans-Polynesië" + +#: ../java/build/Countries.java:171 +msgid "Papua New Guinea" +msgstr "Papoea-Nieuw-Guinea" + +#: ../java/build/Countries.java:172 +msgid "Philippines" +msgstr "Filipijnen" + +#: ../java/build/Countries.java:173 +msgid "Pakistan" +msgstr "Pakistan" + +#: ../java/build/Countries.java:174 +msgid "Poland" +msgstr "Polen" + +#: ../java/build/Countries.java:175 +msgid "Saint Pierre and Miquelon" +msgstr "Saint-Pierre en Miquelon" + +#: ../java/build/Countries.java:176 +msgid "Puerto Rico" +msgstr "Puerto Rico" + +#: ../java/build/Countries.java:177 +msgid "Palestinian Territory" +msgstr "de Westelijke Jordaanoever en de Gazastrook" + +#: ../java/build/Countries.java:178 +msgid "Portugal" +msgstr "Portugal" + +#: ../java/build/Countries.java:179 +msgid "Palau" +msgstr "Palau" + +#: ../java/build/Countries.java:180 +msgid "Paraguay" +msgstr "Paraguay" + +#: ../java/build/Countries.java:181 +msgid "Qatar" +msgstr "Qatar" + +#: ../java/build/Countries.java:182 +msgid "Reunion" +msgstr "Réunion" + +#: ../java/build/Countries.java:183 +msgid "Romania" +msgstr "Roemenië" + +#: ../java/build/Countries.java:184 +msgid "Serbia" +msgstr "Servië" + +#: ../java/build/Countries.java:185 +msgid "Russian Federation" +msgstr "Russche Federatie" + +#: ../java/build/Countries.java:186 +msgid "Rwanda" +msgstr "Rwanda" + +#: ../java/build/Countries.java:187 +msgid "Saudi Arabia" +msgstr "Saudi-Arabië" + +#: ../java/build/Countries.java:188 +msgid "Solomon Islands" +msgstr "Salomonseilanden" + +#: ../java/build/Countries.java:189 +msgid "Seychelles" +msgstr "Seychellen" + +#: ../java/build/Countries.java:190 +msgid "Sudan" +msgstr "Soedan" + +#: ../java/build/Countries.java:191 +msgid "Sweden" +msgstr "Zweden" + +#: ../java/build/Countries.java:192 +msgid "Singapore" +msgstr "Singapore" + +#: ../java/build/Countries.java:193 +msgid "Slovenia" +msgstr "Slovenië" + +#: ../java/build/Countries.java:194 +msgid "Slovakia" +msgstr "Slowakije" + +#: ../java/build/Countries.java:195 +msgid "Sierra Leone" +msgstr "Sierra Leone" + +#: ../java/build/Countries.java:196 +msgid "San Marino" +msgstr "San Marino" + +#: ../java/build/Countries.java:197 +msgid "Senegal" +msgstr "Senegal" + +#: ../java/build/Countries.java:198 +msgid "Somalia" +msgstr "Somalië" + +#: ../java/build/Countries.java:199 +msgid "Suriname" +msgstr "Suriname" + +#: ../java/build/Countries.java:200 +msgid "Sao Tome and Principe" +msgstr "Sao Tomé en Principe" + +#: ../java/build/Countries.java:201 +msgid "El Salvador" +msgstr "El Salvador" + +#: ../java/build/Countries.java:202 +msgid "Syrian Arab Republic" +msgstr "Syrië" + +#: ../java/build/Countries.java:203 +msgid "Swaziland" +msgstr "Swaziland" + +#: ../java/build/Countries.java:204 +msgid "Turks and Caicos Islands" +msgstr "Turks- en Caicoseilanden" + +#: ../java/build/Countries.java:205 +msgid "Chad" +msgstr "Tsjaad" + +#: ../java/build/Countries.java:206 +msgid "French Southern Territories" +msgstr "Franse Zuidelijke Gebieden" + +#: ../java/build/Countries.java:207 +msgid "Togo" +msgstr "Togo" + +#: ../java/build/Countries.java:208 +msgid "Thailand" +msgstr "Thailand" + +#: ../java/build/Countries.java:209 +msgid "Tajikistan" +msgstr "Tadzjikistan" + +#: ../java/build/Countries.java:210 +msgid "Tokelau" +msgstr "Tokelau" + +#: ../java/build/Countries.java:211 +msgid "Timor-Leste" +msgstr "Oost-Timor" + +#: ../java/build/Countries.java:212 +msgid "Turkmenistan" +msgstr "Turkmenistan" + +#: ../java/build/Countries.java:213 +msgid "Tunisia" +msgstr "Tunesië" + +#: ../java/build/Countries.java:214 +msgid "Tonga" +msgstr "Tonga" + +#: ../java/build/Countries.java:215 +msgid "Turkey" +msgstr "Turkije" + +#: ../java/build/Countries.java:216 +msgid "Trinidad and Tobago" +msgstr "Trinidad en Tobago" + +#: ../java/build/Countries.java:217 +msgid "Tuvalu" +msgstr "Tuvalu" + +#: ../java/build/Countries.java:218 +msgid "Taiwan" +msgstr "Taiwan" + +#: ../java/build/Countries.java:219 +msgid "United Republic of Tanzania" +msgstr "Verenigde Republiek Tanzania" + +#: ../java/build/Countries.java:220 +msgid "Ukraine" +msgstr "Oekraïne" + +#: ../java/build/Countries.java:221 +msgid "Uganda" +msgstr "Oeganda" + +#: ../java/build/Countries.java:222 +msgid "United States Minor Outlying Islands" +msgstr "Kleine Pacifische eilanden van de Verenigde Staten" + +#: ../java/build/Countries.java:223 +msgid "United States" +msgstr "Verenigde Staten" + +#: ../java/build/Countries.java:224 +msgid "Uruguay" +msgstr "Uruguay" + +#: ../java/build/Countries.java:225 +msgid "Uzbekistan" +msgstr "Oezbekistan" + +#: ../java/build/Countries.java:226 +msgid "Holy See (Vatican City State)" +msgstr "Vaticaanstad" + +#: ../java/build/Countries.java:227 +msgid "Saint Vincent and the Grenadines" +msgstr "Saint Vincent en de Grenadines" + +#: ../java/build/Countries.java:228 +msgid "Venezuela" +msgstr "Venezuela" + +#: ../java/build/Countries.java:229 +#: ../java/build/Countries.java:230 +msgid "Virgin Islands" +msgstr "Virgin-eilanden" + +#: ../java/build/Countries.java:231 +msgid "Viet Nam" +msgstr "Viet Nam" + +#: ../java/build/Countries.java:232 +msgid "Vanuatu" +msgstr "Vanuatu" + +#: ../java/build/Countries.java:233 +msgid "Wallis and Futuna" +msgstr "Wallis en Futuna" + +#: ../java/build/Countries.java:234 +msgid "Samoa" +msgstr "Samoa" + +#: ../java/build/Countries.java:235 +msgid "Yemen" +msgstr "Jemen" + +#: ../java/build/Countries.java:236 +msgid "Mayotte" +msgstr "Mayotte" + +#: ../java/build/Countries.java:237 +msgid "South Africa" +msgstr "Zuid Afrika" + +#: ../java/build/Countries.java:238 +msgid "Zambia" +msgstr "Zambia" + +#: ../java/build/Countries.java:239 +msgid "Zimbabwe" +msgstr "Zimbabwe" + +#: ../java/src/net/i2p/router/web/CSSHelper.java:57 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:34 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:36 +#: ../java/strings/Strings.java:29 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/index_jsp.java:234 +msgid "I2P Router Console" +msgstr "I2P Router Console" + +#: ../java/src/net/i2p/router/web/ConfigAdvancedHandler.java:57 +msgid "Error updating the configuration - please see the error logs" +msgstr "Fout bij updaten dan de configuratie - kijk in de fout logs" + +#: ../java/src/net/i2p/router/web/ConfigAdvancedHandler.java:69 +#: ../java/src/net/i2p/router/web/ConfigNetHandler.java:266 +msgid "Configuration saved successfully" +msgstr "Configuratie succesvol opgeslagen" + +#: ../java/src/net/i2p/router/web/ConfigAdvancedHandler.java:71 +#: ../java/src/net/i2p/router/web/ConfigNetHandler.java:268 +msgid "Error saving the configuration (applied but not saved) - please see the error logs" +msgstr "Fout bij opslaan van de configuratie (toegepast, maar niet opgeslagen) - kijk in de fout logs" + +#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:34 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:334 +msgid "Save Client Configuration" +msgstr "Client Configuratie Opslaan" + +#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:38 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:346 +msgid "Save WebApp Configuration" +msgstr "WebApp Configuratie Opslaan" + +#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:42 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:356 +msgid "Save Plugin Configuration" +msgstr "Plugin Configuratie Opslaan" + +#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:46 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:362 +msgid "Install Plugin" +msgstr "Installeer Plugin" + +#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:82 +#, java-format +msgid "Deleted plugin {0}" +msgstr "Plugin {0} verwijderd" + +#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:84 +#, java-format +msgid "Error deleting plugin {0}" +msgstr "Fout bij verwijderen plugin {0}" + +#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:96 +#, java-format +msgid "Stopped plugin {0}" +msgstr "Plugin {0} gestopt" + +#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:98 +#, java-format +msgid "Error stopping plugin {0}" +msgstr "Fout bij stoppen plugin {0}" + +#. label (IE) +#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:119 +#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:189 +msgid "Start" +msgstr "Start" + +#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:138 +#: ../java/src/net/i2p/router/web/ConfigKeyringHandler.java:49 +#: ../java/src/net/i2p/router/web/ConfigPeerHandler.java:61 +msgid "Unsupported" +msgstr "Niet ondersteund" + +#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:184 +msgid "New client added" +msgstr "Nieuwe client toegevoegd" + +#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:188 +msgid "Client configuration saved successfully - restart required to take effect." +msgstr "Client configuratie succesvol opgeslagen - herstart nodig" + +#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:202 +#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:213 +msgid "Bad client index." +msgstr "Foute client index." + +#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:207 +#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:218 +#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:38 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:374 +#: ../java/src/net/i2p/router/web/SummaryHelper.java:379 +msgid "Client" +msgstr "Client" + +#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:207 +#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:266 +msgid "started" +msgstr "gestart" + +#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:218 +msgid "deleted" +msgstr "verwijderd" + +#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:235 +msgid "WebApp configuration saved." +msgstr "WebApp configuratie opgeslagen." + +#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:251 +msgid "Plugin configuration saved." +msgstr "Plugin configuratie opgeslagen." + +#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:266 +#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:58 +msgid "WebApp" +msgstr "WebApp" + +#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:268 +msgid "Failed to start" +msgstr "Gefaald te starten" + +#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:273 +msgid "Failed to find server." +msgstr "Gefaald om server te vinden." + +#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:279 +msgid "No plugin URL specified." +msgstr "Geen plugin URL gespecificeerd." + +#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:289 +#, java-format +msgid "No update URL specified for {0}" +msgstr "Geen update URL gespecificeerd voor {0}" + +#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:297 +#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:302 +#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:315 +#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:320 +msgid "Plugin or update download already in progress." +msgstr "Plugin of update download is reeds bezig." + +#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:306 +#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:117 +#, java-format +msgid "Downloading plugin from {0}" +msgstr "Downloaden plugin van {0}" + +#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:324 +#, java-format +msgid "Checking plugin {0} for updates" +msgstr "Controlleer plugin {0} voor updates" + +#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:334 +#, java-format +msgid "Started plugin {0}" +msgstr "Plugin {0} gestart" + +#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:336 +#, java-format +msgid "Error starting plugin {0}" +msgstr "Fout bij starten plugin {0}" + +#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:21 +#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:192 +msgid "Edit" +msgstr "Bewerk" + +#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:30 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:330 +msgid "Add Client" +msgstr "Client Toevoegen" + +#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:38 +msgid "Class and arguments" +msgstr "Class en argumenten" + +#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:38 +#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:58 +#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:82 +msgid "Control" +msgstr "Controlle" + +#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:38 +#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:58 +#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:82 +msgid "Run at Startup?" +msgstr "Start bij opstarten?" + +#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:58 +#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:82 +#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:131 +msgid "Description" +msgstr "Omschrijving" + +#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:82 +msgid "Plugin" +msgstr "Plugin" + +#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:95 +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:268 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:169 +msgid "Version" +msgstr "Versie" + +#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:97 +msgid "Signed by" +msgstr "Ondertekend door" + +#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:114 +msgid "Date" +msgstr "Datum" + +#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:120 +msgid "Author" +msgstr "Auteur" + +#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:136 +msgid "License" +msgstr "Licentie" + +#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:141 +msgid "Website" +msgstr "Website" + +#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:146 +msgid "Update link" +msgstr "Update link" + +#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:194 +msgid "Stop" +msgstr "Stop" + +#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:196 +#: ../java/src/net/i2p/router/web/ConfigUpdateHandler.java:81 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:312 +msgid "Check for updates" +msgstr "Controlleer op updates" + +#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:197 +#: ../java/src/net/i2p/router/web/ConfigNavHelper.java:18 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:217 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:224 +msgid "Update" +msgstr "Update" + +#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:202 +#, java-format +msgid "Are you sure you want to delete {0}?" +msgstr "Weet je zeker dat je {0} wilt verwijderen?" + +#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:204 +msgid "Delete" +msgstr "Verwijder" + +#: ../java/src/net/i2p/router/web/ConfigKeyringHandler.java:18 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:324 +msgid "Add key" +msgstr "Sleutel toevoegen" + +#: ../java/src/net/i2p/router/web/ConfigKeyringHandler.java:19 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:322 +msgid "Delete key" +msgstr "Steutel verwijderen" + +#: ../java/src/net/i2p/router/web/ConfigKeyringHandler.java:21 +msgid "You must enter a destination" +msgstr "Je moet een bestemming opgeven" + +#: ../java/src/net/i2p/router/web/ConfigKeyringHandler.java:23 +msgid "You must enter a key" +msgstr "Je moet een sleutel opgeven" + +#: ../java/src/net/i2p/router/web/ConfigKeyringHandler.java:34 +#: ../java/src/net/i2p/router/web/ConfigKeyringHandler.java:41 +#: ../java/src/net/i2p/router/web/ConfigKeyringHandler.java:43 +msgid "Key for" +msgstr "Sleutel voor" + +#: ../java/src/net/i2p/router/web/ConfigKeyringHandler.java:34 +msgid "added to keyring" +msgstr "toegevoegd aan sleutelbos" + +#: ../java/src/net/i2p/router/web/ConfigKeyringHandler.java:36 +msgid "Invalid destination or key" +msgstr "Bestemming of sleutel ongeldig" + +#: ../java/src/net/i2p/router/web/ConfigKeyringHandler.java:41 +msgid "removed from keyring" +msgstr "verwijders van sleutelbos" + +#: ../java/src/net/i2p/router/web/ConfigKeyringHandler.java:43 +msgid "not found in keyring" +msgstr "niet gevonden in sleutelbos" + +#: ../java/src/net/i2p/router/web/ConfigKeyringHandler.java:45 +msgid "Invalid destination" +msgstr "Ongeldige bestemming" + +#: ../java/src/net/i2p/router/web/ConfigLoggingHelper.java:46 +msgid "Add additional logging statements above. Example: net.i2p.router.tunnel=WARN" +msgstr "Voeg additionele logging regels boven toe. Bijvoorbeeld: net.i2p.router.tunnel=WARN" + +#: ../java/src/net/i2p/router/web/ConfigLoggingHelper.java:47 +msgid "Or put entries in the logger.config file. Example: logger.record.net.i2p.router.tunnel=WARN" +msgstr "Of stop regels in het logger.config bestand. Bijvoorbeeld: logger.record.net.i2p.router.tunnel=WARN" + +#: ../java/src/net/i2p/router/web/ConfigLoggingHelper.java:48 +msgid "Valid levels are DEBUG, INFO, WARN, ERROR, CRIT" +msgstr "Geldige niveaus zijn DEBUG, INFO, WARN, ERROR, CRIT" + +#: ../java/src/net/i2p/router/web/ConfigLoggingHelper.java:52 +msgid "CRIT" +msgstr "CRIT" + +#: ../java/src/net/i2p/router/web/ConfigLoggingHelper.java:52 +msgid "DEBUG" +msgstr "DEBUG" + +#: ../java/src/net/i2p/router/web/ConfigLoggingHelper.java:52 +msgid "ERROR" +msgstr "ERROR" + +#: ../java/src/net/i2p/router/web/ConfigLoggingHelper.java:52 +msgid "INFO" +msgstr "INFO" + +#: ../java/src/net/i2p/router/web/ConfigLoggingHelper.java:52 +msgid "WARN" +msgstr "WARN" + +#: ../java/src/net/i2p/router/web/ConfigNavHelper.java:18 +msgid "Network" +msgstr "Netwerk" + +#: ../java/src/net/i2p/router/web/ConfigNavHelper.java:18 +msgid "Service" +msgstr "Service" + +#: ../java/src/net/i2p/router/web/ConfigNavHelper.java:18 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:94 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:363 +#: ../java/strings/Strings.java:72 +msgid "Tunnels" +msgstr "Tunnels" + +#: ../java/src/net/i2p/router/web/ConfigNavHelper.java:18 +msgid "UI" +msgstr "UI" + +#: ../java/src/net/i2p/router/web/ConfigNavHelper.java:19 +msgid "Clients" +msgstr "Clients" + +#: ../java/src/net/i2p/router/web/ConfigNavHelper.java:19 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:292 +msgid "Keyring" +msgstr "Sleutelbos" + +#: ../java/src/net/i2p/router/web/ConfigNavHelper.java:19 +msgid "Logging" +msgstr "Logging" + +#: ../java/src/net/i2p/router/web/ConfigNavHelper.java:19 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:100 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:242 +#: ../java/strings/Strings.java:67 +msgid "Peers" +msgstr "Peers" + +#: ../java/src/net/i2p/router/web/ConfigNavHelper.java:19 +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:382 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:136 +msgid "Stats" +msgstr "Statistieken" + +#: ../java/src/net/i2p/router/web/ConfigNavHelper.java:20 +msgid "Advanced" +msgstr "Geavanceerd" + +#: ../java/src/net/i2p/router/web/ConfigNetHandler.java:48 +#: ../java/src/net/i2p/router/web/ConfigNetHandler.java:264 +#: ../java/src/net/i2p/router/web/ConfigTunnelsHandler.java:35 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:359 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:515 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configadvanced_jsp.java:305 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:335 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:375 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configtunnels_jsp.java:343 +msgid "Save changes" +msgstr "Opslaan" + +#: ../java/src/net/i2p/router/web/ConfigNetHandler.java:121 +msgid "Rechecking router reachability..." +msgstr "Bereikbaarheid van router opnieuw aan het controlleren..." + +#: ../java/src/net/i2p/router/web/ConfigNetHandler.java:153 +msgid "Updating IP address" +msgstr "Updaten van IP adres" + +#: ../java/src/net/i2p/router/web/ConfigNetHandler.java:171 +msgid "Disabling TCP completely" +msgstr "TCP volledig uitgeschakelen" + +#: ../java/src/net/i2p/router/web/ConfigNetHandler.java:175 +msgid "Updating inbound TCP address to" +msgstr "Updaten van inkomend TCP adres naar" + +#: ../java/src/net/i2p/router/web/ConfigNetHandler.java:179 +msgid "Disabling inbound TCP" +msgstr "Inkomende TCP uitschakelen" + +#: ../java/src/net/i2p/router/web/ConfigNetHandler.java:181 +msgid "Updating inbound TCP address to auto" +msgstr "Updaten inkomend TCP adres naar automatisch" + +#: ../java/src/net/i2p/router/web/ConfigNetHandler.java:190 +msgid "Updating inbound TCP port to" +msgstr "Updaten inkomend TCP poort naar" + +#: ../java/src/net/i2p/router/web/ConfigNetHandler.java:193 +msgid "Updating inbound TCP port to auto" +msgstr "Updaten inkomend TCP poort naar automatisch" + +#: ../java/src/net/i2p/router/web/ConfigNetHandler.java:205 +msgid "Updating UDP port from" +msgstr "Updaten UDP poort van" + +#: ../java/src/net/i2p/router/web/ConfigNetHandler.java:205 +msgid "to" +msgstr "naar" + +#: ../java/src/net/i2p/router/web/ConfigNetHandler.java:221 +msgid "Gracefully restarting into Hidden Router Mode" +msgstr "Gecontrolleerd herstarten in Verborgen Router Modus" + +#: ../java/src/net/i2p/router/web/ConfigNetHandler.java:223 +msgid "Gracefully restarting to exit Hidden Router Mode" +msgstr "Gecontrolleerd herstarten om Verborgen Router Modus te verlaten" + +#: ../java/src/net/i2p/router/web/ConfigNetHandler.java:232 +msgid "Enabling UPnP, restart required to take effect" +msgstr "UPnP ingeschakeld, herstart nodig" + +#: ../java/src/net/i2p/router/web/ConfigNetHandler.java:234 +msgid "Disabling UPnP, restart required to take effect" +msgstr "UPnP uitgeschakeld, herstart nodig" + +#: ../java/src/net/i2p/router/web/ConfigNetHandler.java:242 +msgid "Enabling laptop mode" +msgstr "Laptop modus ingeschakeld" + +#: ../java/src/net/i2p/router/web/ConfigNetHandler.java:244 +msgid "Disabling laptop mode" +msgstr "Laptop modes uitgeschakeld" + +#: ../java/src/net/i2p/router/web/ConfigNetHandler.java:250 +msgid "Requiring SSU introducers" +msgstr "SSU introducers nodig" + +#. There's a few changes that don't really require restart (e.g. enabling inbound TCP) +#. But it would be hard to get right, so just do a restart. +#: ../java/src/net/i2p/router/web/ConfigNetHandler.java:291 +msgid "Gracefully restarting I2P to change published router address" +msgstr "Gecontrolleerd herstarten om publiek router adres te wijzigen" + +#: ../java/src/net/i2p/router/web/ConfigNetHandler.java:314 +msgid "Updating bandwidth share percentage" +msgstr "Updaten van bandbreedte share percentage" + +#: ../java/src/net/i2p/router/web/ConfigNetHandler.java:397 +msgid "Updated bandwidth limits" +msgstr "Updaten van bandbreedte limieten" + +#: ../java/src/net/i2p/router/web/ConfigNetHelper.java:39 +#: ../java/src/net/i2p/router/web/ConfigNetHelper.java:47 +#: ../java/src/net/i2p/router/web/ConfigNetHelper.java:50 +#: ../java/src/net/i2p/router/web/ConfigNetHelper.java:57 +#: ../java/src/net/i2p/router/web/ConfigNetHelper.java:60 +msgid "unknown" +msgstr "ombekend" + +#: ../java/src/net/i2p/router/web/ConfigNetHelper.java:169 +msgid "bits per second" +msgstr "bits per seconde" + +#: ../java/src/net/i2p/router/web/ConfigNetHelper.java:170 +#, java-format +msgid "or {0} bytes per month maximum" +msgstr "of {0} bytes per maand maximaal" + +#: ../java/src/net/i2p/router/web/ConfigPeerHandler.java:20 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:314 +msgid "Ban peer until restart" +msgstr "Verban peer tot aan herstart" + +#: ../java/src/net/i2p/router/web/ConfigPeerHandler.java:23 +#, java-format +msgid "Manually banned via {0}" +msgstr "Handmatig verbannen via {0}" + +#: ../java/src/net/i2p/router/web/ConfigPeerHandler.java:24 +msgid "banned until restart" +msgstr "verbannen tot aan herstart" + +#: ../java/src/net/i2p/router/web/ConfigPeerHandler.java:27 +#: ../java/src/net/i2p/router/web/ConfigPeerHandler.java:38 +#: ../java/src/net/i2p/router/web/ConfigPeerHandler.java:59 +msgid "Invalid peer" +msgstr "Ongeldige peer" + +#: ../java/src/net/i2p/router/web/ConfigPeerHandler.java:28 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:316 +msgid "Unban peer" +msgstr "Hef verbanning van peer op" + +#: ../java/src/net/i2p/router/web/ConfigPeerHandler.java:33 +msgid "unbanned" +msgstr "verbanning opgeheven" + +#: ../java/src/net/i2p/router/web/ConfigPeerHandler.java:35 +msgid "is not currently banned" +msgstr "is op dit moment niet verbannen" + +#: ../java/src/net/i2p/router/web/ConfigPeerHandler.java:39 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:322 +msgid "Adjust Profile Bonuses" +msgstr "Aanpassing van Profiel Bonussen" + +#: ../java/src/net/i2p/router/web/ConfigPeerHandler.java:47 +msgid "Bad speed value" +msgstr "Foutieve snelheids waarde" + +#: ../java/src/net/i2p/router/web/ConfigPeerHandler.java:52 +msgid "Bad capacity value" +msgstr "Foutieve capaciteits waarde" + +#. Normal browsers send value, IE sends button label +#: ../java/src/net/i2p/router/web/ConfigRestartBean.java:32 +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:57 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:292 +msgid "Shutdown immediately" +msgstr "Onmiddelijk afsluiten" + +#. ctx.router().shutdown(Router.EXIT_HARD); // never returns +#. give the UI time to respond +#: ../java/src/net/i2p/router/web/ConfigRestartBean.java:36 +msgid "Cancel shutdown" +msgstr "Afsluiten annuleren" + +#: ../java/src/net/i2p/router/web/ConfigRestartBean.java:37 +msgid "Cancel restart" +msgstr "Herstart annuleren" + +#: ../java/src/net/i2p/router/web/ConfigRestartBean.java:39 +msgid "Restart immediately" +msgstr "Herstart onmiddelijk" + +#. ctx.router().shutdown(Router.EXIT_HARD_RESTART); // never returns +#. give the UI time to respond +#: ../java/src/net/i2p/router/web/ConfigRestartBean.java:43 +msgid "Restart" +msgstr "Herstart" + +#: ../java/src/net/i2p/router/web/ConfigRestartBean.java:46 +msgid "Shutdown" +msgstr "Stoppen" + +#: ../java/src/net/i2p/router/web/ConfigRestartBean.java:59 +msgid "Restart imminent" +msgstr "Herstart op handen" + +#: ../java/src/net/i2p/router/web/ConfigRestartBean.java:61 +msgid "Shutdown imminent" +msgstr "Afsluiten op handen" + +#: ../java/src/net/i2p/router/web/ConfigRestartBean.java:65 +#, java-format +msgid "Shutdown in {0}" +msgstr "Afsluiten in {0}" + +#: ../java/src/net/i2p/router/web/ConfigRestartBean.java:70 +#, java-format +msgid "Restart in {0}" +msgstr "Herstart in {0}" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:53 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:290 +msgid "Shutdown gracefully" +msgstr "Gecontrolleerd afsluiten" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:56 +msgid "Graceful shutdown initiated" +msgstr "Gecontrolleerde stop geinitieerd" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:60 +msgid "Shutdown immediately! boom bye bye bad bwoy" +msgstr "Onmiddelijk afsluiten! doei" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:61 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:294 +msgid "Cancel graceful shutdown" +msgstr "Annuleer gecontrolleerde stop" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:63 +msgid "Graceful shutdown cancelled" +msgstr "Gecontrolleerd afsluiten afgebroken" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:64 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:306 +msgid "Graceful restart" +msgstr "Gecontrolleerde herstart" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:67 +msgid "Graceful restart requested" +msgstr "Gecontrolleerde herstart aangevraagd" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:68 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:308 +msgid "Hard restart" +msgstr "Harde herstart" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:71 +msgid "Hard restart requested" +msgstr "Harde herstart aangevraagd" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:72 +msgid "Rekey and Restart" +msgstr "Hersleutel en Herstart" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:73 +msgid "Rekeying after graceful restart" +msgstr "Hersleuteling na gecontrolleerde herstart" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:76 +msgid "Rekey and Shutdown" +msgstr "Hersleutel en Stoppen" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:77 +msgid "Rekeying after graceful shutdown" +msgstr "Hersleuteling na gecontrolleerde stop" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:80 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:334 +msgid "Run I2P on startup" +msgstr "Start I2P bij opstarten" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:82 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:336 +msgid "Don't run I2P on startup" +msgstr "Start I2P niet bij opstarten" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:84 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:354 +msgid "Dump threads" +msgstr "Dump threads" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:91 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:322 +msgid "Show systray icon" +msgstr "Toon systray icon" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:96 +msgid "System tray icon enabled." +msgstr "System tray icon ingeschakeld." + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:98 +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:110 +msgid "System tray icon feature not supported on this platform. Sorry!" +msgstr "System tray icon feature not ondersteund op dit platform. Sorry!" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:101 +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:113 +msgid "Warning: unable to contact the systray manager" +msgstr "Waarschuwing: kan geen verbinding maken met de systray manager" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:103 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:324 +msgid "Hide systray icon" +msgstr "Verberg systray icon" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:108 +msgid "System tray icon disabled." +msgstr "System tray icon uitgeschakeld." + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:115 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:362 +msgid "View console on startup" +msgstr "Toon console na opstarten" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:117 +msgid "Console is to be shown on startup" +msgstr "Console wordt getoond na opstarten" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:118 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:364 +msgid "Do not view console on startup" +msgstr "Toon console niet na opstarten" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:120 +msgid "Console is not to be shown on startup" +msgstr "De console wordt niet getoond na opstarten" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:129 +msgid "Service installed" +msgstr "Service geinstalleerd" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:131 +msgid "Warning: unable to install the service" +msgstr "Waarschuwing: kan de service niet installeren" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:137 +msgid "Service removed" +msgstr "Service verwijderd" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:139 +msgid "Warning: unable to remove the service" +msgstr "Waarschuwing: kan de service niet verwijderen" + +#: ../java/src/net/i2p/router/web/ConfigStatsHandler.java:118 +msgid "Stat filter and location updated successfully to" +msgstr "Statistiek filter en lokatie gesuccesvol geupdate in" + +#: ../java/src/net/i2p/router/web/ConfigStatsHandler.java:120 +msgid "Failed to update the stat filter and location" +msgstr "Kan de statistiek filter en locatie niet updaten" + +#: ../java/src/net/i2p/router/web/ConfigStatsHandler.java:121 +msgid "Graph list updated, may take up to 60s to be reflected here and on the Graphs Page" +msgstr "Grafiek lijst geupdate, kan 60s duren voordat dit op deze plek en de Grafiek Pagina door komt" + +#. the count isn't really correct anyway, since we don't check for actual changes +#. addFormNotice("Updated settings for " + updated + " pools."); +#: ../java/src/net/i2p/router/web/ConfigTunnelsHandler.java:137 +msgid "Updated settings for all pools." +msgstr "Instelling voor alle pools geupdate." + +#: ../java/src/net/i2p/router/web/ConfigTunnelsHandler.java:142 +msgid "Exploratory tunnel configuration saved successfully." +msgstr "Exploratory tunnel configuratie succesvol opgeslagen." + +#: ../java/src/net/i2p/router/web/ConfigTunnelsHandler.java:144 +#: ../java/src/net/i2p/router/web/ConfigUIHandler.java:36 +msgid "Error saving the configuration (applied but not saved) - please see the error logs." +msgstr "Fout bij opslaan van de configuratie (toegepast maar niet opgeslagen) - kijk in de fout logs." + +#. * dummies for translation +#: ../java/src/net/i2p/router/web/ConfigTunnelsHelper.java:14 +#, java-format +msgid "1 hop" +msgid_plural "{0} hops" +msgstr[0] "1 hop" +msgstr[1] "{0} hops" + +#: ../java/src/net/i2p/router/web/ConfigTunnelsHelper.java:15 +#, java-format +msgid "1 tunnel" +msgid_plural "{0} tunnels" +msgstr[0] "1 tunnel" +msgstr[1] "{0} tunnels" + +#: ../java/src/net/i2p/router/web/ConfigTunnelsHelper.java:26 +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:41 +msgid "Exploratory tunnels" +msgstr "Exploratory tunnels" + +#: ../java/src/net/i2p/router/web/ConfigTunnelsHelper.java:46 +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:61 +msgid "Client tunnels for" +msgstr "Client tunnels voor" + +#: ../java/src/net/i2p/router/web/ConfigTunnelsHelper.java:69 +msgid "ANONYMITY WARNING - Settings include 0-hop tunnels." +msgstr "ANONIMITEITS WAARSCHUWING - Instellingen bevatten 0-hop tunnels." + +#: ../java/src/net/i2p/router/web/ConfigTunnelsHelper.java:74 +msgid "ANONYMITY WARNING - Settings include 1-hop tunnels." +msgstr "ANONIMITEITS WAARSCHUWING - Instellingen bevatten 1-hop tunnels." + +#: ../java/src/net/i2p/router/web/ConfigTunnelsHelper.java:77 +msgid "PERFORMANCE WARNING - Settings include very long tunnels." +msgstr "PRESTATIE WAARSCHUWING - Instellingen bevatten erg lange tunnels." + +#: ../java/src/net/i2p/router/web/ConfigTunnelsHelper.java:80 +msgid "PERFORMANCE WARNING - Settings include high tunnel quantities." +msgstr "PRESTATIE WAARSCHUWING - Instellingen bevatten hoge tunnel aantallen." + +#. buf.append("InboundOutbound\n"); +#. tunnel depth +#: ../java/src/net/i2p/router/web/ConfigTunnelsHelper.java:87 +msgid "Length" +msgstr "Lengte" + +#. tunnel depth variance +#: ../java/src/net/i2p/router/web/ConfigTunnelsHelper.java:104 +msgid "Randomization" +msgstr "Randomisatie" + +#. tunnel quantity +#: ../java/src/net/i2p/router/web/ConfigTunnelsHelper.java:128 +msgid "Quantity" +msgstr "Hoeveelheid" + +#. tunnel backup quantity +#: ../java/src/net/i2p/router/web/ConfigTunnelsHelper.java:145 +msgid "Backup quantity" +msgstr "Backup hoeveelheid" + +#: ../java/src/net/i2p/router/web/ConfigTunnelsHelper.java:167 +msgid "Inbound options" +msgstr "Inkomende opties" + +#: ../java/src/net/i2p/router/web/ConfigTunnelsHelper.java:180 +msgid "Outbound options" +msgstr "Uitgaande opties" + +#: ../java/src/net/i2p/router/web/ConfigUIHandler.java:31 +msgid "Theme change saved." +msgstr "Thema wijziging opgeslagen." + +#: ../java/src/net/i2p/router/web/ConfigUIHandler.java:33 +msgid "Refresh the page to view." +msgstr "Ververs de te bekijken pagina." + +#: ../java/src/net/i2p/router/web/ConfigUIHelper.java:51 +msgid "English" +msgstr "Engels" + +#: ../java/src/net/i2p/router/web/ConfigUIHelper.java:51 +msgid "French" +msgstr "Frans" + +#: ../java/src/net/i2p/router/web/ConfigUIHelper.java:51 +msgid "German" +msgstr "Duits" + +#: ../java/src/net/i2p/router/web/ConfigUIHelper.java:52 +msgid "Chinese" +msgstr "Chinees" + +#: ../java/src/net/i2p/router/web/ConfigUIHelper.java:52 +msgid "Dutch" +msgstr "Nederlands" + +#: ../java/src/net/i2p/router/web/ConfigUIHelper.java:52 +msgid "Russian" +msgstr "Russies" + +#: ../java/src/net/i2p/router/web/ConfigUIHelper.java:52 +msgid "Swedish" +msgstr "Zweeds" + +#: ../java/src/net/i2p/router/web/ConfigUpdateHandler.java:88 +msgid "Update available, attempting to download now" +msgstr "Update beschikbaar, probeer nu te downloaden" + +#: ../java/src/net/i2p/router/web/ConfigUpdateHandler.java:90 +msgid "Update available, click button on left to download" +msgstr "Update beschikbaar, klik op de linker knop om te downloaden" + +#: ../java/src/net/i2p/router/web/ConfigUpdateHandler.java:96 +msgid "No update available" +msgstr "Geen update beschikbaar" + +#: ../java/src/net/i2p/router/web/ConfigUpdateHandler.java:104 +msgid "Updating news URL to" +msgstr "Updaten nieuws URL in" + +#: ../java/src/net/i2p/router/web/ConfigUpdateHandler.java:112 +msgid "Updating proxy host to" +msgstr "Updaten proxy host in" + +#: ../java/src/net/i2p/router/web/ConfigUpdateHandler.java:120 +msgid "Updating proxy port to" +msgstr "Updaten proxy poort in" + +#: ../java/src/net/i2p/router/web/ConfigUpdateHandler.java:133 +msgid "Updating refresh frequency to" +msgstr "Updaten vernieuw frequentie in" + +#: ../java/src/net/i2p/router/web/ConfigUpdateHandler.java:140 +msgid "Updating update policy to" +msgstr "Updaten update regels in" + +#: ../java/src/net/i2p/router/web/ConfigUpdateHandler.java:149 +msgid "Updating update URLs." +msgstr "Updaten update URLs." + +#: ../java/src/net/i2p/router/web/ConfigUpdateHandler.java:158 +msgid "Updating trusted keys." +msgstr "Updaten vertrouwde sleutels." + +#: ../java/src/net/i2p/router/web/ConfigUpdateHandler.java:166 +msgid "Updating unsigned update URL to" +msgstr "Updaten niet-ondertekende update URL in" + +#: ../java/src/net/i2p/router/web/ConfigUpdateHelper.java:88 +#: ../java/src/net/i2p/router/web/GraphHelper.java:138 +msgid "Never" +msgstr "Nooit" + +#: ../java/src/net/i2p/router/web/ConfigUpdateHelper.java:90 +msgid "Every" +msgstr "Elke" + +#: ../java/src/net/i2p/router/web/ConfigUpdateHelper.java:108 +msgid "Notify only" +msgstr "Alleen melden" + +#: ../java/src/net/i2p/router/web/ConfigUpdateHelper.java:115 +msgid "Download and verify only" +msgstr "Download en alleen controlleren" + +#: ../java/src/net/i2p/router/web/ConfigUpdateHelper.java:123 +msgid "Download, verify, and restart" +msgstr "Download, controlleer en herstart" + +#: ../java/src/net/i2p/router/web/FormHandler.java:163 +msgid "Invalid form submission, probably because you used the 'back' or 'reload' button on your browser. Please resubmit." +msgstr "Ongeldig formulier verzonden, mogelijk omdat je de 'terug' of 'vernieuw' knop in je browser hebt gebruikt. Probeer opnieuw te verzenden." + +#: ../java/src/net/i2p/router/web/GraphHelper.java:82 +msgid "Combined bandwidth graph" +msgstr "Gecombineerde bandbreedte grafiek" + +#. e.g. "statname for 60m" +#: ../java/src/net/i2p/router/web/GraphHelper.java:96 +#, java-format +msgid "{0} for {1}" +msgstr "{0} voor {1}" + +#: ../java/src/net/i2p/router/web/GraphHelper.java:130 +msgid "Configure Graph Display" +msgstr "Configureer Grafiek Weergave" + +#: ../java/src/net/i2p/router/web/GraphHelper.java:130 +msgid "Select Stats" +msgstr "Selecteer Statistieken" + +#: ../java/src/net/i2p/router/web/GraphHelper.java:132 +msgid "Periods" +msgstr "Perioden" + +#: ../java/src/net/i2p/router/web/GraphHelper.java:133 +msgid "Plot averages" +msgstr "Teken gemiddelden" + +#: ../java/src/net/i2p/router/web/GraphHelper.java:134 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:416 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:332 +msgid "or" +msgstr "of" + +#: ../java/src/net/i2p/router/web/GraphHelper.java:134 +msgid "plot events" +msgstr "teken gebeurtenissen" + +#: ../java/src/net/i2p/router/web/GraphHelper.java:135 +msgid "Image sizes" +msgstr "Afbeelding grootte" + +#: ../java/src/net/i2p/router/web/GraphHelper.java:135 +msgid "width" +msgstr "breedte" + +#: ../java/src/net/i2p/router/web/GraphHelper.java:136 +msgid "height" +msgstr "hoogte" + +#: ../java/src/net/i2p/router/web/GraphHelper.java:136 +#: ../java/src/net/i2p/router/web/GraphHelper.java:137 +msgid "pixels" +msgstr "pixels" + +#: ../java/src/net/i2p/router/web/GraphHelper.java:138 +msgid "Refresh delay" +msgstr "Ververs vertraging" + +#: ../java/src/net/i2p/router/web/GraphHelper.java:138 +msgid "hour" +msgstr "uur" + +#: ../java/src/net/i2p/router/web/GraphHelper.java:138 +msgid "minute" +msgstr "minuut" + +#: ../java/src/net/i2p/router/web/GraphHelper.java:138 +msgid "minutes" +msgstr "minuten" + +#: ../java/src/net/i2p/router/web/GraphHelper.java:139 +msgid "Redraw" +msgstr "Vernieuw" + +#: ../java/src/net/i2p/router/web/LogsHelper.java:13 +#: ../java/src/net/i2p/router/web/LogsHelper.java:37 +msgid "File location" +msgstr "Bestands lokatie" + +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:77 +msgid "Network Database RouterInfo Lookup" +msgstr "Netwerk Database RouterInfo Lookup" + +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:92 +#: ../java/strings/Strings.java:68 +msgid "Router" +msgstr "Router" + +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:92 +msgid "not found in network database" +msgstr "niet gevonden in netwerk database" + +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:104 +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:212 +msgid "Network Database Contents" +msgstr "Inhoud Netwerk Database" + +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:105 +msgid "View RouterInfo" +msgstr "Bekijk RouterInfo" + +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:106 +msgid "LeaseSets" +msgstr "LeaseSets" + +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:128 +msgid "LeaseSet" +msgstr "LeaseSet" + +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:130 +msgid "Local" +msgstr "Lokaal" + +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:132 +msgid "Unpublished" +msgstr "Niet-gepubliceerd" + +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:133 +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:140 +msgid "Destination" +msgstr "Bestemming" + +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:150 +#, java-format +msgid "Expires in {0}" +msgstr "Verloopt in {0}" + +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:152 +#, java-format +msgid "Expired {0} ago" +msgstr "Verliep {0} geleden" + +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:164 +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:156 +msgid "Gateway" +msgstr "Gateway" + +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:164 +msgid "Lease" +msgstr "Lease" + +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:166 +msgid "Tunnel" +msgstr "Tunnel" + +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:212 +msgid "View LeaseSets" +msgstr "Bekijk LeaseSets" + +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:214 +msgid "Not initialized" +msgstr "Niet geïnitialiseerd" + +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:223 +msgid "Routers" +msgstr "Routers" + +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:225 +msgid "Show all routers" +msgstr "Bekijk alle routers" + +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:227 +msgid "Show all routers with full stats" +msgstr "Bekijk alle routers met volledige statistieken" + +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:262 +msgid "Network Database Router Statistics" +msgstr "Netwerk Database Router Statistieken" + +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:268 +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:282 +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:300 +msgid "Count" +msgstr "Aantal" + +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:282 +msgid "Transports" +msgstr "Transports" + +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:300 +msgid "Country" +msgstr "Land" + +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:339 +msgid "Our info" +msgstr "Onze info" + +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:341 +msgid "Peer info for" +msgstr "Peer info voor" + +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:345 +msgid "Full entry" +msgstr "Volledige item" + +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:351 +#: ../java/src/net/i2p/router/web/SummaryHelper.java:110 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:600 +msgid "Hidden" +msgstr "Verborgen" + +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:351 +msgid "Updated" +msgstr "Geupdate" + +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:352 +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:355 +#, java-format +msgid "{0} ago" +msgstr "{0} geleden" + +#. shouldnt happen +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:354 +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:358 +msgid "Published" +msgstr "Gepubliceerd" + +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:360 +msgid "Address(es)" +msgstr "Adres(sen)" + +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:373 +msgid "cost" +msgstr "kosten" + +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:397 +msgid "Hidden or starting up" +msgstr "Verborgen of aan het opstarten" + +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:397 +msgid "SSU" +msgstr "SSU" + +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:397 +msgid "SSU with introducers" +msgstr "SSU met introducers" + +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:398 +msgid "NTCP" +msgstr "NTCP" + +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:398 +msgid "NTCP and SSU" +msgstr "NTCP en SSU" + +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:398 +msgid "NTCP and SSU with introducers" +msgstr "NTCP en SSU met introducers" + +#: ../java/src/net/i2p/router/web/NewsFetcher.java:82 +#, java-format +msgid "News last updated {0} ago." +msgstr "Nieuws {0} geleden voor het laatste geupdate." + +#: ../java/src/net/i2p/router/web/NewsFetcher.java:88 +#, java-format +msgid "News last checked {0} ago." +msgstr "Nieuws {0} geleden voor het laatste gecontrolleerd." + +#: ../java/src/net/i2p/router/web/PluginUpdateChecker.java:77 +#, java-format +msgid "Cannot check, plugin {0} is not installed" +msgstr "Kan niet controlleren, plugin {0} is niet geïnstalleerd." + +#: ../java/src/net/i2p/router/web/PluginUpdateChecker.java:129 +#, java-format +msgid "Checking for update of plugin {0}" +msgstr "Controlleren op update van plugin {0}" + +#: ../java/src/net/i2p/router/web/PluginUpdateChecker.java:154 +#, java-format +msgid "New plugin version {0} is available" +msgstr "Nieuwe plugin versie {0} is beschikbaar" + +#: ../java/src/net/i2p/router/web/PluginUpdateChecker.java:156 +#, java-format +msgid "No new version is available for plugin {0}" +msgstr "Geen nieuwe versie beschikbaar voor plugin {0}" + +#: ../java/src/net/i2p/router/web/PluginUpdateChecker.java:165 +#, java-format +msgid "Update check failed for plugin {0}" +msgstr "Update check voor plugin {0} gefaald" + +#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:138 +msgid "Downloading plugin" +msgstr "Downloaden van plugin" + +#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:145 +#: ../java/src/net/i2p/router/web/UpdateHandler.java:179 +#, java-format +msgid "{0}B transferred" +msgstr "{0}B ontvangen" + +#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:151 +msgid "Plugin downloaded" +msgstr "Plugin gedownload" + +#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:156 +#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:343 +#, java-format +msgid "Cannot create plugin directory {0}" +msgstr "Kan plugin directory {0} niet maken" + +#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:165 +#: ../java/src/net/i2p/router/web/UpdateHandler.java:220 +#, java-format +msgid "from {0}" +msgstr "van {0}" + +#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:175 +#, java-format +msgid "Plugin from {0} is corrupt" +msgstr "Plugin van {0} is corrupt" + +#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:186 +#, java-format +msgid "Plugin from {0} does not contain the required configuration file" +msgstr "Plugin van {0} bevat niet het vereiste configuratie bestand" + +#. updateStatus("" + "Plugin contains an invalid key" + ' ' + pubkey + ' ' + signer + ""); +#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:199 +#, java-format +msgid "Plugin from {0} contains an invalid key" +msgstr "Plugin van {0} bevat een ongeldige sleutel" + +#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:218 +#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:227 +#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:236 +#, java-format +msgid "Plugin signature verification of {0} failed" +msgstr "Plugin handtekening verificatie van {0} gefaald" + +#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:251 +#, java-format +msgid "Plugin from {0} has invalid name or version" +msgstr "Plugin van {0} heeft ingeldige naam of versie" + +#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:256 +#, java-format +msgid "Plugin {0} has mismatched versions" +msgstr "Plugin {0} heeft een verkeerde combinatie van versies" + +#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:264 +#, java-format +msgid "This plugin requires I2P version {0} or higher" +msgstr "Deze plugin heeft I2P versie {0} of hoger nodig" + +#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:272 +#, java-format +msgid "This plugin requires Java version {0} or higher" +msgstr "Deze plugin heeft Java versie {0} of hoger nodig" + +#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:280 +msgid "Downloaded plugin is for new installs only, but the plugin is already installed" +msgstr "De gedownloaded plugin is alleen voor nieuwe installaties, maar de plugin is al geïnstalleerd" + +#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:292 +msgid "Installed plugin does not contain the required configuration file" +msgstr "De geïnstalleerde plugin bevat het vereiste configuratie bestand niet" + +#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:300 +msgid "Signature of downloaded plugin does not match installed plugin" +msgstr "De handtekening van de gedownloade plugin komt niet overeen met de geïnstalleerde plugin" + +#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:307 +#, java-format +msgid "Downloaded plugin version {0} is not newer than installed plugin" +msgstr "De gedownloade plugin versie {0} is niet nieuwer dan de geïnstalleerde plugin" + +#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:314 +#, java-format +msgid "Plugin update requires installed plugin version {0} or higher" +msgstr "Plugin update vereist de installatie van plugin versie {0} of hoger" + +#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:321 +#, java-format +msgid "Plugin update requires installed plugin version {0} or lower" +msgstr "Plugin update vereist de installatie van plugin versie {0} of lager" + +#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:338 +msgid "Plugin is for upgrades only, but the plugin is not installed" +msgstr "De plugin is alleen voor upgrades, maar de plugin is niet geïnstalleerd" + +#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:351 +#, java-format +msgid "Failed to install plugin in {0}" +msgstr "Installatie van plugin in {0} gefaald" + +#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:358 +#, java-format +msgid "Plugin {0} installed, router restart required" +msgstr "Plugin {0} geïnstalleerd, router herstart nodig" + +#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:360 +#, java-format +msgid "Plugin {0} installed" +msgstr "Plugin {0} geïnstalleerd" + +#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:369 +#, java-format +msgid "Plugin {0} installed and started" +msgstr "Plugin {0} geïnstalleerd en gestart" + +#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:371 +#, java-format +msgid "Plugin {0} installed but failed to start, check logs" +msgstr "Plugin {0} geïnstalleerd maar gefaald om te starten, kijk in de logs" + +#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:373 +#, java-format +msgid "Plugin {0} installed but failed to start" +msgstr "Plugin {0} geïnstalleerd maar gefaald om te starten" + +#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:383 +#, java-format +msgid "Failed to download plugin from {0}" +msgstr "Kan de plugin niet downloaden van {0}" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:72 +msgid "Peer Profiles" +msgstr "Peer Profielen" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:73 +#, java-format +msgid "Showing {0} recent profiles." +msgstr "Toon {0} recente profielen." + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:75 +#, java-format +msgid "Hiding {0} older profiles." +msgstr "Verberg {0} oudere profielen." + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:77 +#, java-format +msgid "Hiding {0} standard profiles." +msgstr "Verberg {0} standaard profielen." + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:82 +msgid "Groups (Caps)" +msgstr "Groupen (Caps)" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:83 +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:251 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:334 +msgid "Speed" +msgstr "Snelheid" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:84 +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:253 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:338 +msgid "Capacity" +msgstr "Capaciteit" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:85 +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:255 +msgid "Integration" +msgstr "Integratie" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:86 +msgid "Status" +msgstr "Status" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:126 +msgid "Fast, High Capacity" +msgstr "Snel, Hoge Capaciteit" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:127 +msgid "High Capacity" +msgstr "Hoge Capaciteit" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:128 +msgid "Standard" +msgstr "Standaard" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:129 +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:163 +msgid "Failing" +msgstr "Gefaald" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:131 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:268 +msgid "Integrated" +msgstr "Geïntegreerd" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:164 +msgid "Unreachable" +msgstr "Onbereikbaar" + +#. hide if < 10% +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:171 +msgid "Test Fails" +msgstr "Test Faalt" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:175 +msgid "profile" +msgstr "profiel" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:184 +msgid "Floodfill and Integrated Peers" +msgstr "Floodfill en Geïntegreerde Peers" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:188 +msgid "Caps" +msgstr "Caps" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:189 +msgid "Integ. Value" +msgstr "Integ. Waarde" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:190 +msgid "Last Heard About" +msgstr "Laatst Vernomen Over" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:191 +msgid "Last Heard From" +msgstr "Laatst Vernomen Van" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:192 +msgid "Last Good Send" +msgstr "Laatste Goede Verzending" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:193 +msgid "Last Bad Send" +msgstr "Laatste Foute Verzending" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:194 +msgid "10m Resp. Time" +msgstr "10m Resp. Tijd" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:195 +msgid "1h Resp. Time" +msgstr "1u Resp. Tijd" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:196 +msgid "1d Resp. Time" +msgstr "1d Resp. Tijd" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:197 +msgid "Last Good Lookup" +msgstr "Laatste Goede Lookup" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:198 +msgid "Last Bad Lookup" +msgstr "Laatste Foute Lookup" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:199 +msgid "Last Good Store" +msgstr "Laatste Goede Opslag" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:200 +msgid "Last Bad Store" +msgstr "Laatste Foute Opslag" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:201 +msgid "1h Fail Rate" +msgstr "1u Fout Rato" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:202 +msgid "1d Fail Rate" +msgstr "1d Four Rato" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:250 +msgid "Thresholds" +msgstr "Drempelwaarden" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:252 +msgid "fast peers" +msgstr "snelle peers" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:254 +msgid "high capacity peers" +msgstr "hoge capaciteits peers" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:256 +msgid " well integrated peers" +msgstr " goed geïntegreerde peers" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:258 +msgid "as determined by the profile organizer" +msgstr "zoals bepaald door de profiel organisator" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:258 +msgid "groups" +msgstr "groepen" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:259 +msgid "capabilities in the netDb, not used to determine profiles" +msgstr "capaciteiten in de netDb, niet gebruikt om profielen te bepalen" + +#. capabilities +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:259 +#: ../java/strings/Strings.java:81 +msgid "caps" +msgstr "caps" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:260 +msgid "peak throughput (bytes per second) over a 1 minute period that the peer has sustained in a single tunnel" +msgstr "piek doorvoer (bytes per seconde) over een 1 minuut periode zoals de peer heeft ondervonden in een enkele tunnel" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:260 +msgid "speed" +msgstr "snelheid" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:261 +msgid "capacity" +msgstr "capaciteit" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:261 +msgid "how many tunnels can we ask them to join in an hour?" +msgstr "hoeveel tunnels kunnen we ze vragen om zich in een uur bij aan te sluiten?" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:262 +msgid "how many new peers have they told us about lately?" +msgstr "hoeveel nieuwe peers hebben ze ons recentelijk over verteld?" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:262 +msgid "integration" +msgstr "integratie" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:263 +msgid "is the peer banned, or unreachable, or failing tunnel tests?" +msgstr "is de peer verbannen, of onbereikbaar, of faalt het tunnel tests?" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:263 +msgid "status" +msgstr "status" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:313 +msgid "n/a" +msgstr "nvt" + +#: ../java/src/net/i2p/router/web/ShitlistRenderer.java:57 +#, java-format +msgid "Temporary ban expiring in {0}" +msgstr "Tijdelijke verbanning verloopt in {0}" + +#: ../java/src/net/i2p/router/web/ShitlistRenderer.java:59 +#, java-format +msgid "Banned until restart or in {0}" +msgstr "Verbanning tot volgende herstart of in {0}" + +#: ../java/src/net/i2p/router/web/ShitlistRenderer.java:71 +msgid "unban now" +msgstr "Hef verbanning nu op" + +#. Note to translators: all runtime zh translation disabled in this file, no font available in RRD +#: ../java/src/net/i2p/router/web/StatSummarizer.java:174 +msgid "Bandwidth usage" +msgstr "Bandbreedte gebruik" + +#: ../java/src/net/i2p/router/web/StatSummarizer.java:181 +msgid "Outbound bytes/sec" +msgstr "Uitgaande bytes/sec" + +#. def.line(sendName, Color.BLUE, "Outbound bytes/sec", 3); +#: ../java/src/net/i2p/router/web/StatSummarizer.java:183 +msgid "Inbound bytes/sec" +msgstr "Inkomende bytes / sec" + +#: ../java/src/net/i2p/router/web/StatSummarizer.java:186 +#: ../java/src/net/i2p/router/web/StatSummarizer.java:187 +#: ../java/src/net/i2p/router/web/StatSummarizer.java:188 +#: ../java/src/net/i2p/router/web/StatSummarizer.java:189 +msgid "bytes/sec" +msgstr "bytes/sec" + +#: ../java/src/net/i2p/router/web/StatSummarizer.java:186 +msgid "out average" +msgstr "uit gemiddeld" + +#: ../java/src/net/i2p/router/web/StatSummarizer.java:187 +#: ../java/src/net/i2p/router/web/StatSummarizer.java:189 +#: ../java/src/net/i2p/router/web/SummaryRenderer.java:110 +msgid "max" +msgstr "max" + +#: ../java/src/net/i2p/router/web/StatSummarizer.java:188 +msgid "in average" +msgstr "in gemiddeld" + +#: ../java/src/net/i2p/router/web/StatsGenerator.java:56 +msgid "GO" +msgstr "GA" + +#: ../java/src/net/i2p/router/web/StatsGenerator.java:59 +msgid "Statistics gathered during this router's uptime" +msgstr "Statistieken verzameld gedurende de uptime van deze router" + +#: ../java/src/net/i2p/router/web/StatsGenerator.java:62 +msgid "The data gathered is quantized over a 1 minute period, so should just be used as an estimate." +msgstr "De verzamelde data is gekwantiseerd over een 1 minuut peiode, dit is dus slechts een schatting." + +#: ../java/src/net/i2p/router/web/StatsGenerator.java:108 +msgid "frequency" +msgstr "frequentie" + +#: ../java/src/net/i2p/router/web/StatsGenerator.java:142 +msgid "No lifetime events" +msgstr "Geen levenslange gebeurtenissen" + +#: ../java/src/net/i2p/router/web/StatsGenerator.java:154 +msgid "rate" +msgstr "rato" + +#: ../java/src/net/i2p/router/web/StatsGenerator.java:156 +msgid "avg value" +msgstr "gem waarde" + +#: ../java/src/net/i2p/router/web/StatsGenerator.java:185 +msgid "events" +msgstr "gebeurtenissen" + +#: ../java/src/net/i2p/router/web/StatsGenerator.java:191 +msgid "No events" +msgstr "Geen gebeertenissen" + +#: ../java/src/net/i2p/router/web/StatsGenerator.java:197 +msgid "lifetime average" +msgstr "levenslange gemiddelde" + +#: ../java/src/net/i2p/router/web/StatsGenerator.java:199 +msgid "peak average" +msgstr "piek gemiddelde" + +#. Display the strict average +#: ../java/src/net/i2p/router/web/StatsGenerator.java:217 +msgid "lifetime average value" +msgstr "levenslange gemiddelde waarde" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:48 +msgid "Configure startup of clients and webapps (services); manually start dormant services" +msgstr "Configureer de opstart van clients en webapps (services); start sluimerende services handmatig" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:50 +msgid "I2P Services" +msgstr "I2P Services" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:56 +msgid "Manage your I2P hosts file here (I2P domain name resolution)" +msgstr "Beheer je I2P hosts bestand hier (I2P domeinnaam bepaling)" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:58 +msgid "Addressbook" +msgstr "Adresboek" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:62 +msgid "Built-in anonymous BitTorrent Client" +msgstr "Ingebouwde anonieme BitTorrent Client" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:64 +msgid "Torrents" +msgstr "Torrents" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:68 +msgid "Anonymous webmail client" +msgstr "Anonieme webmail client" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:70 +msgid "Webmail" +msgstr "Webmail" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:74 +msgid "Anonymous resident webserver" +msgstr "Anonieme ingebouwde webserver" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:76 +msgid "Webserver" +msgstr "Webserver" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:84 +msgid "Configure I2P Router" +msgstr "Configureer I2P Router" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:86 +msgid "I2P Internals" +msgstr "I2P Intern" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:92 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:361 +msgid "View existing tunnels and tunnel build status" +msgstr "Bekijk bestaande tunnels en tunnel opbouw status" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:98 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:240 +msgid "Show all current peer connections" +msgstr "Toon alle huidige peer connecties" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:104 +msgid "Show recent peer performance profiles" +msgstr "Toon recente peer prestatie profielen" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:106 +msgid "Profiles" +msgstr "Profielen" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:110 +msgid "Show list of all known I2P routers" +msgstr "Toon lijst met alle bekende I2P routers" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:112 +msgid "NetDB" +msgstr "NetDB" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:116 +msgid "Health Report" +msgstr "Gezondheids Rapport" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:118 +msgid "Logs" +msgstr "Logs" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:128 +msgid "Graph router performance" +msgstr "Grafieken router prestatie" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:130 +msgid "Graphs" +msgstr "Grafieken" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:134 +msgid "Textual router performance statistics" +msgstr "Tekstuele router prestatie statistieken" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:140 +#: ../java/src/net/i2p/router/web/SummaryHelper.java:365 +msgid "Local Destinations" +msgstr "Lokale Bestemmingen" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:142 +#: ../java/strings/Strings.java:62 +msgid "I2PTunnel" +msgstr "I2PTunnel" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:153 +msgid "I2P Router Help" +msgstr "I2P Router Hulp" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:155 +msgid "General" +msgstr "Algemeen" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:158 +msgid "Your unique I2P router identity is" +msgstr "Je unique I2P router identiteit is" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:162 +msgid "never reveal it to anyone" +msgstr "vertel dit aan niemand" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:164 +msgid "Local Identity" +msgstr "Lokale Identiteit" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:176 +msgid "How long we've been running for this session" +msgstr "Hoe lang draaien we al voor deze sessie" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:179 +msgid "Uptime" +msgstr "Uptime" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:186 +msgid "Help with configuring your firewall and router for optimal I2P performance" +msgstr "Hulp bye het configureren van je firewall en router voor optimale I2P prestatie" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:213 +msgid "Download" +msgstr "Download" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:222 +msgid "Download Unsigned" +msgstr "Download Niet-ondertekend" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:248 +msgid "Active" +msgstr "Actief" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:256 +msgid "Fast" +msgstr "Snel" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:262 +msgid "High capacity" +msgstr "Grote capaciteit" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:274 +msgid "Known" +msgstr "Bekend" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:289 +msgid "Help with firewall configuration" +msgstr "Hulp met firewall configuratie" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:291 +msgid "Check NAT/firewall" +msgstr "Controlleer NAT/firewall" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:311 +msgid "Reseed" +msgstr "Reseed" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:328 +msgid "Configure router bandwidth allocation" +msgstr "Configureer router bandbreedte toewijzing" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:330 +msgid "Bandwidth in/out" +msgstr "Bandbreedte in/uit" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:346 +msgid "Total" +msgstr "Totaal" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:353 +msgid "Used" +msgstr "Gebruikt" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:368 +msgid "Exploratory" +msgstr "Onderzoekend" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:380 +msgid "Participating" +msgstr "Deelnemend" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:386 +msgid "Share ratio" +msgstr "Share rato" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:392 +msgid "What's in the router's job queue?" +msgstr "Wat is er in de taken wachtrij van de router?" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:394 +msgid "Congestion" +msgstr "Verstopping" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:399 +msgid "Job lag" +msgstr "Taak vertraging" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:405 +msgid "Message delay" +msgstr "Bericht vertraging" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:411 +msgid "Tunnel lag" +msgstr "Tunnel vertraging" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:417 +msgid "Backlog" +msgstr "Achterstand" + +#: ../java/src/net/i2p/router/web/SummaryHelper.java:101 +msgid "ERR-Client Manager I2CP Error - check logs" +msgstr "ERR-Client Manager I2CP Fout - controlleer logs" + +#: ../java/src/net/i2p/router/web/SummaryHelper.java:108 +#, java-format +msgid "ERR-Clock Skew of {0}" +msgstr "ERR-Klok Afwijking van {0}" + +#: ../java/src/net/i2p/router/web/SummaryHelper.java:117 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:576 +msgid "OK" +msgstr "OK" + +#: ../java/src/net/i2p/router/web/SummaryHelper.java:118 +msgid "ERR-Private TCP Address" +msgstr "ERR-Privaat TCP Adres" + +#: ../java/src/net/i2p/router/web/SummaryHelper.java:120 +msgid "ERR-SymmetricNAT" +msgstr "ERR-SymmetricNAT" + +#: ../java/src/net/i2p/router/web/SummaryHelper.java:123 +msgid "WARN-Firewalled with Inbound TCP Enabled" +msgstr "WARN-Firewall met Inkomende TCP Ingeschakeld" + +#: ../java/src/net/i2p/router/web/SummaryHelper.java:125 +msgid "WARN-Firewalled and Floodfill" +msgstr "WARN-Firewall en Floodfill" + +#: ../java/src/net/i2p/router/web/SummaryHelper.java:127 +msgid "WARN-Firewalled and Fast" +msgstr "WARN-Firewall en Snel" + +#: ../java/src/net/i2p/router/web/SummaryHelper.java:128 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:580 +msgid "Firewalled" +msgstr "Firewall" + +#: ../java/src/net/i2p/router/web/SummaryHelper.java:130 +msgid "ERR-UDP Port In Use - Set i2np.udp.internalPort=xxxx in advanced config and restart" +msgstr "ERR-UDP Poort in Gebruik" + +#: ../java/src/net/i2p/router/web/SummaryHelper.java:136 +msgid "ERR-No Active Peers, Check Network Connection and Firewall" +msgstr "ERR-Geen Actieve Peers, Controlleer Network Connectie en Firewall" + +#: ../java/src/net/i2p/router/web/SummaryHelper.java:139 +msgid "ERR-UDP Disabled and Inbound TCP host/port not set" +msgstr "ERR-UDP Uitgeschakeld en Inkomende TCP host/poort niet gezet" + +#: ../java/src/net/i2p/router/web/SummaryHelper.java:141 +msgid "WARN-Firewalled with UDP Disabled" +msgstr "WARN-Firewall met UDP Uitgeschakeld" + +#: ../java/src/net/i2p/router/web/SummaryHelper.java:143 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:596 +msgid "Testing" +msgstr "Testen" + +#: ../java/src/net/i2p/router/web/SummaryHelper.java:365 +msgid "Add/remove/edit & control your client and server tunnels" +msgstr "Toevoegen/verwijderen/wijzigen & beheer je client en server tunnels" + +#: ../java/src/net/i2p/router/web/SummaryHelper.java:377 +msgid "Server" +msgstr "Server" + +#: ../java/src/net/i2p/router/web/SummaryHelper.java:381 +msgid "Show tunnels" +msgstr "Toon tunnels" + +#: ../java/src/net/i2p/router/web/SummaryHelper.java:392 +msgid "Leases expired" +msgstr "Leases verlopen" + +#. red or yellow light +#: ../java/src/net/i2p/router/web/SummaryHelper.java:392 +#: ../java/src/net/i2p/router/web/SummaryHelper.java:393 +msgid "Rebuilding" +msgstr "Herbouwen" + +#: ../java/src/net/i2p/router/web/SummaryHelper.java:393 +msgid "ago" +msgstr "geleden" + +#. green light +#: ../java/src/net/i2p/router/web/SummaryHelper.java:396 +msgid "Ready" +msgstr "Gereed" + +#. yellow light +#: ../java/src/net/i2p/router/web/SummaryHelper.java:400 +msgid "Building" +msgstr "Bouwen" + +#: ../java/src/net/i2p/router/web/SummaryHelper.java:400 +msgid "Building tunnels" +msgstr "Tunnels aan het bouwen" + +#: ../java/src/net/i2p/router/web/SummaryHelper.java:405 +msgid "none" +msgstr "geen" + +#. tunnel nicknames, taken from i2ptunnel.config so they will display +#. nicely under 'local destinations' in the summary bar +#. note that if the wording changes in i2ptunnel.config, we have to +#. keep the old string here as well for existing installs +#: ../java/src/net/i2p/router/web/SummaryHelper.java:416 +#: ../java/strings/Strings.java:36 +msgid "shared clients" +msgstr "gedeelde clients" + +#. Note to translators: all runtime zh translation disabled in this file, no font available in RRD +#: ../java/src/net/i2p/router/web/SummaryRenderer.java:84 +#, java-format +msgid "events in {0}" +msgstr "gebeurtenissen in {0}" + +#: ../java/src/net/i2p/router/web/SummaryRenderer.java:86 +#, java-format +msgid "averaged for {0}" +msgstr "gemiddeld voor {0}" + +#: ../java/src/net/i2p/router/web/SummaryRenderer.java:96 +msgid "Events per period" +msgstr "Gebeurtenissen per periode" + +#: ../java/src/net/i2p/router/web/SummaryRenderer.java:109 +msgid "avg" +msgstr "gemiddeld" + +#: ../java/src/net/i2p/router/web/SummaryRenderer.java:111 +msgid "now" +msgstr "nu" + +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:41 +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:63 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/logs_jsp.java:280 +msgid "configure" +msgstr "configureer" + +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:65 +msgid "dead" +msgstr "dood" + +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:71 +msgid "Participating tunnels" +msgstr "Deelnemende tunnels" + +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:72 +msgid "From" +msgstr "Van" + +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:72 +msgid "Receive on" +msgstr "Ontvangen op" + +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:73 +msgid "Expiration" +msgstr "Verloop" + +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:73 +msgid "Send on" +msgstr "Verzonden op" + +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:73 +msgid "To" +msgstr "Naar" + +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:74 +msgid "Rate" +msgstr "Rato" + +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:74 +msgid "Role" +msgstr "Rol" + +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:74 +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:156 +msgid "Usage" +msgstr "Gebruik" + +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:107 +msgid "grace period" +msgstr "overgangs periode" + +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:117 +msgid "Outbound Endpoint" +msgstr "Uitgaande Eindpunt" + +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:119 +msgid "Inbound Gateway" +msgstr "Inkomende Gateway" + +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:121 +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:162 +msgid "Participant" +msgstr "Deelnemer" + +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:126 +msgid "Inactive participating tunnels" +msgstr "Inactieve deelnemende tunnels" + +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:127 +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:218 +msgid "Lifetime bandwidth usage" +msgstr "Levenslang bandbreedte gebruik" + +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:156 +msgid "Expiry" +msgstr "Verloop" + +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:159 +msgid "Participants" +msgstr "Deelnemers" + +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:165 +msgid "Endpoint" +msgstr "Eindpunt" + +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:205 +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:212 +msgid "Build in progress" +msgstr "In aanbouw" + +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:205 +msgid "inbound" +msgstr "inkomend" + +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:212 +msgid "outbound" +msgstr "uitgaand" + +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:217 +msgid "No tunnels; waiting for the grace period to end." +msgstr "Geen tunnels; wacht totdat de overgangs periode verlopen is." + +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:219 +msgid "in" +msgstr "in" + +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:220 +msgid "out" +msgstr "uit" + +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:237 +msgid "Tunnel Counts By Peer" +msgstr "Tunnel Aantallen per Peer" + +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:238 +msgid "% of total" +msgstr "% van totaal" + +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:238 +msgid "Our Tunnels" +msgstr "Onze Tunnels" + +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:238 +msgid "Participating Tunnels" +msgstr "Deelnemende Tunnels" + +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:256 +msgid "Totals" +msgstr "Totalen" + +#: ../java/src/net/i2p/router/web/UnsignedUpdateHandler.java:66 +#: ../java/src/net/i2p/router/web/UpdateHandler.java:132 +#: ../java/src/net/i2p/router/web/UpdateHandler.java:145 +#: ../java/src/net/i2p/router/web/UpdateHandler.java:172 +msgid "Updating" +msgstr "Aan het updaten" + +#: ../java/src/net/i2p/router/web/UnsignedUpdateHandler.java:88 +#: ../java/src/net/i2p/router/web/UnsignedUpdateHandler.java:111 +#: ../java/src/net/i2p/router/web/UnsignedUpdateHandler.java:116 +#: ../java/src/net/i2p/router/web/UpdateHandler.java:183 +#: ../java/src/net/i2p/router/web/UpdateHandler.java:208 +msgid "Update downloaded" +msgstr "Update gedownload" + +#: ../java/src/net/i2p/router/web/UnsignedUpdateHandler.java:91 +#, java-format +msgid "Unsigned update file from {0} is corrupt" +msgstr "Niet-ondertekende update bestand van {0} is corrupt" + +#: ../java/src/net/i2p/router/web/UnsignedUpdateHandler.java:111 +#: ../java/src/net/i2p/router/web/UpdateHandler.java:203 +msgid "Restarting" +msgstr "Herstarten" + +#: ../java/src/net/i2p/router/web/UnsignedUpdateHandler.java:118 +#: ../java/src/net/i2p/router/web/UpdateHandler.java:210 +msgid "Click Restart to install" +msgstr "Klik Herstart om te installeren" + +#: ../java/src/net/i2p/router/web/UnsignedUpdateHandler.java:120 +#: ../java/src/net/i2p/router/web/UpdateHandler.java:212 +msgid "Click Shutdown and restart to install" +msgstr "Klik Afsluiten and herstart om te installeren" + +#: ../java/src/net/i2p/router/web/UnsignedUpdateHandler.java:121 +#: ../java/src/net/i2p/router/web/UpdateHandler.java:214 +#, java-format +msgid "Version {0}" +msgstr "Versie {0}" + +#: ../java/src/net/i2p/router/web/UnsignedUpdateHandler.java:126 +#, java-format +msgid "Failed copy to {0}" +msgstr "Kopie naar {0} gefaald" + +#: ../java/src/net/i2p/router/web/UpdateHandler.java:203 +msgid "Update verified" +msgstr "Update geverifieerd" + +#: ../java/src/net/i2p/router/web/UpdateHandler.java:228 +msgid "Transfer failed" +msgstr "Overdracht gefaald" + +#. wars for ConfigClientsHelper +#: ../java/strings/Strings.java:12 +msgid "addressbook" +msgstr "adresboek" + +#: ../java/strings/Strings.java:13 +msgid "i2psnark" +msgstr "i2psnark" + +#: ../java/strings/Strings.java:14 +msgid "i2ptunnel" +msgstr "i2ptunnel" + +#: ../java/strings/Strings.java:15 +msgid "susimail" +msgstr "susimail" + +#: ../java/strings/Strings.java:16 +msgid "susidns" +msgstr "susidns" + +#: ../java/strings/Strings.java:17 +msgid "routerconsole" +msgstr "routerconsole" + +#. clients, taken from clients.config, for ConfigClientsHelper +#. note that if the wording changes in clients.config, we have to +#. keep the old string here as well for existing installs +#: ../java/strings/Strings.java:22 +msgid "Web console" +msgstr "Web console" + +#: ../java/strings/Strings.java:23 +msgid "SAM application bridge" +msgstr "SAM applicatie brug" + +#: ../java/strings/Strings.java:24 +msgid "Application tunnels" +msgstr "Applicatie tunnels" + +#: ../java/strings/Strings.java:25 +msgid "My eepsite web server" +msgstr "Mijn eepsite web server" + +#: ../java/strings/Strings.java:26 +msgid "I2P webserver (eepsite)" +msgstr "I2P webserver (eepsite)" + +#: ../java/strings/Strings.java:27 +msgid "Browser launch at startup" +msgstr "Browser start bij opstarten" + +#: ../java/strings/Strings.java:28 +msgid "BOB application bridge" +msgstr "BOB applicatie brug" + +#: ../java/strings/Strings.java:30 +msgid "Open Router Console in web browser at startup" +msgstr "Open Router Console in web browser bij opstarten" + +#: ../java/strings/Strings.java:37 +msgid "IRC proxy" +msgstr "IRC proxy" + +#: ../java/strings/Strings.java:38 +msgid "eepsite" +msgstr "eepsite" + +#: ../java/strings/Strings.java:39 +msgid "I2P webserver" +msgstr "I2P webserver" + +#: ../java/strings/Strings.java:40 +msgid "HTTP Proxy" +msgstr "HTTP Proxy" + +#. older names for pre-0.7.4 installs +#: ../java/strings/Strings.java:42 +msgid "eepProxy" +msgstr "eepProxy" + +#: ../java/strings/Strings.java:43 +msgid "ircProxy" +msgstr "ircProxy" + +#. hardcoded in i2psnark +#: ../java/strings/Strings.java:45 +msgid "I2PSnark" +msgstr "I2PSnark" + +#. hardcoded in iMule? +#: ../java/strings/Strings.java:47 +msgid "iMule" +msgstr "iMule" + +#. standard themes for ConfigUIHelper +#: ../java/strings/Strings.java:51 +msgid "classic" +msgstr "klassiek" + +#: ../java/strings/Strings.java:52 +msgid "dark" +msgstr "donker" + +#: ../java/strings/Strings.java:53 +msgid "light" +msgstr "licht" + +#: ../java/strings/Strings.java:54 +msgid "midnight" +msgstr "middernacht" + +#. stat groups for stats.jsp +#: ../java/strings/Strings.java:57 +msgid "Bandwidth" +msgstr "Bandwidth" + +#: ../java/strings/Strings.java:58 +msgid "BandwidthLimiter" +msgstr "BandwidthLimiter" + +#: ../java/strings/Strings.java:59 +msgid "ClientMessages" +msgstr "ClientMessages" + +#: ../java/strings/Strings.java:60 +msgid "Encryption" +msgstr "Encryption" + +#: ../java/strings/Strings.java:61 +msgid "i2cp" +msgstr "i2cp" + +#: ../java/strings/Strings.java:63 +msgid "InNetPool" +msgstr "InNetPool" + +#: ../java/strings/Strings.java:64 +msgid "JobQueue" +msgstr "JobQueue" + +#: ../java/strings/Strings.java:65 +msgid "NetworkDatabase" +msgstr "NetworkDatabase" + +#: ../java/strings/Strings.java:66 +msgid "ntcp" +msgstr "ntcp" + +#: ../java/strings/Strings.java:69 +msgid "Stream" +msgstr "Stream" + +#: ../java/strings/Strings.java:70 +msgid "Throttle" +msgstr "Throttle" + +#: ../java/strings/Strings.java:71 +msgid "Transport" +msgstr "Transport" + +#: ../java/strings/Strings.java:73 +msgid "udp" +msgstr "udp" + +#. parameters in transport addresses (netdb.jsp) +#. may or may not be worth translating +#: ../java/strings/Strings.java:77 +msgid "host" +msgstr "host" + +#: ../java/strings/Strings.java:78 +msgid "key" +msgstr "key" + +#: ../java/strings/Strings.java:79 +msgid "port" +msgstr "port" + +#. introducer host +#: ../java/strings/Strings.java:83 +msgid "ihost0" +msgstr "ihost0" + +#: ../java/strings/Strings.java:84 +msgid "ihost1" +msgstr "ihost1" + +#: ../java/strings/Strings.java:85 +msgid "ihost2" +msgstr "ihost2" + +#. introducer port +#: ../java/strings/Strings.java:87 +msgid "iport0" +msgstr "iport0" + +#: ../java/strings/Strings.java:88 +msgid "iport1" +msgstr "iport1" + +#: ../java/strings/Strings.java:89 +msgid "iport2" +msgstr "iport2" + +#. introducer key +#: ../java/strings/Strings.java:91 +msgid "ikey0" +msgstr "ikey0" + +#: ../java/strings/Strings.java:92 +msgid "ikey1" +msgstr "ikey1" + +#: ../java/strings/Strings.java:93 +msgid "ikey2" +msgstr "ikey2" + +#. introducer tag +#: ../java/strings/Strings.java:95 +msgid "itag0" +msgstr "itag0" + +#: ../java/strings/Strings.java:96 +msgid "itag1" +msgstr "itag1" + +#: ../java/strings/Strings.java:97 +msgid "itag2" +msgstr "itag2" + +#. Descriptions for the stats that are graphed by default +#. There are over 500 stats currently defined, we aren't going to tag them all +#: ../java/strings/Strings.java:101 +msgid "Low-level bandwidth receive rate" +msgstr "Low-level bandbreedte ontvangst rato" + +#. bw.recvRate +#: ../java/strings/Strings.java:102 +msgid "Low-level bandwidth send rate" +msgstr "Low-level bandbreedte verzend rato" + +#. bw.sendRate +#: ../java/strings/Strings.java:103 +msgid "How many peers we are actively talking with" +msgstr "Met hoeveel peers communiceren we actief" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:106 +msgid "config networking" +msgstr "configureer netwerk" + +#. We have intl defined when this is included, but not when compiled standalone. +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:217 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configadvanced_jsp.java:218 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:217 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:217 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:231 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:217 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:217 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:218 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configtunnels_jsp.java:217 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configui_jsp.java:217 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:217 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/debug_jsp.java:220 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/error_jsp.java:228 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/graphs_jsp.java:217 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_005fru_jsp.java:220 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:220 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/index_jsp.java:223 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/jobs_jsp.java:216 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/logs_jsp.java:216 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/netdb_jsp.java:216 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/nowebapp_jsp.java:220 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/oldconsole_jsp.java:220 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/peers_jsp.java:216 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/profiles_jsp.java:216 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/stats_jsp.java:216 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/summaryframe_jsp.java:235 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/tunnels_jsp.java:216 +msgid "Refresh (s)" +msgstr "Ververs (s)" + +#. ditto +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:221 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configadvanced_jsp.java:222 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:221 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:221 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:235 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:221 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:221 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:222 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configtunnels_jsp.java:221 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configui_jsp.java:221 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:221 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/debug_jsp.java:224 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/error_jsp.java:232 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/graphs_jsp.java:221 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_005fru_jsp.java:224 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:224 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/index_jsp.java:227 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/jobs_jsp.java:220 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/logs_jsp.java:220 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/netdb_jsp.java:220 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/nowebapp_jsp.java:224 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/oldconsole_jsp.java:224 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/peers_jsp.java:220 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/profiles_jsp.java:220 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/stats_jsp.java:220 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/summaryframe_jsp.java:238 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/tunnels_jsp.java:220 +msgid "Enable" +msgstr "Inschakelen" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:241 +msgid "I2P Network Configuration" +msgstr "I2P Netwerk Configuratie" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:297 +msgid "Bandwidth limiter" +msgstr "Bandbreedte beperker" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:299 +msgid "I2P will work best if you configure your rates to match the speed of your internet connection." +msgstr "I2P zal beter werken wanneer je de configuratie van de bandbreedte afstemt met de snelheid van je internet verbinding." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:303 +msgid "KBps In" +msgstr "KBps In" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:317 +msgid "KBps Out" +msgstr "KBps Uit" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:333 +msgid "Share" +msgstr "Share" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:340 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configadvanced_jsp.java:307 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configtunnels_jsp.java:303 +msgid "NOTE" +msgstr "OPMERKING" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:342 +#, java-format +msgid "You have configured I2P to share only {0} KBps." +msgstr "Je hebt I2P geconfigureerd om slechts {0} KBps te delen." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:345 +msgid "I2P requires at least 12KBps to enable sharing. " +msgstr "I2P vereist tenminste 12KBps om sharing in te schakelen." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:346 +msgid "Please enable sharing (participating in tunnels) by configuring more bandwidth. " +msgstr "Schakel sharing in (deelname aan tunnels) door meer bandbreedte toe te kennen." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:347 +msgid "It improves your anonymity by creating cover traffic, and helps the network." +msgstr "Het verbeterd je anonimiteit door camouflage verkeer te genereren en help het netwerk." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:350 +#, java-format +msgid "You have configured I2P to share {0} KBps." +msgstr "Je hebt I2P geconfigureerd om {0} KBps te delen." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:353 +msgid "The higher the share bandwidth the more you improve your anonymity and help the network." +msgstr "Hoe meer bandbreedte je deelt, des te meer je anonimiteit verbeterd en je het netwerk helpt." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:357 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:513 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configadvanced_jsp.java:303 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:326 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:320 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:333 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:373 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configtunnels_jsp.java:341 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configui_jsp.java:321 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:364 +msgid "Cancel" +msgstr "Annuleer" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:374 +msgid "IP and Transport Configuration" +msgstr "IP en Transport Configuratie" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:376 +msgid "The default settings will work for most people." +msgstr "De standaard instellingen zullen voor de meeste mensen werken." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:378 +msgid "There is help below." +msgstr "Help is hieronder." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:380 +msgid "UPnP Configuration" +msgstr "UPnP Configuratie" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:384 +msgid "Enable UPnP to open firewall ports" +msgstr "Schakel UPnP in om firewall poorten te openen" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:386 +msgid "UPnP status" +msgstr "UPnP status" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:388 +msgid "IP Configuration" +msgstr "IP Configuratie" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:390 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:460 +msgid "Externally reachable hostname or IP address" +msgstr "Extern bereikbare hostname of IP adres" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:394 +msgid "Use all auto-detect methods" +msgstr "Gebruik alle auto-detect methoden" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:398 +msgid "Disable UPnP IP address detection" +msgstr "Schakel UPnP IP adres detectie uit" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:402 +msgid "Ignore local interface IP address" +msgstr "Negeer IP adres van lokale interface" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:406 +msgid "Use SSU IP address detection only" +msgstr "Gebruikt alleen SSU IP adres detectie" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:410 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:478 +msgid "Specify hostname or IP" +msgstr "Specificeer hostname of IP" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:416 +msgid "Select Interface" +msgstr "Selecteer Interface" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:430 +msgid "Hidden mode - do not publish IP" +msgstr "Verborgen modus - publiceer IP niet" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:432 +msgid "(prevents participating traffic)" +msgstr "(voorkomt deelnemend verkeer)" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:434 +msgid "Action when IP changes" +msgstr "Actie wanneer IP wijzigd" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:438 +msgid "Laptop mode - Change router identity and UDP port when IP changes for enhanced anonymity" +msgstr "Laptop modus - Wijzig router identiteit en UDP poort wanneeer IP wijzigd for meer anonimiteit" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:440 +msgid "Experimental" +msgstr "Experimenteel" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:442 +msgid "UDP Configuration:" +msgstr "UDP Configuratie:" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:444 +msgid "UDP port:" +msgstr "UDP poort:" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:458 +msgid "TCP Configuration" +msgstr "TCP Configuratie" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:464 +msgid "Use auto-detected IP address" +msgstr "Gebruik auto-detected IP adres" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:466 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:498 +msgid "currently" +msgstr "om dit moment" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:470 +msgid "if we are not firewalled" +msgstr "wanneer we niet gefirewalled zijn" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:474 +msgid "Always use auto-detected IP address (Not firewalled)" +msgstr "Gebruik altijd auto-detected IP adres (Geen firewall)" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:484 +msgid "Disable inbound (Firewalled)" +msgstr "Schakel inkomend uit (Firewall)" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:488 +msgid "Completely disable" +msgstr "Schakel volledig uit" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:490 +msgid "(select only if behind a firewall that throttles or blocks outbound TCP)" +msgstr "(selecteer alleen wanneer je achter een firewall zit dat uitgaand TCP beperkt of blokkeert)" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:492 +msgid "Externally reachable TCP port" +msgstr "Extern bereikbare TCP poort" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:496 +msgid "Use the same port configured for UDP" +msgstr "Gebruik dezelfde poort als geconfigureerd voor UDP" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:504 +msgid "Specify Port" +msgstr "Specificeer Poort" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:508 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:338 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configtunnels_jsp.java:329 +msgid "Note" +msgstr "Opmerking" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:511 +msgid "Changing these settings will restart your router." +msgstr "Wijziging van deze instellingen herstart je router" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:517 +msgid "Configuration Help" +msgstr "Configuratie Help" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:519 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:568 +msgid "While I2P will work fine behind most firewalls, your speeds and network integration will generally improve if the I2P port is forwarded for both UDP and TCP." +msgstr "Alhoewel I2P zal werken achter de meeste firewalls, zal de snelheid en netwerk integratie doorgaans verbeteren wanneer de I2P poort is geforward voor zowel UDP als TCP." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:521 +msgid "If you can, please poke a hole in your firewall to allow unsolicited UDP and TCP packets to reach you." +msgstr "Indien mogelijk, probeer een opening in je firewall te maken om nieuwe UDP en TCP pakketten binnen te laten." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:523 +msgid "If you can't, I2P supports UPnP (Universal Plug and Play) and UDP hole punching with \"SSU introductions\" to relay traffic." +msgstr "Indien dit niet mogelijk is, I2P ondersteunt UPnP (Universal Plug en Play) en UDP perforatie met \"SSU introducties\" om verkeer te herleiden." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:525 +msgid "Most of the options above are for special situations, for example where UPnP does not work correctly, or a firewall not under your control is doing harm." +msgstr "De meeste bovenstaande opties zijn voor speciale situaties, bijvoorbeeld wanneer UPnP niet correct werkt, of wanneer firewall buiten je beheer in de weg zit." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:527 +msgid "Certain firewalls such as symmetric NATs may not work well with I2P." +msgstr "Bepaalde firewalls zoals symmetrische NATs werken mogelijk niet goed met I2P." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:536 +msgid "UPnP is used to communicate with Internet Gateway Devices (IGDs) to detect the external IP address and forward ports." +msgstr "UPnP is gebruikt om te communiceren met Internet Gateway Devices (IGDs) om het externe IP adres te detecteren en poorten door te sturen." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:538 +msgid "UPnP support is beta, and may not work for any number of reasons" +msgstr "UPnP support is beta, en kan om verscheidene redenen niet goed werken" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:540 +msgid "No UPnP-compatible device present" +msgstr "Geen UPnP-compatible device aanwezig" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:542 +msgid "UPnP disabled on the device" +msgstr "UPnP uitgeschakeld op het device" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:544 +msgid "Software firewall interference with UPnP" +msgstr "Software firewall zit UPnP in de weg" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:546 +msgid "Bugs in the device's UPnP implementation" +msgstr "Bugs in de device's UPnP implementatie" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:548 +msgid "Multiple firewall/routers in the internet connection path" +msgstr "Meerdere firewall/routers in het pad van de internet verbinding" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:550 +msgid "UPnP device change, reset, or address change" +msgstr "UPnP device wijziging, reset, of adres wijziging" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:552 +msgid "Review the UPnP status here." +msgstr "Bekijk de UPnP status hier." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:554 +msgid "UPnP may be enabled or disabled above, but a change requires a router restart to take effect." +msgstr "UPnP kan hierboven in- en uitgeschakeld worden, maar na een wijziging is een router herstart nodig." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:556 +msgid "Hostnames entered above will be published in the network database." +msgstr "Hierboven ingevulde hostnames zullen worden gepubliceerd in de netwerk database." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:558 +msgid "They are not private." +msgstr "Deze zijn niet privé." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:560 +msgid "Also, do not enter a private IP address like 127.0.0.1 or 192.168.1.1." +msgstr "Tevens, vul geen privé IP addres in zoals 127.0.0.1 of 192.168.1.1." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:562 +msgid "If you specify the wrong IP address or hostname, or do not properly configure your NAT or firewall, your network performance will degrade substantially." +msgstr "Als je het verkeerde IP adres of hostnaam invult, of je NAT of firewall niet goed te configureert, zal je netwerk prestaties aanzienlijk verslechteren." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:564 +msgid "When in doubt, leave the settings at the defaults." +msgstr "In geval van twijfel, laat de instellingen op de standaard waarden." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:566 +msgid "Reachability Help" +msgstr "Bereikbaarheids Help" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:571 +msgid "If you think you have opened up your firewall and I2P still thinks you are firewalled, remember that you may have multiple firewalls, for example both software packages and external hardware routers." +msgstr "Wanneer je denkt dat je je firewall open hebt gezet maar I2P nog steeds zegt dat je achter een firewall zit, bedenk dan dat je mogelijk meerdere firewalls hebt, bijvoorbeeld zowel als software pakket en een externe hardware router." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:574 +msgid "If there is an error, the logs may also help diagnose the problem." +msgstr "Indien er een fout is zijn de logs mogelijk hulpvol om het probleem te onderzoeken." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:578 +msgid "Your UDP port does not appear to be firewalled." +msgstr "Je UDP poort lijkt niet achter een firewall te zitten." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:582 +msgid "Your UDP port appears to be firewalled." +msgstr "Je UDP poort lijkt achter een firewall te zitten." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:584 +msgid "As the firewall detection methods are not 100% reliable, this may occasionally be displayed in error." +msgstr "Omdat de firewall detectie methode niet 100% betrouwbaar is, kan dit soms foutief getoond worden." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:586 +msgid "However, if it appears consistently, you should check whether both your external and internal firewalls are open for your port." +msgstr "Indien dit echter consistent optreedt, controlleer in zowel externe als interne firewalls of de poort wel geopend is." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:588 +msgid "I2P will work fine when firewalled, there is no reason for concern. When firewalled, the router uses \"introducers\" to relay inbound connections." +msgstr "Geen paniek, I2P zal werken achter een firewall. Wanneer dit het geval is maakt de router gebruik van \"introducers\" om inkomende connecties door te sturen." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:590 +msgid "However, you will get more participating traffic and help the network more if you can open your firewall(s)." +msgstr "Je krijgt meer deelnemend verkeer en helpt het netwerk meer door de firewall(s) te openen." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:592 +msgid "If you think you have already done so, remember that you may have both a hardware and a software firewall, or be behind an additional, institutional firewall you cannot control." +msgstr "Indien je van mening bent dat je dit al hebt gedaan, bedenk dat er zowel een hardware als software firewall kan zijn, of dat er een additionele firewall (universiteit, provider, etc) kan zijn waar je geen invloed op hebt." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:594 +msgid "Also, some routers cannot correctly forward both TCP and UDP on a single port, or may have other limitations or bugs that prevent them from passing traffic through to I2P." +msgstr "Tevens hebben sommige routers moeite om zowel TCP als UDP op dezelfde poort correct door te laten, of hebben andere beperkingen of bugs die voorkomen dat I2P verkeer goed doorkomt." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:598 +msgid "The router is currently testing whether your UDP port is firewalled." +msgstr "De router test op dit moment of je UDP poort achter een firewall is." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:602 +msgid "The router is not configured to publish its address, therefore it does not expect incoming connections." +msgstr "De router is niet geconfigureerd om zijn adres te publiceren, daarom verwacht het geen inkomende verbindingen." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:604 +msgid "WARN - Firewalled and Fast" +msgstr "WARN - Firewall en Snel" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:606 +msgid "You have configured I2P to share more than 128KBps of bandwidth, but you are firewalled." +msgstr "Je hebt I2P geconfigureerd om meer dan 128KBps aan bandbreedte te delen, maar je zit achter een firewall." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:608 +msgid "While I2P will work fine in this configuration, if you really have over 128KBps of bandwidth to share, it will be much more helpful to the network if you open your firewall." +msgstr "Alhoewel I2P met deze configuratie prima werkt, zal je 128KBps of meer aan bandbreedte het netwerk beter helpen wanneer je je firewall open zet." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:610 +msgid "WARN - Firewalled and Floodfill" +msgstr "WARN - Firewall en Floodfill" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:612 +msgid "You have configured I2P to be a floodfill router, but you are firewalled." +msgstr "Je hebt I2P geconfigureerd als floodfill router, maar je zit achter een firewall." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:614 +msgid "For best participation as a floodfill router, you should open your firewall." +msgstr "Voor een betere deelname als floodfill router, moet je je firewall openen." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:616 +msgid "WARN - Firewalled with Inbound TCP Enabled" +msgstr "WARN - Firewall en Inkomende TCP Ingeschakeld" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:618 +msgid "You have configured inbound TCP, however your UDP port is firewalled, and therefore it is likely that your TCP port is firewalled as well." +msgstr "Je hebt inkomende TCP geconfigureerd, echter aangezien je UDP poort achter een firewall zit, is het waarschijnlijk dat dit ook voor je TCP poort het geval is." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:620 +msgid "If your TCP port is firewalled with inbound TCP enabled, routers will not be able to contact you via TCP, which will hurt the network." +msgstr "Indien je TCP poort achter een firewall zit met inkomende TCP ingeschakeld, kunnen routers geen verbinding met je maken via TCP, dit is niet goed voor het netwerk." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:622 +msgid "Please open your firewall or disable inbound TCP above." +msgstr "Open je firewall of schakel inkomend TCP hierboven uit." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:624 +msgid "WARN - Firewalled with UDP Disabled" +msgstr "WARN - Firewall met UDP Uitgeschakeld" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:626 +msgid "You have configured inbound TCP, however you have disabled UDP." +msgstr "Je hebt inkomende TCP geconfigureerd, echter UDP is uitgeschakeld." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:628 +msgid "You appear to be firewalled on TCP, therefore your router cannot accept inbound connections." +msgstr "Het lijkt erop dat je voor TCP achter een firewall zit, daarom kan je router geen inkomende connecties accepteren." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:630 +msgid "Please open your firewall or enable UDP." +msgstr "Open je firewall of schakel UDP in." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:632 +msgid "ERR - Clock Skew" +msgstr "ERR - Klok Afwijking" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:634 +msgid "Your system's clock is skewed, which will make it difficult to participate in the network." +msgstr "Je systeemklok heeft een afwijking, dit zal het moeilijk maken om aan het netwerk deel te nemen." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:636 +msgid "Correct your clock setting if this error persists." +msgstr "Corrigeer je klok instelling indien deze fout blijft optreden." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:638 +msgid "ERR - Private TCP Address" +msgstr "ERR - Privaat TCP Adres" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:640 +msgid "You must never advertise an unroutable IP address such as 127.0.0.1 or 192.168.1.1 as your external address." +msgstr "Je moet nooit een niet-routeerbaar IP adres zoals 127.0.0.1 of 192.168.1.1 adverteren als je externe adres." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:642 +msgid "Correct the address or disable inbound TCP above." +msgstr "Corrigeer het adres of schakel inkomend TCP hierboven uit." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:644 +msgid "ERR - SymmetricNAT" +msgstr "ERR - SymmetricNAT" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:646 +msgid "I2P detected that you are firewalled by a Symmetric NAT." +msgstr "I2P heeft gedetecteerd dat je achter een firewall zit door een Symmetric NAT." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:648 +msgid "I2P does not work well behind this type of firewall. You will probably not be able to accept inbound connections, which will limit your participation in the network." +msgstr "I2P werkt niet goed achter dit type firewall. Waarschijnlijk kan je geen inkomende verbindingen accepteren, " + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:650 +msgid "ERR - UDP Port In Use - Set i2np.udp.internalPort=xxxx in advanced config and restart" +msgstr "ERR - UDP Poort In Gebruik - Zet i2np.udp.internalPort=xxxx in geavanceerde configuratie en herstart" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:652 +msgid "I2P was unable to bind to port 8887 or other configured port." +msgstr "I2P kon niet binden met poort 8887 of een andere geconfigureerde poort." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:654 +msgid "Check to see if another program is using the configured port. If so, stop that program or configure I2P to use a different port." +msgstr "Controlleer of een ander programma de geconfigureerde poort gebruikt. Als dit zo is, stop dit programma of configureer I2P op een andere poort." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:656 +msgid "This may be a transient error, if the other program is no longer using the port." +msgstr "Dit kan een voorbijgaande fout zijn, als het andere programma de poort niet meer gebruikt." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:658 +msgid "However, a restart is always required after this error." +msgstr "Echter, een herstart is altijd nodig na deze fout." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:660 +msgid "ERR - UDP Disabled and Inbound TCP host/port not set" +msgstr "ERR - UDP Uitgeschakeld en Inkomende TCP host/poort niet gezet" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:662 +msgid "You have not configured inbound TCP with a hostname and port above, however you have disabled UDP." +msgstr "Je hebt inkomende TCP hierboven niet geconfigureerd met een hostname en poort, echter heb je je UDP uitgeschakeld." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:664 +msgid "Therefore your router cannot accept inbound connections." +msgstr "Daarom kan je router geen inkomende connecties accepteren." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:666 +msgid "Please configure a TCP host and port above or enable UDP." +msgstr "Configureer een TCP host en poort hierboven of schakel UDP in." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:668 +msgid "ERR - Client Manager I2CP Error - check logs" +msgstr "ERR - Client Manager I2CP Fout - controlleer logs" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:670 +msgid "This is usually due to a port 7654 conflict. Check the logs to verify." +msgstr "Dit komt doorgaans door een conflict met poort 7654. Kijk in de logs om dit te bevestigen." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:672 +msgid "Do you have another I2P instance running? Stop the conflicting program and restart I2P." +msgstr "Heb je een andere I2P instantie draaien? Stop het conflicerende programma en herstart I2P." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configadvanced_jsp.java:107 +msgid "config advanced" +msgstr "geavanceerde configuratie" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configadvanced_jsp.java:242 +msgid "I2P Advanced Configuration" +msgstr "I2P Geavanceerde Configuratie" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configadvanced_jsp.java:299 +msgid "Advanced I2P Configuration" +msgstr "Geavanceerde I2P Configuratie" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configadvanced_jsp.java:309 +msgid "Some changes may require a restart to take effect." +msgstr "Voor de toepassing van sommige wijzigingen is een herstart nodig." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:106 +msgid "config clients" +msgstr "client configuratie" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:244 +msgid "I2P Client Configuration" +msgstr "I2P Client Configuratie" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:311 +msgid "Client Configuration" +msgstr "Client Configuratie" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:313 +msgid "The Java clients listed below are started by the router and run in the same JVM." +msgstr "De Java clients in onderstaande lijst zijn gestart door de router en draaien in dezelfde JVM." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:317 +msgid "To change other client options, edit the file" +msgstr "Om andere client opties te wijzigen, bewerk het bestand" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:324 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:344 +msgid "All changes require restart to take effect." +msgstr "Voor alle wijzigingen is een herstart nodig." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:336 +msgid "WebApp Configuration" +msgstr "WebApp Configuratie" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:338 +msgid "The Java web applications listed below are started by the webConsole client and run in the same JVM as the router. They are usually web applications accessible through the router console. They may be complete applications (e.g. i2psnark),front-ends to another client or application which must be separately enabled (e.g. susidns, i2ptunnel), or have no web interface at all (e.g. addressbook)." +msgstr "De Java web applicaties hier beneden zijn gestart door de webConsole client en draaien in dezelfe JVM als de router. Het zijn meestal web applicaties die te benaderen zijn via de router console. Het kunnen volledige applicaties zijn (zoals i2psnark), front-ends voor een client of applicatie dat los hiervan ingeschakeld moet worden (zoals susidns, i2ptunnel), of zonder web interface (zoals addressbook)." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:340 +msgid "A web app may also be disabled by removing the .war file from the webapps directory; however the .war file and web app will reappear when you update your router to a newer version, so disabling the web app here is the preferred method." +msgstr "Een web app kan ook uitgeschakeld worden door het .war bestand te verwijderen uit de webapps directory; ever het .war bestand en de web applicatie zal weer terugkomen wanneer je de router upgrade naar een nieuwere versie. Daarom is het aanbevolen om de web app hier uit te schakelen." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:350 +msgid "Plugin Configuration" +msgstr "Plugin Configuratie" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:352 +msgid "The plugins listed below are started by the webConsole client." +msgstr "De plugins hier beneden zijn gestart door de webConsole client." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:358 +msgid "Plugin Installation" +msgstr "Plugin Installatie" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:360 +msgid "To install a plugin, enter the download URL:" +msgstr "Om een plugin te installeren, voer de download URL in:" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:106 +msgid "config keyring" +msgstr "configureer sleutelbos" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:228 +msgid "I2P Keyring Configuration" +msgstr "I2P Sleutelbos Configuratie" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:294 +msgid "The router keyring is used to decrypt encrypted leaseSets." +msgstr "De sleutelbos van de router is gebruikt om versleutelde leaseSets te ontsleutelen." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:297 +msgid "The keyring may contain keys for local or remote encrypted destinations." +msgstr "De sleutelbos kan sleutels bevatten voor lokale en remote versleutelde destinations." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:307 +msgid "Manual Keyring Addition" +msgstr "Handmatige Sleutelbos Toevoeging" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:309 +msgid "Enter keys for encrypted remote destinations here." +msgstr "Voer sleutels in om remote destinations te versleutelen." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:312 +msgid "Keys for local destinations must be entered on the" +msgstr "Sleutels voor lokale destinations moeten worden ingevoerd op de" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:314 +msgid "I2PTunnel page" +msgstr "I2PTunnel pagina" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:316 +msgid "Dest. name, hash, or full key" +msgstr "Dest. naam, hash, of volledige sleutel" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:318 +msgid "Encryption Key" +msgstr "Encryptie Sleutel" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:107 +msgid "config logging" +msgstr "configureer logging" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:242 +msgid "I2P Logging Configuration" +msgstr "I2P Logging Configuratie" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:299 +msgid "Configure I2P Logging Options" +msgstr "Configureer I2P Logging Opties" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:301 +msgid "Logging filename" +msgstr "Logging bestandsnaam" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:305 +msgid "(the symbol '@' will be replaced during log rotation)" +msgstr "(het symbool '@' zal worden vervangen bij het doordraaien van de log)" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:307 +msgid "Log record format" +msgstr "Log regel formaat" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:311 +msgid "(use 'd' = date, 'c' = class, 't' = thread, 'p' = priority, 'm' = message)" +msgstr "(gebruik 'd' = datum, 'c' = class, 't' = thread, 'p' = prioriteit, 'm' = bericht)" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:313 +msgid "Log date format" +msgstr "Log datum formaat" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:317 +msgid "('MM' = month, 'dd' = day, 'HH' = hour, 'mm' = minute, 'ss' = second, 'SSS' = millisecond)" +msgstr "('MM' = maand, 'dd' = dag, 'HH' = uur, 'mm' = minuut, 'ss' = seconde, 'SSS' = milliseconde)" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:319 +msgid "Max log file size" +msgstr "Max log bestand grootte" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:323 +msgid "Default log level" +msgstr "Standaard log niveau" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:327 +msgid "(DEBUG and INFO are not recommended defaults, as they will drastically slow down your router)" +msgstr "(DEBUG en INFO zijn geen aanbevolen standaardwaarden, ze zullen je router drastisch vertragen)" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:329 +msgid "Log level overrides" +msgstr "Log niveau overschrijving" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:106 +msgid "config peers" +msgstr "configureer peers" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:228 +msgid "I2P Peer Configuration" +msgstr "I2P Peer Configuratie" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:304 +msgid "Manual Peer Controls" +msgstr "Handmatige Peer Beheer" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:306 +msgid "Router Hash" +msgstr "Router Hash" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:310 +msgid "Manually Ban / Unban a Peer" +msgstr "Handmatig een Peer Verbannen / Verbanning Opheffen" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:312 +msgid "Banning will prevent the participation of this peer in tunnels you create." +msgstr "Verbanning zorgt ervoor dat deze peer niet deelneemt aan je tunnels." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:324 +msgid "Bonuses may be positive or negative, and affect the peer's inclusion in Fast and High Capacity tiers. Fast peers are used for client tunnels, and High Capacity peers are used for some exploratory tunnels. Current bonuses are displayed on the" +msgstr "Bonussen kunnen zowel positief als negatief zijn, en hebben invloed op de toekenning van de peer aan de category Snel en Hoge Capaciteit. Snelle peers worden gebruikt voor client tunnels, en Hoge Capaciteit peers worden gebruikt voor sommige exploratory tunnels. De huidige bonussen worden getoond op de" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:326 +msgid "profiles page" +msgstr "profielen pagina" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:342 +msgid "Adjust peer bonuses" +msgstr "Peer bonussen aanpassen" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:344 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/profiles_jsp.java:253 +msgid "Banned Peers" +msgstr "Verbannen Peers" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:366 +msgid "Banned IPs" +msgstr "Verbannen IPs" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:106 +msgid "config service" +msgstr "configureer service" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:228 +msgid "I2P Service Configuration" +msgstr "I2P Service Configuratie" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:284 +msgid "Shutdown the router" +msgstr "Stop de router" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:286 +msgid "Graceful shutdown lets the router satisfy the agreements it has already made before shutting down, but may take a few minutes." +msgstr "Een gecontrolleerde afsluiting laat de router zijn reeds bestaande overeenkomsten vervullen alvorens te stoppen, maar dit kan een aantal minuten duren." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:288 +msgid "If you need to kill the router immediately, that option is available as well." +msgstr "Indien je de router onmiddelijk wilt stoppen, dan is dit ook mogelijk." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:298 +msgid "If you want the router to restart itself after shutting down, you can choose one of the following." +msgstr "Indien je de router wilt herstarten na het afsluiten, kies dan één van de volgende opties." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:300 +msgid "This is useful in some situations - for example, if you changed some settings that client applications only read at startup, such as the routerconsole password or the interface it listens on." +msgstr "Dit is handig in sommige situaties - bijvoorbeeld wanneer je een configuratie hebt gewijzigd die client applicaties alleen lezen bij het opstarten, zoals het routerconsole wachtwoord of de interface waar het op luistert." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:302 +msgid "A graceful restart will take a few minutes (but your peers will appreciate your patience), while a hard restart does so immediately." +msgstr "Een gecontrolleerde herstart zal een aantal minuten duren (maar je peers stellen je gedult zeer op prijs), terwijl een harde herstart onmiddelijk is." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:304 +msgid "After tearing down the router, it will wait 1 minute before starting back up again." +msgstr "Na het stoppen van de router, zal het 1 minuut wachten alvorens opnieuw te starten." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:314 +msgid "Systray integration" +msgstr "Systray integratie" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:316 +msgid "On the windows platform, there is a small application to sit in the system tray, allowing you to view the router's status" +msgstr "Op het windows platform is er een kleine applicatie die in je system tray zit, waarmee de router status te bekijken is" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:318 +msgid "(later on, I2P client applications will be able to integrate their own functionality into the system tray as well)." +msgstr "(in de toekomst zullen I2P client applicaties hun functionaliteit ook in de system tray kunnen integreren)." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:320 +msgid "If you are on windows, you can either enable or disable that icon here." +msgstr "Indien je windows gebruikt kun je het icon hier in- of uitschakelen." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:326 +msgid "Run on startup" +msgstr "Aan bij opstarten" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:328 +msgid "You can control whether I2P is run on startup or not by selecting one of the following options - I2P will install (or remove) a service accordingly." +msgstr "Je kan bepalen of I2P al dan niet bij het opstarten moet starten met behulp van de volgende opties - I2P zal dan de service toevoegen (of verwijderen)." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:330 +msgid "If you prefer the command line, you can also run the " +msgstr "Indien je de voorkeur geeft aan de command line, kan je het ook starten met " + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:340 +msgid "If you are running I2P as service right now, removing it will shut down your router immediately." +msgstr "Indien je op dit moment I2P als service draait zal het verwijderen je router onmiddelijk stoppen." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:342 +msgid "You may want to consider shutting down gracefully, as above, then running uninstall_i2p_service_winnt.bat." +msgstr "Overweeg om hierboven je router gecontrolleerd te stoppen, en daarna uninstall_i2p_service_winnt.bat te draaien." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:346 +msgid "Debugging" +msgstr "Debugging" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:348 +msgid "View the job queue" +msgstr "Bekijk de taak wachtrij" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:352 +msgid "At times, it may be helpful to debug I2P by getting a thread dump. To do so, please select the following option and review the thread dumped to wrapper.log." +msgstr "Soms kan het handig zijn om I2P te debuggen met een thread dump. Om dit te doen, selecteer de volgende optie en bekijk de thread dump in de wrapper.log." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:358 +msgid "Launch browser on router startup?" +msgstr "Start browser bij opstarten router?" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:360 +msgid "I2P's main configuration interface is this web console, so for your convenience I2P can launch a web browser on startup pointing at" +msgstr "De hoofd configuratie interface van I2P is deze web console, indien gewenst kan I2P na het opstarten een web browser starten die verwijst naar" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:107 +msgid "config stats" +msgstr "configureer statistieken" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:229 +msgid "I2P Stats Configuration" +msgstr "I2P Statistieken Configuratie" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:300 +msgid "Configure I2P Stat Collection" +msgstr "Configureer I2P Statistiek Vergaring" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:302 +msgid "Enable full stats?" +msgstr "Volledige statistieken inschakelen?" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:309 +msgid "change requires restart to take effect" +msgstr "na wijziging is een herstart nodig" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:311 +msgid "Stat file" +msgstr "Statistiek bestand" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:315 +msgid "Filter" +msgstr "Filter" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:317 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:326 +msgid "toggle all" +msgstr "alles aan/uit" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:328 +msgid "Log" +msgstr "Log" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:330 +msgid "Graph" +msgstr "Grafiek" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:369 +msgid "Advanced filter" +msgstr "Geavanceerd filter" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configtunnels_jsp.java:106 +msgid "config tunnels" +msgstr "configureer tunnels" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configtunnels_jsp.java:241 +msgid "I2P Tunnel Configuration" +msgstr "I2P Tunnel Configuratie" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configtunnels_jsp.java:305 +msgid "The default settings work for most people." +msgstr "De standaard settings werken voor de meeste mensen." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configtunnels_jsp.java:309 +msgid "There is a fundamental tradeoff between anonymity and performance." +msgstr "Er is een fundamentele afweging tussen anonimiteit en prestatie." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configtunnels_jsp.java:312 +msgid "Tunnels longer than 3 hops (for example 2 hops + 0-2 hops, 3 hops + 0-1 hops, 3 hops + 0-2 hops), or a high quantity + backup quantity, may severely reduce performance or reliability." +msgstr "Tunnels langer dan 3 hops (bijvoorbeeld 2 hops + 0-2 hops, 3 hops + 0-1 hops, 3 hops + 0-2 hops), of een hoge hoeveelheid + backup hoeveelheid, kunnen leiden tot een vermindering van prestatie of bereikbaarheid." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configtunnels_jsp.java:315 +msgid "High CPU and/or high outbound bandwidth usage may result." +msgstr "CPU gebruik en/of uitgaand bandbreedte kan toenemen." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configtunnels_jsp.java:318 +msgid "Change these settings with care, and adjust them if you have problems." +msgstr "Wijzig deze instellingen met zorg, en pas ze aan indien problemen optreden." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configtunnels_jsp.java:332 +msgid "Exploratory tunnel setting changes are stored in the router.config file." +msgstr "Exploratory tunnel configuratie wijzigingen zijn opgeslagen in het router.config bestand." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configtunnels_jsp.java:335 +msgid "Client tunnel changes are temporary and are not saved." +msgstr "Client tunnel wijzigingen zijn tijdelijk en worden niet opgeslagen." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configtunnels_jsp.java:337 +msgid "To make permanent client tunnel changes see the" +msgstr "Om permanente client tunnel wijzigingen te maken zie de" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configtunnels_jsp.java:339 +msgid "i2ptunnel page" +msgstr "i2ptunnel pagina" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configui_jsp.java:106 +msgid "config UI" +msgstr "configureer UI" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configui_jsp.java:241 +msgid "I2P UI Configuration" +msgstr "I2P UI Configuratie" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configui_jsp.java:291 +msgid "Router Console Theme" +msgstr "Router Console Thema" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configui_jsp.java:309 +msgid "Theme selection disabled for Internet Explorer, sorry." +msgstr "Thema selectie is uitgeschakeld voor Internet Explorer, sorry." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configui_jsp.java:311 +msgid "If you're not using IE, it's likely that your browser is pretending to be IE; please configure your browser (or proxy) to use a different User Agent string if you'd like to access the console themes." +msgstr "Indien je geen IE gebruikt, is het mogelijk dat je browser zich voordoet als IE; configureer je browser (of proxy) om een andere User Agent tekst te gebruiken indien je de console thema's wilt wijzigen." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configui_jsp.java:315 +msgid "Router Console Language" +msgstr "Router Console Taal" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configui_jsp.java:319 +msgid "Please contribute to the router console translation project! Contact the developers on IRC #i2p to help." +msgstr "Lever een bijdrage aan het router console vertaal project! Neem contact op met de ontwikkelaars op IRC #i2p om te helpen." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configui_jsp.java:323 +msgid "Apply" +msgstr "Toepassen" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:106 +msgid "config update" +msgstr "configureer update" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:228 +msgid "I2P Update Configuration" +msgstr "I2P Update Configuratie" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:302 +msgid "Check for I2P and news updates" +msgstr "Controlleer op I2P en nieuws updates" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:304 +msgid "News & I2P Updates" +msgstr "Nieuws & I2P Updates" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:308 +msgid "Update In Progress" +msgstr "Bezig Met Upgrade" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:316 +msgid "News URL" +msgstr "Nieuws URL" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:320 +msgid "Refresh frequency" +msgstr "Ververs frequentie" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:326 +msgid "Update policy" +msgstr "Update regels" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:330 +msgid "Update through the eepProxy?" +msgstr "Update door de eepProxy?" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:334 +msgid "eepProxy host" +msgstr "eepProxy host" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:338 +msgid "eepProxy port" +msgstr "eepProxy poort" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:342 +msgid "Update URLs" +msgstr "Update URLs" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:346 +msgid "Trusted keys" +msgstr "Vertrouwde sleutels" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:350 +msgid "Update with unsigned development builds?" +msgstr "Update met niet ondertekende ontwikkel builds?" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:354 +msgid "Unsigned Build URL" +msgstr "Niet-ondertekende Build URL" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:360 +msgid "I2P updates are disabled because you do not have write permission for the install directory." +msgstr "I2P updates zijn uitgeschakeld omdat je geen schrijf rechten hebt op de installatie directory." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:366 +msgid "Save" +msgstr "Opslaan" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/error_jsp.java:117 +msgid "Page Not Found" +msgstr "Pagina Niet Gevonden" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/error_jsp.java:243 +msgid "Sorry! You appear to be requesting a non-existent Router Console page or resource." +msgstr "Sorry! Je benadert een niet bestaande Router Console pagina of bron." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/error_jsp.java:245 +msgid "Error 404" +msgstr "Fout 404" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/error_jsp.java:250 +msgid "not found" +msgstr "niet gevonden" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/graphs_jsp.java:106 +msgid "graphs" +msgstr "grafieken" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/graphs_jsp.java:228 +msgid "I2P Performance Graphs" +msgstr "I2P Prestatie Grafieken" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/index_jsp.java:105 +msgid "home" +msgstr "start" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/jobs_jsp.java:105 +msgid "job queue" +msgstr "taak wachtrij" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/jobs_jsp.java:227 +msgid "I2P Router Job Queue" +msgstr "I2P Router Taak wachtrij" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/logs_jsp.java:105 +msgid "logs" +msgstr "logs" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/logs_jsp.java:227 +msgid "I2P Router Logs" +msgstr "I2P Router Logs" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/logs_jsp.java:229 +msgid "I2P Version & Running Environment" +msgstr "I2P Versie & Omgevingsinformatie" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/logs_jsp.java:231 +msgid "Please report bugs on trac.i2p2.i2p." +msgstr "Rapporteer bugs op trac.i2p2.i2p." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/logs_jsp.java:233 +msgid "Please include this information in bug reports" +msgstr "Graag deze informatie in bug reports vermelden" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/logs_jsp.java:274 +msgid "Critical Logs" +msgstr "Kritieke Logs" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/logs_jsp.java:278 +msgid "Router Logs" +msgstr "Router Logs" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/logs_jsp.java:284 +msgid "Service (Wrapper) Logs" +msgstr "Service (Wrapper) Logs" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/netdb_jsp.java:105 +msgid "network database summary" +msgstr "samenvatting netwerk database" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/netdb_jsp.java:227 +msgid "I2P Network Database Summary" +msgstr "Samenvatting I2P Netwoek Database " + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/nowebapp_jsp.java:109 +msgid "WebApp Not Found" +msgstr "WebApp Niet Gevonden" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/nowebapp_jsp.java:231 +msgid "Web Application Not Running" +msgstr "Web Applicatie Draai Niet" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/nowebapp_jsp.java:233 +msgid "The requested web application is not running." +msgstr "De gevraagde web applicatie draait niet." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/nowebapp_jsp.java:235 +msgid "Please visit the config clients page to start it." +msgstr "Bezoek de config clients pagina om het te starten." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/peers_jsp.java:105 +msgid "peer connections" +msgstr "peer connecties" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/peers_jsp.java:227 +msgid "I2P Network Peers" +msgstr "I2P Netwerk Peers" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/profiles_jsp.java:105 +msgid "peer profiles" +msgstr "peer profielen" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/profiles_jsp.java:227 +msgid "I2P Network Peer Profiles" +msgstr "I2P Netwerk Peer Profielen" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/stats_jsp.java:105 +msgid "statistics" +msgstr "statistieken" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/stats_jsp.java:242 +msgid "I2P Router Statistics" +msgstr "I2P Router Statistieken" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/summaryframe_jsp.java:244 +#, java-format +msgid "Disable {0}s Refresh" +msgstr "{0}s Verversing Uitschakelen" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/tunnels_jsp.java:105 +msgid "tunnel summary" +msgstr "tunnel samenvatting" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/tunnels_jsp.java:227 +msgid "I2P Tunnel Summary" +msgstr "I2P Tunnel Samenvatting" + diff --git a/history.txt b/history.txt index 5b16d142b..365cb9161 100644 --- a/history.txt +++ b/history.txt @@ -1,3 +1,6 @@ +2010-07-04 duck + * RouterConsole: Dutch translation (thanks to monkeybrains) + 2010-07-03 zzz * Build: Fix poupdate dependencies * I2PTunnel: More error propagation fixes From 6e517c4a1950729a2a4bbac89a96ec178d65a37b Mon Sep 17 00:00:00 2001 From: duck Date: Sun, 4 Jul 2010 23:03:02 +0000 Subject: [PATCH 15/75] RouterConsole: Fix typos in Dutch translation --- apps/routerconsole/locale/messages_nl.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/routerconsole/locale/messages_nl.po b/apps/routerconsole/locale/messages_nl.po index d9f5af53b..a941d07dd 100644 --- a/apps/routerconsole/locale/messages_nl.po +++ b/apps/routerconsole/locale/messages_nl.po @@ -3196,7 +3196,7 @@ msgstr "Uptime" #: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:186 msgid "Help with configuring your firewall and router for optimal I2P performance" -msgstr "Hulp bye het configureren van je firewall en router voor optimale I2P prestatie" +msgstr "Hulp bij het configureren van je firewall en router voor optimale I2P prestatie" #: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:213 msgid "Download" @@ -4967,7 +4967,7 @@ msgstr "samenvatting netwerk database" #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/netdb_jsp.java:227 msgid "I2P Network Database Summary" -msgstr "Samenvatting I2P Netwoek Database " +msgstr "Samenvatting I2P Netwerk Database " #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/nowebapp_jsp.java:109 msgid "WebApp Not Found" From 546a588aa5027b97d3a3ff3f1856b72e88e3dfdf Mon Sep 17 00:00:00 2001 From: duck Date: Mon, 5 Jul 2010 13:37:36 +0000 Subject: [PATCH 16/75] I2PTunnel & I2PSnark: Dutch translation (thanks to monkeybrains) --- apps/i2psnark/locale/messages_nl.po | 775 +++++++++++++++++++++++++++ apps/i2ptunnel/locale/messages_nl.po | 689 ++++++++++++++++++++++++ history.txt | 3 + 3 files changed, 1467 insertions(+) create mode 100644 apps/i2psnark/locale/messages_nl.po create mode 100644 apps/i2ptunnel/locale/messages_nl.po diff --git a/apps/i2psnark/locale/messages_nl.po b/apps/i2psnark/locale/messages_nl.po new file mode 100644 index 000000000..5de0d01fc --- /dev/null +++ b/apps/i2psnark/locale/messages_nl.po @@ -0,0 +1,775 @@ +# I2P +# Copyright (C) 2009 The I2P Project +# This file is distributed under the same license as the i2psnark package. +# To contribute translations, see http://www.i2p2.de/newdevelopers +# foo , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: I2P i2psnark\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-07-05 11:48+0000\n" +"PO-Revision-Date: 2010-06-15 09:07+0100\n" +"Last-Translator: duck \n" +"Language-Team: duck , monkeybrains \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: Dutch\n" + +#: ../java/src/org/klomp/snark/SnarkManager.java:88 +#, java-format +msgid "Adding torrents in {0} minutes" +msgstr "Torrents toevoegen in {0} minuten" + +#: ../java/src/org/klomp/snark/SnarkManager.java:258 +#, java-format +msgid "Total uploaders limit changed to {0}" +msgstr "Totale uploaders limiet gewijzigd in {0}" + +#: ../java/src/org/klomp/snark/SnarkManager.java:260 +#, java-format +msgid "Minimum total uploaders limit is {0}" +msgstr "Minimum totale uploaders limiet is {0}" + +#: ../java/src/org/klomp/snark/SnarkManager.java:272 +#, java-format +msgid "Up BW limit changed to {0}KBps" +msgstr "Up bandbreedte limiet gewijzigd in {0}KBps" + +#: ../java/src/org/klomp/snark/SnarkManager.java:274 +#, java-format +msgid "Minimum up bandwidth limit is {0}KBps" +msgstr "Minimum up bandbreedte limiet is {0}KBps" + +#: ../java/src/org/klomp/snark/SnarkManager.java:286 +#, java-format +msgid "Startup delay limit changed to {0} minutes" +msgstr "Startup vertragings limiet gewijzigd in {0} minuten" + +#: ../java/src/org/klomp/snark/SnarkManager.java:333 +msgid "I2CP and tunnel changes will take effect after stopping all torrents" +msgstr "I2CP en tunnel wijzigingen hebben pas effect na het stoppen van alle torrents" + +#: ../java/src/org/klomp/snark/SnarkManager.java:339 +msgid "Disconnecting old I2CP destination" +msgstr "Oude I2CP destination wordt afgesloten" + +#: ../java/src/org/klomp/snark/SnarkManager.java:343 +#, java-format +msgid "I2CP settings changed to {0}" +msgstr "I2CP instellingen gewijzigd in {0}" + +#: ../java/src/org/klomp/snark/SnarkManager.java:347 +msgid "" +"Unable to connect with the new settings, reverting to the old I2CP settings" +msgstr "Kan geen connectie maken met de nieuwe instellingen, we keren terug naar oude I2CP instellingen" + +#: ../java/src/org/klomp/snark/SnarkManager.java:351 +msgid "Unable to reconnect with the old settings!" +msgstr "Kan niet opnieuw verbinden met de oude instellingen!" + +#: ../java/src/org/klomp/snark/SnarkManager.java:353 +msgid "Reconnected on the new I2CP destination" +msgstr "Opnieuw verbonden met de nieuwe I2CP destination" + +#: ../java/src/org/klomp/snark/SnarkManager.java:364 +#, java-format +msgid "I2CP listener restarted for \"{0}\"" +msgstr "I2CP listener herstart voor \"{0}\"" + +#: ../java/src/org/klomp/snark/SnarkManager.java:375 +msgid "Enabled autostart" +msgstr "Autostart ingeschakeld" + +#: ../java/src/org/klomp/snark/SnarkManager.java:377 +msgid "Disabled autostart" +msgstr "Autostart uitgeschakeld" + +#: ../java/src/org/klomp/snark/SnarkManager.java:383 +msgid "Enabled open trackers - torrent restart required to take effect." +msgstr "Open Trackers ingeschakeld - torrent herstart nodig." + +#: ../java/src/org/klomp/snark/SnarkManager.java:385 +msgid "Disabled open trackers - torrent restart required to take effect." +msgstr "Open Trackers uitgeschakeld - torrent herstart nodig." + +#: ../java/src/org/klomp/snark/SnarkManager.java:392 +msgid "Open Tracker list changed - torrent restart required to take effect." +msgstr "Open Tracker lijst gewijzigd - torrent herstart nodig." + +#: ../java/src/org/klomp/snark/SnarkManager.java:399 +msgid "Configuration unchanged." +msgstr "Configuratie ongewijzigd." + +#: ../java/src/org/klomp/snark/SnarkManager.java:409 +#, java-format +msgid "Unable to save the config to {0}" +msgstr "Kan de configuratie niet opslaan in {0}" + +#: ../java/src/org/klomp/snark/SnarkManager.java:445 +msgid "Connecting to I2P" +msgstr "Verbinden met I2P" + +#: ../java/src/org/klomp/snark/SnarkManager.java:448 +msgid "Error connecting to I2P - check your I2CP settings!" +msgstr "Fout bij verbinden met I2P - controlleer je I2CP instellingen!" + +#: ../java/src/org/klomp/snark/SnarkManager.java:457 +#, java-format +msgid "Error: Could not add the torrent {0}" +msgstr "Fout: Kan de torrent {0} niet toevoegen" + +#. catch this here so we don't try do delete it below +#: ../java/src/org/klomp/snark/SnarkManager.java:479 +#, java-format +msgid "Cannot open \"{0}\"" +msgstr "Kan \"{0}\" niet openen" + +#: ../java/src/org/klomp/snark/SnarkManager.java:492 +#, java-format +msgid "" +"Warning - Ignoring non-i2p tracker in \"{0}\", will announce to i2p open " +"trackers only" +msgstr "Waarschuwing - Niet-I2P tracker in \"{0}\" wordt genegeerd, zal alleen aankondigen naar i2p open trackers" + +#: ../java/src/org/klomp/snark/SnarkManager.java:494 +#, java-format +msgid "" +"Warning - Ignoring non-i2p tracker in \"{0}\", and open trackers are " +"disabled, you must enable open trackers before starting the torrent!" +msgstr "Waarschuwing - Niet-I2P tracker in \"{0}\" wordt genegeerd, en open trackers zijn uitgeschakeld, je moet open trackers inschakelen voor het starten van de torrent!" + +#: ../java/src/org/klomp/snark/SnarkManager.java:513 +#, java-format +msgid "Torrent in \"{0}\" is invalid" +msgstr "Torrent in \"{0}\" is ongeldig" + +#: ../java/src/org/klomp/snark/SnarkManager.java:528 +#, java-format +msgid "Torrent added and started: \"{0}\"" +msgstr "Torrent toegevoegd en gestart: \"{0}\"" + +#: ../java/src/org/klomp/snark/SnarkManager.java:530 +#, java-format +msgid "Torrent added: \"{0}\"" +msgstr "Torrent toegevoegd: \"{0}\"" + +#: ../java/src/org/klomp/snark/SnarkManager.java:627 +#, java-format +msgid "Too many files in \"{0}\" ({1}), deleting it!" +msgstr "Te veel bestanden in \"{0}\" ({1}), wordt verwijderd!" + +#: ../java/src/org/klomp/snark/SnarkManager.java:629 +#, java-format +msgid "Torrent file \"{0}\" cannot end in \".torrent\", deleting it!" +msgstr "Torrent bestand \"{0}\" kan niet eindigen in \".torrent\", wordt verwijderd!" + +#: ../java/src/org/klomp/snark/SnarkManager.java:631 +#, java-format +msgid "No pieces in \"{0}\", deleting it!" +msgstr "Geen stukken in \"{0}\", wordt verwijderd!" + +#: ../java/src/org/klomp/snark/SnarkManager.java:633 +#, java-format +msgid "Too many pieces in \"{0}\", limit is {1}, deleting it!" +msgstr "Te veel stukken in \"{0}\", limiet is {1}, wordt verwijderd!" + +#: ../java/src/org/klomp/snark/SnarkManager.java:635 +#, java-format +msgid "Pieces are too large in \"{0}\" ({1}B), deleting it." +msgstr "Stukken zijn te groot in \"{0}\" ({1}B), wordt verwijderd." + +#: ../java/src/org/klomp/snark/SnarkManager.java:636 +#, java-format +msgid "Limit is {0}B" +msgstr "Limiet is {0}B" + +#: ../java/src/org/klomp/snark/SnarkManager.java:644 +#, java-format +msgid "Torrents larger than {0}B are not supported yet, deleting \"{1}\"" +msgstr "Torrents groter dan {0}B worden nog niet ondersteund, verwijder \"{1}\"" + +#: ../java/src/org/klomp/snark/SnarkManager.java:660 +#, java-format +msgid "Error: Could not remove the torrent {0}" +msgstr "Fout: Kan de torrent {0} niet verwijderen" + +#: ../java/src/org/klomp/snark/SnarkManager.java:681 +#, java-format +msgid "Torrent stopped: \"{0}\"" +msgstr "Torrent gestopt: \"{0}\"" + +#: ../java/src/org/klomp/snark/SnarkManager.java:696 +#, java-format +msgid "Torrent removed: \"{0}\"" +msgstr "Torrent verwijderd: \"{0}\"" + +#: ../java/src/org/klomp/snark/SnarkManager.java:729 +#, java-format +msgid "Download finished: \"{0}\"" +msgstr "Download gereed: \"{0}\"" + +#: ../java/src/org/klomp/snark/SnarkManager.java:729 +#, java-format +msgid "size: {0}B" +msgstr "grootte: {0}B" + +#: ../java/src/org/klomp/snark/SnarkManager.java:757 +msgid "Unable to connect to I2P!" +msgstr "Kan niet verbinden met I2P!" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:174 +msgid "I2PSnark - Anonymous BitTorrent Client" +msgstr "I2PSnark - Anonieme BitTorrent Client" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:185 +msgid "Torrents" +msgstr "Torrents" + +#: ../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 "I2PSnark" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:191 +msgid "Refresh page" +msgstr "Ververs pagina" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:195 +msgid "Forum" +msgstr "Forum" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:240 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1289 +msgid "Status" +msgstr "Status" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:246 +msgid "Hide Peers" +msgstr "Verberg Peers" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:249 +msgid "Show Peers" +msgstr "Toon Peers" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:254 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1271 +msgid "Torrent" +msgstr "Torrent" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:256 +msgid "ETA" +msgstr "ETA" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:258 +msgid "Downloaded" +msgstr "Gedownload" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:260 +msgid "Uploaded" +msgstr "Geupload" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:262 +msgid "Down Rate" +msgstr "Down Snelheid" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:264 +msgid "Up Rate" +msgstr "Up Snelheid" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:271 +msgid "Stop all torrents and the I2P tunnel" +msgstr "Stop alle torrents en de I2P tunnel" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:273 +msgid "Stop All" +msgstr "Stop Alle" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:278 +msgid "Start all torrents and the I2P tunnel" +msgstr "Start alle torrents en de I2P tunnel" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:280 +msgid "Start All" +msgstr "Start Alle" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:297 +msgid "No torrents loaded." +msgstr "Geen torrents geladen." + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:302 +msgid "Totals" +msgstr "Totalen" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:304 +#, java-format +msgid "1 torrent" +msgid_plural "{0} torrents" +msgstr[0] "1 torrent" +msgstr[1] "{0} torrents" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:307 +#, java-format +msgid "1 connected peer" +msgid_plural "{0} connected peers" +msgstr[0] "1 verbonden peer" +msgstr[1] "{0} verbonden peers" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:336 +#, java-format +msgid "Torrent file {0} does not exist" +msgstr "Torrent bestand {0} bestaat niet" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:346 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1476 +#, java-format +msgid "Torrent already running: {0}" +msgstr "Torrent draait al: {0}" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:348 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1478 +#, java-format +msgid "Torrent already in the queue: {0}" +msgstr "Torrent zit al in de wachtrij: {0}" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:352 +#, java-format +msgid "Copying torrent to {0}" +msgstr "Kopieer torrent naar {0}" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:355 +#, java-format +msgid "Unable to copy the torrent to {0}" +msgstr "Kan de de torrent niet kopieren naar {0}" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:355 +#, java-format +msgid "from {0}" +msgstr "van {0}" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:363 +#, java-format +msgid "Fetching {0}" +msgstr "Downloaden {0}" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:367 +msgid "Invalid URL - must start with http://" +msgstr "Ongeldige URL - moet beginnen met http://" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:397 +#, java-format +msgid "Starting up torrent {0}" +msgstr "Starten met torrent {0}" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:417 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:435 +#, java-format +msgid "Torrent file deleted: {0}" +msgstr "Torrent bestand verwijderd: {0}" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:441 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:451 +#, java-format +msgid "Data file deleted: {0}" +msgstr "Data bestand verwijderd: {0}" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:443 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:453 +#, java-format +msgid "Data file could not be deleted: {0}" +msgstr "Kan data bestand niet verwijderen: {0}" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:462 +#, java-format +msgid "Data dir deleted: {0}" +msgstr "Data directory verwijderd: {0}" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:494 +msgid "Error creating torrent - you must select a tracker" +msgstr "Fout bij maken van torrent - je moet een tracker selecteren" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:509 +#, java-format +msgid "Torrent created for \"{0}\"" +msgstr "Torrent gemaakt voor \"{0}\"" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:512 +#, java-format +msgid "" +"Many I2P trackers require you to register new torrents before seeding - " +"please do so before starting \"{0}\"" +msgstr "Veel I2P trackers vereisen dat je de nieuwe torrent registreert voor het seeden - " +"doe dit voordat je \"{0}\" start" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:514 +#, java-format +msgid "Error creating a torrent for \"{0}\"" +msgstr "Fout bij het maken van een torrent voor \"{0}\"" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:517 +#, java-format +msgid "Cannot create a torrent for the nonexistent data: {0}" +msgstr "Kan geen torrent maken voor niet-bestaande data: {0}" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:520 +msgid "Error creating torrent - you must enter a file or directory" +msgstr "Fout bij het maken van de torrent - je moet een bestand of directory invullen" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:523 +msgid "Stopping all torrents and closing the I2P tunnel." +msgstr "Stoppen van alle torrents en sluiten van I2P tunnel." + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:532 +msgid "I2P tunnel closed." +msgstr "I2P tunnel gesloten." + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:535 +msgid "Opening the I2P tunnel and starting all torrents." +msgstr "Openen van de I2P tunnel en starten van alle torrents." + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:657 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:851 +msgid "Unknown" +msgstr "Onbekend" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:660 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:665 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:670 +msgid "TrackerErr" +msgstr "TrackerErr" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:663 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:666 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:677 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:680 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:688 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:691 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:696 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:699 +#, java-format +msgid "1 peer" +msgid_plural "{0} peers" +msgstr[0] "1 peer" +msgstr[1] "{0} peers" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:674 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:679 +msgid "Seeding" +msgstr "Seeding" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:682 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1327 +msgid "Complete" +msgstr "Voltooid" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:685 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:690 +msgid "OK" +msgstr "OK" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:693 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:698 +msgid "Stalled" +msgstr "Vastgelopen" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:701 +msgid "No Peers" +msgstr "Geen Peers" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:703 +msgid "Stopped" +msgstr "Gestopt" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:718 +msgid "View files" +msgstr "Bekijk bestanden" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:720 +msgid "Open file" +msgstr "Open bestand" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:750 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:967 +msgid "Tracker" +msgstr "Tracker" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:751 +msgid "Details" +msgstr "Details" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:785 +msgid "Stop the torrent" +msgstr "Stop de torrent" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:787 +msgid "Stop" +msgstr "Stop" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:793 +msgid "Start the torrent" +msgstr "Start de torrent" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:795 +msgid "Start" +msgstr "Start" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:800 +msgid "Remove the torrent from the active list, deleting the .torrent file" +msgstr "Verwijder de torrent van de actieve lijst, het .torrent bestand wordt verwijderd" + +#. Can't figure out how to escape double quotes inside the onclick string. +#. Single quotes in translate strings with parameters must be doubled. +#. Then the remaining single quite must be escaped +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:805 +#, java-format +msgid "" +"Are you sure you want to delete the file \\''{0}.torrent\\'' (downloaded " +"data will not be deleted) ?" +msgstr "Weet je zeker dat je het bestand \\''{0}.torrent\\'' wilt verwijderen (gedownloade data zal niet worden verwijderd) ?" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:807 +msgid "Remove" +msgstr "Weghalen" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:811 +msgid "Delete the .torrent file and the associated data file(s)" +msgstr "Verwijder het .torrent bestand en de gerelateerde data bestand(en)" + +#. Can't figure out how to escape double quotes inside the onclick string. +#. Single quotes in translate strings with parameters must be doubled. +#. Then the remaining single quite must be escaped +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:816 +#, java-format +msgid "" +"Are you sure you want to delete the torrent \\''{0}\\'' and all downloaded " +"data?" +msgstr "Weet je zeker dat je de torrent \\''{0}\\'' en alle gedownloade data wilt verwijderen?" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:818 +msgid "Delete" +msgstr "Verwijderen" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:861 +msgid "Seed" +msgstr "Seed" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:879 +msgid "Uninteresting (The peer has no pieces we need)" +msgstr "Niet interessant (De peer heeft geen stukken die we nodig hebben)" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:881 +msgid "Choked (The peer is not allowing us to request pieces)" +msgstr "Verstikt (De peer laat ons niet toe om stukken op te vragen)" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:895 +msgid "Uninterested (We have no pieces the peer needs)" +msgstr "Niet geïnteresseerd (We heben geen stukken die de peer nodig heeft)" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:897 +msgid "Choking (We are not allowing the peer to request pieces)" +msgstr "Verstikt (We laten de peer niet toe om stukken op te vragen)" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:927 +msgid "Add Torrent" +msgstr "Torrent Toevoegen" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:929 +msgid "From URL" +msgstr "Van URL" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:934 +msgid "Add torrent" +msgstr "Torrent toevoegen" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:937 +#, java-format +msgid "Alternately, you can copy .torrent files to the directory {0}." +msgstr "Als alternatief kan je het .torrent bestand kopieren naar de directory {0}." + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:939 +msgid "Removing a .torrent file will cause the torrent to stop." +msgstr "Verwijderen van een .torrent bestand zorgt dat de torrent stopt." + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:958 +msgid "Create Torrent" +msgstr "Creëer Torrent" + +#. out.write("From file:
\n"); +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:961 +msgid "Data to seed" +msgstr "Data om te seeden" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:965 +msgid "File or directory to seed (must be within the specified path)" +msgstr "Bestand of directory om te seeden (moet binnen het gespecificeerde pad zijn)" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:969 +msgid "Select a tracker" +msgstr "Selecteer een tracker" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:982 +msgid "or" +msgstr "of" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:985 +msgid "Specify custom tracker announce URL" +msgstr "Specificeer aangepaste tracker aankondigings URL" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:988 +msgid "Create torrent" +msgstr "Creëer torrent" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1006 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1133 +msgid "Configuration" +msgstr "Configuratie" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1009 +msgid "Data directory" +msgstr "Data directory" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1012 +msgid "Directory to store torrents and data" +msgstr "Directory om torrents en data op te slaan" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1014 +msgid "Edit i2psnark.config and restart to change" +msgstr "Bewerk i2psnark.config en herstart de wijziging" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1018 +msgid "Auto start" +msgstr "Auto start" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1022 +msgid "If checked, automatically start torrents that are added" +msgstr "Indien aangevinkt, start toegevoegde torrents automatisch" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1026 +msgid "Startup delay" +msgstr "Startup vertraging" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1028 +msgid "minutes" +msgstr "minuten" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1052 +msgid "Total uploader limit" +msgstr "Totale uploader limiet" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1055 +msgid "peers" +msgstr "peers" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1059 +msgid "Up bandwidth limit" +msgstr "Up bandbreedte limiet" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1062 +msgid "Half available bandwidth recommended." +msgstr "Helft van beschikbare bandbreedte aanbevolen." + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1064 +msgid "View or change router bandwidth" +msgstr "Bekijk of wijzig router bandbreedte" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1068 +msgid "Use open trackers also" +msgstr "Gebruik ook open trackers" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1072 +msgid "" +"If checked, announce torrents to open trackers as well as the tracker listed " +"in the torrent file" +msgstr "Indien aangevinkt, kondig torrents ook aan bij de tracker uit het torrent bestand" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1076 +msgid "Open tracker announce URLs" +msgstr "Open tracker aankondigings URLs" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1088 +msgid "Inbound Settings" +msgstr "Inkomende Instellingen" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1094 +msgid "Outbound Settings" +msgstr "Uitgaande Instellingen" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1101 +msgid "I2CP host" +msgstr "I2CP host" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1106 +msgid "I2CP port" +msgstr "I2CP poort" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1118 +msgid "I2CP options" +msgstr "I2CP opties" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1124 +msgid "Save configuration" +msgstr "Configuratie opslaan" + +#. * dummies for translation +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1141 +#, java-format +msgid "1 hop" +msgid_plural "{0} hops" +msgstr[0] "1 hop" +msgstr[1] "{0} hops" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1142 +#, java-format +msgid "1 tunnel" +msgid_plural "{0} tunnels" +msgstr[0] "1 tunnel" +msgstr[1] "{0} tunnels" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1283 +msgid "Up to higher level directory" +msgstr "Naar bovenliggende directory" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1288 +msgid "File" +msgstr "Bestand" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1288 +msgid "Size" +msgstr "Grootte" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1311 +msgid "Directory" +msgstr "Directory" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1316 +msgid "Torrent not found?" +msgstr "Torrent niet gevonden?" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1324 +msgid "File not found in torrent?" +msgstr "Bestand niet gevonden in torrent?" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1330 +msgid "complete" +msgstr "voltooid" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1331 +msgid "bytes remaining" +msgstr "bytes resterend" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1456 +#, java-format +msgid "Torrent fetched from {0}" +msgstr "Torrent gedownload van {0}" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1484 +#, java-format +msgid "Torrent at {0} was not valid" +msgstr "Torrent op {0} was niet geldig" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1489 +#, java-format +msgid "Torrent was not retrieved from {0}" +msgstr "Torrent was niet ontvangen van {0}" diff --git a/apps/i2ptunnel/locale/messages_nl.po b/apps/i2ptunnel/locale/messages_nl.po new file mode 100644 index 000000000..39c31def2 --- /dev/null +++ b/apps/i2ptunnel/locale/messages_nl.po @@ -0,0 +1,689 @@ +# I2P +# Copyright (C) 2009 The I2P Project +# This file is distributed under the same license as the i2ptunnel package. +# To contribute translations, see http://www.i2p2.de/newdevelopers +# foo , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: I2P i2ptunnel\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-07-04 16:39+0000\n" +"PO-Revision-Date: 2010-06-15 14:09+0100\n" +"Last-Translator: duck \n" +"Language-Team: duck , monkeybrains \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: Dutch\n" + +#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:492 +#, java-format +msgid "" +"To visit the destination in your host database, click here. To visit the conflicting addresshelper destination, click here." +msgstr "Om de destination in je host database te bezoeken, klik here. Om de conflicterende adreshelper destination te bezoeken, klik here." + +#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:909 +msgid "" +"Click a link below to look for an address helper by using a \"jump\" service:" +msgstr "Klik op een onderstaande link om te zoeken naar een adreshelper via een \"jump\" service:" + +#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:372 +msgid "New Tunnel" +msgstr "Nieuwe Tunnel" + +#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:392 +msgid "Standard client" +msgstr "Standaard client" + +#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:393 +msgid "HTTP client" +msgstr "HTTP client" + +#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:394 +msgid "IRC client" +msgstr "IRC client" + +#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:395 +msgid "Standard server" +msgstr "Standaard server" + +#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:396 +msgid "HTTP server" +msgstr "HTTP server" + +#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:397 +msgid "SOCKS 4/4a/5 proxy" +msgstr "SOCKS 4/4a/5 proxy" + +#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:398 +msgid "SOCKS IRC proxy" +msgstr "SOCKS IRC proxy" + +#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:399 +msgid "CONNECT/SSL/HTTPS proxy" +msgstr "CONNECT/SSL/HTTPS proxy" + +#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:400 +msgid "IRC server" +msgstr "IRC server" + +#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:401 +msgid "Streamr client" +msgstr "Streamr client" + +#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:402 +msgid "Streamr server" +msgstr "Streamr server" + +#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:403 +msgid "HTTP bidir" +msgstr "HTTP bidir" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:73 +msgid "I2P Tunnel Manager - Edit Client Tunnel" +msgstr "I2P Tunnel Manager - Bewerk Client Tunnel" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:93 +msgid "Edit proxy settings" +msgstr "Bewerk proxy instellingen" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:101 +msgid "New proxy settings" +msgstr "Nieuwe proxy instellingen" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:112 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:112 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:107 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:121 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:242 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:257 +msgid "Name" +msgstr "Naam" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:116 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:116 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:246 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:270 +msgid "Type" +msgstr "Type" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:120 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:120 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:226 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:358 +msgid "Description" +msgstr "Omschrijving" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:126 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:136 +msgid "Target" +msgstr "Doel" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:130 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:132 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:167 +msgid "Access Point" +msgstr "Toegangspunt" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:137 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:179 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:207 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:157 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:172 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:228 +msgid "required" +msgstr "vereist" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:150 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:142 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:183 +msgid "Reachable by" +msgstr "Bereikbaar voor" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:162 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:195 +msgid "Locally (127.0.0.1)" +msgstr "Lokaal (127.0.0.1)" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:166 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:199 +msgid "Everyone (0.0.0.0)" +msgstr "Iedereen (0.0.0.0)" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:170 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:203 +msgid "LAN Hosts (Please specify your LAN address)" +msgstr "LAN Hosts (Specificeer je LAN adres)" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:186 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:205 +msgid "Other" +msgstr "Anders" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:195 +msgid "Outproxies" +msgstr "Uitgaande proxies" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:202 +msgid "Tunnel Destination" +msgstr "Tunnel Destinations" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:214 +msgid "name or destination" +msgstr "naam of destination" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:220 +msgid "Shared Client" +msgstr "Gedeelde Client" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:224 +msgid "" +"(Share tunnels with other clients and irc/httpclients? Change requires " +"restart of client proxy)" +msgstr "(Deel tunnels met andere clients en irc/httpclients? Wijziging vereist herstart van de client proxy)" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:228 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:124 +msgid "Auto Start" +msgstr "Auto Start" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:232 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:128 +msgid "(Check the Box for 'YES')" +msgstr "(Markeer de Box voor 'JA')" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:234 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:249 +msgid "Advanced networking options" +msgstr "Geavanceerde netwerk opties" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:236 +msgid "" +"(NOTE: when this client proxy is configured to share tunnels, then these " +"options are for all the shared proxy clients!)" +msgstr "(OPMERKING: wanneer deze client proxy is geconfigureerd om tunnels te delen, dan zijn deze opties van toepassing voor alle gedeelde proxy clients!)" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:238 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:251 +msgid "Tunnel Options" +msgstr "Tunnel Opties" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:240 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:253 +msgid "Length" +msgstr "Lengte" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:247 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:260 +msgid "0 hop tunnel (low anonymity, low latency)" +msgstr "0 hop tunnel (lage anonimiteit, weinig vertraging)" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:251 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:264 +msgid "1 hop tunnel (medium anonymity, medium latency)" +msgstr "1 hop tunnel (gemiddelde anonimiteit, gemiddelde vertraging)" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:255 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:268 +msgid "2 hop tunnel (high anonymity, high latency)" +msgstr "2 hop tunnel (hoge anonimiteit, hoge vertraging)" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:259 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:272 +msgid "3 hop tunnel (very high anonymity, poor performance)" +msgstr "3 hop tunnel (zeer hoge anonimiteit, slechte prestatie)" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:268 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:281 +msgid "hop tunnel (very poor performance)" +msgstr "hop tunnel (zeer slechte prestatie)" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:273 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:286 +msgid "Variance" +msgstr "Variantie" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:280 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:293 +msgid "0 hop variance (no randomisation, consistant performance)" +msgstr "0 hop variantie (geen randomisatie, consistente prestatie)" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:284 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:297 +msgid "" +"+ 0-1 hop variance (medium additive randomisation, subtractive performance)" +msgstr "+ 0-1 hop variantie (gemiddeld toegevoegde randomisatie, minder prestatie)" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:288 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:301 +msgid "" +"+ 0-2 hop variance (high additive randomisation, subtractive performance)" +msgstr "+ 0-2 hop variantie (hoge toegevoegde randomisatie, minder prestatie)" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:292 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:305 +msgid "+/- 0-1 hop variance (standard randomisation, standard performance)" +msgstr "+/- 0-1 hop variantie (standaard randomisatie, standaard prestatie)" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:296 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:309 +msgid "+/- 0-2 hop variance (not recommended)" +msgstr "+/- 0-2 hop variantie (niet aanbevolen)" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:308 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:321 +msgid "hop variance" +msgstr "hop variantie" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:313 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:326 +msgid "Count" +msgstr "Aantal" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:320 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:333 +msgid "1 inbound, 1 outbound tunnel (low bandwidth usage, less reliability)" +msgstr "1 inkomende, 1 uitgaande tunnel (laag bandbreedte gebruik, minder betrouwbaar)" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:324 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:337 +msgid "" +"2 inbound, 2 outbound tunnels (standard bandwidth usage, standard " +"reliability)" +msgstr "2 inkomende, 2 uitgaande tunnels (standaard bandbreedte gebruik, standaard betrouwbaarheid)" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:328 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:341 +msgid "" +"3 inbound, 3 outbound tunnels (higher bandwidth usage, higher reliability)" +msgstr "3 inkomende, 3 uitgaande tunnels (hoge bandbreedte gebruik, hogere betrouwbaarheid)" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:337 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:350 +msgid "tunnels" +msgstr "tunnels" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:342 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:355 +msgid "Backup Count" +msgstr "Backup Aantal" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:349 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:362 +msgid "0 backup tunnels (0 redundancy, no added resource usage)" +msgstr "0 backup tunnels (0 redundantie, geen additionele bronnen gebruikt)" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:353 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:366 +msgid "1 backup tunnel each direction (low redundancy, low resource usage)" +msgstr "1 backup tunnel in beide richting (lage redundantie, lage aantal bronnen gebruikt)" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:357 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:370 +msgid "" +"2 backup tunnels each direction (medium redundancy, medium resource usage)" +msgstr "2 backup tunnels in beide richting (gemiddelde redundantie, gemiddeld aantal bronnen gebruikt)" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:361 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:374 +msgid "3 backup tunnels each direction (high redundancy, high resource usage)" +msgstr "3 backup tunnels in beide richting (hoge redundantie, hoog aantal bronnen gebruikt)" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:370 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:383 +msgid "backup tunnels" +msgstr "backup tunnels" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:377 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:390 +msgid "Profile" +msgstr "Profiel" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:384 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:397 +msgid "interactive connection" +msgstr "interactieve connectie" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:388 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:401 +msgid "bulk connection (downloads/websites/BT)" +msgstr "bulk connection (downloads/websites/BT)" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:390 +msgid "Delay Connect" +msgstr "Vertraagde Connectie" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:394 +msgid "for request/response connections" +msgstr "voor request/response connecties" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:398 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:405 +msgid "I2CP Options" +msgstr "I2CP Opties" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:400 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:146 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:407 +msgid "Host" +msgstr "Host" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:404 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:152 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:411 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:244 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:266 +msgid "Port" +msgstr "Poort" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:410 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:443 +msgid "Reduce tunnel quantity when idle" +msgstr "Verminder tunnel aantal wanneer in rust" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:412 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:426 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:434 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:446 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:456 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:417 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:433 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:445 +msgid "Enable" +msgstr "Ingeschakeld" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:416 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:449 +msgid "Reduced tunnel count" +msgstr "Verminder tunnel aantal" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:420 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:440 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:453 +msgid "Idle minutes" +msgstr "Rust minuten" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:424 +msgid "Close tunnels when idle" +msgstr "Sluit tunnels wanneer in rust" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:430 +msgid "New Keys on Reopen" +msgstr "Nieuwe Sleutels bij Heropenen" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:438 +msgid "Disable" +msgstr "Uitgeschakeld" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:444 +msgid "Delay tunnel open until required" +msgstr "Vertraag tunnel opening totdat het nodig is" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:454 +msgid "Persistent private key" +msgstr "Persistente private sleutel" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:460 +msgid "File" +msgstr "Bestand" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:464 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:235 +msgid "Local destination" +msgstr "Lokale destination" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:468 +msgid "(if known)" +msgstr "(indien bekend)" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:472 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:489 +msgid "Custom options" +msgstr "Aangepaste opties" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:476 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:493 +msgid "" +"NOTE: If tunnel is currently running, most changes will not take effect " +"until tunnel is stopped and restarted." +msgstr "OPMERKING: Indien de tunnel op dit moment draait, zullen de meeste wijzigingen pas effect hebben na het stoppen en herstarten van de tunnel." + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:478 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:495 +msgid "Cancel" +msgstr "Annuleer" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:482 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:499 +msgid "Delete" +msgstr "Verwijder" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:484 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:501 +msgid "Save" +msgstr "Opslaan" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:73 +msgid "I2P Tunnel Manager - Edit Server Tunnel" +msgstr "I2P Tunnel Manager - Bewerk Server Tunnel" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:93 +msgid "Edit server settings" +msgstr "Bewerk server instellingen" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:101 +msgid "New server settings" +msgstr "Nieuwe server instellingen" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:214 +msgid "Website name" +msgstr "Website naam" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:218 +msgid "(leave blank for outproxies)" +msgstr "(leeg laten voor uitgaande proxies)" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:223 +msgid "Private key file" +msgstr "Private sleutel bestand" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:245 +msgid "Add to local addressbook" +msgstr "Toevoegen aan lokaal adresboek" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:415 +msgid "Encrypt Leaseset" +msgstr "Versleutel Leaseset" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:421 +msgid "Encryption Key" +msgstr "Encryptie Sleutel" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:425 +msgid "Generate New Key" +msgstr "Genereer Nieuwe Sleutel" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:427 +msgid "Generate" +msgstr "Genereer" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:429 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:487 +msgid "(Tunnel must be stopped first)" +msgstr "(Tunnel moet eerst gestopt worden)" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:431 +msgid "Restricted Access List" +msgstr "Beperkte Toegangs Lijst" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:437 +msgid "Access List" +msgstr "Toegangs Lijst" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:441 +msgid "(Restrict to these clients only)" +msgstr "(Beperkt tot slechts deze clients)" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:457 +msgid "New Certificate type" +msgstr "Nieuw Certificaat type" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:459 +msgid "None" +msgstr "Geen" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:463 +msgid "Hashcash (effort)" +msgstr "Hashcash (effort)" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:469 +msgid "Hashcash Calc Time" +msgstr "Hashcash Reken Tijd" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:471 +msgid "Estimate" +msgstr "Inschatten" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:473 +msgid "Hidden" +msgstr "Verborgen" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:477 +msgid "Signed (signed by)" +msgstr "Ondertekend (ondertekend door)" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:483 +msgid "Modify Certificate" +msgstr "Wijzig Certificaat" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:485 +msgid "Modify" +msgstr "Wijzig" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:71 +msgid "I2P Tunnel Manager - List" +msgstr "I2P Tunnel Manager - Lijst" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:83 +msgid "Status Messages" +msgstr "Status Berichten" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:87 +msgid "Refresh" +msgstr "Ververs" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:91 +msgid "Stop All" +msgstr "Stop Alles" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:95 +msgid "Start All" +msgstr "Start Alles" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:99 +msgid "Restart All" +msgstr "Herstart Alles" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:103 +msgid "Reload Config" +msgstr "Herlaad Configuratie" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:105 +msgid "I2P Server Tunnels" +msgstr "I2P Server Tunnels" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:109 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:130 +msgid "Points at" +msgstr "Verwijst naar" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:111 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:153 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:157 +msgid "Preview" +msgstr "Preview" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:113 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:177 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:250 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:278 +msgid "Status" +msgstr "Status" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:163 +msgid "Base32 Address" +msgstr "Base32 Adres" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:171 +msgid "No Preview" +msgstr "Geen Preview" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:184 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:285 +msgid "Starting..." +msgstr "Starten..." + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:191 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:205 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:292 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:306 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:320 +msgid "Stop" +msgstr "Stop" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:198 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:313 +msgid "Running" +msgstr "Draait" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:212 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:327 +msgid "Stopped" +msgstr "Gestopt" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:219 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:334 +msgid "Start" +msgstr "Start" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:234 +msgid "New server tunnel" +msgstr "Nieuwe server tunnel" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:236 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:368 +msgid "Standard" +msgstr "Standaard" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:238 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:370 +msgid "Create" +msgstr "Creëer" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:240 +msgid "I2P Client Tunnels" +msgstr "I2P Client Tunnels" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:248 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:274 +msgid "Interface" +msgstr "Interface" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:299 +msgid "Standby" +msgstr "Stand-by" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:346 +msgid "Outproxy" +msgstr "Uitgaande proxy" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:350 +msgid "Destination" +msgstr "Destination" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:366 +msgid "New client tunnel" +msgstr "Nieuwe client tunnel" diff --git a/history.txt b/history.txt index 365cb9161..988a506c6 100644 --- a/history.txt +++ b/history.txt @@ -1,3 +1,6 @@ +2010-07-05 duck + * I2PTunnel & I2PSnark: Dutch translation (thanks to monkeybrains) + 2010-07-04 duck * RouterConsole: Dutch translation (thanks to monkeybrains) From 378c85590274aee74551873e086aad7fae70614d Mon Sep 17 00:00:00 2001 From: zzz Date: Mon, 5 Jul 2010 14:20:02 +0000 Subject: [PATCH 17/75] cleanup --- .../src/org/klomp/snark/PeerCoordinator.java | 62 ++++++++++--------- 1 file changed, 32 insertions(+), 30 deletions(-) diff --git a/apps/i2psnark/java/src/org/klomp/snark/PeerCoordinator.java b/apps/i2psnark/java/src/org/klomp/snark/PeerCoordinator.java index 2a2e40e7d..6d3895036 100644 --- a/apps/i2psnark/java/src/org/klomp/snark/PeerCoordinator.java +++ b/apps/i2psnark/java/src/org/klomp/snark/PeerCoordinator.java @@ -62,7 +62,7 @@ public class PeerCoordinator implements PeerListener private long downloaded_old[] = {-1,-1,-1,-1,-1,-1}; // synchronize on this when changing peers or downloaders - final List peers = new ArrayList(); + final List peers = new ArrayList(); /** estimate of the peers, without requiring any synchronization */ volatile int peerCount; @@ -72,7 +72,7 @@ public class PeerCoordinator implements PeerListener private final byte[] id; // Some random wanted pieces - private List wantedPieces; + private List wantedPieces; private boolean halted = false; @@ -117,7 +117,7 @@ public class PeerCoordinator implements PeerListener public CoordinatorListener getListener() { return listener; } // for web page detailed stats - public List peerList() + public List peerList() { synchronized(peers) { @@ -135,8 +135,10 @@ public class PeerCoordinator implements PeerListener return storage.complete(); } + /** might be wrong */ public int getPeerCount() { return peerCount; } + /** should be right */ public int getPeers() { synchronized(peers) @@ -260,7 +262,7 @@ public class PeerCoordinator implements PeerListener public void halt() { halted = true; - List removed = new ArrayList(); + List removed = new ArrayList(); synchronized(peers) { // Stop peer checker task. @@ -273,7 +275,7 @@ public class PeerCoordinator implements PeerListener } while (!removed.isEmpty()) { - Peer peer = (Peer)removed.remove(0); + Peer peer = removed.remove(0); peer.disconnect(); removePeerFromPieces(peer); } @@ -340,9 +342,9 @@ public class PeerCoordinator implements PeerListener // caller must synchronize on peers private static Peer peerIDInList(PeerID pid, List peers) { - Iterator it = peers.iterator(); + Iterator it = peers.iterator(); while (it.hasNext()) { - Peer cur = (Peer)it.next(); + Peer cur = it.next(); if (pid.sameID(cur.getPeerID())) return cur; } @@ -406,15 +408,15 @@ public class PeerCoordinator implements PeerListener // linked list will contain all interested peers that we choke. // At the start are the peers that have us unchoked at the end the // other peer that are interested, but are choking us. - List interested = new LinkedList(); + List interested = new LinkedList(); synchronized (peers) { int count = 0; int unchokedCount = 0; int maxUploaders = allowedUploaders(); - Iterator it = peers.iterator(); + Iterator it = peers.iterator(); while (it.hasNext()) { - Peer peer = (Peer)it.next(); + Peer peer = it.next(); if (peer.isChoking() && peer.isInterested()) { count++; @@ -430,7 +432,7 @@ public class PeerCoordinator implements PeerListener while (uploaders < maxUploaders && !interested.isEmpty()) { - Peer peer = (Peer)interested.remove(0); + Peer peer = interested.remove(0); if (_log.shouldLog(Log.DEBUG)) _log.debug("Unchoke: " + peer); peer.setChoking(false); @@ -475,10 +477,10 @@ public class PeerCoordinator implements PeerListener synchronized(wantedPieces) { - Iterator it = wantedPieces.iterator(); + Iterator it = wantedPieces.iterator(); while (it.hasNext()) { - Piece p = (Piece)it.next(); + Piece p = it.next(); int i = p.getId(); if (bitfield.get(i)) { p.addPeer(peer); @@ -512,11 +514,11 @@ public class PeerCoordinator implements PeerListener { Piece piece = null; Collections.sort(wantedPieces); // Sort in order of rarest first. - List requested = new ArrayList(); - Iterator it = wantedPieces.iterator(); + List requested = new ArrayList(); + Iterator it = wantedPieces.iterator(); while (piece == null && it.hasNext()) { - Piece p = (Piece)it.next(); + Piece p = it.next(); if (havePieces.get(p.getId()) && !p.isRequested()) { piece = p; @@ -536,10 +538,10 @@ public class PeerCoordinator implements PeerListener return -1; // nothing to request and not in end game // let's not all get on the same piece Collections.shuffle(requested); - Iterator it2 = requested.iterator(); + Iterator it2 = requested.iterator(); while (piece == null && it2.hasNext()) { - Piece p = (Piece)it2.next(); + Piece p = it2.next(); if (havePieces.get(p.getId())) { piece = p; @@ -659,11 +661,11 @@ public class PeerCoordinator implements PeerListener // Disconnect from other seeders when we get the last piece synchronized(peers) { - List toDisconnect = new ArrayList(); - Iterator it = peers.iterator(); + List toDisconnect = new ArrayList(); + Iterator it = peers.iterator(); while (it.hasNext()) { - Peer p = (Peer)it.next(); + Peer p = it.next(); if (p.isConnected()) { if (completed() && p.isCompleted()) @@ -675,7 +677,7 @@ public class PeerCoordinator implements PeerListener it = toDisconnect.iterator(); while (it.hasNext()) { - Peer p = (Peer)it.next(); + Peer p = it.next(); p.disconnect(true); } } @@ -741,8 +743,8 @@ public class PeerCoordinator implements PeerListener */ public void removePeerFromPieces(Peer peer) { synchronized(wantedPieces) { - for(Iterator iter = wantedPieces.iterator(); iter.hasNext(); ) { - Piece piece = (Piece)iter.next(); + for(Iterator iter = wantedPieces.iterator(); iter.hasNext(); ) { + Piece piece = iter.next(); piece.removePeer(peer); } } @@ -796,8 +798,8 @@ public class PeerCoordinator implements PeerListener } synchronized(wantedPieces) { - for(Iterator iter = wantedPieces.iterator(); iter.hasNext(); ) { - Piece piece = (Piece)iter.next(); + for(Iterator iter = wantedPieces.iterator(); iter.hasNext(); ) { + Piece piece = iter.next(); if (piece.getId() == savedRequest.piece) { Request req = savedRequest; piece.setRequested(true); @@ -822,9 +824,9 @@ public class PeerCoordinator implements PeerListener // see if anybody else is requesting synchronized (peers) { - Iterator it = peers.iterator(); + Iterator it = peers.iterator(); while (it.hasNext()) { - Peer p = (Peer)it.next(); + Peer p = it.next(); if (p.equals(peer)) continue; if (p.state == null) @@ -842,9 +844,9 @@ public class PeerCoordinator implements PeerListener // nobody is, so mark unrequested synchronized(wantedPieces) { - Iterator it = wantedPieces.iterator(); + Iterator it = wantedPieces.iterator(); while (it.hasNext()) { - Piece p = (Piece)it.next(); + Piece p = it.next(); if (p.getId() == piece) { p.setRequested(false); if (_log.shouldLog(Log.DEBUG)) From 29bc53d618bbe6a0ad5bff801846fb75d2c35d3f Mon Sep 17 00:00:00 2001 From: zzz Date: Mon, 5 Jul 2010 14:20:34 +0000 Subject: [PATCH 18/75] * i2psnark: Fix transition to end game --- .../java/src/org/klomp/snark/PeerState.java | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/apps/i2psnark/java/src/org/klomp/snark/PeerState.java b/apps/i2psnark/java/src/org/klomp/snark/PeerState.java index d1865a2b9..5e9250e22 100644 --- a/apps/i2psnark/java/src/org/klomp/snark/PeerState.java +++ b/apps/i2psnark/java/src/org/klomp/snark/PeerState.java @@ -523,8 +523,10 @@ class PeerState _log.debug(peer + " requests " + outstandingRequests); } - // Starts requesting first chunk of next piece. Returns true if - // something has been added to the requests, false otherwise. + /** + * Starts requesting first chunk of next piece. Returns true if + * something has been added to the requests, false otherwise. + */ private boolean requestNextPiece() { // Check that we already know what the other side has. @@ -556,6 +558,15 @@ class PeerState if (nextPiece != -1 && (lastRequest == null || lastRequest.piece != nextPiece)) { + // Fail safe to make sure we are interested + // When we transition into the end game we may not be interested... + if (!interesting) { + if (_log.shouldLog(Log.DEBUG)) + _log.debug(peer + " transition to end game, setting interesting"); + interesting = true; + out.sendInterest(true); + } + int piece_length = metainfo.getPieceLength(nextPiece); //Catch a common place for OOMs esp. on 1MB pieces byte[] bs; From 5f52edf831d80e830a39f04ed9dcf38e60fed4ab Mon Sep 17 00:00:00 2001 From: zzz Date: Mon, 5 Jul 2010 14:21:38 +0000 Subject: [PATCH 19/75] * I2PTunnelIRCClient: Filter PART messages like we do for QUIT --- .../java/src/net/i2p/i2ptunnel/I2PTunnelIRCClient.java | 7 ++++++- history.txt | 4 ++++ router/java/src/net/i2p/router/RouterVersion.java | 2 +- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelIRCClient.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelIRCClient.java index a1cd1256e..4d8b85a81 100644 --- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelIRCClient.java +++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelIRCClient.java @@ -387,7 +387,7 @@ public class I2PTunnelIRCClient extends I2PTunnelClientBase implements Runnable // "QUIT", // replace with a filtered QUIT to hide client quit messages "SILENCE", "MAP", // seems safe enough, the ircd should protect themselves though - "PART", + // "PART", // replace with filtered PART to hide client part messages "OPER", // "PONG", // replaced with a filtered PING/PONG since some clients send the server IP (thanks aardvax!) // "PING", @@ -491,6 +491,11 @@ public class I2PTunnelIRCClient extends I2PTunnelClientBase implements Runnable return ret; } + if ("PART".equals(command)) { + // hide client message + return "PART " + field[1] + " :leaving"; + } + if ("QUIT".equals(command)) { return "QUIT :leaving"; } diff --git a/history.txt b/history.txt index 988a506c6..c2fbc0efc 100644 --- a/history.txt +++ b/history.txt @@ -1,3 +1,7 @@ +2010-07-05 zzz + * i2psnark: Fix transition to end game + * I2PTunnelIRCClient: Filter PART messages like we do for QUIT + 2010-07-05 duck * I2PTunnel & I2PSnark: Dutch translation (thanks to monkeybrains) diff --git a/router/java/src/net/i2p/router/RouterVersion.java b/router/java/src/net/i2p/router/RouterVersion.java index fecba78d6..a6204817e 100644 --- a/router/java/src/net/i2p/router/RouterVersion.java +++ b/router/java/src/net/i2p/router/RouterVersion.java @@ -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 = 7; + public final static long BUILD = 8; /** for example "-test" */ public final static String EXTRA = ""; From 826951536bb2a291eb7189530f8175cb3c191253 Mon Sep 17 00:00:00 2001 From: privateer Date: Mon, 5 Jul 2010 14:35:22 +0000 Subject: [PATCH 20/75] - anged user agent for outproxy from Wget/1.11.4 to Firefox 3.6.6 on WinXP to avoid getting blocked as a crawler --- .../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java index cfcfaca01..930f8eb22 100644 --- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java +++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java @@ -644,12 +644,13 @@ public class I2PTunnelHTTPClient extends I2PTunnelClientBase implements Runnable } if (!Boolean.valueOf(getTunnel().getClientOptions().getProperty(PROP_USER_AGENT)).booleanValue()) { // let's not advertise to external sites that we are from I2P + UASwitcher ua_switcher = new UASwitcher(); if (usingWWWProxy) - newRequest.append("User-Agent: Wget/1.11.4\r\n"); + newRequest.append("User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.6) Gecko/20100625 Firefox/3.6.6\r\n"); else newRequest.append("User-Agent: MYOB/6.66 (AN/ON)\r\n"); } - newRequest.append("Connection: close\r\n\r\n"); + newRequest.append("Connection: close\r\n\r\n"); break; } else { newRequest.append(line).append("\r\n"); // HTTP spec From c43ca7de8768c4246cbdbc1a82bf76c2d467b608 Mon Sep 17 00:00:00 2001 From: privateer Date: Mon, 5 Jul 2010 15:34:39 +0000 Subject: [PATCH 21/75] - removed one useless line of code --- .../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java | 1 - 1 file changed, 1 deletion(-) diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java index 930f8eb22..b6c72821e 100644 --- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java +++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java @@ -644,7 +644,6 @@ public class I2PTunnelHTTPClient extends I2PTunnelClientBase implements Runnable } if (!Boolean.valueOf(getTunnel().getClientOptions().getProperty(PROP_USER_AGENT)).booleanValue()) { // let's not advertise to external sites that we are from I2P - UASwitcher ua_switcher = new UASwitcher(); if (usingWWWProxy) newRequest.append("User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.6) Gecko/20100625 Firefox/3.6.6\r\n"); else From b312fdeac1d149954bcdcf0ef06ae119da485b13 Mon Sep 17 00:00:00 2001 From: duck Date: Mon, 5 Jul 2010 23:07:19 +0000 Subject: [PATCH 22/75] susidns: Dutch translation (thanks do monkeybrains) --- apps/susidns/locale/messages_nl.po | 532 +++++++++++++++++++++++++++++ history.txt | 3 + 2 files changed, 535 insertions(+) create mode 100644 apps/susidns/locale/messages_nl.po diff --git a/apps/susidns/locale/messages_nl.po b/apps/susidns/locale/messages_nl.po new file mode 100644 index 000000000..c3afac128 --- /dev/null +++ b/apps/susidns/locale/messages_nl.po @@ -0,0 +1,532 @@ +# I2P +# Copyright (C) 2009 The I2P Project +# This file is distributed under the same license as the susidns package. +# To contribute translations, see http://www.i2p2.de/newdevelopers +# foo , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: I2P susidns\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-07-05 22:40+0000\n" +"PO-Revision-Date: 2010-06-15 11:22+0100\n" +"Last-Translator: duck \n" +"Language-Team: duck , monkeybrains \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: Dutch\n" + +#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:199 +#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:193 +#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:197 +msgid "Search" +msgstr "Zoek" + +#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:203 +msgid "Search within filtered list" +msgstr "Zoek binnen gefilterde lijst" + +#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:205 +msgid "Filtered list" +msgstr "Gefilterde lijst" + +#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:209 +msgid "no matches" +msgstr "geen resultaten" + +#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:212 +msgid "Addressbook" +msgstr "Adresboek" + +#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:214 +msgid "contains no entries" +msgstr "bevat geen items" + +#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:216 +msgid "contains 1 entry" +msgstr "bevat 1 item" + +#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:218 +#, java-format +msgid "contains {0} entries" +msgstr "bevat {0} items" + +#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:228 +#, java-format +msgid "Showing {0} of {1}" +msgstr "Toon {0} van {1}" + +#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:259 +#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:368 +msgid "Add" +msgstr "Toevoegen" + +#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:259 +#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:264 +#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:366 +msgid "Replace" +msgstr "Vervang" + +#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:263 +#, java-format +msgid "Host name {0} is already in addressbook, unchanged." +msgstr "Host naam {0} is al in het adresboek, ongewijzigd." + +#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:265 +#, java-format +msgid "" +"Host name {0} is already in addressbook with a different destination. Click " +"\"Replace\" to overwrite." +msgstr "" +"Host naam {0} is al in het adresboek met een andere destination. Klik op " +"\"Vervang\" om te overschrijven." + +#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:277 +#, java-format +msgid "Destination added for {0}." +msgstr "Destination toegevoegd voor {0}." + +#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:279 +#, java-format +msgid "Destination changed for {0}." +msgstr "Destination gewijzigd voor {0}." + +#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:284 +msgid "Invalid Base 64 destination." +msgstr "Ongeldige Base 64 destination." + +#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:288 +msgid "Please enter a host name and destination" +msgstr "Voer een host naam en destination in" + +#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:292 +#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:314 +msgid "Delete Selected" +msgstr "Verwijderen Selectie" + +#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:302 +#, java-format +msgid "Destination {0} deleted." +msgstr "Destination {0} verwijderd." + +#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:304 +#, java-format +msgid "{0} destinations deleted." +msgstr "{0} destinations verwijderd." + +#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:310 +msgid "Addressbook saved." +msgstr "Adresboek opgeslagen." + +#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:313 +msgid "ERROR: Could not write addressbook file." +msgstr "ERROR: Kan het adresboek bestand niet wegschrijven." + +#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:318 +#: ../src/java/src/i2p/susi/dns/ConfigBean.java:148 +#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:150 +msgid "" +"Invalid form submission, probably because you used the \"back\" or \"reload" +"\" button on your browser. Please resubmit." +msgstr "" +"Ongeldig formulier verzonden, waarschijnlijk omdat je de \"terug\" or " +"\"vernieuw\" knop in je browser hebt gebruikt. Probeer opnieuw te verzenden." + +#: ../src/java/src/i2p/susi/dns/ConfigBean.java:139 +#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:129 +#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:130 +#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:130 +msgid "Save" +msgstr "Opgeslagen" + +#: ../src/java/src/i2p/susi/dns/ConfigBean.java:141 +msgid "Configuration saved." +msgstr "Configuratie opgeslagen." + +#: ../src/java/src/i2p/susi/dns/ConfigBean.java:142 +#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:144 +#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:128 +#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:128 +msgid "Reload" +msgstr "Herladen" + +#: ../src/java/src/i2p/susi/dns/ConfigBean.java:144 +msgid "Configuration reloaded." +msgstr "Configuratie herladen." + +#. Yes this is a hack. +#. No it doesn't work on a text-mode browser. +#. Fetching from the addressbook servlet +#. with the correct parameters will kick off a +#. config reload and fetch. +#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:138 +msgid "" +"Subscriptions saved, updating addressbook from subscription sources now." +msgstr "" +"Subscriptions opgeslagen, adresboek wordt nu vernieuwd van de subscription " +"bronnen." + +#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:142 +msgid "Subscriptions saved." +msgstr "Subscriptions opgeslagen." + +#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:146 +msgid "Subscriptions reloaded." +msgstr "Subscriptions herladen." + +#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:125 +#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:145 +msgid "addressbook" +msgstr "adresboek" + +#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:127 +#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:104 +#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:93 +#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:104 +msgid "addressbooks" +msgstr "adresboeken" + +#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:129 +#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:106 +#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:95 +#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:106 +msgid "private" +msgstr "privé" + +#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:131 +#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:108 +#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:97 +#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:108 +msgid "master" +msgstr "hoofd" + +#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:133 +#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:110 +#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:99 +#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:110 +msgid "router" +msgstr "router" + +#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:135 +#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:112 +#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:101 +#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:112 +msgid "published" +msgstr "gepubliceerd" + +#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:137 +#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:114 +#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:103 +#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:102 +#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:114 +msgid "subscriptions" +msgstr "subscriptions" + +#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:139 +#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:102 +#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:116 +#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:105 +#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:116 +msgid "configuration" +msgstr "configuratie" + +#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:141 +#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:118 +#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:107 +#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:118 +msgid "overview" +msgstr "overzicht" + +#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:163 +msgid "Filter" +msgstr "Filter" + +#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:166 +msgid "all" +msgstr "alle" + +#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:177 +msgid "Current filter" +msgstr "Huidige filter" + +#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:182 +msgid "clear filter" +msgstr "wis filter" + +#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:224 +msgid "Name" +msgstr "Naam" + +#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:226 +#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:362 +msgid "Destination" +msgstr "Destination" + +#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:257 +msgid "Mark for deletion" +msgstr "Markeer voor verwijdering" + +#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:279 +msgid "address helper link" +msgstr "adres helper link" + +#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:312 +msgid "Cancel" +msgstr "Annuleer" + +#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:345 +msgid "This addressbook is empty." +msgstr "Dit adresboek is leeg." + +#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:356 +msgid "Add new destination" +msgstr "Nieuwe destination toevoegen" + +#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:358 +msgid "Hostname" +msgstr "Hostnaam" + +#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:132 +msgid "Hints" +msgstr "Hints" + +#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:134 +msgid "" +"File and directory paths here are relative to the addressbook's working " +"directory, which is normally ~/.i2p/addressbook/ (Linux) or %APPDATA%\\I2P" +"\\addressbook\\ (Windows)." +msgstr "" +"De bestands en directory paden hier zijn relatief aan de werk directory van " +"het adresboek. Dit is gewoonlijk ~/.i2p/addressbook/ (Linux) or %APPDATA%" +"\\I2P\\addressbook\\ (Windows)." + +#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:136 +msgid "" +"If you want to manually add lines to an addressbook, add them to the private " +"or master addressbooks." +msgstr "" +"Indien je handmatig regels wilt toevoegen aan het adresboek, voeg ze toe aan " +"het privé of hoofd adresboek." + +#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:138 +msgid "" +"The router addressbook and the published addressbook are updated by the " +"addressbook application." +msgstr "" +"Het router adresboek en het gepubliceerde adresboek worden geupdate door de " +"adresboek applicatie." + +#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:140 +msgid "" +"When you publish your addressbook, ALL destinations from the master and " +"router addressbooks appear there." +msgstr "" +"Wanneer je je adresboek publiceert, zullen ALLE destinations uit de hoofd en " +"router adresboeken hierin verschijnen." + +#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:142 +msgid "" +"Use the private addressbook for private destinations, these are not " +"published." +msgstr "" +"Gebruik het privé adresboek voor privé destinations, deze worden niet " +"gepubliceerd." + +#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:144 +msgid "Options" +msgstr "Opties" + +#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:146 +msgid "File containing the list of subscriptions URLs (no need to change)" +msgstr "Bestand bevat de lijst met subscription URLs (wijzigen niet nodig)" + +#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:148 +msgid "Update interval in hours" +msgstr "Vernieuw interval in uren" + +#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:150 +msgid "" +"Your public hosts.txt file (choose a path within your webserver document " +"root)" +msgstr "" +"Je publieke hosts.txt bestand (specificeer een pad binnen de document root " +"van je webserver)" + +#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:152 +msgid "Your hosts.txt (don't change)" +msgstr "Je hosts.txt (niet wijzigen)" + +#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:154 +msgid "Your personal addressbook, these hosts will be published" +msgstr "Je persoonlijke adresboek, deze hosts zullen worden gepubliceerd" + +#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:156 +msgid "Your private addressbook, it is never published" +msgstr "Je privé adresboek, dit wordt nooit gepubliceerd" + +#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:158 +msgid "Port for your eepProxy (no need to change)" +msgstr "Poort voor je eepProxy (wijzigen niet nodig)" + +#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:160 +msgid "Hostname for your eepProxy (no need to change)" +msgstr "Hostnaam voor je eepProxy (wijzigen niet nodig)" + +#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:162 +msgid "Whether to update the published addressbook" +msgstr "Of het gepubliceerde adresboek geupdate moet worden" + +#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:164 +msgid "" +"File containing the etags header from the fetched subscription URLs (no need " +"to change)" +msgstr "" +"Bestand bevat de etags header van de gedownloade subscription URLs " +"(wijzigens niet nodig)" + +#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:166 +msgid "" +"File containing the modification timestamp for each fetched subscription URL " +"(no need to change)" +msgstr "" +"Bestand bevat de wijzigings timestap voor elke gedownloade subscription URLs " +"(wijzigens niet nodig)" + +#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:168 +msgid "File to log activity to (change to /dev/null if you like)" +msgstr "" +"Bestand om activiteit naar te loggen (wijzig naar /dev/null indien gewenst)" + +#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:91 +msgid "Introduction" +msgstr "Introductie" + +#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:109 +msgid "What is the addressbook?" +msgstr "Wat is het adresboek?" + +#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:111 +msgid "The addressbook application is part of your i2p installation." +msgstr "De adresboek applicatie is een onderdeel van je i2p installatie." + +#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:113 +msgid "" +"It regularly updates your hosts.txt file from distributed sources or " +"\"subscriptions\"." +msgstr "" +"Het update je hosts.txt bestand regelmatig vanaf gedistribueerde bronnen of " +"\"subscriptions\"." + +#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:115 +msgid "" +"In the default configuration, the addressbook is only subscribed to www.i2p2." +"i2p." +msgstr "" +"In de standaard configuratie heeft het adresboek alleen subscriptions op www." +"i2p2.i2p." + +#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:117 +msgid "" +"Subscribing to additional sites is easy, just add them to your subscriptions file." +msgstr "" +"Subscriptions op andere sites toevoegen is eenvoudig, voeg ze toe aan het subscriptions bestand." + +#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:119 +msgid "" +"For more information on naming in i2p, see the overview on www.i2p2.i2p." +msgstr "" +"Voor meer informatie over naamgeving in i2p, zie het overzicht op www.i2p2.i2p." + +#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:121 +msgid "How does the addressbook work?" +msgstr "Hoe werkt het adresboek?" + +#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:123 +msgid "" +"The addressbook application regularly polls your subscriptions and merges " +"their content into your \"router\" addressbook, stored in the hosts.txt file." +msgstr "" +"De adresboek applicatie polst je subscripties regelmatig en voegt hun inhoud " +"bij je \"router\" adresboek, opgeslagen in het hosts.txt bestand." + +#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:125 +msgid "" +"Then it merges your \"master\" addressbook (userhosts.txt) into the router " +"addressbook as well." +msgstr "" +"Vervolgens voegt het ook je \"hoofd\" adresboek (userhosts.txt) samen in het " +"router adresboek." + +#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:127 +msgid "" +"If configured, the router addressbook is now written to the \"published\" " +"addressbook, which will be publicly available if you are running an eepsite." +msgstr "" +"Indien geconfigureerd wordt het router adresboek geschreven naar het " +"\"gepubliceerde\" adresboek, welke publiekelijk beschikbaar is indien je een " +"eepsite hebt." + +#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:129 +msgid "" +"The router also uses a private addressbook (privatehosts.txt, not shown in " +"the picture), which is not merged or published." +msgstr "" +"De router gebruikt tevens een privé adresboek (privatehosts.txt, niet " +"getoond in de afbeelding), deze wordt niet samengevoegd of gepubliceerd." + +#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:131 +msgid "" +"Hosts in the private addressbook can be accessed by you but their addresses " +"are never distributed to others." +msgstr "" +"Hosts in het privé adresboek kunnen door jou benaderd worden, maar worden " +"nooit gedistribueerd naar anderen." + +#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:133 +msgid "" +"The private addressbook can also be used for aliases of hosts in your other " +"addressbooks." +msgstr "" +"Het privé adresboek kan ook gebruikt worden voor aliassen van hosts in je " +"andere adresboeken." + +#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:132 +msgid "The subscription file contains a list of i2p URLs." +msgstr "Het subscription bestand bevat een lijst met i2p URLs." + +#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:134 +#, fuzzy +msgid "" +"The addressbook application regularly checks this list for new eepsites." +msgstr "" +"De adresboek applicatie controlleert deze lijst regelmatig op nieuwe " +"eepsites." + +#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:136 +msgid "Those URLs refer to published hosts.txt files." +msgstr "Deze URLs verwijzen naar gepubliceerde hosts.txt bestanden." + +#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:138 +msgid "" +"The default subscription is the hosts.txt from www.i2p2.i2p, which is " +"updated infrequently." +msgstr "" +"De standaard subscription is het hosts.txt bestand van www.i2p2.i2p, deze " +"wordt slechts sporadisch geupdate." + +#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:140 +msgid "" +"So it is a good idea to add additional subscriptions to sites that have the " +"latest addresses." +msgstr "" +"Dus is het een goed idee om extra subscriptions toe te voegen op sites met " +"de laatste adressen." + +#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:142 +msgid "See the FAQ for a list of subscription URLs." +msgstr "Zie de FAQ voor een lijst met subscription URLs." diff --git a/history.txt b/history.txt index c2fbc0efc..03c8135ca 100644 --- a/history.txt +++ b/history.txt @@ -1,3 +1,6 @@ +2010-07-06 duck + * susidns: Dutch translation (thanks to monkeybrains) + 2010-07-05 zzz * i2psnark: Fix transition to end game * I2PTunnelIRCClient: Filter PART messages like we do for QUIT From d04ce7a2b794b1dbb8c16da02db1fe9124c080ca Mon Sep 17 00:00:00 2001 From: zzz Date: Tue, 6 Jul 2010 17:14:41 +0000 Subject: [PATCH 23/75] launch browser sooner --- installer/resources/clients.config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/installer/resources/clients.config b/installer/resources/clients.config index 85c30da7f..db6fa628e 100644 --- a/installer/resources/clients.config +++ b/installer/resources/clients.config @@ -35,7 +35,7 @@ clientApp.3.startOnLoad=true clientApp.4.main=net.i2p.apps.systray.UrlLauncher clientApp.4.name=Open Router Console in web browser at startup clientApp.4.args=http://127.0.0.1:7657/index.jsp -clientApp.4.delay=15 +clientApp.4.delay=3 clientApp.4.startOnLoad=true # BOB bridge From 3a767d84df06d7df926534ddb4f1b27016d854a7 Mon Sep 17 00:00:00 2001 From: zzz Date: Tue, 6 Jul 2010 17:14:57 +0000 Subject: [PATCH 24/75] concurrentify with LBQ --- .../src/net/i2p/crypto/SHA256Generator.java | 23 +++++-------------- 1 file changed, 6 insertions(+), 17 deletions(-) diff --git a/core/java/src/net/i2p/crypto/SHA256Generator.java b/core/java/src/net/i2p/crypto/SHA256Generator.java index d24915ed5..aa4d041f0 100644 --- a/core/java/src/net/i2p/crypto/SHA256Generator.java +++ b/core/java/src/net/i2p/crypto/SHA256Generator.java @@ -2,8 +2,7 @@ package net.i2p.crypto; import gnu.crypto.hash.Sha256Standalone; -import java.util.ArrayList; -import java.util.List; +import java.util.concurrent.LinkedBlockingQueue; import net.i2p.I2PAppContext; import net.i2p.data.Base64; @@ -15,11 +14,9 @@ import net.i2p.data.Hash; * */ public final class SHA256Generator { - private List _digests; - private final List _digestsGnu; + private final LinkedBlockingQueue _digestsGnu; public SHA256Generator(I2PAppContext context) { - _digests = new ArrayList(32); - _digestsGnu = new ArrayList(32); + _digestsGnu = new LinkedBlockingQueue(32); } public static final SHA256Generator getInstance() { @@ -50,11 +47,7 @@ public final class SHA256Generator { } private Sha256Standalone acquireGnu() { - Sha256Standalone rv = null; - synchronized (_digestsGnu) { - if (!_digestsGnu.isEmpty()) - rv = (Sha256Standalone)_digestsGnu.remove(0); - } + Sha256Standalone rv = _digestsGnu.poll(); if (rv != null) rv.reset(); else @@ -63,11 +56,7 @@ public final class SHA256Generator { } private void releaseGnu(Sha256Standalone digest) { - synchronized (_digestsGnu) { - if (_digestsGnu.size() < 32) { - _digestsGnu.add(digest); - } - } + _digestsGnu.offer(digest); } public static void main(String args[]) { @@ -75,4 +64,4 @@ public final class SHA256Generator { for (int i = 0; i < args.length; i++) System.out.println("SHA256 [" + args[i] + "] = [" + Base64.encode(ctx.sha().calculateHash(args[i].getBytes()).getData()) + "]"); } -} \ No newline at end of file +} From 5c61c28772cf48c5cc36e26cb340e031b4092569 Mon Sep 17 00:00:00 2001 From: duck Date: Tue, 6 Jul 2010 20:09:26 +0000 Subject: [PATCH 25/75] Dutch news --- installer/resources/initialNews.xml | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/installer/resources/initialNews.xml b/installer/resources/initialNews.xml index 728a67058..e87a7dbab 100644 --- a/installer/resources/initialNews.xml +++ b/installer/resources/initialNews.xml @@ -42,6 +42,26 @@ Verbinde deinen IRC Klienten mit dem Server auf localhost:6668 und sage H

+
+

  • Gefeliciteerd met de installatie van I2P!

+

+Welkom bij I2P! +Heb wat geduld terwijl I2P opstart en peers zoekt. +

+

+Terwijl je wacht, pas je bandbreedte instellingen aan op de +configuratie pagina. +

+

+Wanneer je een "gedeelde clients" destination in de linker lijst hebt, +lees dan aub onze FAQ. +

+

+Verbind je IRC client met localhost:6668 en zeg Hallo in +#i2p-help of #i2p. +

+
+

  • Поздравляем с успешным завершением установки I2P!

From 5accdd24fc94c7686d97e57c08a16bca0e75ea23 Mon Sep 17 00:00:00 2001 From: zzz Date: Tue, 6 Jul 2010 23:05:24 +0000 Subject: [PATCH 26/75] RIP p2i.mine.nu --- router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java b/router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java index 29fce33a6..a9c85cd74 100644 --- a/router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java +++ b/router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java @@ -38,8 +38,7 @@ public class Reseeder { private static final String DEFAULT_SEED_URL = "http://a.netdb.i2p2.de/,http://b.netdb.i2p2.de/,http://c.netdb.i2p2.de/," + - "http://reseed.i2p-projekt.de/,http://i2pbote.net/netDb/,http://r31453.ovh.net/static_media/netDb/," + - "http://p2i.mine.nu/netDb/"; + "http://reseed.i2p-projekt.de/,http://i2pbote.net/netDb/,http://r31453.ovh.net/static_media/netDb/"; private static final String PROP_INPROGRESS = "net.i2p.router.web.ReseedHandler.reseedInProgress"; private static final String PROP_ERROR = "net.i2p.router.web.ReseedHandler.errorMessage"; private static final String PROP_STATUS = "net.i2p.router.web.ReseedHandler.statusMessage"; From e13d336f2fed10ffda6df66f3bcb2a02ecdc75fb Mon Sep 17 00:00:00 2001 From: duck Date: Wed, 7 Jul 2010 13:21:50 +0000 Subject: [PATCH 27/75] Dutch translation of proxy error pages --- installer/resources/proxy/denied-header_nl.ht | 20 +++++++++++++ installer/resources/proxy/dnf-header_nl.ht | 23 +++++++++++++++ installer/resources/proxy/dnfb-header_nl.ht | 25 +++++++++++++++++ installer/resources/proxy/dnfh-header_nl.ht | 27 ++++++++++++++++++ installer/resources/proxy/dnfp-header_nl.ht | 28 +++++++++++++++++++ .../resources/proxy/localhost-header_nl.ht | 24 ++++++++++++++++ .../resources/proxy/noproxy-header_nl.ht | 21 ++++++++++++++ .../resources/proxy/protocol-header_nl.ht | 21 ++++++++++++++ 8 files changed, 189 insertions(+) create mode 100644 installer/resources/proxy/denied-header_nl.ht create mode 100644 installer/resources/proxy/dnf-header_nl.ht create mode 100644 installer/resources/proxy/dnfb-header_nl.ht create mode 100644 installer/resources/proxy/dnfh-header_nl.ht create mode 100644 installer/resources/proxy/dnfp-header_nl.ht create mode 100644 installer/resources/proxy/localhost-header_nl.ht create mode 100644 installer/resources/proxy/noproxy-header_nl.ht create mode 100644 installer/resources/proxy/protocol-header_nl.ht diff --git a/installer/resources/proxy/denied-header_nl.ht b/installer/resources/proxy/denied-header_nl.ht new file mode 100644 index 000000000..eab126839 --- /dev/null +++ b/installer/resources/proxy/denied-header_nl.ht @@ -0,0 +1,20 @@ +HTTP/1.1 403 Request Denied +Content-Type: text/html; charset=UTF-8 +Cache-control: no-cache +Connection: close +Proxy-Connection: close + + +I2P Waarschuwing: Verzoek Geweigerd + + + + +

+
+

Waarschuwing: Verzoek Geweigerd

+Je probeerde een verbinding te maken met een niet-I2P website of lokatie. +
diff --git a/installer/resources/proxy/dnf-header_nl.ht b/installer/resources/proxy/dnf-header_nl.ht new file mode 100644 index 000000000..afb4481a9 --- /dev/null +++ b/installer/resources/proxy/dnf-header_nl.ht @@ -0,0 +1,23 @@ +HTTP/1.1 504 Gateway Timeout +Content-Type: text/html; charset=UTF-8 +Cache-control: no-cache +Connection: close +Proxy-Connection: close + + +I2P Warning: Eepsite niet bereikbaar + + + + + +
+

Warning: Eepsite Onbereikbaar

+De eepsite was niet bereikbaar. +De eepsite is offline, er is een netwerk verstopping, +of je router is niet goed geïntegreerd met peers. +Probeer opnieuw. +
Kan de volgende destination niet vinden:

diff --git a/installer/resources/proxy/dnfb-header_nl.ht b/installer/resources/proxy/dnfb-header_nl.ht new file mode 100644 index 000000000..541542fb0 --- /dev/null +++ b/installer/resources/proxy/dnfb-header_nl.ht @@ -0,0 +1,25 @@ +HTTP/1.1 400 Destination Not Found +Content-Type: text/html; charset=UTF-8 +Cache-control: no-cache +Connection: close +Proxy-Connection: close + + +I2P Waarschuwing: Ongeldige eepsite destination + + + + + +
+

Waarschuwing: Ongeldige Eepsite Destination

+De gespecificeerde eepsite destination is ongeldig, +of anderzijds onbereikbaar. Mogelijk heb je de +BASE64 string niet goed gekopieerd of is de link +die je probeert te volgen ongeldig. De I2P host kan +ook offline zijn. Probeer +opnieuw. +
Kon de volgende destination niet vinden:

diff --git a/installer/resources/proxy/dnfh-header_nl.ht b/installer/resources/proxy/dnfh-header_nl.ht new file mode 100644 index 000000000..0d7dc2131 --- /dev/null +++ b/installer/resources/proxy/dnfh-header_nl.ht @@ -0,0 +1,27 @@ +HTTP/1.1 404 Domain Not Found +Content-Type: text/html; charset=UTF-8 +Cache-control: no-cache +Connection: close +Proxy-Connection: close + + +I2P Warning: Eepsite onbekend + + + + + +
+

Waarschuwing: Eepsite Niet Gevonden in Adresboek

+De eepsite was niet gevonden in je router's adresboek. +Controlleer de link of zoek een BASE64 adres. +Indien je een BASE64 adres hebt, plak het in je userhosts.txt via +SusiDNS, +gebruikt een BASE64 adres helper, of gebruik een jump service link hieronder.

+Zie je deze pagina vaak? Lees de FAQ +for hulp bij het toevoegen van subscriptions +aan je adresboek.
+Kan de volgende destination niet vinden:

diff --git a/installer/resources/proxy/dnfp-header_nl.ht b/installer/resources/proxy/dnfp-header_nl.ht new file mode 100644 index 000000000..293900d92 --- /dev/null +++ b/installer/resources/proxy/dnfp-header_nl.ht @@ -0,0 +1,28 @@ +HTTP/1.1 504 Gateway Timeout +Content-Type: text/html; charset=UTF-8 +Cache-control: no-cache +Connection: close +Proxy-Connection: close + + +I2P Waarschuwing: Outproxy Niet Gevonden + + + + + +
+

Waarschuwing: I2P Proxy Niet Gevonden

+De WWW Outproxy was niet gevonden. +Het is offline, er is een netwerk verstopping, +of je router is niet goed geïntegreerd met peers. +Probeer opnieuw +aangezien dit willekeurig een outproxy van de groep zal selecteren die +hier gedefinieerd +(indien er meer van één geconfigureerd is). +Wanneer de problemen blijven volhouden dan kan je de outproxy lijst +hier bewerken. +
Kan de volgende bestemming niet vinden:

diff --git a/installer/resources/proxy/localhost-header_nl.ht b/installer/resources/proxy/localhost-header_nl.ht new file mode 100644 index 000000000..70e778b97 --- /dev/null +++ b/installer/resources/proxy/localhost-header_nl.ht @@ -0,0 +1,24 @@ +HTTP/1.1 403 Access Denied +Content-Type: text/html; charset=UTF-8 +Cache-control: no-cache +Connection: close +Proxy-Connection: close + + +I2P Fout: Verzoek Geweigerd + + + + + +
+

Fout: Lokale Toegang

+Je browser is niet goed geconfigureerd. Gebruikt de proxy niet om de router console, +localhost, of lokale LAN destinations te benaderen. +
diff --git a/installer/resources/proxy/noproxy-header_nl.ht b/installer/resources/proxy/noproxy-header_nl.ht new file mode 100644 index 000000000..4adb0da88 --- /dev/null +++ b/installer/resources/proxy/noproxy-header_nl.ht @@ -0,0 +1,21 @@ +HTTP/1.1 503 Service Unavailable +Content-Type: text/html; charset=UTF-8 +Cache-control: no-cache +Connection: close +Proxy-Connection: close + + +I2P Waarschuwing: Geen outproxy geconfigureerd + + + + + +
+

Waarschuwing: Geen Outproxy Geconfigureerd

+Je probeert een site buiten I2P te benaderen, maar er is geen HTTP +outproxy geconfigureerd. Configureer een outproxy in I2PTunnel. +
diff --git a/installer/resources/proxy/protocol-header_nl.ht b/installer/resources/proxy/protocol-header_nl.ht new file mode 100644 index 000000000..a19ba44dd --- /dev/null +++ b/installer/resources/proxy/protocol-header_nl.ht @@ -0,0 +1,21 @@ +HTTP/1.1 403 Bad Protocol +Content-Type: text/html; charset=UTF-8 +Cache-control: no-cache +Connection: close +Proxy-Connection: close + + +I2P Waarschuwing: Niet-HTTP Protocol + + + + + +
+

Waarschuwing: Niet-HTTP Protocol

+De aanvraag gebruikt een verkeerd protocol. +De I2P HTTP Proxy ondersteunt ALLEEN http:// requests. Andere protocollen zoals https:// en ftp:// zijn niet toegestaan. +
From ed047475179b4fc3226f3170fe521df0fc460b68 Mon Sep 17 00:00:00 2001 From: zzz Date: Wed, 7 Jul 2010 13:28:27 +0000 Subject: [PATCH 28/75] snark css fix for Opera 10.60 thx i2pn00b http://forum.i2p/viewtopic.php?t=4712 --- installer/resources/themes/console/snark.css | 1 + 1 file changed, 1 insertion(+) diff --git a/installer/resources/themes/console/snark.css b/installer/resources/themes/console/snark.css index 8d0c39bcc..47d2b75db 100644 --- a/installer/resources/themes/console/snark.css +++ b/installer/resources/themes/console/snark.css @@ -207,6 +207,7 @@ input { -moz-border-radius: 4px; border-radius: 4px; border: 1px; + background: #ffe; } input.r { From f4b06e586e937680cd9d422fdbb39fa8154ca60e Mon Sep 17 00:00:00 2001 From: duck Date: Wed, 7 Jul 2010 19:04:30 +0000 Subject: [PATCH 29/75] RouterConsole: Add Help & FAQ link, minor label improvements. --- .../i2p/router/web/SummaryBarRenderer.java | 27 ++++++++++++++----- history.txt | 7 ++--- 2 files changed, 22 insertions(+), 12 deletions(-) diff --git a/apps/routerconsole/java/src/net/i2p/router/web/SummaryBarRenderer.java b/apps/routerconsole/java/src/net/i2p/router/web/SummaryBarRenderer.java index 6a548c268..8447db412 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/SummaryBarRenderer.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/SummaryBarRenderer.java @@ -34,7 +34,13 @@ public class SummaryBarRenderer { .append(_("I2P Router Console")) .append("\" title=\"") .append(_("I2P Router Console")) - .append("\">
"); + .append("\">
") + + .append("

") + .append(_("Help & FAQ")) + .append("


"); File lpath = new File(_context.getBaseDir(), "docs/toolbar.html"); // you better have target="_top" for the links in there... @@ -153,19 +159,24 @@ public class SummaryBarRenderer { .append(_("I2P Router Help")) .append("\">") .append(_("General")) - .append("
" + - "


\n" + + + "" + + "" + + "\n" + - "
") + .append(_("Local Identity")) + .append(":" + + "") - .append(_("Local Identity")) - .append("
\n" + + .append(_("show")) + .append("
" + "\n"); -#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:787 -msgid "peers" -msgstr "пиров" - -#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1880 -msgid "UDP connections" -msgstr "UDP соединения" - -#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1887 -msgid "Sort by peer hash" -msgstr "Сортировать по идентификатору пира" - -#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1889 -msgid "Direction/Introduction" -msgstr "Направление / Посредничество" - -#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1891 -msgid "Sort by idle inbound" -msgstr "Сортировать по неактивности приёма" - -#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1893 -msgid "Sort by idle outbound" -msgstr "Сортировать по неактивности передачи" - -#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1896 -msgid "Sort by inbound rate" -msgstr "Сортировать по скорости приёма" - -#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1898 -msgid "Sort by outbound rate" -msgstr "Сортировать по скорости передачи" - -#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1901 -msgid "Sort by connection uptime" -msgstr "Сортировать по времени жизни соединения" - -#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1903 -msgid "Sort by clock skew" -msgstr "Сортировать по расхождению часов" - -#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1906 -msgid "Sort by congestion window" -msgstr "Сортировать по размеру окна насыщения" - -#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1908 -msgid "Sort by slow start threshold" -msgstr "Сортировать по размеру порога медленного старта" - -#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1911 -msgid "Sort by round trip time" -msgstr "Сортировать по времени прохождения сигнала" - -#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1912 -#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2177 -msgid "Dev" -msgstr "Отклонение" - -#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1913 -msgid "Sort by round trip time deviation" -msgstr "Сортировать по отклонению времени прохождения сигнала" - -#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1915 -msgid "Sort by retransmission timeout" -msgstr "Сортировать по таймауту передачи" - -#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1918 -msgid "Sort by outbound maximum transmit unit" -msgstr "Сортировать по размеру исходящего MTU" - -#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1920 -msgid "Sort by packets sent" -msgstr "Сортировать по количеству посланных пакетов" - -#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1922 -msgid "Sort by packets received" -msgstr "Сортировать по количеству принятых пакетов" - -#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1924 -#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2182 -msgid "Dup TX" -msgstr "Повт. принято" - -#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1925 -msgid "Sort by packets retransmitted" -msgstr "Сортировать по количеству повторно посланных пакетов" - -#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1926 -#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2183 -msgid "Dup RX" -msgstr "Повт. передано" - -#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1927 -msgid "Sort by packets received more than once" -msgstr "Сортировать по количеству повторно принятых пакетов" - -#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1948 -msgid "We offered to introduce them" -msgstr "Мы предлагаем себя в качестве посредника для этого пира" - -#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1950 -msgid "They offered to introduce us" -msgstr "Этот пир предлагает себя в качестве нашего посредника" - -#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1954 -msgid "Choked" -msgstr "Дросселирован" - -#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1962 -msgid "1 fail" -msgstr "1 сбой" - -#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1964 -#, java-format -msgid "{0} fails" -msgstr "{0} сбоя(-ев)" - -#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1970 -#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:162 -msgid "Banned" -msgstr "Забанен" - -#. buf.append("\n"); -#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2102 -msgid "SUMMARY" -msgstr "ИТОГО" - -#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2157 -#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:257 -msgid "Definitions" -msgstr "Условные обозначения" - -#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2158 -msgid "The remote peer, identified by router hash" -msgstr "Уникальный идентификатор пира (несколько начальных символов из хеша его маршрутизатора)" - -#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2160 -msgid "Inbound connection" -msgstr "Входящее соединение" - -#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2162 -msgid "Outbound connection" -msgstr "Исходящее соединение" - -#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2164 -msgid "They offered to introduce us (help other peers traverse our firewall)" -msgstr "Этот пир предлагает себя в качестве нашего посредника (для того, чтобы другие пиры могли соединяться с нами в обход нашего брандмауэра)" - -#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2166 -msgid "We offered to introduce them (help other peers traverse their firewall)" -msgstr "Мы предлагаем себя в качестве посредника для этого пира (для того, чтобы другие пиры могли соединяться с ним в обход его брандмауэра)" - -#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2167 -msgid "How long since a packet has been received / sent" -msgstr "Сколько прошло времени после приёма/передачи последнего пакета" - -#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2168 -msgid "The smoothed inbound / outbound transfer rate (KBytes per second)" -msgstr "Усреднённые скорости приёма / передачи (КБайт/сек) " - -#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2169 -msgid "How long ago this connection was established" -msgstr "Время жизни соединения" - -#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2170 -msgid "The difference between the peer's clock and your own" -msgstr "Разница хода часов между пиром и нами" - -#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2171 -msgid "The congestion window, which is how many bytes can be sent without an acknowledgement" -msgstr "Congestion Window. Окно насыщения — количество байт, которое мы можем послать до ожидания подтверждения" - -#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2172 -msgid "The number of sent messages awaiting acknowledgement" -msgstr "Количество отправленных сообщений ожидающих подтверждения" - -#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2173 -msgid "The maximum number of concurrent messages to send" -msgstr "Максимальное количество параллельно отправляемых сообщений" - -#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2174 -msgid "The number of pending sends which exceed congestion window" -msgstr "Количество ожидающих посылок превосходящих размер окна насыщения" - -#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2175 -msgid "The slow start threshold" -msgstr "Slow Start Threshold. Величина порога медленного старта" - -#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2176 -msgid "The round trip time in milliseconds" -msgstr "Round-Trip Time. Время между отправкой запроса и получением ответа (миллисекунды)" - -#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2177 -msgid "The standard deviation of the round trip time in milliseconds" -msgstr "Среднеквадратическое отклонение RTT (миллисекунды)" - -#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2178 -msgid "The retransmit timeout in milliseconds" -msgstr "Retransmit Time-Out. Время ожидания подтверждения перед повторной посылкой пакета (миллисекунды)" - -#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2179 -msgid "Current maximum send packet size / estimated maximum receive packet size (bytes)" -msgstr "Maximum Transfer Unit. Текущий максимальный размер исходящего пакета / максимальный размер принятого пакета (байт) " - -#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2180 -msgid "The total number of packets sent to the peer" -msgstr "Общее количество посланных пиру пакетов" - -#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2181 -msgid "The total number of packets received from the peer" -msgstr "Общее количество принятых от пира пакетов" - -#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2182 -msgid "The total number of packets retransmitted to the peer" -msgstr "Общее количество повторно посланных пиру пакетов" - -#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2183 -msgid "The total number of duplicate packets received from the peer" -msgstr "Общее количество повторно принятых от пира пакетов" - -#: ../../../router/java/src/net/i2p/router/tunnel/pool/BuildHandler.java:145 -msgid "Dropping tunnel requests: Too slow" -msgstr "Игнорируем запросы туннелей: Время выполнения превысило ожидаемое" - -#. don't even bother, since we are so overloaded locally -#: ../../../router/java/src/net/i2p/router/tunnel/pool/BuildHandler.java:352 -msgid "Dropping tunnel requests: Overloaded" -msgstr "Игнорируем запросы туннелей: Слишком высокая нагрузка" - -#: ../../../router/java/src/net/i2p/router/tunnel/pool/BuildHandler.java:523 -msgid "Rejecting tunnels: Request overload" -msgstr "Не принимаем туннели: Слишком много запросов" - -#: ../../../router/java/src/net/i2p/router/tunnel/pool/BuildHandler.java:548 -msgid "Rejecting tunnels: Connection limit" -msgstr "Не принимаем туннели: Достигнут предел количества соединений" - -#: ../../../router/java/src/net/i2p/router/tunnel/pool/BuildHandler.java:742 -msgid "Dropping tunnel requests: High load" -msgstr "Игнорируем запросы туннелей: Высокая нагрузка" - -#: ../../../router/java/src/net/i2p/router/tunnel/pool/BuildHandler.java:751 -msgid "Dropping tunnel requests: Queue time" -msgstr "Игнорируем запросы туннелей: Слишком большое время пребывания в очереди" - -#. Automatically generated pseudo-java for xgettext - do not edit -#. Translators may wish to translate a few of these, do not bother to translate all of them!! -#: ../java/build/Countries.java:3 -msgid "Andorra" -msgstr "Андорра" - -#: ../java/build/Countries.java:4 -msgid "United Arab Emirates" -msgstr "Объединенные Арабские Эмираты" - -#: ../java/build/Countries.java:5 -msgid "Afghanistan" -msgstr "Афганистан" - -#: ../java/build/Countries.java:6 -msgid "Antigua and Barbuda" -msgstr "Антигуа и Барбуда" - -#: ../java/build/Countries.java:7 -msgid "Anguilla" -msgstr "Ангилья" - -#: ../java/build/Countries.java:8 -msgid "Albania" -msgstr "Албания" - -#: ../java/build/Countries.java:9 -msgid "Armenia" -msgstr "Армения" - -#: ../java/build/Countries.java:10 -msgid "Netherlands Antilles" -msgstr "Нидерландские Антильские острова" - -#: ../java/build/Countries.java:11 -msgid "Angola" -msgstr "Ангола" - -#: ../java/build/Countries.java:12 -msgid "Antarctica" -msgstr "Антарктида" - -#: ../java/build/Countries.java:13 -msgid "Argentina" -msgstr "Аргентина" - -#: ../java/build/Countries.java:14 -msgid "American Samoa" -msgstr "Американское Самоа" - -#: ../java/build/Countries.java:15 -msgid "Austria" -msgstr "Австрия" - -#: ../java/build/Countries.java:16 -msgid "Australia" -msgstr "Австралия" - -#: ../java/build/Countries.java:17 -msgid "Aruba" -msgstr "Аруба" - -#: ../java/build/Countries.java:19 -msgid "Azerbaijan" -msgstr "Азербайджан" - -#: ../java/build/Countries.java:20 -msgid "Bosnia and Herzegovina" -msgstr "Босния и Герцеговина" - -#: ../java/build/Countries.java:21 -msgid "Barbados" -msgstr "Барбадос" - -#: ../java/build/Countries.java:22 -msgid "Bangladesh" -msgstr "Бангладеш" - -#: ../java/build/Countries.java:23 -msgid "Belgium" -msgstr "Бельгия" - -#: ../java/build/Countries.java:24 -msgid "Burkina Faso" -msgstr "Буркина-Фасо" - -#: ../java/build/Countries.java:25 -msgid "Bulgaria" -msgstr "Болгария" - -#: ../java/build/Countries.java:26 -msgid "Bahrain" -msgstr "Бахрейн" - -#: ../java/build/Countries.java:27 -msgid "Burundi" -msgstr "Бурунди" - -#: ../java/build/Countries.java:28 -msgid "Benin" -msgstr "Бенин" - -#: ../java/build/Countries.java:29 -msgid "Bermuda" -msgstr "Бермудские Острова" - -#: ../java/build/Countries.java:30 -msgid "Brunei Darussalam" -msgstr "Бруней-Даруссалам" - -#: ../java/build/Countries.java:31 -msgid "Bolivia" -msgstr "Боливия" - -#: ../java/build/Countries.java:32 -msgid "Brazil" -msgstr "Бразилия" - -#: ../java/build/Countries.java:33 -msgid "Bahamas" -msgstr "Багамские острова" - -#: ../java/build/Countries.java:34 -msgid "Bhutan" -msgstr "Бутан" - -#: ../java/build/Countries.java:35 -msgid "Bouvet Island" -msgstr "Остров Буве" - -#: ../java/build/Countries.java:36 -msgid "Botswana" -msgstr "Ботсвана" - -#: ../java/build/Countries.java:37 -msgid "Belarus" -msgstr "Беларусь" - -#: ../java/build/Countries.java:38 -msgid "Belize" -msgstr "Белиз" - -#: ../java/build/Countries.java:39 -msgid "Canada" -msgstr "Канада" - -#: ../java/build/Countries.java:40 -msgid "The Democratic Republic of the Congo" -msgstr "Демократическая Республика Конго" - -#: ../java/build/Countries.java:41 -msgid "Central African Republic" -msgstr "Центральноафриканская Республика" - -#: ../java/build/Countries.java:42 -msgid "Congo" -msgstr "Конго" - -#: ../java/build/Countries.java:43 -msgid "Switzerland" -msgstr "Швейцария" - -#: ../java/build/Countries.java:44 -msgid "Cote D'Ivoire" -msgstr "Кот-д'Ивуар" - -#: ../java/build/Countries.java:45 -msgid "Cook Islands" -msgstr "Острова Кука" - -#: ../java/build/Countries.java:46 -msgid "Chile" -msgstr "Чили" - -#: ../java/build/Countries.java:47 -msgid "Cameroon" -msgstr "Камерун" - -#: ../java/build/Countries.java:48 -msgid "China" -msgstr "Китай" - -#: ../java/build/Countries.java:49 -msgid "Colombia" -msgstr "Колумбия" - -#: ../java/build/Countries.java:50 -msgid "Costa Rica" -msgstr "Коста-Рика" - -#: ../java/build/Countries.java:51 -msgid "Serbia and Montenegro" -msgstr "Сербия и Черногория" - -#: ../java/build/Countries.java:52 -msgid "Cuba" -msgstr "Куба" - -#: ../java/build/Countries.java:53 -msgid "Cape Verde" -msgstr "Кабо-Верде" - -#: ../java/build/Countries.java:54 -msgid "Cyprus" -msgstr "Кипр" - -#: ../java/build/Countries.java:55 -msgid "Czech Republic" -msgstr "Чехия" - -#: ../java/build/Countries.java:56 -msgid "Germany" -msgstr "Германия" - -#: ../java/build/Countries.java:57 -msgid "Djibouti" -msgstr "Джибути" - -#: ../java/build/Countries.java:58 -msgid "Denmark" -msgstr "Дания" - -#: ../java/build/Countries.java:59 -msgid "Dominica" -msgstr "Доминика" - -#: ../java/build/Countries.java:60 -msgid "Dominican Republic" -msgstr "Доминиканская Республика" - -#: ../java/build/Countries.java:61 -msgid "Algeria" -msgstr "Алжир" - -#: ../java/build/Countries.java:62 -msgid "Ecuador" -msgstr "Эквадор" - -#: ../java/build/Countries.java:63 -msgid "Estonia" -msgstr "Эстония" - -#: ../java/build/Countries.java:64 -msgid "Egypt" -msgstr "Египет" - -#: ../java/build/Countries.java:65 -msgid "Eritrea" -msgstr "Эритрея" - -#: ../java/build/Countries.java:66 -msgid "Spain" -msgstr "Испания" - -#: ../java/build/Countries.java:67 -msgid "Ethiopia" -msgstr "Эфиопия" - -#: ../java/build/Countries.java:68 -msgid "Finland" -msgstr "Финляндия" - -#: ../java/build/Countries.java:69 -msgid "Fiji" -msgstr "Фиджи" - -#: ../java/build/Countries.java:70 -msgid "Falkland Islands (Malvinas)" -msgstr "Фолклендские (Мальвинские) острова" - -#: ../java/build/Countries.java:71 -msgid "Federated States of Micronesia" -msgstr "Федеративные Штаты Микронезии" - -#: ../java/build/Countries.java:72 -msgid "Faroe Islands" -msgstr "Фарерские острова" - -#: ../java/build/Countries.java:73 -msgid "France" -msgstr "Франция" - -#: ../java/build/Countries.java:74 -msgid "Gabon" -msgstr "Габон" - -#: ../java/build/Countries.java:75 -msgid "United Kingdom" -msgstr "Великобритания" - -#: ../java/build/Countries.java:76 -msgid "Grenada" -msgstr "Гренада" - -#: ../java/build/Countries.java:77 -msgid "Georgia" -msgstr "Грузия" - -#: ../java/build/Countries.java:78 -msgid "French Guiana" -msgstr "Французская Гвиана" - -#: ../java/build/Countries.java:79 -msgid "Ghana" -msgstr "Гана" - -#: ../java/build/Countries.java:80 -msgid "Gibraltar" -msgstr "Гибралтар" - -#: ../java/build/Countries.java:81 -msgid "Greenland" -msgstr "Гренландия" - -#: ../java/build/Countries.java:82 -msgid "Gambia" -msgstr "Гамбия" - -#: ../java/build/Countries.java:83 -msgid "Guinea" -msgstr "Гвинея" - -#: ../java/build/Countries.java:84 -msgid "Guadeloupe" -msgstr "Гваделупа" - -#: ../java/build/Countries.java:85 -msgid "Equatorial Guinea" -msgstr "Экваториальная Гвинея" - -#: ../java/build/Countries.java:86 -msgid "Greece" -msgstr "Греция" - -#: ../java/build/Countries.java:87 -msgid "South Georgia and the South Sandwich Islands" -msgstr "Южная Джорджия и Южные Сандвичевы Острова" - -#: ../java/build/Countries.java:88 -msgid "Guatemala" -msgstr "Гватемала" - -#: ../java/build/Countries.java:89 -msgid "Guam" -msgstr "Гуам" - -#: ../java/build/Countries.java:90 -msgid "Guinea-Bissau" -msgstr "Гвинея-Бисау" - -#: ../java/build/Countries.java:91 -msgid "Guyana" -msgstr "Гайана" - -#: ../java/build/Countries.java:92 -msgid "Hong Kong" -msgstr "Гонконг" - -#: ../java/build/Countries.java:93 -msgid "Honduras" -msgstr "Гондурас" - -#: ../java/build/Countries.java:94 -msgid "Croatia" -msgstr "Хорватия" - -#: ../java/build/Countries.java:95 -msgid "Haiti" -msgstr "Гаити" - -#: ../java/build/Countries.java:96 -msgid "Hungary" -msgstr "Венгрия" - -#: ../java/build/Countries.java:97 -msgid "Indonesia" -msgstr "Индонезия" - -#: ../java/build/Countries.java:98 -msgid "Ireland" -msgstr "Ирландия" - -#: ../java/build/Countries.java:99 -msgid "Israel" -msgstr "Израиль" - -#: ../java/build/Countries.java:101 -msgid "India" -msgstr "Индия" - -#: ../java/build/Countries.java:102 -msgid "British Indian Ocean Territory" -msgstr "Британская территория в Индийском океане" - -#: ../java/build/Countries.java:103 -msgid "Iraq" -msgstr "Ирак" - -#: ../java/build/Countries.java:104 -msgid "Islamic Republic of Iran" -msgstr "Исламская Республика Иран" - -#: ../java/build/Countries.java:105 -msgid "Iceland" -msgstr "Исландия" - -#: ../java/build/Countries.java:106 -msgid "Italy" -msgstr "Италия" - -#: ../java/build/Countries.java:108 -msgid "Jamaica" -msgstr "Ямайка" - -#: ../java/build/Countries.java:109 -msgid "Jordan" -msgstr "Иордания" - -#: ../java/build/Countries.java:110 -msgid "Japan" -msgstr "Япония" - -#: ../java/build/Countries.java:111 -msgid "Kenya" -msgstr "Кения" - -#: ../java/build/Countries.java:112 -msgid "Kyrgyzstan" -msgstr "Кыргызстан" - -#: ../java/build/Countries.java:113 -msgid "Cambodia" -msgstr "Камбоджа" - -#: ../java/build/Countries.java:114 -msgid "Kiribati" -msgstr "Кирибати" - -#: ../java/build/Countries.java:115 -msgid "Comoros" -msgstr "Коморские Острова" - -#: ../java/build/Countries.java:116 -msgid "Saint Kitts and Nevis" -msgstr "Сент-Китс и Невис" - -#: ../java/build/Countries.java:117 -msgid "Republic of Korea" -msgstr "Республика Корея" - -#: ../java/build/Countries.java:118 -msgid "Kuwait" -msgstr "Кувейт" - -#: ../java/build/Countries.java:119 -msgid "Cayman Islands" -msgstr "Каймановы острова" - -#: ../java/build/Countries.java:120 -msgid "Kazakhstan" -msgstr "Казахстан" - -#: ../java/build/Countries.java:121 -msgid "Lao People's Democratic Republic" -msgstr "Лаосская Народно-Демократическая Республика" - -#: ../java/build/Countries.java:122 -msgid "Lebanon" -msgstr "Ливан" - -#: ../java/build/Countries.java:123 -msgid "Saint Lucia" -msgstr "Сент-Люсия" - -#: ../java/build/Countries.java:124 -msgid "Liechtenstein" -msgstr "Лихтенштейн" - -#: ../java/build/Countries.java:125 -msgid "Sri Lanka" -msgstr "Шри-Ланка" - -#: ../java/build/Countries.java:126 -msgid "Liberia" -msgstr "Либерия" - -#: ../java/build/Countries.java:127 -msgid "Lesotho" -msgstr "Лесото" - -#: ../java/build/Countries.java:128 -msgid "Lithuania" -msgstr "Литва" - -#: ../java/build/Countries.java:129 -msgid "Luxembourg" -msgstr "Люксембург" - -#: ../java/build/Countries.java:130 -msgid "Latvia" -msgstr "Латвия" - -#: ../java/build/Countries.java:131 -msgid "Libyan Arab Jamahiriya" -msgstr "Ливийская Арабская Джамахирия" - -#: ../java/build/Countries.java:132 -msgid "Morocco" -msgstr "Марокко" - -#: ../java/build/Countries.java:133 -msgid "Monaco" -msgstr "Монако" - -#: ../java/build/Countries.java:134 -msgid "Republic of Moldova" -msgstr "Республика Молдова" - -#: ../java/build/Countries.java:137 -msgid "Madagascar" -msgstr "Мадагаскар" - -#: ../java/build/Countries.java:138 -msgid "Marshall Islands" -msgstr "Маршалловы Острова" - -#: ../java/build/Countries.java:139 -msgid "The Former Yugoslav Republic of Macedonia" -msgstr "Бывшая югославская Республика Македония" - -#: ../java/build/Countries.java:140 -msgid "Mali" -msgstr "Мали" - -#: ../java/build/Countries.java:141 -msgid "Myanmar" -msgstr "Мьянма" - -#: ../java/build/Countries.java:142 -msgid "Mongolia" -msgstr "Монголия" - -#: ../java/build/Countries.java:143 -msgid "Macao" -msgstr "Макао" - -#: ../java/build/Countries.java:144 -msgid "Northern Mariana Islands" -msgstr "Северные Марианские острова" - -#: ../java/build/Countries.java:145 -msgid "Martinique" -msgstr "Мартиника" - -#: ../java/build/Countries.java:146 -msgid "Mauritania" -msgstr "Мавритания" - -#: ../java/build/Countries.java:147 -msgid "Montserrat" -msgstr "Монтсеррат" - -#: ../java/build/Countries.java:148 -msgid "Malta" -msgstr "Мальта" - -#: ../java/build/Countries.java:149 -msgid "Mauritius" -msgstr "Маврикий" - -#: ../java/build/Countries.java:150 -msgid "Maldives" -msgstr "Мальдивы" - -#: ../java/build/Countries.java:151 -msgid "Malawi" -msgstr "Малави" - -#: ../java/build/Countries.java:152 -msgid "Mexico" -msgstr "Мексика" - -#: ../java/build/Countries.java:153 -msgid "Malaysia" -msgstr "Малайзия" - -#: ../java/build/Countries.java:154 -msgid "Mozambique" -msgstr "Мозамбик" - -#: ../java/build/Countries.java:155 -msgid "Namibia" -msgstr "Намибия" - -#: ../java/build/Countries.java:156 -msgid "New Caledonia" -msgstr "Новая Каледония" - -#: ../java/build/Countries.java:157 -msgid "Niger" -msgstr "Нигер" - -#: ../java/build/Countries.java:158 -msgid "Norfolk Island" -msgstr "Остров Норфолк" - -#: ../java/build/Countries.java:159 -msgid "Nigeria" -msgstr "Нигерия" - -#: ../java/build/Countries.java:160 -msgid "Nicaragua" -msgstr "Никарагуа" - -#: ../java/build/Countries.java:161 -msgid "Netherlands" -msgstr "Нидерланды" - -#: ../java/build/Countries.java:162 -msgid "Norway" -msgstr "Норвегия" - -#: ../java/build/Countries.java:163 -msgid "Nepal" -msgstr "Непал" - -#: ../java/build/Countries.java:164 -msgid "Nauru" -msgstr "Науру" - -#: ../java/build/Countries.java:165 -msgid "Niue" -msgstr "Ниуэ" - -#: ../java/build/Countries.java:166 -msgid "New Zealand" -msgstr "Новая Зеландия" - -#: ../java/build/Countries.java:167 -msgid "Oman" -msgstr "Оман" - -#: ../java/build/Countries.java:168 -msgid "Panama" -msgstr "Панама" - -#: ../java/build/Countries.java:169 -msgid "Peru" -msgstr "Перу" - -#: ../java/build/Countries.java:170 -msgid "French Polynesia" -msgstr "Французская Полинезия" - -#: ../java/build/Countries.java:171 -msgid "Papua New Guinea" -msgstr "Папуа - Новая Гвинея" - -#: ../java/build/Countries.java:172 -msgid "Philippines" -msgstr "Филиппины" - -#: ../java/build/Countries.java:173 -msgid "Pakistan" -msgstr "Пакистан" - -#: ../java/build/Countries.java:174 -msgid "Poland" -msgstr "Польша" - -#: ../java/build/Countries.java:175 -msgid "Saint Pierre and Miquelon" -msgstr "Сен-Пьер и Микелон" - -#: ../java/build/Countries.java:176 -msgid "Puerto Rico" -msgstr "Пуэрто-Рико" - -#: ../java/build/Countries.java:177 -msgid "Palestinian Territory" -msgstr "Палестинская автономия" - -#: ../java/build/Countries.java:178 -msgid "Portugal" -msgstr "Португалия" - -#: ../java/build/Countries.java:179 -msgid "Palau" -msgstr "Палау" - -#: ../java/build/Countries.java:180 -msgid "Paraguay" -msgstr "Парагвай" - -#: ../java/build/Countries.java:181 -msgid "Qatar" -msgstr "Катар" - -#: ../java/build/Countries.java:182 -msgid "Reunion" -msgstr "Реюньон" - -#: ../java/build/Countries.java:183 -msgid "Romania" -msgstr "Румыния" - -#: ../java/build/Countries.java:184 -msgid "Serbia" -msgstr "Сербия" - -#: ../java/build/Countries.java:185 -msgid "Russian Federation" -msgstr "Российская Федерация" - -#: ../java/build/Countries.java:186 -msgid "Rwanda" -msgstr "Руанда" - -#: ../java/build/Countries.java:187 -msgid "Saudi Arabia" -msgstr "Саудовская Аравия" - -#: ../java/build/Countries.java:188 -msgid "Solomon Islands" -msgstr "Соломоновы Острова" - -#: ../java/build/Countries.java:189 -msgid "Seychelles" -msgstr "Сейшельские Острова" - -#: ../java/build/Countries.java:190 -msgid "Sudan" -msgstr "Судан" - -#: ../java/build/Countries.java:191 -msgid "Sweden" -msgstr "Швеция" - -#: ../java/build/Countries.java:192 -msgid "Singapore" -msgstr "Сингапур" - -#: ../java/build/Countries.java:193 -msgid "Slovenia" -msgstr "Словения" - -#: ../java/build/Countries.java:194 -msgid "Slovakia" -msgstr "Словакия" - -#: ../java/build/Countries.java:195 -msgid "Sierra Leone" -msgstr "Сьерра-Леоне" - -#: ../java/build/Countries.java:196 -msgid "San Marino" -msgstr "Сан-Марино" - -#: ../java/build/Countries.java:197 -msgid "Senegal" -msgstr "Сенегал" - -#: ../java/build/Countries.java:198 -msgid "Somalia" -msgstr "Сомали" - -#: ../java/build/Countries.java:199 -msgid "Suriname" -msgstr "Суринам" - -#: ../java/build/Countries.java:200 -msgid "Sao Tome and Principe" -msgstr "Сан-Томе и Принсипи" - -#: ../java/build/Countries.java:201 -msgid "El Salvador" -msgstr "Сальвадор" - -#: ../java/build/Countries.java:202 -msgid "Syrian Arab Republic" -msgstr "Сирийская Арабская Республика" - -#: ../java/build/Countries.java:203 -msgid "Swaziland" -msgstr "Свазиленд" - -#: ../java/build/Countries.java:204 -msgid "Turks and Caicos Islands" -msgstr "Острова Теркс и Кайкос" - -#: ../java/build/Countries.java:205 -msgid "Chad" -msgstr "Чад" - -#: ../java/build/Countries.java:206 -msgid "French Southern Territories" -msgstr "Французские Южные Территории" - -#: ../java/build/Countries.java:207 -msgid "Togo" -msgstr "Того" - -#: ../java/build/Countries.java:208 -msgid "Thailand" -msgstr "Таиланд" - -#: ../java/build/Countries.java:209 -msgid "Tajikistan" -msgstr "Таджикистан" - -#: ../java/build/Countries.java:210 -msgid "Tokelau" -msgstr "Токелау" - -#: ../java/build/Countries.java:211 -msgid "Timor-Leste" -msgstr "Восточный Тимор" - -#: ../java/build/Countries.java:212 -msgid "Turkmenistan" -msgstr "Туркменистан" - -#: ../java/build/Countries.java:213 -msgid "Tunisia" -msgstr "Тунис" - -#: ../java/build/Countries.java:214 -msgid "Tonga" -msgstr "Тонга" - -#: ../java/build/Countries.java:215 -msgid "Turkey" -msgstr "Турция" - -#: ../java/build/Countries.java:216 -msgid "Trinidad and Tobago" -msgstr "Тринидад и Тобаго" - -#: ../java/build/Countries.java:217 -msgid "Tuvalu" -msgstr "Тувалу" - -#: ../java/build/Countries.java:218 -msgid "Taiwan" -msgstr "Тайвань" - -#: ../java/build/Countries.java:219 -msgid "United Republic of Tanzania" -msgstr "Объединённая Республика Танзания" - -#: ../java/build/Countries.java:220 -msgid "Ukraine" -msgstr "Украина" - -#: ../java/build/Countries.java:221 -msgid "Uganda" -msgstr "Уганда" - -#: ../java/build/Countries.java:222 -msgid "United States Minor Outlying Islands" -msgstr "Внешние малые острова (США)" - -#: ../java/build/Countries.java:223 -msgid "United States" -msgstr "Соединённые Штаты Америки" - -#: ../java/build/Countries.java:224 -msgid "Uruguay" -msgstr "Уругвай" - -#: ../java/build/Countries.java:225 -msgid "Uzbekistan" -msgstr "Узбекистан" - -#: ../java/build/Countries.java:226 -msgid "Holy See (Vatican City State)" -msgstr "Святой Престол (Ватикан)" - -#: ../java/build/Countries.java:227 -msgid "Saint Vincent and the Grenadines" -msgstr "Сент-Винсент и Гренадины" - -#: ../java/build/Countries.java:228 -msgid "Venezuela" -msgstr "Венесуэла" - -#: ../java/build/Countries.java:229 ../java/build/Countries.java:230 -msgid "Virgin Islands" -msgstr "Виргинские острова" - -#: ../java/build/Countries.java:231 -msgid "Viet Nam" -msgstr "Вьетнам" - -#: ../java/build/Countries.java:232 -msgid "Vanuatu" -msgstr "Вануату" - -#: ../java/build/Countries.java:233 -msgid "Wallis and Futuna" -msgstr "Уоллис и Футуна" - -#: ../java/build/Countries.java:234 -msgid "Samoa" -msgstr "Самоа" - -#: ../java/build/Countries.java:235 -msgid "Yemen" -msgstr "Йемен" - -#: ../java/build/Countries.java:236 -msgid "Mayotte" -msgstr "Майотта" - -#: ../java/build/Countries.java:237 -msgid "South Africa" -msgstr "Южная Африка" - -#: ../java/build/Countries.java:238 -msgid "Zambia" -msgstr "Замбия" - -#: ../java/build/Countries.java:239 -msgid "Zimbabwe" -msgstr "Зимбабве" - -#: ../java/src/net/i2p/router/web/CSSHelper.java:57 -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:30 -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:32 -#: ../java/strings/Strings.java:29 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/index_jsp.java:234 -msgid "I2P Router Console" -msgstr "Консоль маршрутизатора I2P" - -#: ../java/src/net/i2p/router/web/ConfigAdvancedHandler.java:57 -msgid "Error updating the configuration - please see the error logs" -msgstr "Не удалось обновить настройки — загляните в журнал ошибок" - -#: ../java/src/net/i2p/router/web/ConfigAdvancedHandler.java:69 -#: ../java/src/net/i2p/router/web/ConfigNetHandler.java:266 -msgid "Configuration saved successfully" -msgstr "Настройки сохранены" - -#: ../java/src/net/i2p/router/web/ConfigAdvancedHandler.java:71 -#: ../java/src/net/i2p/router/web/ConfigNetHandler.java:268 -msgid "Error saving the configuration (applied but not saved) - please see the error logs" -msgstr "Не удалось сохранить настройки (применены, но не сохранены) — загляните в журнал ошибок" - -#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:34 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:334 -msgid "Save Client Configuration" -msgstr "Сохранить настройки клиентов" - -#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:38 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:346 -msgid "Save WebApp Configuration" -msgstr "Сохранить настройки веб-апплетов" - -#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:42 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:356 -msgid "Save Plugin Configuration" -msgstr "Сохранить настройки плагинов" - -#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:46 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:362 -msgid "Install Plugin" -msgstr "Установить плагин" - -#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:82 -#, java-format -msgid "Deleted plugin {0}" -msgstr "Удален плагин {0}" - -#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:84 -#, java-format -msgid "Error deleting plugin {0}" -msgstr "Ошибка при удалении плагина {0}" - -#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:96 -#, java-format -msgid "Stopped plugin {0}" -msgstr "Остановлен плагин {0}" - -#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:98 -#, java-format -msgid "Error stopping plugin {0}" -msgstr "Ошибка при остановке плагина {0}" - -#. label (IE) -#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:119 -#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:189 -msgid "Start" -msgstr "Запустить" - -#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:138 -#: ../java/src/net/i2p/router/web/ConfigKeyringHandler.java:49 -#: ../java/src/net/i2p/router/web/ConfigPeerHandler.java:61 -msgid "Unsupported" -msgstr "Не поддерживается" - -#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:184 -msgid "New client added" -msgstr "Добавлен новый клиент" - -#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:188 -msgid "Client configuration saved successfully - restart required to take effect." -msgstr "Настройки клиентов сохранены, требуется перезагрузка маршрутизатора для вступления в силу." - -#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:202 -#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:213 -msgid "Bad client index." -msgstr "Индекс клиента не найден в списке." - -#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:207 -#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:218 -#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:38 -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:370 -#: ../java/src/net/i2p/router/web/SummaryHelper.java:379 -msgid "Client" -msgstr "Клиент" - -#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:207 -#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:266 -msgid "started" -msgstr "запущен" - -#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:218 -msgid "deleted" -msgstr "удален" - -#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:235 -msgid "WebApp configuration saved." -msgstr "Настройки веб-апплета сохранены." - -#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:251 -msgid "Plugin configuration saved." -msgstr "Настройки плагина сохранены." - -#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:266 -#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:58 -msgid "WebApp" -msgstr "Веб-апплет" - -#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:268 -msgid "Failed to start" -msgstr "Не удалось запустить" - -#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:273 -msgid "Failed to find server." -msgstr "Не удалось найти сервер." - -#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:279 -msgid "No plugin URL specified." -msgstr "Не указан URL загрузки плагина" - -#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:289 -#, java-format -msgid "No update URL specified for {0}" -msgstr "Не указан URL загрузки плагина {0}" - -#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:297 -#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:302 -#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:315 -#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:320 -msgid "Plugin or update download already in progress." -msgstr "Загрузка плагина или обновления уже запущена." - -#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:306 -#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:117 -#, java-format -msgid "Downloading plugin from {0}" -msgstr "Производится загрузка плагина с {0}" - -#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:324 -#, java-format -msgid "Checking plugin {0} for updates" -msgstr "Проверяется наличие обновления для плагина {0}" - -#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:334 -#, java-format -msgid "Started plugin {0}" -msgstr "Запущен плагин {0}" - -#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:336 -#, java-format -msgid "Error starting plugin {0}" -msgstr "Ошибка при запуске плагина {0}" - -#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:21 -#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:192 -msgid "Edit" -msgstr "Редактировать" - -#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:30 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:330 -msgid "Add Client" -msgstr "Добавить клиент" - -#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:38 -msgid "Class and arguments" -msgstr "Название класса и параметры" - -#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:38 -#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:58 -#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:82 -msgid "Control" -msgstr "Управление" - -#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:38 -#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:58 -#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:82 -msgid "Run at Startup?" -msgstr "Запускать автоматически?" - -#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:58 -#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:82 -#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:131 -msgid "Description" -msgstr "Описание" - -#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:82 -msgid "Plugin" -msgstr "Плагин" - -#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:95 -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:266 -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:165 -msgid "Version" -msgstr "Версия" - -#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:97 -msgid "Signed by" -msgstr "Подписано" - -#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:114 -msgid "Date" -msgstr "Дата" - -#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:120 -msgid "Author" -msgstr "Автор" - -#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:136 -msgid "License" -msgstr "Лицензия" - -#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:141 -msgid "Website" -msgstr "Веб-сайт" - -#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:146 -msgid "Update link" -msgstr "Адрес обновления" - -#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:194 -msgid "Stop" -msgstr "Остановить" - -#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:196 -#: ../java/src/net/i2p/router/web/ConfigUpdateHandler.java:62 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:312 -msgid "Check for updates" -msgstr "Проверить обновления" - -#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:197 -#: ../java/src/net/i2p/router/web/ConfigNavHelper.java:18 -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:213 -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:220 -msgid "Update" -msgstr "Обновление" - -#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:202 -#, java-format -msgid "Are you sure you want to delete {0}?" -msgstr "Вы действительно хотите удалить {0}?" - -#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:204 -msgid "Delete" -msgstr "Удалить" - -#: ../java/src/net/i2p/router/web/ConfigKeyringHandler.java:18 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:324 -msgid "Add key" -msgstr "Добавить ключ" - -#: ../java/src/net/i2p/router/web/ConfigKeyringHandler.java:19 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:322 -msgid "Delete key" -msgstr "Удалить ключ" - -#: ../java/src/net/i2p/router/web/ConfigKeyringHandler.java:21 -msgid "You must enter a destination" -msgstr "Вы должны ввести адрес назначения" - -#: ../java/src/net/i2p/router/web/ConfigKeyringHandler.java:23 -msgid "You must enter a key" -msgstr "Вы должны ввести ключ" - -#: ../java/src/net/i2p/router/web/ConfigKeyringHandler.java:34 -#: ../java/src/net/i2p/router/web/ConfigKeyringHandler.java:41 -#: ../java/src/net/i2p/router/web/ConfigKeyringHandler.java:43 -msgid "Key for" -msgstr "Ключ для" - -#: ../java/src/net/i2p/router/web/ConfigKeyringHandler.java:34 -msgid "added to keyring" -msgstr "добавлен в связку ключей" - -#: ../java/src/net/i2p/router/web/ConfigKeyringHandler.java:36 -msgid "Invalid destination or key" -msgstr "Некорректный адрес назначения или ключ" - -#: ../java/src/net/i2p/router/web/ConfigKeyringHandler.java:41 -msgid "removed from keyring" -msgstr "удален из связки ключей" - -#: ../java/src/net/i2p/router/web/ConfigKeyringHandler.java:43 -msgid "not found in keyring" -msgstr "не найден в связке ключей" - -#: ../java/src/net/i2p/router/web/ConfigKeyringHandler.java:45 -msgid "Invalid destination" -msgstr "Некорректный адрес назначения" - -#: ../java/src/net/i2p/router/web/ConfigLoggingHelper.java:46 -msgid "Add additional logging statements above. Example: net.i2p.router.tunnel=WARN" -msgstr "Впишите выше дополнительные настройки уровней детальности журнала. Пример: net.i2p.router.tunnel=WARN" - -#: ../java/src/net/i2p/router/web/ConfigLoggingHelper.java:47 -msgid "Or put entries in the logger.config file. Example: logger.record.net.i2p.router.tunnel=WARN" -msgstr "Либо добавьте эти записи в файл logger.config. Пример: logger.record.net.i2p.router.tunnel=WARN" - -#: ../java/src/net/i2p/router/web/ConfigLoggingHelper.java:48 -msgid "Valid levels are DEBUG, INFO, WARN, ERROR, CRIT" -msgstr "Поддерживаемые уровни: DEBUG, INFO, WARN, ERROR, CRIT" - -# This term intentionally left in English -#: ../java/src/net/i2p/router/web/ConfigLoggingHelper.java:52 -msgid "CRIT" -msgstr "CRIT" - -# This term intentionally left in English -#: ../java/src/net/i2p/router/web/ConfigLoggingHelper.java:52 -msgid "DEBUG" -msgstr "DEBUG" - -# This term intentionally left in English -#: ../java/src/net/i2p/router/web/ConfigLoggingHelper.java:52 -msgid "ERROR" -msgstr "ERROR" - -# This term intentionally left in English -#: ../java/src/net/i2p/router/web/ConfigLoggingHelper.java:52 -msgid "INFO" -msgstr "INFO" - -# This term intentionally left in English -#: ../java/src/net/i2p/router/web/ConfigLoggingHelper.java:52 -msgid "WARN" -msgstr "WARN" - -#: ../java/src/net/i2p/router/web/ConfigNavHelper.java:18 -msgid "Network" -msgstr "Сеть" - -#: ../java/src/net/i2p/router/web/ConfigNavHelper.java:18 -msgid "Service" -msgstr "Служба" - -#: ../java/src/net/i2p/router/web/ConfigNavHelper.java:18 -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:90 -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:359 -#: ../java/strings/Strings.java:72 -msgid "Tunnels" -msgstr "Туннели" - -#: ../java/src/net/i2p/router/web/ConfigNavHelper.java:18 -msgid "UI" -msgstr "Интерфейс" - -#: ../java/src/net/i2p/router/web/ConfigNavHelper.java:19 -msgid "Clients" -msgstr "Апплеты" - -#: ../java/src/net/i2p/router/web/ConfigNavHelper.java:19 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:292 -msgid "Keyring" -msgstr "Ключи" - -#: ../java/src/net/i2p/router/web/ConfigNavHelper.java:19 -msgid "Logging" -msgstr "Журнал" - -#: ../java/src/net/i2p/router/web/ConfigNavHelper.java:19 -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:96 -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:238 -#: ../java/strings/Strings.java:67 -msgid "Peers" -msgstr "Пиры" - -#: ../java/src/net/i2p/router/web/ConfigNavHelper.java:19 -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:373 -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:132 -msgid "Stats" -msgstr "Статистика" - -#: ../java/src/net/i2p/router/web/ConfigNavHelper.java:20 -msgid "Advanced" -msgstr "Дополнительно" - -#: ../java/src/net/i2p/router/web/ConfigNetHandler.java:48 -#: ../java/src/net/i2p/router/web/ConfigNetHandler.java:264 -#: ../java/src/net/i2p/router/web/ConfigTunnelsHandler.java:35 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:359 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:515 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configadvanced_jsp.java:305 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:335 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:375 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configtunnels_jsp.java:343 -msgid "Save changes" -msgstr "Сохранить настройки" - -#: ../java/src/net/i2p/router/web/ConfigNetHandler.java:121 -msgid "Rechecking router reachability..." -msgstr "Перепроверяем доступность маршрутизатора..." - -#: ../java/src/net/i2p/router/web/ConfigNetHandler.java:153 -msgid "Updating IP address" -msgstr "Обновляем IP-адрес" - -#: ../java/src/net/i2p/router/web/ConfigNetHandler.java:171 -msgid "Disabling TCP completely" -msgstr "Полностью отключаем использование TCP" - -#: ../java/src/net/i2p/router/web/ConfigNetHandler.java:175 -msgid "Updating inbound TCP address to" -msgstr "Адрес для входящих TCP соединений изменен на" - -#: ../java/src/net/i2p/router/web/ConfigNetHandler.java:179 -msgid "Disabling inbound TCP" -msgstr "Отключаем использование TCP на вход" - -#: ../java/src/net/i2p/router/web/ConfigNetHandler.java:181 -msgid "Updating inbound TCP address to auto" -msgstr "Адрес для входящих TCP соединений будет определяться автоматически" - -#: ../java/src/net/i2p/router/web/ConfigNetHandler.java:190 -msgid "Updating inbound TCP port to" -msgstr "Порт для входящих TCP соединений изменен на" - -#: ../java/src/net/i2p/router/web/ConfigNetHandler.java:193 -msgid "Updating inbound TCP port to auto" -msgstr "Порт для входящих TCP соединений будет выбираться автоматически" - -#: ../java/src/net/i2p/router/web/ConfigNetHandler.java:205 -msgid "Updating UDP port from" -msgstr "Порт для UDP соединений изменен с" - -#: ../java/src/net/i2p/router/web/ConfigNetHandler.java:205 -msgid "to" -msgstr "на" - -#: ../java/src/net/i2p/router/web/ConfigNetHandler.java:221 -msgid "Gracefully restarting into Hidden Router Mode" -msgstr "Плавная перезагрузка для перехода в скрытый режим" - -#: ../java/src/net/i2p/router/web/ConfigNetHandler.java:223 -msgid "Gracefully restarting to exit Hidden Router Mode" -msgstr "Плавная перезагрузка для выхода из скрытого режима" - -#: ../java/src/net/i2p/router/web/ConfigNetHandler.java:232 -msgid "Enabling UPnP, restart required to take effect" -msgstr "UPnP включен, необходима перезагрузка маршрутизатора" - -#: ../java/src/net/i2p/router/web/ConfigNetHandler.java:234 -msgid "Disabling UPnP, restart required to take effect" -msgstr "UPnP выключен, необходима перезагрузка маршрутизатора" - -#: ../java/src/net/i2p/router/web/ConfigNetHandler.java:242 -msgid "Enabling laptop mode" -msgstr "Включение laptop mode" - -#: ../java/src/net/i2p/router/web/ConfigNetHandler.java:244 -msgid "Disabling laptop mode" -msgstr "Выключение laptop mode" - -#: ../java/src/net/i2p/router/web/ConfigNetHandler.java:250 -msgid "Requiring SSU introducers" -msgstr "Запрашиваем SSU-посредников" - -#. There's a few changes that don't really require restart (e.g. enabling inbound TCP) -#. But it would be hard to get right, so just do a restart. -#: ../java/src/net/i2p/router/web/ConfigNetHandler.java:291 -msgid "Gracefully restarting I2P to change published router address" -msgstr "Плавная перезагрузка для изменения публикуемого адреса" - -#: ../java/src/net/i2p/router/web/ConfigNetHandler.java:314 -msgid "Updating bandwidth share percentage" -msgstr "Обновление доли транзитного трафика" - -#: ../java/src/net/i2p/router/web/ConfigNetHandler.java:397 -msgid "Updated bandwidth limits" -msgstr "Настройки ограничений скорости сохранены" - -#: ../java/src/net/i2p/router/web/ConfigNetHelper.java:39 -#: ../java/src/net/i2p/router/web/ConfigNetHelper.java:47 -#: ../java/src/net/i2p/router/web/ConfigNetHelper.java:50 -#: ../java/src/net/i2p/router/web/ConfigNetHelper.java:57 -#: ../java/src/net/i2p/router/web/ConfigNetHelper.java:60 -msgid "unknown" -msgstr "неизвестен" - -#: ../java/src/net/i2p/router/web/ConfigNetHelper.java:169 -msgid "bits per second" -msgstr "бит/секунду" - -#: ../java/src/net/i2p/router/web/ConfigNetHelper.java:170 -#, java-format -msgid "or {0} bytes per month maximum" -msgstr "или {0} байт/месяц максимум" - -#: ../java/src/net/i2p/router/web/ConfigPeerHandler.java:20 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:314 -msgid "Ban peer until restart" -msgstr "Забанить пира до перезагрузки маршрутизатора" - -#: ../java/src/net/i2p/router/web/ConfigPeerHandler.java:23 -#, java-format -msgid "Manually banned via {0}" -msgstr "Забанен вручную через {0}" - -#: ../java/src/net/i2p/router/web/ConfigPeerHandler.java:24 -msgid "banned until restart" -msgstr "забанен до перезагрузки" - -#: ../java/src/net/i2p/router/web/ConfigPeerHandler.java:27 -#: ../java/src/net/i2p/router/web/ConfigPeerHandler.java:38 -#: ../java/src/net/i2p/router/web/ConfigPeerHandler.java:59 -msgid "Invalid peer" -msgstr "Некорректное описание пира" - -#: ../java/src/net/i2p/router/web/ConfigPeerHandler.java:28 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:316 -msgid "Unban peer" -msgstr "Разбанить пира" - -#: ../java/src/net/i2p/router/web/ConfigPeerHandler.java:33 -msgid "unbanned" -msgstr "разбанен" - -#: ../java/src/net/i2p/router/web/ConfigPeerHandler.java:35 -msgid "is not currently banned" -msgstr "на данный момент не забанен" - -#: ../java/src/net/i2p/router/web/ConfigPeerHandler.java:39 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:322 -msgid "Adjust Profile Bonuses" -msgstr "Настроить бонусы для этого пира" - -#: ../java/src/net/i2p/router/web/ConfigPeerHandler.java:47 -msgid "Bad speed value" -msgstr "Некорректное значение скорости" - -#: ../java/src/net/i2p/router/web/ConfigPeerHandler.java:52 -msgid "Bad capacity value" -msgstr "Некорректное значение ёмкости" - -#. Normal browsers send value, IE sends button label -#: ../java/src/net/i2p/router/web/ConfigRestartBean.java:32 -#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:57 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:292 -msgid "Shutdown immediately" -msgstr "Выключить немедленно" - -#. ctx.router().shutdown(Router.EXIT_HARD); // never returns -#. give the UI time to respond -#: ../java/src/net/i2p/router/web/ConfigRestartBean.java:36 -msgid "Cancel shutdown" -msgstr "Отменить выключение" - -#: ../java/src/net/i2p/router/web/ConfigRestartBean.java:37 -msgid "Cancel restart" -msgstr "Отменить перезагрузку" - -#: ../java/src/net/i2p/router/web/ConfigRestartBean.java:39 -msgid "Restart immediately" -msgstr "Перезагрузить немедленно" - -#. ctx.router().shutdown(Router.EXIT_HARD_RESTART); // never returns -#. give the UI time to respond -#: ../java/src/net/i2p/router/web/ConfigRestartBean.java:43 -msgid "Restart" -msgstr "Перезагрузить" - -#: ../java/src/net/i2p/router/web/ConfigRestartBean.java:46 -msgid "Shutdown" -msgstr "Выключить" - -#: ../java/src/net/i2p/router/web/ConfigRestartBean.java:59 -msgid "Restart imminent" -msgstr "Неотменяемая перезагрузка" - -#: ../java/src/net/i2p/router/web/ConfigRestartBean.java:61 -msgid "Shutdown imminent" -msgstr "Неотменяемое выключение" - -#: ../java/src/net/i2p/router/web/ConfigRestartBean.java:65 -#, java-format -msgid "Shutdown in {0}" -msgstr "Выключение через {0}" - -#: ../java/src/net/i2p/router/web/ConfigRestartBean.java:70 -#, java-format -msgid "Restart in {0}" -msgstr "Перезагрузка через {0}" - -#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:53 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:290 -msgid "Shutdown gracefully" -msgstr "Выключить плавно" - -#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:56 -msgid "Graceful shutdown initiated" -msgstr "Запущено плавное выключение" - -#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:60 -msgid "Shutdown immediately! boom bye bye bad bwoy" -msgstr "Выключаем немедленно!" - -#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:61 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:294 -msgid "Cancel graceful shutdown" -msgstr "Отменить плавное выключение" - -#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:63 -msgid "Graceful shutdown cancelled" -msgstr "Плавное отключение отменено" - -#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:64 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:306 -msgid "Graceful restart" -msgstr "Перезагрузить плавно" - -#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:67 -msgid "Graceful restart requested" -msgstr "Запущена плавная перезагрузка" - -#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:68 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:308 -msgid "Hard restart" -msgstr "Перезагрузить немедленно" - -#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:71 -msgid "Hard restart requested" -msgstr "Запрошена быстрая перезагрузка" - -#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:72 -msgid "Rekey and Restart" -msgstr "Сменить ключ и перезагрузить" - -#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:73 -msgid "Rekeying after graceful restart" -msgstr "Смена ключа после плавной перезагрузки" - -#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:76 -msgid "Rekey and Shutdown" -msgstr "Сменить ключ и выключить" - -#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:77 -msgid "Rekeying after graceful shutdown" -msgstr "Смена ключа после плавного выключения" - -#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:80 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:334 -msgid "Run I2P on startup" -msgstr "Запускать I2P при старте" - -#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:82 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:336 -msgid "Don't run I2P on startup" -msgstr "Не запускать I2P при старте" - -#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:84 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:354 -msgid "Dump threads" -msgstr "Вывести список тредов" - -#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:91 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:322 -msgid "Show systray icon" -msgstr "Показать значок статуса" - -#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:96 -msgid "System tray icon enabled." -msgstr "Включен значок-индикатор статуса в области уведомлений." - -#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:98 -#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:110 -msgid "System tray icon feature not supported on this platform. Sorry!" -msgstr "Вывод индикаторов в области уведомлений на этой платформе не поддерживается. Извините!" - -#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:101 -#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:113 -msgid "Warning: unable to contact the systray manager" -msgstr "Предупреждение: Не удалось соединиться с менеджером области уведомлений" - -#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:103 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:324 -msgid "Hide systray icon" -msgstr "Спрятать значок статуса" - -#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:108 -msgid "System tray icon disabled." -msgstr "Выключен значок-индикатор статуса в области уведомлений." - -#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:115 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:362 -msgid "View console on startup" -msgstr "Открывать веб-консоль при запуске I2P" - -#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:117 -msgid "Console is to be shown on startup" -msgstr "Веб-консоль будет открываться при запуске I2P" - -#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:118 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:364 -msgid "Do not view console on startup" -msgstr "Не открывать веб-консоль при запуске I2P" - -#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:120 -msgid "Console is not to be shown on startup" -msgstr "Веб-консоль не будет открываться при запуске I2P" - -#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:129 -msgid "Service installed" -msgstr "Служба установлена" - -#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:131 -msgid "Warning: unable to install the service" -msgstr "Предупреждение: не удалось установить службу" - -#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:137 -msgid "Service removed" -msgstr "Служба удалена" - -#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:139 -msgid "Warning: unable to remove the service" -msgstr "Предупреждение: не удалось удалить службу" - -#: ../java/src/net/i2p/router/web/ConfigStatsHandler.java:118 -msgid "Stat filter and location updated successfully to" -msgstr "Обновлены настройки файла и фильтра статистики. Новый фильтр" - -#: ../java/src/net/i2p/router/web/ConfigStatsHandler.java:120 -msgid "Failed to update the stat filter and location" -msgstr "Не удалось обновить настройки файла и фильтра статистики." - -#: ../java/src/net/i2p/router/web/ConfigStatsHandler.java:121 -msgid "Graph list updated, may take up to 60s to be reflected here and on the Graphs Page" -msgstr "Список графиков обновлен, для обновления содержимого страницы графиков может потребоваться до 60 секунд." - -#. the count isn't really correct anyway, since we don't check for actual changes -#. addFormNotice("Updated settings for " + updated + " pools."); -#: ../java/src/net/i2p/router/web/ConfigTunnelsHandler.java:137 -msgid "Updated settings for all pools." -msgstr "Обновлены настройки для всех пулов." - -#: ../java/src/net/i2p/router/web/ConfigTunnelsHandler.java:142 -msgid "Exploratory tunnel configuration saved successfully." -msgstr "Настройки зондирующих туннелей сохранены." - -#: ../java/src/net/i2p/router/web/ConfigTunnelsHandler.java:144 -#: ../java/src/net/i2p/router/web/ConfigUIHandler.java:36 -msgid "Error saving the configuration (applied but not saved) - please see the error logs." -msgstr "Не удалось сохранить настройки (применены, но не сохранены) — загляните в журнал ошибок" - -#. * dummies for translation -#: ../java/src/net/i2p/router/web/ConfigTunnelsHelper.java:14 -#, java-format -msgid "1 hop" -msgid_plural "{0} hops" -msgstr[0] "{0} хоп" -msgstr[1] "{0} хопа" -msgstr[2] "{0} хопов" - -#: ../java/src/net/i2p/router/web/ConfigTunnelsHelper.java:15 -#, java-format -msgid "1 tunnel" -msgid_plural "{0} tunnels" -msgstr[0] "{0} туннель" -msgstr[1] "{0} туннеля" -msgstr[2] "{0} туннелей" - -#: ../java/src/net/i2p/router/web/ConfigTunnelsHelper.java:26 -#: ../java/src/net/i2p/router/web/TunnelRenderer.java:41 -msgid "Exploratory tunnels" -msgstr "Зондирующие туннели" - -#: ../java/src/net/i2p/router/web/ConfigTunnelsHelper.java:46 -#: ../java/src/net/i2p/router/web/TunnelRenderer.java:61 -msgid "Client tunnels for" -msgstr "Клиентские туннели для:" - -#: ../java/src/net/i2p/router/web/ConfigTunnelsHelper.java:69 -msgid "ANONYMITY WARNING - Settings include 0-hop tunnels." -msgstr "ОПАСНО ДЛЯ АНОНИМНОСТИ — Настройки задают 0-хоповые туннели." - -#: ../java/src/net/i2p/router/web/ConfigTunnelsHelper.java:74 -msgid "ANONYMITY WARNING - Settings include 1-hop tunnels." -msgstr "ОПАСНО ДЛЯ АНОНИМНОСТИ — Настройки задают 1-хоповые туннели." - -#: ../java/src/net/i2p/router/web/ConfigTunnelsHelper.java:77 -msgid "PERFORMANCE WARNING - Settings include very long tunnels." -msgstr "ОПАСНО ДЛЯ ПРОИЗВОДИТЕЛЬНОСТИ — Настройки задают слишком длинные туннели." - -#: ../java/src/net/i2p/router/web/ConfigTunnelsHelper.java:80 -msgid "PERFORMANCE WARNING - Settings include high tunnel quantities." -msgstr "ОПАСНО ДЛЯ ПРОИЗВОДИТЕЛЬНОСТИ — Настройки задают слишком большие количества туннелей." - -#. buf.append("\n"); -#. tunnel depth -#: ../java/src/net/i2p/router/web/ConfigTunnelsHelper.java:87 -msgid "Length" -msgstr "Длина" - -#. tunnel depth variance -#: ../java/src/net/i2p/router/web/ConfigTunnelsHelper.java:104 -msgid "Randomization" -msgstr "Разброс" - -#. tunnel quantity -#: ../java/src/net/i2p/router/web/ConfigTunnelsHelper.java:128 -msgid "Quantity" -msgstr "Количество" - -#. tunnel backup quantity -#: ../java/src/net/i2p/router/web/ConfigTunnelsHelper.java:145 -msgid "Backup quantity" -msgstr "Резервное количество" - -#: ../java/src/net/i2p/router/web/ConfigTunnelsHelper.java:167 -msgid "Inbound options" -msgstr "Дополнительные параметры для входящих" - -#: ../java/src/net/i2p/router/web/ConfigTunnelsHelper.java:180 -msgid "Outbound options" -msgstr "Дополнительные параметры для исходящих" - -#: ../java/src/net/i2p/router/web/ConfigUIHandler.java:31 -msgid "Theme change saved." -msgstr "Изменение темы оформления сохранено." - -#: ../java/src/net/i2p/router/web/ConfigUIHandler.java:33 -msgid "Refresh the page to view." -msgstr "Обновите страницу для просмотра." - -#: ../java/src/net/i2p/router/web/ConfigUIHelper.java:51 -msgid "English" -msgstr "English" - -#: ../java/src/net/i2p/router/web/ConfigUIHelper.java:51 -msgid "French" -msgstr "Français" - -#: ../java/src/net/i2p/router/web/ConfigUIHelper.java:51 -msgid "German" -msgstr "Deutsch" - -#: ../java/src/net/i2p/router/web/ConfigUIHelper.java:52 -msgid "Chinese" -msgstr "中文" - -#: ../java/src/net/i2p/router/web/ConfigUIHelper.java:52 -msgid "Dutch" -msgstr "Nederlands" - -#: ../java/src/net/i2p/router/web/ConfigUIHelper.java:52 -msgid "Russian" -msgstr "Русский" - -#: ../java/src/net/i2p/router/web/ConfigUIHelper.java:52 -msgid "Swedish" -msgstr "Svenska" - -#: ../java/src/net/i2p/router/web/ConfigUpdateHandler.java:69 -msgid "Update available, attempting to download now" -msgstr "Доступно обновление, пытаемся загрузить" - -#: ../java/src/net/i2p/router/web/ConfigUpdateHandler.java:71 -msgid "Update available, click button on left to download" -msgstr "Доступно обновление, нажмите кнопку слева для загрузки" - -#: ../java/src/net/i2p/router/web/ConfigUpdateHandler.java:77 -msgid "No update available" -msgstr "Нет доступных обновлений" - -#: ../java/src/net/i2p/router/web/ConfigUpdateHandler.java:85 -msgid "Updating news URL to" -msgstr "Новый URL новостей" - -#: ../java/src/net/i2p/router/web/ConfigUpdateHandler.java:93 -msgid "Updating proxy host to" -msgstr "Новый адрес I2P-прокси" - -#: ../java/src/net/i2p/router/web/ConfigUpdateHandler.java:101 -msgid "Updating proxy port to" -msgstr "Новый порт I2P-прокси" - -#: ../java/src/net/i2p/router/web/ConfigUpdateHandler.java:114 -msgid "Updating refresh frequency to" -msgstr "Новый интервал проверки обновлений" - -#: ../java/src/net/i2p/router/web/ConfigUpdateHandler.java:121 -msgid "Updating update policy to" -msgstr "Новый режим обновлений" - -#: ../java/src/net/i2p/router/web/ConfigUpdateHandler.java:130 -msgid "Updating update URLs." -msgstr "Новые URL обновлений" - -#: ../java/src/net/i2p/router/web/ConfigUpdateHandler.java:139 -msgid "Updating trusted keys." -msgstr "Обновление списка доверенных ключей." - -#: ../java/src/net/i2p/router/web/ConfigUpdateHandler.java:147 -msgid "Updating unsigned update URL to" -msgstr "Новый URL неподписанной тестовой сборки" - -#: ../java/src/net/i2p/router/web/ConfigUpdateHelper.java:88 -#: ../java/src/net/i2p/router/web/GraphHelper.java:138 -msgid "Never" -msgstr "Никогда" - -#: ../java/src/net/i2p/router/web/ConfigUpdateHelper.java:90 -msgid "Every" -msgstr "Каждые" - -#: ../java/src/net/i2p/router/web/ConfigUpdateHelper.java:108 -msgid "Notify only" -msgstr "Только уведомлять" - -#: ../java/src/net/i2p/router/web/ConfigUpdateHelper.java:115 -msgid "Download and verify only" -msgstr "Только скачать и проверить целостность" - -#: ../java/src/net/i2p/router/web/ConfigUpdateHelper.java:123 -msgid "Download, verify, and restart" -msgstr "Скачать, проверить и обновить I2P" - -#: ../java/src/net/i2p/router/web/FormHandler.java:163 -msgid "Invalid form submission, probably because you used the 'back' or 'reload' button on your browser. Please resubmit." -msgstr "Форма не принята, скорее всего это произошло из-за того, что Вы нажимали кнопку \"Назад\" или \"Обновить\" в браузере. Пожалуйста, заполните форму заново." - -#: ../java/src/net/i2p/router/web/GraphHelper.java:82 -msgid "Combined bandwidth graph" -msgstr "График загрузки канала" - -#. e.g. "statname for 60m" -#: ../java/src/net/i2p/router/web/GraphHelper.java:96 -#, java-format -msgid "{0} for {1}" -msgstr "{0} за {1}" - -#: ../java/src/net/i2p/router/web/GraphHelper.java:130 -msgid "Configure Graph Display" -msgstr "Настройка показа графиков" - -#: ../java/src/net/i2p/router/web/GraphHelper.java:130 -msgid "Select Stats" -msgstr "Выбрать параметры" - -#: ../java/src/net/i2p/router/web/GraphHelper.java:132 -msgid "Periods" -msgstr "Количество интервалов" - -#: ../java/src/net/i2p/router/web/GraphHelper.java:133 -msgid "Plot averages" -msgstr "Строить график средних значений" - -#: ../java/src/net/i2p/router/web/GraphHelper.java:134 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:416 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:332 -msgid "or" -msgstr "или" - -#: ../java/src/net/i2p/router/web/GraphHelper.java:134 -msgid "plot events" -msgstr "строить график количества событий" - -#: ../java/src/net/i2p/router/web/GraphHelper.java:135 -msgid "Image sizes" -msgstr "Размеры графиков" - -#: ../java/src/net/i2p/router/web/GraphHelper.java:135 -msgid "width" -msgstr "ширина" - -#: ../java/src/net/i2p/router/web/GraphHelper.java:136 -msgid "height" -msgstr "высота" - -#: ../java/src/net/i2p/router/web/GraphHelper.java:136 -#: ../java/src/net/i2p/router/web/GraphHelper.java:137 -msgid "pixels" -msgstr "пикселей" - -#: ../java/src/net/i2p/router/web/GraphHelper.java:138 -msgid "Refresh delay" -msgstr "Интервал обновления" - -#: ../java/src/net/i2p/router/web/GraphHelper.java:138 -msgid "hour" -msgstr "час" - -#: ../java/src/net/i2p/router/web/GraphHelper.java:138 -msgid "minute" -msgstr "минута" - -#: ../java/src/net/i2p/router/web/GraphHelper.java:138 -msgid "minutes" -msgstr "минут(ы)" - -#: ../java/src/net/i2p/router/web/GraphHelper.java:139 -msgid "Redraw" -msgstr "Перерисовать" - -#: ../java/src/net/i2p/router/web/LogsHelper.java:13 -#: ../java/src/net/i2p/router/web/LogsHelper.java:37 -msgid "File location" -msgstr "Путь к файлу журнала" - -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:75 -msgid "Network Database RouterInfo Lookup" -msgstr "Просмотр RouterInfo" - -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:90 -#: ../java/strings/Strings.java:68 -msgid "Router" -msgstr "Маршрутизатор" - -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:90 -msgid "not found in network database" -msgstr "не найден в сетевой базе данных" - -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:102 -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:210 -msgid "Network Database Contents" -msgstr "Просмотр сетевой базы данных" - -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:103 -msgid "View RouterInfo" -msgstr "Показать список RouterInfo" - -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:104 -msgid "LeaseSets" -msgstr "Список LeaseSet" - -# This term intentionally left in English -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:126 -msgid "LeaseSet" -msgstr "LeaseSet" - -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:128 -msgid "Local" -msgstr "Локальный" - -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:130 -msgid "Unpublished" -msgstr "Неопубликованный" - -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:131 -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:138 -msgid "Destination" -msgstr "Адрес назначения" - -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:148 -#, java-format -msgid "Expires in {0}" -msgstr "Истекает через {0}" - -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:150 -#, java-format -msgid "Expired {0} ago" -msgstr "Истек {0} назад" - -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:162 -#: ../java/src/net/i2p/router/web/TunnelRenderer.java:156 -msgid "Gateway" -msgstr "Шлюз" - -# This term intentionally left in English -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:162 -msgid "Lease" -msgstr "Lease" - -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:164 -msgid "Tunnel" -msgstr "Туннель" - -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:210 -msgid "View LeaseSets" -msgstr "Показать список LeaseSet" - -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:212 -msgid "Not initialized" -msgstr "База не инициализирована" - -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:221 -msgid "Routers" -msgstr "Маршрутизаторы" - -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:223 -msgid "Show all routers" -msgstr "Показать полный список" - -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:225 -msgid "Show all routers with full stats" -msgstr "Показать полный список с полной статистикой" - -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:260 -msgid "Network Database Router Statistics" -msgstr "Статистика маршрутизаторов" - -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:266 -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:280 -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:298 -msgid "Count" -msgstr "Количество" - -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:280 -msgid "Transports" -msgstr "Транспортный протокол" - -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:298 -msgid "Country" -msgstr "Страна" - -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:330 -msgid "Our info" -msgstr "Информация о нас" - -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:332 -msgid "Peer info for" -msgstr "Информация о пире" - -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:336 -msgid "Full entry" -msgstr "Показать полную запись" - -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:342 -#: ../java/src/net/i2p/router/web/SummaryHelper.java:110 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:600 -msgid "Hidden" -msgstr "Скрытый" - -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:342 -msgid "Updated" -msgstr "Обновленный" - -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:343 -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:346 -#, java-format -msgid "{0} ago" -msgstr "{0} назад" - -#. shouldnt happen -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:345 -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:349 -msgid "Published" -msgstr "Опубликовано" - -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:351 -msgid "Address(es)" -msgstr "Адрес(а)" - -# This term intentionally left in English -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:364 -msgid "cost" -msgstr "cost" - -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:388 -msgid "Hidden or starting up" -msgstr "В скрытом режиме или недавно запущен" - -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:388 -msgid "SSU" -msgstr "SSU" - -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:388 -msgid "SSU with introducers" -msgstr "SSU через посредников" - -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:389 -msgid "NTCP" -msgstr "NTCP" - -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:389 -msgid "NTCP and SSU" -msgstr "NTCP и SSU" - -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:389 -msgid "NTCP and SSU with introducers" -msgstr "NTCP и SSU через посредников" - -#: ../java/src/net/i2p/router/web/NewsFetcher.java:82 -#, java-format -msgid "News last updated {0} ago." -msgstr "Новости последний раз обновлялись {0} назад." - -#: ../java/src/net/i2p/router/web/NewsFetcher.java:88 -#, java-format -msgid "News last checked {0} ago." -msgstr "Новости последний раз проверялись {0} назад." - -#: ../java/src/net/i2p/router/web/PluginUpdateChecker.java:77 -#, java-format -msgid "Cannot check, plugin {0} is not installed" -msgstr "Проверка невозможна — плагин {0} не установлен" - -#: ../java/src/net/i2p/router/web/PluginUpdateChecker.java:129 -#, java-format -msgid "Checking for update of plugin {0}" -msgstr "Проверяется наличие обновления для плагина {0}" - -#: ../java/src/net/i2p/router/web/PluginUpdateChecker.java:154 -#, java-format -msgid "New plugin version {0} is available" -msgstr "Доступна новая версия {0}" - -#: ../java/src/net/i2p/router/web/PluginUpdateChecker.java:156 -#, java-format -msgid "No new version is available for plugin {0}" -msgstr "Для плагина {0} нет обновлений" - -#: ../java/src/net/i2p/router/web/PluginUpdateChecker.java:165 -#, java-format -msgid "Update check failed for plugin {0}" -msgstr "Ошибка при проверке наличия обновлений для плагина {0}" - -#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:138 -msgid "Downloading plugin" -msgstr "Загружается плагин" - -#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:145 -#: ../java/src/net/i2p/router/web/UpdateHandler.java:179 -#, java-format -msgid "{0}B transferred" -msgstr "{0} байт скачано" - -#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:151 -msgid "Plugin downloaded" -msgstr "Плагин загружен" - -#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:156 -#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:343 -#, java-format -msgid "Cannot create plugin directory {0}" -msgstr "Не удалось создать директорию плагина {0}" - -#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:165 -#: ../java/src/net/i2p/router/web/UpdateHandler.java:220 -#, java-format -msgid "from {0}" -msgstr "из {0}" - -#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:175 -#, java-format -msgid "Plugin from {0} is corrupt" -msgstr "Загруженный из {0} плагин поврежден" - -#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:186 -#, java-format -msgid "Plugin from {0} does not contain the required configuration file" -msgstr "Загруженный из {0} плагин не содержит необходимого файла настроек" - -#. updateStatus("" + "Plugin contains an invalid key" + ' ' + pubkey + ' ' + signer + ""); -#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:199 -#, java-format -msgid "Plugin from {0} contains an invalid key" -msgstr "Загруженный из {0} плагин содержит некорректный ключ" - -#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:218 -#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:227 -#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:236 -#, java-format -msgid "Plugin signature verification of {0} failed" -msgstr "Плагин {0} содержит недействительную подпись" - -#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:251 -#, java-format -msgid "Plugin from {0} has invalid name or version" -msgstr "Загруженный из {0} плагин имеет некорректное название или версию" - -#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:256 -#, java-format -msgid "Plugin {0} has mismatched versions" -msgstr "Плагин {0} содержит несовпадающие версии" - -#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:264 -#, java-format -msgid "This plugin requires I2P version {0} or higher" -msgstr "Для этого плагина требуется версия I2P {0} и выше" - -#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:272 -#, java-format -msgid "This plugin requires Java version {0} or higher" -msgstr "Для этого плагина требуется версия Java {0} и выше" - -#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:280 -msgid "Downloaded plugin is for new installs only, but the plugin is already installed" -msgstr "Загруженный инсталлятор плагина предназначен только для первоначальной установки, но такой плагин уже установлен" - -#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:292 -msgid "Installed plugin does not contain the required configuration file" -msgstr "Установленный плагин не содержит необходимого файла настроек" - -#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:300 -msgid "Signature of downloaded plugin does not match installed plugin" -msgstr "Подпись загруженного плагина не совпадает с установленным плагином" - -#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:307 -#, java-format -msgid "Downloaded plugin version {0} is not newer than installed plugin" -msgstr "Версия скачанного плагина {0} не новее версии уже установленного плагина" - -#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:314 -#, java-format -msgid "Plugin update requires installed plugin version {0} or higher" -msgstr "Для обновления плагина требуется установленная версия плагина {0} и выше" - -#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:321 -#, java-format -msgid "Plugin update requires installed plugin version {0} or lower" -msgstr "Для обновления плагина требуется установленная версия плагина {0} и ниже" - -#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:338 -msgid "Plugin is for upgrades only, but the plugin is not installed" -msgstr "Загруженный инсталлятор плагина предназначен только для обновления, но такой плагин ещё не был установлен" - -#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:351 -#, java-format -msgid "Failed to install plugin in {0}" -msgstr "Не удалось установить плагин в {0}" - -#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:358 -#, java-format -msgid "Plugin {0} installed, router restart required" -msgstr "Плагин {0} установлен, требуется перезагрузка маршрутизатора" - -#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:360 -#, java-format -msgid "Plugin {0} installed" -msgstr "Плагин {0} установлен" - -#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:369 -#, java-format -msgid "Plugin {0} installed and started" -msgstr "Плагин {0} установлен и запущен" - -#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:371 -#, java-format -msgid "Plugin {0} installed but failed to start, check logs" -msgstr "Плагин {0} установлен, но при его запуске произошел сбой, загляните в журнал ошибок" - -#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:373 -#, java-format -msgid "Plugin {0} installed but failed to start" -msgstr "Плагин {0} установлен, но при его запуске произошел сбой" - -#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:383 -#, java-format -msgid "Failed to download plugin from {0}" -msgstr "Не удалось скачать плагин из {0}" - -#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:72 -msgid "Peer Profiles" -msgstr "Профили пиров" - -#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:73 -#, java-format -msgid "Showing {0} recent profiles." -msgstr "Показано {0} недавно обновленных профилей" - -#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:75 -#, java-format -msgid "Hiding {0} older profiles." -msgstr "Скрыто {0} устаревших профилей." - -#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:77 -#, java-format -msgid "Hiding {0} standard profiles." -msgstr "Также скрыто {0} стандартных профилей (кликните для показа)." - -#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:82 -msgid "Groups (Caps)" -msgstr "Входит в группы (Caps)" - -#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:83 -#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:251 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:334 -msgid "Speed" -msgstr "Скорость" - -#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:84 -#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:253 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:338 -msgid "Capacity" -msgstr "Ёмкость" - -#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:85 -#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:255 -msgid "Integration" -msgstr "Интеграция" - -#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:86 -msgid "Status" -msgstr "Статус" - -#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:126 -msgid "Fast, High Capacity" -msgstr "Быстрые, Высокоёмкие" - -#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:127 -msgid "High Capacity" -msgstr "Высокоёмкие" - -#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:128 -msgid "Standard" -msgstr "Стандартные" - -#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:129 -#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:163 -msgid "Failing" -msgstr "Сбоит" - -#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:131 -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:264 -msgid "Integrated" -msgstr "Интегрированные" - -#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:164 -msgid "Unreachable" -msgstr "Недоступен" - -#. hide if < 10% -#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:171 -msgid "Test Fails" -msgstr "Неудачных тестов" - -#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:175 -msgid "profile" -msgstr "профиль" - -#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:184 -msgid "Floodfill and Integrated Peers" -msgstr "Floodfill и хорошо интегрированные пиры" - -# This term intentionally left in English -#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:188 -msgid "Caps" -msgstr "Caps" - -#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:189 -msgid "Integ. Value" -msgstr "Интег. Значение" - -#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:190 -msgid "Last Heard About" -msgstr "Последний раз слышали о" - -#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:191 -msgid "Last Heard From" -msgstr "Последний приём" - -#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:192 -msgid "Last Good Send" -msgstr "Последняя удачная передача" - -#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:193 -msgid "Last Bad Send" -msgstr "Последняя неудачная передача" - -#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:194 -msgid "10m Resp. Time" -msgstr "Время отклика (последние 10 мин)" - -#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:195 -msgid "1h Resp. Time" -msgstr "Время отклика (последний 1 час)" - -#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:196 -msgid "1d Resp. Time" -msgstr "Время отклика (последний 1 день)" - -#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:197 -msgid "Last Good Lookup" -msgstr "Последний удачный поиск" - -#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:198 -msgid "Last Bad Lookup" -msgstr "Последний неудачный поиск" - -#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:199 -msgid "Last Good Store" -msgstr "Последнее удачное размещение" - -#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:200 -msgid "Last Bad Store" -msgstr "Последнее неудачное размещение" - -#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:201 -msgid "1h Fail Rate" -msgstr "Уровень отказов за 1 час" - -#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:202 -msgid "1d Fail Rate" -msgstr "Уровень отказов за 1 день" - -#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:250 -msgid "Thresholds" -msgstr "Пороговые значения" - -#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:252 -msgid "fast peers" -msgstr "быстрые пиры" - -#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:254 -msgid "high capacity peers" -msgstr "высокоёмкие пиры" - -#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:256 -msgid " well integrated peers" -msgstr "хорошо интегрированные пиры" - -#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:258 -msgid "as determined by the profile organizer" -msgstr "определяется автоматически модулем ProfileOrganizer на основании собранной информации о производительности пира" - -#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:258 -msgid "groups" -msgstr "группы" - -#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:259 -msgid "capabilities in the netDb, not used to determine profiles" -msgstr "информация о пире, предоставленная сетевой базой данных; для профилирования не используется" - -# This term intentionally left in English -#. capabilities -#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:259 -#: ../java/strings/Strings.java:81 -msgid "caps" -msgstr "caps" - -#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:260 -msgid "peak throughput (bytes per second) over a 1 minute period that the peer has sustained in a single tunnel" -msgstr "пиковая скорость (байты/секунду) выданная пиром на одном туннеле за 1-минутый период" - -#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:260 -msgid "speed" -msgstr "скорость" - -#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:261 -msgid "capacity" -msgstr "ёмкость" - -#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:261 -msgid "how many tunnels can we ask them to join in an hour?" -msgstr "к скольким туннелям мы можем попросить этого пира подсоединиться за час?" - -#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:262 -msgid "how many new peers have they told us about lately?" -msgstr "о скольких новых пирах этот пир нам сообщил в последнее время?" - -#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:262 -msgid "integration" -msgstr "интеграция" - -#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:263 -msgid "is the peer banned, or unreachable, or failing tunnel tests?" -msgstr "забанен ли этот пир, недоступен, дает ошибки на тестах?" - -#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:263 -msgid "status" -msgstr "статус" - -#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:313 -msgid "n/a" -msgstr "нет данных" - -#: ../java/src/net/i2p/router/web/ShitlistRenderer.java:57 -#, java-format -msgid "Temporary ban expiring in {0}" -msgstr "Временный бан истекает через {0}" - -#: ../java/src/net/i2p/router/web/ShitlistRenderer.java:59 -#, java-format -msgid "Banned until restart or in {0}" -msgstr "Забанен до перезагрузки или истечения {0}" - -#: ../java/src/net/i2p/router/web/ShitlistRenderer.java:71 -msgid "unban now" -msgstr "разбанить" - -#. Note to translators: all runtime zh translation disabled in this file, no font available in RRD -#: ../java/src/net/i2p/router/web/StatSummarizer.java:174 -msgid "Bandwidth usage" -msgstr "Загрузка канала" - -#: ../java/src/net/i2p/router/web/StatSummarizer.java:181 -msgid "Outbound bytes/sec" -msgstr "Исходящ. байт/сек" - -#. def.line(sendName, Color.BLUE, "Outbound bytes/sec", 3); -#: ../java/src/net/i2p/router/web/StatSummarizer.java:183 -msgid "Inbound bytes/sec" -msgstr "Входящ. байт/сек" - -#: ../java/src/net/i2p/router/web/StatSummarizer.java:186 -#: ../java/src/net/i2p/router/web/StatSummarizer.java:187 -#: ../java/src/net/i2p/router/web/StatSummarizer.java:188 -#: ../java/src/net/i2p/router/web/StatSummarizer.java:189 -msgid "bytes/sec" -msgstr "байт/сек" - -#: ../java/src/net/i2p/router/web/StatSummarizer.java:186 -msgid "out average" -msgstr "исх. сред." - -#: ../java/src/net/i2p/router/web/StatSummarizer.java:187 -#: ../java/src/net/i2p/router/web/StatSummarizer.java:189 -#: ../java/src/net/i2p/router/web/SummaryRenderer.java:110 -msgid "max" -msgstr "макс." - -#: ../java/src/net/i2p/router/web/StatSummarizer.java:188 -msgid "in average" -msgstr "вх. сред." - -#: ../java/src/net/i2p/router/web/StatsGenerator.java:56 -msgid "GO" -msgstr "Перейти" - -#: ../java/src/net/i2p/router/web/StatsGenerator.java:59 -msgid "Statistics gathered during this router's uptime" -msgstr "Статистика собрана за время с последнего запуска маршрутизатора" - -#: ../java/src/net/i2p/router/web/StatsGenerator.java:62 -msgid "The data gathered is quantized over a 1 minute period, so should just be used as an estimate." -msgstr "Собираемые данные округляются за 1-минутные промежутки, поэтому используйте эту информацию только для приблизительной оценки." - -#: ../java/src/net/i2p/router/web/StatsGenerator.java:108 -msgid "frequency" -msgstr "частота" - -#: ../java/src/net/i2p/router/web/StatsGenerator.java:142 -msgid "No lifetime events" -msgstr "Счетчик lifetime событий пуст" - -#: ../java/src/net/i2p/router/web/StatsGenerator.java:154 -msgid "rate" -msgstr "интервал" - -#: ../java/src/net/i2p/router/web/StatsGenerator.java:156 -msgid "avg value" -msgstr "среднее значение" - -#: ../java/src/net/i2p/router/web/StatsGenerator.java:185 -msgid "events" -msgstr "событий" - -#: ../java/src/net/i2p/router/web/StatsGenerator.java:191 -msgid "No events" -msgstr "Нет событий" - -#: ../java/src/net/i2p/router/web/StatsGenerator.java:197 -msgid "lifetime average" -msgstr "среднее за время работы" - -#: ../java/src/net/i2p/router/web/StatsGenerator.java:199 -msgid "peak average" -msgstr "пиковое среднее" - -#. Display the strict average -#: ../java/src/net/i2p/router/web/StatsGenerator.java:217 -msgid "lifetime average value" -msgstr "среднее значение за время работы" - -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:44 -msgid "Configure startup of clients and webapps (services); manually start dormant services" -msgstr "Настройка автозапуска клиентов и веб-апплетов, ручной запуск неактивных приложений" - -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:46 -msgid "I2P Services" -msgstr "I2P сервисы" - -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:52 -msgid "Manage your I2P hosts file here (I2P domain name resolution)" -msgstr "Здесь можно управлять hosts-файлами (единственный механизм, используемый I2P для отображения доменных имен)" - -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:54 -msgid "Addressbook" -msgstr "Адресная Книга" - -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:58 -msgid "Built-in anonymous BitTorrent Client" -msgstr "Встроенный анонимный Bittorrent-клиент" - -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:60 -msgid "Torrents" -msgstr "Торренты" - -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:64 -msgid "Anonymous webmail client" -msgstr "Анонимный почтовый клиент с веб-интерфейсом" - -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:66 -msgid "Webmail" -msgstr "Веб-почта" - -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:70 -msgid "Anonymous resident webserver" -msgstr "Встроенный анонимный веб-сервер" - -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:72 -msgid "Webserver" -msgstr "Веб-сервер" - -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:80 -msgid "Configure I2P Router" -msgstr "Настройка Маршрутизатора I2P" - -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:82 -msgid "I2P Internals" -msgstr "I2P свойства" - -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:88 -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:357 -msgid "View existing tunnels and tunnel build status" -msgstr "Обзор списка существующих туннелей и статуса строящихся" - -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:94 -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:236 -msgid "Show all current peer connections" -msgstr "Просмотр списка текущих соединения с пирами" - -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:100 -msgid "Show recent peer performance profiles" -msgstr "Просмотр профилей пиров" - -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:102 -msgid "Profiles" -msgstr "Профили" - -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:106 -msgid "Show list of all known I2P routers" -msgstr "Показать список всех известных I2P маршрутизаторов" - -# This term intentionally left in English -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:108 -msgid "NetDB" -msgstr "NetDB" - -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:112 -msgid "Health Report" -msgstr "Журналы сообщений маршрутизатора" - -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:114 -msgid "Logs" -msgstr "Журналы" - -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:124 -msgid "Graph router performance" -msgstr "График производительности маршрутизатора" - -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:126 -msgid "Graphs" -msgstr "Графики" - -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:130 -msgid "Textual router performance statistics" -msgstr "Статистика производительности маршрутизатора в текстовом виде" - -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:136 -#: ../java/src/net/i2p/router/web/SummaryHelper.java:365 -msgid "Local Destinations" -msgstr "Локальные туннели" - -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:138 -#: ../java/strings/Strings.java:62 -msgid "I2PTunnel" -msgstr "Менеджер Туннелей" - -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:149 -msgid "I2P Router Help" -msgstr "Справка Маршрутизатора I2P" - -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:151 -msgid "General" -msgstr "Общая информация" - -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:154 -msgid "Your unique I2P router identity is" -msgstr "Уникальный идентификатор Вашего I2P маршрутизатора:" - -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:158 -msgid "never reveal it to anyone" -msgstr "никому его не показывайте." - -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:160 -msgid "Local Identity" -msgstr "Локальный идентификатор" - -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:172 -msgid "How long we've been running for this session" -msgstr "Время работы маршрутизатора с последнего запуска" - -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:175 -msgid "Uptime" -msgstr "Аптайм" - -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:182 -msgid "Help with configuring your firewall and router for optimal I2P performance" -msgstr "Помощь в настройке брандмауэра и маршрутизатора для обеспечения оптимальной производительности I2P" - -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:209 -msgid "Download" -msgstr "Скачать" - -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:218 -msgid "Download Unsigned" -msgstr "Скачать неподписанное" - -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:244 -msgid "Active" -msgstr "Активные" - -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:252 -msgid "Fast" -msgstr "Быстрые" - -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:258 -msgid "High capacity" -msgstr "Высокоёмкие" - -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:270 -msgid "Known" -msgstr "Известные" - -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:285 -msgid "Help with firewall configuration" -msgstr "Помощь в настройке брандмауэра" - -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:287 -msgid "Check NAT/firewall" -msgstr "Проверьте настройки NAT/брандмауэров." - -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:307 -msgid "Reseed" -msgstr "Повторить начальную загрузку" - -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:324 -msgid "Configure router bandwidth allocation" -msgstr "Настройка ограничений скорости" - -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:326 -msgid "Bandwidth in/out" -msgstr "Трафик (вх./исх.)" - -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:342 -msgid "Total" -msgstr "Всего" - -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:349 -msgid "Used" -msgstr "Объем" - -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:364 -msgid "Exploratory" -msgstr "Зондирующие" - -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:376 -msgid "Participating" -msgstr "Транзитные" - -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:382 -msgid "Share ratio" -msgstr "Доля транзита" - -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:388 -msgid "What's in the router's job queue?" -msgstr "Просмотр очереди заданий маршрутизатора." - -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:390 -msgid "Congestion" -msgstr "Занятость" - -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:395 -msgid "Job lag" -msgstr "Задержка задач" - -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:401 -msgid "Message delay" -msgstr "Задежка сообщений" - -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:407 -msgid "Tunnel lag" -msgstr "Задержка туннелей" - -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:413 -msgid "Backlog" -msgstr "Очередь" - -#: ../java/src/net/i2p/router/web/SummaryHelper.java:101 -msgid "ERR-Client Manager I2CP Error - check logs" -msgstr "ОШИБКА - ошибка менеджера I2CP - загляните в журнал ошибок" - -#: ../java/src/net/i2p/router/web/SummaryHelper.java:108 -#, java-format -msgid "ERR-Clock Skew of {0}" -msgstr "ОШИБКА - Часы сбиты (расхождение {0})" - -#: ../java/src/net/i2p/router/web/SummaryHelper.java:117 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:576 -msgid "OK" -msgstr "OK" - -#: ../java/src/net/i2p/router/web/SummaryHelper.java:118 -msgid "ERR-Private TCP Address" -msgstr "ОШИБКА - Частный TCP Адрес" - -#: ../java/src/net/i2p/router/web/SummaryHelper.java:120 -msgid "ERR-SymmetricNAT" -msgstr "ОШИБКА - Симмметричный NAT" - -#: ../java/src/net/i2p/router/web/SummaryHelper.java:123 -msgid "WARN-Firewalled with Inbound TCP Enabled" -msgstr "ПРЕДУПРЕЖДЕНИЕ - Заблокирован извне при включенном на вход TCP" - -#: ../java/src/net/i2p/router/web/SummaryHelper.java:125 -msgid "WARN-Firewalled and Floodfill" -msgstr "ПРЕДУПРЕЖДЕНИЕ - Заблокирован извне и Floodfill" - -#: ../java/src/net/i2p/router/web/SummaryHelper.java:127 -msgid "WARN-Firewalled and Fast" -msgstr "ПРЕДУПРЕЖДЕНИЕ - Заблокирован извне и Быстрый" - -#: ../java/src/net/i2p/router/web/SummaryHelper.java:128 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:580 -msgid "Firewalled" -msgstr "Заблокирован извне" - -#: ../java/src/net/i2p/router/web/SummaryHelper.java:130 -msgid "ERR-UDP Port In Use - Set i2np.udp.internalPort=xxxx in advanced config and restart" -msgstr "ОШИБКА - UDP-порт уже занят - перенастройте i2np.udp.internalPort=xxxx в дополнительных настройках и перезапустите маршрутизатор" - -#: ../java/src/net/i2p/router/web/SummaryHelper.java:136 -msgid "ERR-No Active Peers, Check Network Connection and Firewall" -msgstr "ОШИБКА - Нет активных пиров, проверьте подключение к сети и брандмауэр" - -#: ../java/src/net/i2p/router/web/SummaryHelper.java:139 -msgid "ERR-UDP Disabled and Inbound TCP host/port not set" -msgstr "ОШИБКА - UDP отключено и не заданы адрес/порт для входящих TCP-соединений" - -#: ../java/src/net/i2p/router/web/SummaryHelper.java:141 -msgid "WARN-Firewalled with UDP Disabled" -msgstr "ПРЕДУПРЕЖДЕНИЕ - Заблокирован извне при отключенном UDP" - -#: ../java/src/net/i2p/router/web/SummaryHelper.java:143 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:596 -msgid "Testing" -msgstr "Проверка" - -#: ../java/src/net/i2p/router/web/SummaryHelper.java:365 -msgid "Add/remove/edit & control your client and server tunnels" -msgstr "Управление клиентскими и серверными туннелями" - -#: ../java/src/net/i2p/router/web/SummaryHelper.java:377 -msgid "Server" -msgstr "Сервер" - -#: ../java/src/net/i2p/router/web/SummaryHelper.java:381 -msgid "Show tunnels" -msgstr "Перейти к списку туннелей" - -#: ../java/src/net/i2p/router/web/SummaryHelper.java:392 -msgid "Leases expired" -msgstr "Срок аренды истек" - -#. red or yellow light -#: ../java/src/net/i2p/router/web/SummaryHelper.java:392 -#: ../java/src/net/i2p/router/web/SummaryHelper.java:393 -msgid "Rebuilding" -msgstr "Построение заново" - -#: ../java/src/net/i2p/router/web/SummaryHelper.java:393 -msgid "ago" -msgstr "назад" - -#. green light -#: ../java/src/net/i2p/router/web/SummaryHelper.java:396 -msgid "Ready" -msgstr "Готов к работе" - -#. yellow light -#: ../java/src/net/i2p/router/web/SummaryHelper.java:400 -msgid "Building" -msgstr "Построение" - -#: ../java/src/net/i2p/router/web/SummaryHelper.java:400 -msgid "Building tunnels" -msgstr "Построение туннелей" - -#: ../java/src/net/i2p/router/web/SummaryHelper.java:405 -msgid "none" -msgstr "нет" - -#. tunnel nicknames, taken from i2ptunnel.config so they will display -#. nicely under 'local destinations' in the summary bar -#. note that if the wording changes in i2ptunnel.config, we have to -#. keep the old string here as well for existing installs -#: ../java/src/net/i2p/router/web/SummaryHelper.java:416 -#: ../java/strings/Strings.java:36 -msgid "shared clients" -msgstr "коллективные клиенты" - -#. Note to translators: all runtime zh translation disabled in this file, no font available in RRD -#: ../java/src/net/i2p/router/web/SummaryRenderer.java:84 -#, java-format -msgid "events in {0}" -msgstr "событий за {0}" - -#: ../java/src/net/i2p/router/web/SummaryRenderer.java:86 -#, java-format -msgid "averaged for {0}" -msgstr "усреднённое за {0}" - -#: ../java/src/net/i2p/router/web/SummaryRenderer.java:96 -msgid "Events per period" -msgstr "Событий за период" - -#: ../java/src/net/i2p/router/web/SummaryRenderer.java:109 -msgid "avg" -msgstr "сред." - -#: ../java/src/net/i2p/router/web/SummaryRenderer.java:111 -msgid "now" -msgstr "текущ." - -#: ../java/src/net/i2p/router/web/TunnelRenderer.java:41 -#: ../java/src/net/i2p/router/web/TunnelRenderer.java:63 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/logs_jsp.java:275 -msgid "configure" -msgstr "настроить" - -#: ../java/src/net/i2p/router/web/TunnelRenderer.java:65 -msgid "dead" -msgstr "мертв" - -#: ../java/src/net/i2p/router/web/TunnelRenderer.java:71 -msgid "Participating tunnels" -msgstr "Транзитные туннели" - -#: ../java/src/net/i2p/router/web/TunnelRenderer.java:72 -msgid "From" -msgstr "От кого" - -#: ../java/src/net/i2p/router/web/TunnelRenderer.java:72 -msgid "Receive on" -msgstr "ID принимающего туннеля" - -#: ../java/src/net/i2p/router/web/TunnelRenderer.java:73 -msgid "Expiration" -msgstr "Истечение срока работы" - -#: ../java/src/net/i2p/router/web/TunnelRenderer.java:73 -msgid "Send on" -msgstr "ID передающего туннеля" - -#: ../java/src/net/i2p/router/web/TunnelRenderer.java:73 -msgid "To" -msgstr "Кому" - -#: ../java/src/net/i2p/router/web/TunnelRenderer.java:74 -msgid "Rate" -msgstr "Скорость" - -#: ../java/src/net/i2p/router/web/TunnelRenderer.java:74 -msgid "Role" -msgstr "Роль" - -#: ../java/src/net/i2p/router/web/TunnelRenderer.java:74 -#: ../java/src/net/i2p/router/web/TunnelRenderer.java:156 -msgid "Usage" -msgstr "Трафик" - -#: ../java/src/net/i2p/router/web/TunnelRenderer.java:107 -msgid "grace period" -msgstr "резервный период" - -#: ../java/src/net/i2p/router/web/TunnelRenderer.java:117 -msgid "Outbound Endpoint" -msgstr "Выходная конечная точка" - -#: ../java/src/net/i2p/router/web/TunnelRenderer.java:119 -msgid "Inbound Gateway" -msgstr "Входной шлюз" - -#: ../java/src/net/i2p/router/web/TunnelRenderer.java:121 -#: ../java/src/net/i2p/router/web/TunnelRenderer.java:162 -msgid "Participant" -msgstr "Участник" - -#: ../java/src/net/i2p/router/web/TunnelRenderer.java:126 -msgid "Inactive participating tunnels" -msgstr "Неактивных транзитных туннелей" - -#: ../java/src/net/i2p/router/web/TunnelRenderer.java:127 -#: ../java/src/net/i2p/router/web/TunnelRenderer.java:218 -msgid "Lifetime bandwidth usage" -msgstr "Трафик за время существования" - -#: ../java/src/net/i2p/router/web/TunnelRenderer.java:156 -msgid "Expiry" -msgstr "Истечение срока работы" - -#: ../java/src/net/i2p/router/web/TunnelRenderer.java:159 -msgid "Participants" -msgstr "Участники" - -#: ../java/src/net/i2p/router/web/TunnelRenderer.java:165 -msgid "Endpoint" -msgstr "Конечная точка" - -#: ../java/src/net/i2p/router/web/TunnelRenderer.java:205 -#: ../java/src/net/i2p/router/web/TunnelRenderer.java:212 -msgid "Build in progress" -msgstr "В процессе построения" - -#: ../java/src/net/i2p/router/web/TunnelRenderer.java:205 -msgid "inbound" -msgstr "входящий" - -#: ../java/src/net/i2p/router/web/TunnelRenderer.java:212 -msgid "outbound" -msgstr "исходящий" - -#: ../java/src/net/i2p/router/web/TunnelRenderer.java:217 -msgid "No tunnels; waiting for the grace period to end." -msgstr "Нет туннелей. Ожидаем окончания резервного периода." - -#: ../java/src/net/i2p/router/web/TunnelRenderer.java:218 -msgid "in" -msgstr "(входящий)" - -#: ../java/src/net/i2p/router/web/TunnelRenderer.java:219 -msgid "out" -msgstr "(исходящий)" - -#: ../java/src/net/i2p/router/web/TunnelRenderer.java:236 -msgid "Tunnel Counts By Peer" -msgstr "Статистика участия пиров в туннелях" - -#: ../java/src/net/i2p/router/web/TunnelRenderer.java:237 -msgid "% of total" -msgstr "% от всех" - -#: ../java/src/net/i2p/router/web/TunnelRenderer.java:237 -msgid "Our Tunnels" -msgstr "Наших туннелей" - -#: ../java/src/net/i2p/router/web/TunnelRenderer.java:237 -msgid "Participating Tunnels" -msgstr "Транзитных туннелей" - -#: ../java/src/net/i2p/router/web/TunnelRenderer.java:255 -msgid "Totals" -msgstr "Всего" - -#: ../java/src/net/i2p/router/web/UnsignedUpdateHandler.java:66 -#: ../java/src/net/i2p/router/web/UpdateHandler.java:132 -#: ../java/src/net/i2p/router/web/UpdateHandler.java:145 -#: ../java/src/net/i2p/router/web/UpdateHandler.java:172 -msgid "Updating" -msgstr "Загружается обновление" - -#: ../java/src/net/i2p/router/web/UnsignedUpdateHandler.java:88 -#: ../java/src/net/i2p/router/web/UnsignedUpdateHandler.java:111 -#: ../java/src/net/i2p/router/web/UnsignedUpdateHandler.java:116 -#: ../java/src/net/i2p/router/web/UpdateHandler.java:183 -#: ../java/src/net/i2p/router/web/UpdateHandler.java:208 -msgid "Update downloaded" -msgstr "Обновление загружено" - -#: ../java/src/net/i2p/router/web/UnsignedUpdateHandler.java:91 -#, java-format -msgid "Unsigned update file from {0} is corrupt" -msgstr "Обнаружено повреждение в неподписанном обновлении загруженном из {0}" - -#: ../java/src/net/i2p/router/web/UnsignedUpdateHandler.java:111 -#: ../java/src/net/i2p/router/web/UpdateHandler.java:203 -msgid "Restarting" -msgstr "Производится перезагрузка" - -#: ../java/src/net/i2p/router/web/UnsignedUpdateHandler.java:118 -#: ../java/src/net/i2p/router/web/UpdateHandler.java:210 -msgid "Click Restart to install" -msgstr "Перезагрузите I2P-маршрутизатор для установки" - -#: ../java/src/net/i2p/router/web/UnsignedUpdateHandler.java:120 -#: ../java/src/net/i2p/router/web/UpdateHandler.java:212 -msgid "Click Shutdown and restart to install" -msgstr "Остановите и снова запустите I2P-маршрутизатор для установки" - -#: ../java/src/net/i2p/router/web/UnsignedUpdateHandler.java:121 -#: ../java/src/net/i2p/router/web/UpdateHandler.java:214 -#, java-format -msgid "Version {0}" -msgstr "Версия {0}" - -#: ../java/src/net/i2p/router/web/UnsignedUpdateHandler.java:126 -#, java-format -msgid "Failed copy to {0}" -msgstr "Не удалось скопировать в {0}" - -#: ../java/src/net/i2p/router/web/UpdateHandler.java:203 -msgid "Update verified" -msgstr "Подлинность обновления проверена" - -#: ../java/src/net/i2p/router/web/UpdateHandler.java:228 -msgid "Transfer failed" -msgstr "Не удалось загрузить" - -#. wars for ConfigClientsHelper -#: ../java/strings/Strings.java:12 -msgid "addressbook" -msgstr "адресная книга" - -#: ../java/strings/Strings.java:13 -msgid "i2psnark" -msgstr "i2psnark (bittorrent-клиент)" - -#: ../java/strings/Strings.java:14 -msgid "i2ptunnel" -msgstr "менеджер туннелей i2p" - -# This term intentionally left in English -#: ../java/strings/Strings.java:15 -msgid "susimail" -msgstr "susimail (почтовый клиент)" - -# This term intentionally left in English -#: ../java/strings/Strings.java:16 -msgid "susidns" -msgstr "susidns" - -#: ../java/strings/Strings.java:17 -msgid "routerconsole" -msgstr "консоль маршрутизатора i2p" - -#. clients, taken from clients.config, for ConfigClientsHelper -#. note that if the wording changes in clients.config, we have to -#. keep the old string here as well for existing installs -#: ../java/strings/Strings.java:22 -msgid "Web console" -msgstr "Веб-консоль" - -#: ../java/strings/Strings.java:23 -msgid "SAM application bridge" -msgstr "интерфейс SAM" - -#: ../java/strings/Strings.java:24 -msgid "Application tunnels" -msgstr "Клиентские туннели" - -#: ../java/strings/Strings.java:25 -msgid "My eepsite web server" -msgstr "i2p-вебсервер (eepsite)" - -#: ../java/strings/Strings.java:26 -msgid "I2P webserver (eepsite)" -msgstr "i2p-вебсервер (eepsite)" - -#: ../java/strings/Strings.java:27 -msgid "Browser launch at startup" -msgstr "Запуск браузера при старте I2P" - -#: ../java/strings/Strings.java:28 -msgid "BOB application bridge" -msgstr "интерфейс BOB" - -#: ../java/strings/Strings.java:30 -msgid "Open Router Console in web browser at startup" -msgstr "Открыть консоль маршрутизатора в веб-браузере при старте I2P" - -#: ../java/strings/Strings.java:37 -msgid "IRC proxy" -msgstr "IRC-прокси" - -#: ../java/strings/Strings.java:38 -msgid "eepsite" -msgstr "i2p-сайт" - -#: ../java/strings/Strings.java:39 -msgid "I2P webserver" -msgstr "i2p-вебсервер" - -#: ../java/strings/Strings.java:40 -msgid "HTTP Proxy" -msgstr "HTTP-прокси" - -#. older names for pre-0.7.4 installs -#: ../java/strings/Strings.java:42 -msgid "eepProxy" -msgstr "I2P-прокси" - -#: ../java/strings/Strings.java:43 -msgid "ircProxy" -msgstr "IRC-прокси" - -# This term intentionally left in English -#. hardcoded in i2psnark -#: ../java/strings/Strings.java:45 -msgid "I2PSnark" -msgstr "I2PSnark" - -# This term intentionally left in English -#. hardcoded in iMule? -#: ../java/strings/Strings.java:47 -msgid "iMule" -msgstr "iMule" - -#. standard themes for ConfigUIHelper -#: ../java/strings/Strings.java:51 -msgid "classic" -msgstr "классическая" - -#: ../java/strings/Strings.java:52 -msgid "dark" -msgstr "тёмная" - -#: ../java/strings/Strings.java:53 -msgid "light" -msgstr "светлая" - -#: ../java/strings/Strings.java:54 -msgid "midnight" -msgstr "полуночная" - -#. stat groups for stats.jsp -#: ../java/strings/Strings.java:57 -msgid "Bandwidth" -msgstr "Трафик" - -#: ../java/strings/Strings.java:58 -msgid "BandwidthLimiter" -msgstr "Ограничитель скорости" - -#: ../java/strings/Strings.java:59 -msgid "ClientMessages" -msgstr "Клиентские сообщения" - -#: ../java/strings/Strings.java:60 -msgid "Encryption" -msgstr "Шифрование" - -# This term intentionally left in English -#: ../java/strings/Strings.java:61 -msgid "i2cp" -msgstr "i2cp" - -# This term intentionally left in English -#: ../java/strings/Strings.java:63 -msgid "InNetPool" -msgstr "InNetPool" - -#: ../java/strings/Strings.java:64 -msgid "JobQueue" -msgstr "Очередь заданий" - -#: ../java/strings/Strings.java:65 -msgid "NetworkDatabase" -msgstr "Сетевая база данных" - -# This term intentionally left in English -#: ../java/strings/Strings.java:66 -msgid "ntcp" -msgstr "ntcp" - -# This term intentionally left in English -#: ../java/strings/Strings.java:69 -msgid "Stream" -msgstr "Stream" - -# This term intentionally left in English -#: ../java/strings/Strings.java:70 -msgid "Throttle" -msgstr "Throttle" - -#: ../java/strings/Strings.java:71 -msgid "Transport" -msgstr "Транспортные протоколы" - -# This term intentionally left in English -#: ../java/strings/Strings.java:73 -msgid "udp" -msgstr "udp" - -# This term intentionally left in English -#. parameters in transport addresses (netdb.jsp) -#. may or may not be worth translating -#: ../java/strings/Strings.java:77 -msgid "host" -msgstr "host" - -# This term intentionally left in English -#: ../java/strings/Strings.java:78 -msgid "key" -msgstr "key" - -# This term intentionally left in English -#: ../java/strings/Strings.java:79 -msgid "port" -msgstr "port" - -# This term intentionally left in English -#. introducer host -#: ../java/strings/Strings.java:83 -msgid "ihost0" -msgstr "ihost0" - -# This term intentionally left in English -#: ../java/strings/Strings.java:84 -msgid "ihost1" -msgstr "ihost1" - -# This term intentionally left in English -#: ../java/strings/Strings.java:85 -msgid "ihost2" -msgstr "ihost2" - -# This term intentionally left in English -#. introducer port -#: ../java/strings/Strings.java:87 -msgid "iport0" -msgstr "iport0" - -# This term intentionally left in English -#: ../java/strings/Strings.java:88 -msgid "iport1" -msgstr "iport1" - -# This term intentionally left in English -#: ../java/strings/Strings.java:89 -msgid "iport2" -msgstr "iport2" - -# This term intentionally left in English -#. introducer key -#: ../java/strings/Strings.java:91 -msgid "ikey0" -msgstr "ikey0" - -# This term intentionally left in English -#: ../java/strings/Strings.java:92 -msgid "ikey1" -msgstr "ikey1" - -# This term intentionally left in English -#: ../java/strings/Strings.java:93 -msgid "ikey2" -msgstr "ikey2" - -# This term intentionally left in English -#. introducer tag -#: ../java/strings/Strings.java:95 -msgid "itag0" -msgstr "itag0" - -# This term intentionally left in English -#: ../java/strings/Strings.java:96 -msgid "itag1" -msgstr "itag1" - -# This term intentionally left in English -#: ../java/strings/Strings.java:97 -msgid "itag2" -msgstr "itag2" - -#. Descriptions for the stats that are graphed by default -#. There are over 500 stats currently defined, we aren't going to tag them all -#: ../java/strings/Strings.java:101 -msgid "Low-level bandwidth receive rate" -msgstr "Низкоуровневая скорость приёма" - -#. bw.recvRate -#: ../java/strings/Strings.java:102 -msgid "Low-level bandwidth send rate" -msgstr "Низкоуровневая скорость передачи" - -#. bw.sendRate -#: ../java/strings/Strings.java:103 -msgid "How many peers we are actively talking with" -msgstr "Количество пиров, с которыми мы активно общаемся" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:106 -msgid "config networking" -msgstr "настройки сети" - -#. We have intl defined when this is included, but not when compiled standalone. -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:217 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configadvanced_jsp.java:218 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:217 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:217 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:231 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:217 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:217 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:218 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configtunnels_jsp.java:217 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configui_jsp.java:217 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:217 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/debug_jsp.java:220 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/error_jsp.java:228 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/graphs_jsp.java:217 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_005fru_jsp.java:220 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:220 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/index_jsp.java:223 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/jobs_jsp.java:216 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/logs_jsp.java:216 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/netdb_jsp.java:216 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/nowebapp_jsp.java:220 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/oldconsole_jsp.java:220 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/peers_jsp.java:216 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/profiles_jsp.java:216 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/stats_jsp.java:216 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/summaryframe_jsp.java:235 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/tunnels_jsp.java:216 -msgid "Refresh (s)" -msgstr "Интервал автообновления
панели (сек.)" - -#. ditto -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:221 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configadvanced_jsp.java:222 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:221 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:221 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:235 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:221 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:221 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:222 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configtunnels_jsp.java:221 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configui_jsp.java:221 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:221 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/debug_jsp.java:224 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/error_jsp.java:232 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/graphs_jsp.java:221 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_005fru_jsp.java:224 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:224 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/index_jsp.java:227 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/jobs_jsp.java:220 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/logs_jsp.java:220 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/netdb_jsp.java:220 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/nowebapp_jsp.java:224 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/oldconsole_jsp.java:224 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/peers_jsp.java:220 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/profiles_jsp.java:220 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/stats_jsp.java:220 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/summaryframe_jsp.java:238 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/tunnels_jsp.java:220 -msgid "Enable" -msgstr "Включить" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:241 -msgid "I2P Network Configuration" -msgstr "Настройки сетевых свойств I2P" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:297 -msgid "Bandwidth limiter" -msgstr "Ограничение скорости" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:299 -msgid "I2P will work best if you configure your rates to match the speed of your internet connection." -msgstr "I2P будет работать лучше, если Вы настроите ограничение скорости в соответствии со скоростью Вашего подключения к Интернету." - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:303 -msgid "KBps In" -msgstr "Килобайт/секунду (на приём)" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:317 -msgid "KBps Out" -msgstr "Килобайт/секунду (на отдачу)" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:333 -msgid "Share" -msgstr "Доля транзитного трафика" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:340 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configadvanced_jsp.java:307 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configtunnels_jsp.java:303 -msgid "NOTE" -msgstr "ПРИМЕЧАНИЕ" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:342 -#, java-format -msgid "You have configured I2P to share only {0} KBps." -msgstr "Вы настроили очень низкий лимит для транзитного трафика (всего {0} килобайт/секунду)." - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:345 -msgid "I2P requires at least 12KBps to enable sharing. " -msgstr "I2P нужно как минимум 12 килобайт/секунду для включения этой функции. " - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:346 -msgid "Please enable sharing (participating in tunnels) by configuring more bandwidth. " -msgstr "Пожалуйста, повысьте долю транзитного трафика. " - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:347 -msgid "It improves your anonymity by creating cover traffic, and helps the network." -msgstr "Это одновременно повысит Вашу анонимность (благодаря маскирующему транзитному трафику) и поможет сети." - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:350 -#, java-format -msgid "You have configured I2P to share {0} KBps." -msgstr "Вы задали долю транзитного трафика {0} килобайт/секунду." - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:353 -msgid "The higher the share bandwidth the more you improve your anonymity and help the network." -msgstr "Чем выше доля транзитного трафика, тем выше Ваша анонимность и больше Ваша помощь сети." - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:357 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:513 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configadvanced_jsp.java:303 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:326 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:320 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:333 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:373 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configtunnels_jsp.java:341 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configui_jsp.java:321 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:364 -msgid "Cancel" -msgstr "Отменить" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:374 -msgid "IP and Transport Configuration" -msgstr "Настройки IP и транспортных протоколов" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:376 -msgid "The default settings will work for most people." -msgstr "Большинству пользователей подойдут настройки по умолчанию." - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:378 -msgid "There is help below." -msgstr "В конце страницы приведена справка по настройкам." - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:380 -msgid "UPnP Configuration" -msgstr "Настройки UPnP" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:384 -msgid "Enable UPnP to open firewall ports" -msgstr "Использовать UPnP для автоматического открытия портов на брандмауэре/роутере" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:386 -msgid "UPnP status" -msgstr "статус UPnP" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:388 -msgid "IP Configuration" -msgstr "Настройки IP" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:390 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:460 -msgid "Externally reachable hostname or IP address" -msgstr " Имя хоста или IP-адрес доступные из интернета" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:394 -msgid "Use all auto-detect methods" -msgstr "Определять автоматически всеми доступными способами" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:398 -msgid "Disable UPnP IP address detection" -msgstr "Определять автоматически (без использования UPnP)" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:402 -msgid "Ignore local interface IP address" -msgstr "Определять автоматически (без использования IP-адресов локальных сетевых интерфейсов)" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:406 -msgid "Use SSU IP address detection only" -msgstr "Определять автоматически (только через SSU)" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:410 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:478 -msgid "Specify hostname or IP" -msgstr "Задать хост или IP вручную" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:416 -msgid "Select Interface" -msgstr "Выбрать сетевой интерфейс" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:430 -msgid "Hidden mode - do not publish IP" -msgstr "Скрытый режим, не публиковать IP" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:432 -msgid "(prevents participating traffic)" -msgstr "(такой режим предотвращает транзит трафика)" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:434 -msgid "Action when IP changes" -msgstr "Действие при смене IP" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:438 -msgid "Laptop mode - Change router identity and UDP port when IP changes for enhanced anonymity" -msgstr "Режим мобильного компьютера: автоматически менять идентификатор маршрутизатора и UDP-порт после смены IP" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:440 -msgid "Experimental" -msgstr "экспериментальный режим, повышает анонимность" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:442 -msgid "UDP Configuration:" -msgstr "Настройки UDP" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:444 -msgid "UDP port:" -msgstr "UDP-порт:" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:458 -msgid "TCP Configuration" -msgstr "Настройки TCP" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:464 -msgid "Use auto-detected IP address" -msgstr "Использовать автоматически определенный IP-адрес" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:466 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:498 -msgid "currently" -msgstr "сейчас" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:470 -msgid "if we are not firewalled" -msgstr "если входящий порт не заблокирован" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:474 -msgid "Always use auto-detected IP address (Not firewalled)" -msgstr "Всегда использовать автоматически определенный IP-адрес" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:484 -msgid "Disable inbound (Firewalled)" -msgstr "Отключить поддержку входящих соединений" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:488 -msgid "Completely disable" -msgstr "Полностью отключить поддержку TCP" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:490 -msgid "(select only if behind a firewall that throttles or blocks outbound TCP)" -msgstr "(используйте этот режим только при наличии в системе брандмауэра, который замедляет или блокирует исходящие TCP-соединения)" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:492 -msgid "Externally reachable TCP port" -msgstr "Доступный из интернета TCP-порт" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:496 -msgid "Use the same port configured for UDP" -msgstr "Использовать настройки UDP-порта" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:504 -msgid "Specify Port" -msgstr "Задать порт вручную" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:508 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:338 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configtunnels_jsp.java:329 -msgid "Note" -msgstr "ВНИМАНИЕ" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:511 -msgid "Changing these settings will restart your router." -msgstr "Изменение этих настрок повлечет перезагрузку I2P маршрутизатора." - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:517 -msgid "Configuration Help" -msgstr "Справка по настройкам сети" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:519 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:568 -msgid "While I2P will work fine behind most firewalls, your speeds and network integration will generally improve if the I2P port is forwarded for both UDP and TCP." -msgstr "Хотя I2P без проблем работает за большинством брандмауэров, скорость и уровень интеграции в сеть будут гораздо лучше, если открыть порт Вашего I2P-маршрутизатора для UDP и TCP соединений из интернета." - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:521 -msgid "If you can, please poke a hole in your firewall to allow unsolicited UDP and TCP packets to reach you." -msgstr "Попробуйте открыть доступ на Вашем брандмауэре для произвольных входящих UDP и TCP пакетов на порт I2P." - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:523 -msgid "If you can't, I2P supports UPnP (Universal Plug and Play) and UDP hole punching with \"SSU introductions\" to relay traffic." -msgstr "Ничего страшного, если такой возможности нет. I2P поддерживает UPnP (Universal Plug and Play) и обход NAT с помощью SSU-посредников." - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:525 -msgid "Most of the options above are for special situations, for example where UPnP does not work correctly, or a firewall not under your control is doing harm." -msgstr "Настройки выше, в основном, предназначены для особых ситуаций. Например, некорректно сработал UPnP или возник конфликт брандмауэра и I2P." - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:527 -msgid "Certain firewalls such as symmetric NATs may not work well with I2P." -msgstr "Некоторые виды брандмауэров могут быть частично несовместимы с I2P (например, симметричные NAT)." - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:536 -msgid "UPnP is used to communicate with Internet Gateway Devices (IGDs) to detect the external IP address and forward ports." -msgstr "UPnP используется для взаимодействия с IGD (Internet Gateway Devices) при определении внешнего IP-адреса и переадресации портов." - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:538 -msgid "UPnP support is beta, and may not work for any number of reasons" -msgstr "Поддержка UPnP находится в разработке (бета-версия). В следующих случаях UPnP возможно не будет работать" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:540 -msgid "No UPnP-compatible device present" -msgstr "Не обнаружено UPnP-совместимых устройств" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:542 -msgid "UPnP disabled on the device" -msgstr "UPnP отключено на устройстве" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:544 -msgid "Software firewall interference with UPnP" -msgstr "Программный брандмауэр мешает корректной работе UPnP" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:546 -msgid "Bugs in the device's UPnP implementation" -msgstr "UPnP в устройстве реализовано с ошибками " - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:548 -msgid "Multiple firewall/routers in the internet connection path" -msgstr "Несколько маршрутизаторов/брандмауэров на пути к интернету" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:550 -msgid "UPnP device change, reset, or address change" -msgstr "Смена/сброс UPnP-устройства или изменение адреса " - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:552 -msgid "Review the UPnP status here." -msgstr "Посмотреть статус UPnP можно тут." - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:554 -msgid "UPnP may be enabled or disabled above, but a change requires a router restart to take effect." -msgstr "UPnP можно включить/выключить в настройках выше. Настройка вступит в силу только после перезагрузки I2P-маршрутизатора." - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:556 -msgid "Hostnames entered above will be published in the network database." -msgstr "Если Вы задали вручную имена хостов, они будут опубликованы в сетевой базе." - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:558 -msgid "They are not private." -msgstr "Не вводите локальные внутрисетевые имена." - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:560 -msgid "Also, do not enter a private IP address like 127.0.0.1 or 192.168.1.1." -msgstr "Также не вводите IP из локальных диапазонов, такие как 127.0.0.1 или 192.168.1.1." - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:562 -msgid "If you specify the wrong IP address or hostname, or do not properly configure your NAT or firewall, your network performance will degrade substantially." -msgstr "Производительность Вашего соединения с I2P-сетью может сильно пострадать, если Вы введете неверный IP-адрес, неверное имя хоста или неправильно настроите NAT/брандмауэр." - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:564 -msgid "When in doubt, leave the settings at the defaults." -msgstr "Если сомневаетесь — оставьте настройки по умолчанию." - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:566 -msgid "Reachability Help" -msgstr "Справка по статусу сетевой доступности" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:571 -msgid "If you think you have opened up your firewall and I2P still thinks you are firewalled, remember that you may have multiple firewalls, for example both software packages and external hardware routers." -msgstr "Возможно Вы собственноручно открыли порт на Вашем брандмауэре, а I2P все еще показывает, что порт закрыт. Имейте в виду, что брандмауэров может быть несколько, например, локальный программный и внешний аппаратный." - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:574 -msgid "If there is an error, the logs may also help diagnose the problem." -msgstr "В случае ошибок журналы могут помочь диагностировать проблему." - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:578 -msgid "Your UDP port does not appear to be firewalled." -msgstr "Ваш UDP-порт доступен извне." - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:582 -msgid "Your UDP port appears to be firewalled." -msgstr "Ваш UDP-порт заблокирован брандмауэром и не может принимать входящие соединения." - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:584 -msgid "As the firewall detection methods are not 100% reliable, this may occasionally be displayed in error." -msgstr "Иногда это сообщение не соответствует действительности (методы обнаружения брандмауэров пока не идеальны)." - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:586 -msgid "However, if it appears consistently, you should check whether both your external and internal firewalls are open for your port." -msgstr "Но если оно появляется постоянно, Вам следует проверить, что на всех брандмауэрах порт для I2P открыт." - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:588 -msgid "I2P will work fine when firewalled, there is no reason for concern. When firewalled, the router uses \"introducers\" to relay inbound connections." -msgstr "Повода для паники нет, I2P сможет работать даже с заблокированным портом при помощи заранее выбранных «посредников» для ретрансляции входящих соединений." - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:590 -msgid "However, you will get more participating traffic and help the network more if you can open your firewall(s)." -msgstr "С другой стороны, при работе с открытым портом Вы получите гораздо больше транзитного трафика и сможете помочь сети." - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:592 -msgid "If you think you have already done so, remember that you may have both a hardware and a software firewall, or be behind an additional, institutional firewall you cannot control." -msgstr "Возможно Вы собственноручно открыли порт на Вашем брандмауэре, но ошибка всё равно появляется. Имейте в виду, что Вы можете быть одновременно за программным и аппаратным брандмауэрами или за дополнительным корпоративным брандмауэром (который Вы не можете контролировать)." - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:594 -msgid "Also, some routers cannot correctly forward both TCP and UDP on a single port, or may have other limitations or bugs that prevent them from passing traffic through to I2P." -msgstr "Кроме того, некоторые маршрутизаторы не могут корректно переадресовать одновременно TCP и UDP на один порт или имеют другие ограничения, мешающие нормальному прохождению трафика до I2P." - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:598 -msgid "The router is currently testing whether your UDP port is firewalled." -msgstr "Маршрутизатор проверяет возможность принятия входящих соединений на UDP-порт." - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:602 -msgid "The router is not configured to publish its address, therefore it does not expect incoming connections." -msgstr "В настройках I2P-маршрутизатора запрещена публикация его адреса, как результат, маршрутизатор не ожидает входящих соединений." - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:604 -msgid "WARN - Firewalled and Fast" -msgstr "ПРЕДУПРЕЖДЕНИЕ - Заблокирован извне и Быстрый" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:606 -msgid "You have configured I2P to share more than 128KBps of bandwidth, but you are firewalled." -msgstr "Вы настроили долю транзитного трафика выше 128 килобайт/секунду, при этом у Вас заблокирован входящий порт." - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:608 -msgid "While I2P will work fine in this configuration, if you really have over 128KBps of bandwidth to share, it will be much more helpful to the network if you open your firewall." -msgstr "I2P будет работать нормально в такой конфигурации, но Вы можете помочь сети разблокировав входящий порт, если у Вас действительно быстрый интернет." - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:610 -msgid "WARN - Firewalled and Floodfill" -msgstr "ПРЕДУПРЕЖДЕНИЕ - Заблокирован извне и Floodfill" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:612 -msgid "You have configured I2P to be a floodfill router, but you are firewalled." -msgstr "Вы настроили I2P работать в режиме floodfill-маршрутизатора, при этом у Вас заблокирован входящий порт." - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:614 -msgid "For best participation as a floodfill router, you should open your firewall." -msgstr "Для оптимальной работы в качестве floodfill-маршрутизатора Вам нужно разблокировать входящий порт." - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:616 -msgid "WARN - Firewalled with Inbound TCP Enabled" -msgstr "ПРЕДУПРЕЖДЕНИЕ - Заблокирован извне при включенном на вход TCP" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:618 -msgid "You have configured inbound TCP, however your UDP port is firewalled, and therefore it is likely that your TCP port is firewalled as well." -msgstr "Вы разрешили входящие TCP-соединения, но при этом Ваш UDP-порт заблокирован, следовательно, скорее всего, TCP-порт тоже заблокирован." - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:620 -msgid "If your TCP port is firewalled with inbound TCP enabled, routers will not be able to contact you via TCP, which will hurt the network." -msgstr "Если у Вас разрешены входящие TCP-соединения при заблокированном TCP-порте, то другие маршрутизаторы не смогут к Вам подсоединиться по TCP. Это повредит производительности сети. " - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:622 -msgid "Please open your firewall or disable inbound TCP above." -msgstr "Пожалуйста, проверьте состояние TCP-порта и разблокируйте его или отключите поддержку входящих TCP-соединений." - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:624 -msgid "WARN - Firewalled with UDP Disabled" -msgstr "ПРЕДУПРЕЖДЕНИЕ - Заблокирован извне при отключенном UDP" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:626 -msgid "You have configured inbound TCP, however you have disabled UDP." -msgstr "Вы отключили поддержку UDP, однако Ваш TCP-порт заблокирован и в результате Ваш маршрутизатор не может принимать входящие соединения." - -# This string intentionally left blank -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:628 -msgid "You appear to be firewalled on TCP, therefore your router cannot accept inbound connections." -msgstr " " - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:630 -msgid "Please open your firewall or enable UDP." -msgstr "Пожалуйста, разблокируйте порт или включите поддержку UDP." - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:632 -msgid "ERR - Clock Skew" -msgstr "ОШИБКА - Часы сбиты" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:634 -msgid "Your system's clock is skewed, which will make it difficult to participate in the network." -msgstr "Ваши системные часы сильно отстают/спешат. Это помешает Вашему участию в сети." - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:636 -msgid "Correct your clock setting if this error persists." -msgstr "Поправьте настройки времени, если Вы постоянно видите это сообщение об ошибке." - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:638 -msgid "ERR - Private TCP Address" -msgstr "ОШИБКА - Частный TCP Адрес" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:640 -msgid "You must never advertise an unroutable IP address such as 127.0.0.1 or 192.168.1.1 as your external address." -msgstr "Не публикуйте локальные IP-адреса (такие как 127.0.0.1 или 192.168.1.1) в качестве своего внешнего IP-адреса." - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:642 -msgid "Correct the address or disable inbound TCP above." -msgstr "Исправьте адрес или отключите поддержку входящих TCP-соединений." - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:644 -msgid "ERR - SymmetricNAT" -msgstr "ОШИБКА - Симметричный NAT" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:646 -msgid "I2P detected that you are firewalled by a Symmetric NAT." -msgstr "I2P обнаружил, что Вы за симметричным NAT." - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:648 -msgid "I2P does not work well behind this type of firewall. You will probably not be able to accept inbound connections, which will limit your participation in the network." -msgstr "I2P не очень хорошо работает за таким типом брандмауэров. Скорее всего Вы не сможете принимать входящие соединения и это снизит эффективность Вашего участия в сети." - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:650 -msgid "ERR - UDP Port In Use - Set i2np.udp.internalPort=xxxx in advanced config and restart" -msgstr "ОШИБКА - UDP-порт уже занят - перенастройте i2np.udp.internalPort=xxxx в дополнительных настройках и перезапустите маршрутизатор" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:652 -msgid "I2P was unable to bind to port 8887 or other configured port." -msgstr "I2P не удалось связать порт 8887 (или тот, что у Вас настроен)." - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:654 -msgid "Check to see if another program is using the configured port. If so, stop that program or configure I2P to use a different port." -msgstr "Проверьте, не занят ли этот порт другим приложением. Если такое приложение нашлось, остановите его или задайте другой порт в настройках I2P." - -# This string intentionally left blank -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:656 -msgid "This may be a transient error, if the other program is no longer using the port." -msgstr " " - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:658 -msgid "However, a restart is always required after this error." -msgstr "После возникновения этой ошибки необходим перезапуск I2P." - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:660 -msgid "ERR - UDP Disabled and Inbound TCP host/port not set" -msgstr "ОШИБКА - UDP отключено и не заданы адрес/порт для входящих TCP-соединений" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:662 -msgid "You have not configured inbound TCP with a hostname and port above, however you have disabled UDP." -msgstr "Вы не задали адрес/порт для входящих TCP-соединений и одновременно отключили поддержку UDP, в результате Ваш маршрутизатор не может принимать входящие соединения." - -# This string intentionally left blank -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:664 -msgid "Therefore your router cannot accept inbound connections." -msgstr " " - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:666 -msgid "Please configure a TCP host and port above or enable UDP." -msgstr "Пожалуйста, настройте адрес/порт для TCP или включите поддержку UDP." - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:668 -msgid "ERR - Client Manager I2CP Error - check logs" -msgstr "ОШИБКА - ошибка менеджера I2CP - загляните в журнал ошибок" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:670 -msgid "This is usually due to a port 7654 conflict. Check the logs to verify." -msgstr "Эта ошибка обычно возникает из-за конфликта порта 7654. Загляните в журнал ошибок." - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:672 -msgid "Do you have another I2P instance running? Stop the conflicting program and restart I2P." -msgstr "Не запущена ли у вас ещё одна копия I2P? Остановите вызвавшую конфликт программу и перезапустите I2P." - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configadvanced_jsp.java:107 -msgid "config advanced" -msgstr "дополнительные настройки" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configadvanced_jsp.java:242 -msgid "I2P Advanced Configuration" -msgstr "Дополнительные настройки I2P" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configadvanced_jsp.java:299 -msgid "Advanced I2P Configuration" -msgstr "Дополнительные настройки I2P" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configadvanced_jsp.java:309 -msgid "Some changes may require a restart to take effect." -msgstr "Для вступления некоторых изменений в силу может потребоваться перезагрузка I2P-маршрутизатора." - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:106 -msgid "config clients" -msgstr "настройки клиентов" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:244 -msgid "I2P Client Configuration" -msgstr "Настройки клиентов I2P" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:311 -msgid "Client Configuration" -msgstr "Настройки клиентов" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:313 -msgid "The Java clients listed below are started by the router and run in the same JVM." -msgstr "Перечисленные ниже Java-клиенты запускаются маршрутизатором внутри своей JVM." - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:317 -msgid "To change other client options, edit the file" -msgstr "Для изменения других клиентских настроек отредактируйте файл" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:324 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:344 -msgid "All changes require restart to take effect." -msgstr "Для вступления изменённых настроек в силу потребуется перезагрузка маршрутизатора." - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:336 -msgid "WebApp Configuration" -msgstr "Настройки веб-апплетов" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:338 -msgid "The Java web applications listed below are started by the webConsole client and run in the same JVM as the router. They are usually web applications accessible through the router console. They may be complete applications (e.g. i2psnark),front-ends to another client or application which must be separately enabled (e.g. susidns, i2ptunnel), or have no web interface at all (e.g. addressbook)." -msgstr "Перечисленные ниже Java веб-апплеты запускаются консолью маршрутизатора внутри JVM маршрутизатора. Обычно эти приложения доступны через консоль маршрутизатора. Это могут быть как самостоятельные приложения (например, i2psnark), так и интерфейсы к другим приложениям или клиентам, которые надо включать отдельно (например, susidns, i2ptunnel), либо могут вообще не иметь веб-интерфейса (например, addressbook)." - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:340 -msgid "A web app may also be disabled by removing the .war file from the webapps directory; however the .war file and web app will reappear when you update your router to a newer version, so disabling the web app here is the preferred method." -msgstr "Веб-апплет также можно отключить, просто удалив .war-файл из директории webapps. Однако при обновлении маршрутизатора и .war-файл и соответствующее приложение будут возвращены на свои места, поэтому отключение веб-апплетов через эту страницу это более корректный способ." - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:350 -msgid "Plugin Configuration" -msgstr "Настройки плагинов" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:352 -msgid "The plugins listed below are started by the webConsole client." -msgstr "Перечисленные ниже плагины запускаются клиентом webConsole." - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:358 -msgid "Plugin Installation" -msgstr "Установка плагина" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:360 -msgid "To install a plugin, enter the download URL:" -msgstr "Для установки нового плагина введите URL:" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:106 -msgid "config keyring" -msgstr "настройки ключей" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:228 -msgid "I2P Keyring Configuration" -msgstr "Настройки связки ключей I2P" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:294 -msgid "The router keyring is used to decrypt encrypted leaseSets." -msgstr "Маршрутизатор использует связку ключей для дешифровки зашифрованных LeaseSet." - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:297 -msgid "The keyring may contain keys for local or remote encrypted destinations." -msgstr "Связка ключей может хранить ключи как для локальных, так и для удаленных зашифрованных адресов назначения." - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:307 -msgid "Manual Keyring Addition" -msgstr "Добавление ключей" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:309 -msgid "Enter keys for encrypted remote destinations here." -msgstr "Здесь добавляются ключи для удаленных адресов назначения." - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:312 -msgid "Keys for local destinations must be entered on the" -msgstr "Ключи для локальных адресов назначения настраиваются в" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:314 -msgid "I2PTunnel page" -msgstr "Менеджере Туннелей" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:316 -msgid "Dest. name, hash, or full key" -msgstr "Имя адреса назначения, хэш или полный ключ" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:318 -msgid "Encryption Key" -msgstr "Ключ шифрования" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:107 -msgid "config logging" -msgstr "настройки журнала" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:242 -msgid "I2P Logging Configuration" -msgstr "Настройки журнала I2P" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:299 -msgid "Configure I2P Logging Options" -msgstr "Настройки журнала I2P" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:301 -msgid "Logging filename" -msgstr "Файл журнала" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:305 -msgid "(the symbol '@' will be replaced during log rotation)" -msgstr "(во время ротации журнала символ @ будет заменен на номер)" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:307 -msgid "Log record format" -msgstr "Формат записи" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:311 -msgid "(use 'd' = date, 'c' = class, 't' = thread, 'p' = priority, 'm' = message)" -msgstr "(d = дата, c = класс, t = тред, p = приоритет, m = сообщение)" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:313 -msgid "Log date format" -msgstr "Формат даты" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:317 -msgid "('MM' = month, 'dd' = day, 'HH' = hour, 'mm' = minute, 'ss' = second, 'SSS' = millisecond)" -msgstr "(MM = месяц, dd = день, HH = часы, mm = минуты, ss = секунды, SSS = миллисекунды)" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:319 -msgid "Max log file size" -msgstr "Максимальный размер файла журнала" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:323 -msgid "Default log level" -msgstr "Уровень детальности журнала" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:327 -msgid "(DEBUG and INFO are not recommended defaults, as they will drastically slow down your router)" -msgstr "(не рекомендуется использовать уровни DEBUG и INFO для постоянного использования, так как они сильно замедлят работу Вашего маршрутизатора)" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:329 -msgid "Log level overrides" -msgstr "Дополнительные настройки" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:106 -msgid "config peers" -msgstr "настройки пиров" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:228 -msgid "I2P Peer Configuration" -msgstr "Настройки пиров I2P" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:304 -msgid "Manual Peer Controls" -msgstr "Ручное управление пирами" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:306 -msgid "Router Hash" -msgstr "Хеш маршрутизатора" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:310 -msgid "Manually Ban / Unban a Peer" -msgstr "Вручную забанить/разбанить этого пира" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:312 -msgid "Banning will prevent the participation of this peer in tunnels you create." -msgstr "Бан запретит участие указанного пира в создаваемых Вами туннелях." - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:324 -msgid "Bonuses may be positive or negative, and affect the peer's inclusion in Fast and High Capacity tiers. Fast peers are used for client tunnels, and High Capacity peers are used for some exploratory tunnels. Current bonuses are displayed on the" -msgstr "Бонусы могут быть положительными и отрицательными и вводятся для управления включением пира в группы «Быстрые» и «Высокоёмкие» (Быстрые пиры используются для построения клиентских туннелей, Высокоёмкие пиры используются для некоторых зондирующих туннелей). Текущие бонусы можно посмотреть на" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:326 -msgid "profiles page" -msgstr "странице профилей пиров" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:342 -msgid "Adjust peer bonuses" -msgstr "Изменить бонусы" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:344 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/profiles_jsp.java:253 -msgid "Banned Peers" -msgstr "Забаненные пиры" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:366 -msgid "Banned IPs" -msgstr "Забаненные IP-адреса" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:106 -msgid "config service" -msgstr "настройки службы" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:228 -msgid "I2P Service Configuration" -msgstr "Настройки службы I2P" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:284 -msgid "Shutdown the router" -msgstr "Выключить маршрутизатор" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:286 -msgid "Graceful shutdown lets the router satisfy the agreements it has already made before shutting down, but may take a few minutes." -msgstr "Плавное выключение позволяет маршрутизатору перед остановкой отработать все поставленные задачи, но при этом на процесс выключения потребуется дополнительное время." - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:288 -msgid "If you need to kill the router immediately, that option is available as well." -msgstr "Если маршрутизатор должен быть выключен немедленно, Вы можете выбрать соответствующую команду." - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:298 -msgid "If you want the router to restart itself after shutting down, you can choose one of the following." -msgstr "Иногда, Вам нужно перегрузить маршрутизатор (например, после изменения базовых настроек, которые считываются приложением только во время запуска). В этом случае, Вам доступны два варианта. Плавная перезагрузка займет несколько минут (но зато пиры, использующие Ваш маршрутизатор, будут Вам благодарны за терпение). Если Вы не можете ждать, выбирайте немедленную перезагрузку. В случае немедленной перезагрузки маршрутизатор запустится через одну минуту." - -# This string intentionally left blank -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:300 -msgid "This is useful in some situations - for example, if you changed some settings that client applications only read at startup, such as the routerconsole password or the interface it listens on." -msgstr " " - -# This string intentionally left blank -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:302 -msgid "A graceful restart will take a few minutes (but your peers will appreciate your patience), while a hard restart does so immediately." -msgstr " " - -# This string intentionally left blank -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:304 -msgid "After tearing down the router, it will wait 1 minute before starting back up again." -msgstr " " - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:314 -msgid "Systray integration" -msgstr "Интеграция в область уведомлений" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:316 -msgid "On the windows platform, there is a small application to sit in the system tray, allowing you to view the router's status" -msgstr "Если Вы работаете под Windows, у Вас есть возможность отслеживать статус маршрутизатора через значок в области уведомлений" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:318 -msgid "(later on, I2P client applications will be able to integrate their own functionality into the system tray as well)." -msgstr "(когда-нибудь и клиентские приложения для I2P будут там доступны)." - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:320 -msgid "If you are on windows, you can either enable or disable that icon here." -msgstr "Если Вы пользуетесь I2P под Windows, то здесь Вы можете настроить отображение этого значка." - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:326 -msgid "Run on startup" -msgstr "Автоматический запуск I2P" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:328 -msgid "You can control whether I2P is run on startup or not by selecting one of the following options - I2P will install (or remove) a service accordingly." -msgstr "Вы можете настроить автоматическую загрузку маршрутизатора при каждом запуске Windows. В зависимости от выбранной кнопки I2P немедленно установит или удалит свою службу из списка служб Windows." - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:330 -msgid "If you prefer the command line, you can also run the " -msgstr "Если Вам удобно работать через командную строку, попробуйте использовать " - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:340 -msgid "If you are running I2P as service right now, removing it will shut down your router immediately." -msgstr "Если служба I2P уже была запущена, при выборе варианта \"Не запускать I2P при старте\" маршрутизатор будет моментально остановлен." - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:342 -msgid "You may want to consider shutting down gracefully, as above, then running uninstall_i2p_service_winnt.bat." -msgstr "Возможно лучше плавно остановить маршрутизатор и после этого запустить файл C:\\Program Files\\I2P\\uninstall_i2p_service_winnt.bat." - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:346 -msgid "Debugging" -msgstr "Отладка" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:348 -msgid "View the job queue" -msgstr "Просмотр очереди заданий" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:352 -msgid "At times, it may be helpful to debug I2P by getting a thread dump. To do so, please select the following option and review the thread dumped to wrapper.log." -msgstr "В некоторых случаях для отладки может пригодиться список состояний тредов I2P-маршутизатора. Для получения такого списка нажмите эту кнопку. Список будет сохранен в файле wrapper.log." - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:358 -msgid "Launch browser on router startup?" -msgstr "Запускать браузер при старте I2P?" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:360 -msgid "I2P's main configuration interface is this web console, so for your convenience I2P can launch a web browser on startup pointing at" -msgstr "Основной интерфейс настройки I2P это веб-консоль. Здесь можно выбрать автоматическое открытие при запуске маршрутизатора страницы" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:107 -msgid "config stats" -msgstr "настройки статистики" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:229 -msgid "I2P Stats Configuration" -msgstr "Настройки статистики I2P" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:300 -msgid "Configure I2P Stat Collection" -msgstr "Настройки сбора статистики I2P" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:302 -msgid "Enable full stats?" -msgstr "Включить полную статистику?" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:309 -msgid "change requires restart to take effect" -msgstr "изменения вступят в силу только после перезагрузки маршрутизатора" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:311 -msgid "Stat file" -msgstr "Файл статистики" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:315 -msgid "Filter" -msgstr "Фильтр" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:317 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:326 -msgid "toggle all" -msgstr "переключить все" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:328 -msgid "Log" -msgstr "Журнал" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:330 -msgid "Graph" -msgstr "График" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:369 -msgid "Advanced filter" -msgstr "Дополнительный фильтр" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configtunnels_jsp.java:106 -msgid "config tunnels" -msgstr "настройки туннелей" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configtunnels_jsp.java:241 -msgid "I2P Tunnel Configuration" -msgstr "Настройки туннелей I2P" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configtunnels_jsp.java:305 -msgid "The default settings work for most people." -msgstr "Большинству пользователей подойдут настройки по умолчанию. " - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configtunnels_jsp.java:309 -msgid "There is a fundamental tradeoff between anonymity and performance." -msgstr "Примите во внимание, что между анонимностью и эффективностью есть обратная связь — длинные туннели более анонимны, но хуже работают." - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configtunnels_jsp.java:312 -msgid "Tunnels longer than 3 hops (for example 2 hops + 0-2 hops, 3 hops + 0-1 hops, 3 hops + 0-2 hops), or a high quantity + backup quantity, may severely reduce performance or reliability." -msgstr " Туннели длиннее 3 хопов, а также большое количество туннелей (как обычных, так и резервных) могут привести к снижению производительности/надежности работы маршрутизатора." - -# This string intentionally left blank -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configtunnels_jsp.java:315 -msgid "High CPU and/or high outbound bandwidth usage may result." -msgstr " " - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configtunnels_jsp.java:318 -msgid "Change these settings with care, and adjust them if you have problems." -msgstr "Осторожно вносите изменения в существующие настройки и возвращайте в положение по умолчанию, если у Вас возникли проблемы." - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configtunnels_jsp.java:332 -msgid "Exploratory tunnel setting changes are stored in the router.config file." -msgstr "Настройки зондирующих туннелей сохраняются в файле router.config." - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configtunnels_jsp.java:335 -msgid "Client tunnel changes are temporary and are not saved." -msgstr "Настройки клиентских туннелей нигде не сохраняются и действуют только до перезагрузки." - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configtunnels_jsp.java:337 -msgid "To make permanent client tunnel changes see the" -msgstr "Для задания перманентных изменений в настройках клиентских туннелей воспользуйтесь" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configtunnels_jsp.java:339 -msgid "i2ptunnel page" -msgstr "менеджером туннелей" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configui_jsp.java:106 -msgid "config UI" -msgstr "настройки интерфейса" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configui_jsp.java:241 -msgid "I2P UI Configuration" -msgstr "Настройки пользовательского интерфейса I2P" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configui_jsp.java:291 -msgid "Router Console Theme" -msgstr "Тема оформления консоли маршрутизатора" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configui_jsp.java:309 -msgid "Theme selection disabled for Internet Explorer, sorry." -msgstr "Переключатель тем отключен для Internet Explorer, извините" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configui_jsp.java:311 -msgid "If you're not using IE, it's likely that your browser is pretending to be IE; please configure your browser (or proxy) to use a different User Agent string if you'd like to access the console themes." -msgstr "Если вы не используете IE, то, скорее всего, Ваш браузер сконфигурирован представляться как IE. Пожалуйста измените строку User-Agent в настройках Вашего браузера (или прокси-сервера), если хотите использовать темы оформления" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configui_jsp.java:315 -msgid "Router Console Language" -msgstr "Язык консоли маршрутизатора" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configui_jsp.java:319 -msgid "Please contribute to the router console translation project! Contact the developers on IRC #i2p to help." -msgstr "Пожалуйста, помогите проекту перевода консоли маршрутизатора! Разработчики доступны для связи на IRC-канале #i2p" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configui_jsp.java:323 -msgid "Apply" -msgstr "Применить" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:106 -msgid "config update" -msgstr "настройки обновления" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:228 -msgid "I2P Update Configuration" -msgstr "Настройки обновлений I2P" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:302 -msgid "Check for I2P and news updates" -msgstr "Настройки проверки обновлений и новостей I2P" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:304 -msgid "News & I2P Updates" -msgstr "Новости и обновления I2P" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:308 -msgid "Update In Progress" -msgstr "Выполняется обновление" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:316 -msgid "News URL" -msgstr "URL новостей" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:320 -msgid "Refresh frequency" -msgstr "Интервал проверки" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:326 -msgid "Update policy" -msgstr "Режим обновления" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:330 -msgid "Update through the eepProxy?" -msgstr "Обновлять через I2P-прокси?" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:334 -msgid "eepProxy host" -msgstr "Адрес I2P-прокси" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:338 -msgid "eepProxy port" -msgstr "Порт I2P-прокси" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:342 -msgid "Update URLs" -msgstr "URL обновлений" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:346 -msgid "Trusted keys" -msgstr "Доверенные ключи" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:350 -msgid "Update with unsigned development builds?" -msgstr "Обновлять до неподписанной тестовой сборки?" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:354 -msgid "Unsigned Build URL" -msgstr "URL неподписанной тестовой сборки" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:360 -msgid "I2P updates are disabled because you do not have write permission for the install directory." -msgstr "Функция автообновления I2P недоступна: у Вас нет прав на запись в директорию I2P." - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:366 -msgid "Save" -msgstr "Сохранить" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/error_jsp.java:117 -msgid "Page Not Found" -msgstr "Страница не найдена" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/error_jsp.java:243 -msgid "Sorry! You appear to be requesting a non-existent Router Console page or resource." -msgstr "Страница консоли маршрутизатора, которую вы запросили, не существует." - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/error_jsp.java:245 -msgid "Error 404" -msgstr "Ошибка 404" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/error_jsp.java:250 -msgid "not found" -msgstr "не найдено" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/graphs_jsp.java:106 -msgid "graphs" -msgstr "графики" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/graphs_jsp.java:228 -msgid "I2P Performance Graphs" -msgstr "Графики производительности I2P" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/index_jsp.java:105 -msgid "home" -msgstr "Домашняя страница" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/jobs_jsp.java:105 -msgid "job queue" -msgstr "очередь заданий" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/jobs_jsp.java:227 -msgid "I2P Router Job Queue" -msgstr "Очередь заданий маршрутизатора I2P" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/logs_jsp.java:105 -msgid "logs" -msgstr "журналы" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/logs_jsp.java:227 -msgid "I2P Router Logs" -msgstr "Журналы маршрутизатора I2P" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/logs_jsp.java:229 -msgid "I2P Version & Running Environment" -msgstr "Версия I2P & Информация о среде выполнения" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/logs_jsp.java:231 -msgid "Please report bugs on trac.i2p2.i2p." -msgstr "Сообщайте об ошибках в багтрекер проекта I2P: trac.i2p2.i2p." - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/logs_jsp.java:233 -msgid "Please include this information in bug reports" -msgstr "Пожалуйста, добавляйте эту информацию в Ваши сообщения об ошибках" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/logs_jsp.java:269 -msgid "Critical Logs" -msgstr "Журнал критических ошибок" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/logs_jsp.java:273 -msgid "Router Logs" -msgstr "Журнал маршрутизатора" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/logs_jsp.java:279 -msgid "Service (Wrapper) Logs" -msgstr "Журнал службы (wrapper)" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/netdb_jsp.java:105 -msgid "network database summary" -msgstr "сетевая база данных" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/netdb_jsp.java:227 -msgid "I2P Network Database Summary" -msgstr "Обзор сетевой базы данных I2P" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/nowebapp_jsp.java:109 -msgid "WebApp Not Found" -msgstr "Веб-апплет не найден" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/nowebapp_jsp.java:231 -msgid "Web Application Not Running" -msgstr "Веб-приложение не запущено" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/nowebapp_jsp.java:233 -msgid "The requested web application is not running." -msgstr "Запрошенное веб-приложение не запущено." - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/nowebapp_jsp.java:235 -msgid "Please visit the config clients page to start it." -msgstr "Пожалуйста, запустите его со страницы настроек веб-апплетов." - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/peers_jsp.java:105 -msgid "peer connections" -msgstr "обзор пиров" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/peers_jsp.java:227 -msgid "I2P Network Peers" -msgstr "Соединения с пирами I2P" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/profiles_jsp.java:105 -msgid "peer profiles" -msgstr "профили пиров" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/profiles_jsp.java:227 -msgid "I2P Network Peer Profiles" -msgstr "Профили пиров сети I2P" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/stats_jsp.java:105 -msgid "statistics" -msgstr "статистика" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/stats_jsp.java:242 -msgid "I2P Router Statistics" -msgstr "Статистика маршрутизатора I2P" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/summaryframe_jsp.java:244 -#, java-format -msgid "Disable {0}s Refresh" -msgstr "Отключить автообновление
панели ({0} сек.)" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/tunnels_jsp.java:105 -msgid "tunnel summary" -msgstr "обзор туннелей" - -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/tunnels_jsp.java:227 -msgid "I2P Tunnel Summary" -msgstr "Обзор туннелей I2P" - +# I2P +# Copyright (C) 2009 The I2P Project +# This file is distributed under the same license as the routerconsole package. +# To contribute translations, see http://www.i2p2.de/newdevelopers +# foo , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: I2P routerconsole\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-07-07 20:03+0000\n" +"PO-Revision-Date: 2010-07-07 20:06+0000\n" +"Last-Translator: 4get \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: Russian\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n" +"X-Poedit-Bookmarks: 283,-1,-1,-1,-1,-1,-1,-1,-1,-1\n" + +#: ../../../router/java/src/net/i2p/router/Blocklist.java:126 +#, java-format +msgid "Banned by router hash: {0}" +msgstr "Забанен по хэшу маршрутизатора: {0}" + +#: ../../../router/java/src/net/i2p/router/Blocklist.java:128 +msgid "Banned by router hash" +msgstr "Забанен по хэшу маршрутизатора" + +#. Temporary reason, until the job finishes +#: ../../../router/java/src/net/i2p/router/Blocklist.java:673 +msgid "IP banned" +msgstr "IP заблокирован" + +#: ../../../router/java/src/net/i2p/router/Blocklist.java:743 +#, java-format +msgid "IP banned by blocklist.txt entry {0}" +msgstr "IP заблокирован по записи в blocklist.txt: {0}" + +#: ../../../router/java/src/net/i2p/router/RouterThrottleImpl.java:92 +msgid "Rejecting tunnels: Shutting down" +msgstr "Не принимаем туннели: Маршрутизатор в процессе остановки" + +#: ../../../router/java/src/net/i2p/router/RouterThrottleImpl.java:141 +msgid "Rejecting tunnels: High message delay" +msgstr "Не принимаем туннели: Слишком большая задержка сообщений" + +#. hard to do {0} from here +#. setTunnelStatus("Rejecting " + (100 - (int) probAccept*100) + "% of tunnels: High number of requests"); +#: ../../../router/java/src/net/i2p/router/RouterThrottleImpl.java:177 +msgid "Rejecting most tunnels: High number of requests" +msgstr "Не принимаем большую часть туннелей: Слишком много запросов" + +#: ../../../router/java/src/net/i2p/router/RouterThrottleImpl.java:233 +msgid "Rejecting tunnels: Limit reached" +msgstr "Не принимаем туннели: Достигнут предел количества туннелей" + +#. .067KBps +#. * also limited to 90% - see below +#. always leave at least 4KBps free when allowing +#: ../../../router/java/src/net/i2p/router/RouterThrottleImpl.java:301 +msgid "Rejecting tunnels: Bandwidth limit" +msgstr "Не принимаем туннели: Достигнут предел пропускной способности" + +#. hard to do {0} from here +#. setTunnelStatus("Rejecting " + ((int)(100.0*probReject)) + "% of tunnels: Bandwidth limit"); +#: ../../../router/java/src/net/i2p/router/RouterThrottleImpl.java:371 +msgid "Rejecting most tunnels: Bandwidth limit" +msgstr "Не принимаем большую часть туннелей: Достигнут предел пропускной способности" + +#. hard to do {0} from here +#. setTunnelStatus("Accepting " + (100-(int)(100.0*probReject)) + "% of tunnels"); +#: ../../../router/java/src/net/i2p/router/RouterThrottleImpl.java:375 +msgid "Accepting most tunnels" +msgstr "Принимаем большую часть туннелей" + +#: ../../../router/java/src/net/i2p/router/RouterThrottleImpl.java:377 +msgid "Accepting tunnels" +msgstr "Принимаем туннели" + +#. NPE, too early +#. if (_context.router().getRouterInfo().getBandwidthTier().equals("K")) +#. setTunnelStatus("Not expecting tunnel requests: Advertised bandwidth too low"); +#. else +#: ../../../router/java/src/net/i2p/router/RouterThrottleImpl.java:487 +msgid "Rejecting tunnels" +msgstr "Не принимаем туннели" + +#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:48 +msgid "Ensure that nothing blocks outbound HTTP, check logs and if nothing helps, read the FAQ about reseeding manually." +msgstr "Убедитесь, что исходящие HTTP-запросы ничем не блокируются, загляните в журналы ошибок и если ничто не помогло, прочтите в FAQ инструкцию по начальной загрузке вручную." + +#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:80 +msgid "Reseeding" +msgstr "Производится начальная загрузка" + +#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:144 +msgid "Reseeding: fetching seed URL." +msgstr "Производится начальная загрузка: загружается URL каталога маршрутизаторов." + +#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:150 +msgid "Last reseed failed fully (failed reading seed URL)." +msgstr "Предыдущая попытка начальной загрузки полностью провалилась (не удалось загрузить URL каталога маршрутизаторов)" + +#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:176 +msgid "Last reseed failed fully (no routerInfo URLs at seed URL)." +msgstr "Предыдущая попытка начальной загрузки полностью провалилась (не удалось найти список routerInfo-ссылок в загруженном каталоге)" + +#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:189 +#, java-format +msgid "Reseeding: fetching router info from seed URL ({0} successful, {1} errors)." +msgstr "Производится начальная загрузка: получение информации о маршрутизаторах ({0} удачно, {1} ошибок)." + +#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:210 +#, java-format +msgid "Last reseed failed partly ({0}% of {1})." +msgstr "Предыдущая попытка начальной загрузки частично не удалась ({0}% из {1})." + +#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:215 +#, java-format +msgid "Last reseed failed ({0}% of {1})." +msgstr "Предыдущая попытка начальной загрузки почти полностью провалилась ({0}% из {1})." + +#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:225 +msgid "Last reseed failed fully (exception caught)." +msgstr "Предыдущая попытка начальной загрузки полностью провалилась (произошла необрабатываемая ошибка)." + +#: ../../../router/java/src/net/i2p/router/transport/CommSystemFacadeImpl.java:510 +msgid "NetDb entry" +msgstr "показать описание в NetDb" + +#. This used to be "no common transports" but it is almost always no transports at all +#: ../../../router/java/src/net/i2p/router/transport/GetBidsJob.java:70 +msgid "No transports (hidden or starting up?)" +msgstr "Нет транспортных протоколов (в скрытом режиме или запущен недавно?)" + +#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:457 +msgid "Unreachable on any transport" +msgstr "Недоступен по всем транспортным протоколам" + +#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:508 +msgid "Router Transport Addresses" +msgstr "Адреса транспортов маршрутизатора" + +#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:514 +#, java-format +msgid "{0} is used for outbound connections only" +msgstr "{0} используется только для исходящих соединений" + +#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:528 +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:257 +msgid "Definitions" +msgstr "Условные обозначения" + +#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:529 +#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:715 +#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1885 +#: ../java/src/net/i2p/router/web/ConfigPeerHandler.java:24 +#: ../java/src/net/i2p/router/web/ConfigPeerHandler.java:33 +#: ../java/src/net/i2p/router/web/ConfigPeerHandler.java:35 +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:81 +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:187 +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:238 +msgid "Peer" +msgstr "Пир" + +#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:529 +msgid "The remote peer, identified by router hash" +msgstr "Уникальный идентификатор пира (несколько начальных символов из хеша его маршрутизатора)" + +#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:530 +#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:716 +#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1889 +msgid "Dir" +msgstr "Направление" + +#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:531 +msgid "Inbound connection" +msgstr "Входящее соединение" + +#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:533 +msgid "Outbound connection" +msgstr "Исходящее соединение" + +#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:535 +msgid "They offered to introduce us (help other peers traverse our firewall)" +msgstr "Этот пир предлагает себя в качестве нашего посредника (для того, чтобы другие пиры могли соединяться с нами в обход нашего брандмауэра)" + +#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:537 +msgid "We offered to introduce them (help other peers traverse their firewall)" +msgstr "Мы предлагаем себя в качестве посредника для этого пира (для того, чтобы другие пиры могли соединяться с ним в обход его брандмауэра)" + +#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:538 +msgid "How long since a packet has been received / sent" +msgstr "Сколько прошло времени после приёма/передачи последнего пакета" + +#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:538 +#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:717 +#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1890 +msgid "Idle" +msgstr "Неактивен" + +#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:539 +#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:718 +#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1895 +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:156 +msgid "In/Out" +msgstr "Приём/Передача" + +#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:539 +msgid "The smoothed inbound / outbound transfer rate (KBytes per second)" +msgstr "Усреднённые скорости приёма / передачи (КБайт/сек) " + +#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:540 +msgid "How long ago this connection was established" +msgstr "Время жизни соединения" + +#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:540 +#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:719 +#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1900 +msgid "Up" +msgstr "Подключен" + +#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:541 +#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:720 +#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1902 +msgid "Skew" +msgstr "Сдвиг" + +#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:541 +msgid "The difference between the peer's clock and your own" +msgstr "Разница хода часов между пиром и нами" + +#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:542 +msgid "The congestion window, which is how many bytes can be sent without an acknowledgement" +msgstr "Congestion Window. Окно насыщения — количество байт, которое мы можем послать до ожидания подтверждения" + +#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:543 +msgid "The number of sent messages awaiting acknowledgement" +msgstr "Количество отправленных сообщений ожидающих подтверждения" + +#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:544 +msgid "The maximum number of concurrent messages to send" +msgstr "Максимальное количество параллельно отправляемых сообщений" + +#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:545 +msgid "The number of pending sends which exceed congestion window" +msgstr "Количество ожидающих посылок превосходящих размер окна насыщения" + +#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:546 +msgid "The slow start threshold" +msgstr "Slow Start Threshold. Величина порога медленного старта" + +#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:547 +msgid "The round trip time in milliseconds" +msgstr "Round-Trip Time. Время между отправкой запроса и получением ответа (миллисекунды)" + +#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:548 +#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1912 +msgid "Dev" +msgstr "Отклонение" + +#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:548 +msgid "The standard deviation of the round trip time in milliseconds" +msgstr "Среднеквадратическое отклонение RTT (миллисекунды)" + +#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:549 +msgid "The retransmit timeout in milliseconds" +msgstr "Retransmit Time-Out. Время ожидания подтверждения перед повторной посылкой пакета (миллисекунды)" + +#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:550 +msgid "Current maximum send packet size / estimated maximum receive packet size (bytes)" +msgstr "Maximum Transfer Unit. Текущий максимальный размер исходящего пакета / максимальный размер принятого пакета (байт) " + +#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:551 +#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:721 +#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1919 +msgid "TX" +msgstr "Передано" + +#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:551 +msgid "The total number of packets sent to the peer" +msgstr "Общее количество посланных пиру пакетов" + +#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:552 +#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:722 +#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1921 +msgid "RX" +msgstr "Принято" + +#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:552 +msgid "The total number of packets received from the peer" +msgstr "Общее количество принятых от пира пакетов" + +#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:553 +#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1924 +msgid "Dup TX" +msgstr "Повт. принято" + +#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:553 +msgid "The total number of packets retransmitted to the peer" +msgstr "Общее количество повторно посланных пиру пакетов" + +#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:554 +#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1926 +msgid "Dup RX" +msgstr "Повт. передано" + +#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:554 +msgid "The total number of duplicate packets received from the peer" +msgstr "Общее количество повторно принятых от пира пакетов" + +#: ../../../router/java/src/net/i2p/router/transport/ntcp/EstablishState.java:380 +#: ../../../router/java/src/net/i2p/router/transport/ntcp/EstablishState.java:594 +#, java-format +msgid "Excessive clock skew: {0}" +msgstr "Чрезмерное расхождение времени: {0}" + +#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:710 +msgid "NTCP connections" +msgstr "NTCP соединения" + +#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:711 +#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1881 +msgid "Limit" +msgstr "Ограничение" + +#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:712 +#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1882 +msgid "Timeout" +msgstr "Таймаут" + +#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:723 +msgid "Out Queue" +msgstr "Исходящая очередь" + +#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:724 +msgid "Backlogged?" +msgstr "В очереди?" + +#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:738 +#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1944 +#: ../java/src/net/i2p/router/web/ConfigTunnelsHelper.java:82 +msgid "Inbound" +msgstr "Входящие" + +#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:740 +#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1946 +#: ../java/src/net/i2p/router/web/ConfigTunnelsHelper.java:82 +msgid "Outbound" +msgstr "Исходящие" + +#. buf.append("\n"); +#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:787 +msgid "peers" +msgstr "пиров" + +#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1880 +msgid "UDP connections" +msgstr "UDP соединения" + +#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1887 +msgid "Sort by peer hash" +msgstr "Сортировать по идентификатору пира" + +#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1889 +msgid "Direction/Introduction" +msgstr "Направление / Посредничество" + +#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1891 +msgid "Sort by idle inbound" +msgstr "Сортировать по неактивности приёма" + +#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1893 +msgid "Sort by idle outbound" +msgstr "Сортировать по неактивности передачи" + +#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1896 +msgid "Sort by inbound rate" +msgstr "Сортировать по скорости приёма" + +#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1898 +msgid "Sort by outbound rate" +msgstr "Сортировать по скорости передачи" + +#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1901 +msgid "Sort by connection uptime" +msgstr "Сортировать по времени жизни соединения" + +#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1903 +msgid "Sort by clock skew" +msgstr "Сортировать по расхождению часов" + +#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1906 +msgid "Sort by congestion window" +msgstr "Сортировать по размеру окна насыщения" + +#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1908 +msgid "Sort by slow start threshold" +msgstr "Сортировать по размеру порога медленного старта" + +#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1911 +msgid "Sort by round trip time" +msgstr "Сортировать по времени прохождения сигнала" + +#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1913 +msgid "Sort by round trip time deviation" +msgstr "Сортировать по отклонению времени прохождения сигнала" + +#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1915 +msgid "Sort by retransmission timeout" +msgstr "Сортировать по таймауту передачи" + +#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1918 +msgid "Sort by outbound maximum transmit unit" +msgstr "Сортировать по размеру исходящего MTU" + +#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1920 +msgid "Sort by packets sent" +msgstr "Сортировать по количеству посланных пакетов" + +#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1922 +msgid "Sort by packets received" +msgstr "Сортировать по количеству принятых пакетов" + +#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1925 +msgid "Sort by packets retransmitted" +msgstr "Сортировать по количеству повторно посланных пакетов" + +#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1927 +msgid "Sort by packets received more than once" +msgstr "Сортировать по количеству повторно принятых пакетов" + +#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1948 +msgid "We offered to introduce them" +msgstr "Мы предлагаем себя в качестве посредника для этого пира" + +#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1950 +msgid "They offered to introduce us" +msgstr "Этот пир предлагает себя в качестве нашего посредника" + +#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1954 +msgid "Choked" +msgstr "Дросселирован" + +#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1962 +msgid "1 fail" +msgstr "1 сбой" + +#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1964 +#, java-format +msgid "{0} fails" +msgstr "{0} сбоя(-ев)" + +#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1970 +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:162 +msgid "Banned" +msgstr "Забанен" + +#. buf.append("\n"); +#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2102 +msgid "SUMMARY" +msgstr "ИТОГО" + +#: ../../../router/java/src/net/i2p/router/tunnel/pool/BuildHandler.java:145 +msgid "Dropping tunnel requests: Too slow" +msgstr "Игнорируем запросы туннелей: Время выполнения превысило ожидаемое" + +#. don't even bother, since we are so overloaded locally +#: ../../../router/java/src/net/i2p/router/tunnel/pool/BuildHandler.java:352 +msgid "Dropping tunnel requests: Overloaded" +msgstr "Игнорируем запросы туннелей: Слишком высокая нагрузка" + +#: ../../../router/java/src/net/i2p/router/tunnel/pool/BuildHandler.java:523 +msgid "Rejecting tunnels: Request overload" +msgstr "Не принимаем туннели: Слишком много запросов" + +#: ../../../router/java/src/net/i2p/router/tunnel/pool/BuildHandler.java:548 +msgid "Rejecting tunnels: Connection limit" +msgstr "Не принимаем туннели: Достигнут предел количества соединений" + +#: ../../../router/java/src/net/i2p/router/tunnel/pool/BuildHandler.java:742 +msgid "Dropping tunnel requests: High load" +msgstr "Игнорируем запросы туннелей: Высокая нагрузка" + +#: ../../../router/java/src/net/i2p/router/tunnel/pool/BuildHandler.java:751 +msgid "Dropping tunnel requests: Queue time" +msgstr "Игнорируем запросы туннелей: Слишком большое время пребывания в очереди" + +#. Automatically generated pseudo-java for xgettext - do not edit +#. Translators may wish to translate a few of these, do not bother to translate all of them!! +#: ../java/build/Countries.java:3 +msgid "Andorra" +msgstr "Андорра" + +#: ../java/build/Countries.java:4 +msgid "United Arab Emirates" +msgstr "Объединенные Арабские Эмираты" + +#: ../java/build/Countries.java:5 +msgid "Afghanistan" +msgstr "Афганистан" + +#: ../java/build/Countries.java:6 +msgid "Antigua and Barbuda" +msgstr "Антигуа и Барбуда" + +#: ../java/build/Countries.java:7 +msgid "Anguilla" +msgstr "Ангилья" + +#: ../java/build/Countries.java:8 +msgid "Albania" +msgstr "Албания" + +#: ../java/build/Countries.java:9 +msgid "Armenia" +msgstr "Армения" + +#: ../java/build/Countries.java:10 +msgid "Netherlands Antilles" +msgstr "Нидерландские Антильские острова" + +#: ../java/build/Countries.java:11 +msgid "Angola" +msgstr "Ангола" + +#: ../java/build/Countries.java:12 +msgid "Antarctica" +msgstr "Антарктида" + +#: ../java/build/Countries.java:13 +msgid "Argentina" +msgstr "Аргентина" + +#: ../java/build/Countries.java:14 +msgid "American Samoa" +msgstr "Американское Самоа" + +#: ../java/build/Countries.java:15 +msgid "Austria" +msgstr "Австрия" + +#: ../java/build/Countries.java:16 +msgid "Australia" +msgstr "Австралия" + +#: ../java/build/Countries.java:17 +msgid "Aruba" +msgstr "Аруба" + +#: ../java/build/Countries.java:19 +msgid "Azerbaijan" +msgstr "Азербайджан" + +#: ../java/build/Countries.java:20 +msgid "Bosnia and Herzegovina" +msgstr "Босния и Герцеговина" + +#: ../java/build/Countries.java:21 +msgid "Barbados" +msgstr "Барбадос" + +#: ../java/build/Countries.java:22 +msgid "Bangladesh" +msgstr "Бангладеш" + +#: ../java/build/Countries.java:23 +msgid "Belgium" +msgstr "Бельгия" + +#: ../java/build/Countries.java:24 +msgid "Burkina Faso" +msgstr "Буркина-Фасо" + +#: ../java/build/Countries.java:25 +msgid "Bulgaria" +msgstr "Болгария" + +#: ../java/build/Countries.java:26 +msgid "Bahrain" +msgstr "Бахрейн" + +#: ../java/build/Countries.java:27 +msgid "Burundi" +msgstr "Бурунди" + +#: ../java/build/Countries.java:28 +msgid "Benin" +msgstr "Бенин" + +#: ../java/build/Countries.java:29 +msgid "Bermuda" +msgstr "Бермудские Острова" + +#: ../java/build/Countries.java:30 +msgid "Brunei Darussalam" +msgstr "Бруней-Даруссалам" + +#: ../java/build/Countries.java:31 +msgid "Bolivia" +msgstr "Боливия" + +#: ../java/build/Countries.java:32 +msgid "Brazil" +msgstr "Бразилия" + +#: ../java/build/Countries.java:33 +msgid "Bahamas" +msgstr "Багамские острова" + +#: ../java/build/Countries.java:34 +msgid "Bhutan" +msgstr "Бутан" + +#: ../java/build/Countries.java:35 +msgid "Bouvet Island" +msgstr "Остров Буве" + +#: ../java/build/Countries.java:36 +msgid "Botswana" +msgstr "Ботсвана" + +#: ../java/build/Countries.java:37 +msgid "Belarus" +msgstr "Беларусь" + +#: ../java/build/Countries.java:38 +msgid "Belize" +msgstr "Белиз" + +#: ../java/build/Countries.java:39 +msgid "Canada" +msgstr "Канада" + +#: ../java/build/Countries.java:40 +msgid "The Democratic Republic of the Congo" +msgstr "Демократическая Республика Конго" + +#: ../java/build/Countries.java:41 +msgid "Central African Republic" +msgstr "Центральноафриканская Республика" + +#: ../java/build/Countries.java:42 +msgid "Congo" +msgstr "Конго" + +#: ../java/build/Countries.java:43 +msgid "Switzerland" +msgstr "Швейцария" + +#: ../java/build/Countries.java:44 +msgid "Cote D'Ivoire" +msgstr "Кот-д'Ивуар" + +#: ../java/build/Countries.java:45 +msgid "Cook Islands" +msgstr "Острова Кука" + +#: ../java/build/Countries.java:46 +msgid "Chile" +msgstr "Чили" + +#: ../java/build/Countries.java:47 +msgid "Cameroon" +msgstr "Камерун" + +#: ../java/build/Countries.java:48 +msgid "China" +msgstr "Китай" + +#: ../java/build/Countries.java:49 +msgid "Colombia" +msgstr "Колумбия" + +#: ../java/build/Countries.java:50 +msgid "Costa Rica" +msgstr "Коста-Рика" + +#: ../java/build/Countries.java:51 +msgid "Serbia and Montenegro" +msgstr "Сербия и Черногория" + +#: ../java/build/Countries.java:52 +msgid "Cuba" +msgstr "Куба" + +#: ../java/build/Countries.java:53 +msgid "Cape Verde" +msgstr "Кабо-Верде" + +#: ../java/build/Countries.java:54 +msgid "Cyprus" +msgstr "Кипр" + +#: ../java/build/Countries.java:55 +msgid "Czech Republic" +msgstr "Чехия" + +#: ../java/build/Countries.java:56 +msgid "Germany" +msgstr "Германия" + +#: ../java/build/Countries.java:57 +msgid "Djibouti" +msgstr "Джибути" + +#: ../java/build/Countries.java:58 +msgid "Denmark" +msgstr "Дания" + +#: ../java/build/Countries.java:59 +msgid "Dominica" +msgstr "Доминика" + +#: ../java/build/Countries.java:60 +msgid "Dominican Republic" +msgstr "Доминиканская Республика" + +#: ../java/build/Countries.java:61 +msgid "Algeria" +msgstr "Алжир" + +#: ../java/build/Countries.java:62 +msgid "Ecuador" +msgstr "Эквадор" + +#: ../java/build/Countries.java:63 +msgid "Estonia" +msgstr "Эстония" + +#: ../java/build/Countries.java:64 +msgid "Egypt" +msgstr "Египет" + +#: ../java/build/Countries.java:65 +msgid "Eritrea" +msgstr "Эритрея" + +#: ../java/build/Countries.java:66 +msgid "Spain" +msgstr "Испания" + +#: ../java/build/Countries.java:67 +msgid "Ethiopia" +msgstr "Эфиопия" + +#: ../java/build/Countries.java:68 +msgid "Finland" +msgstr "Финляндия" + +#: ../java/build/Countries.java:69 +msgid "Fiji" +msgstr "Фиджи" + +#: ../java/build/Countries.java:70 +msgid "Falkland Islands (Malvinas)" +msgstr "Фолклендские (Мальвинские) острова" + +#: ../java/build/Countries.java:71 +msgid "Federated States of Micronesia" +msgstr "Федеративные Штаты Микронезии" + +#: ../java/build/Countries.java:72 +msgid "Faroe Islands" +msgstr "Фарерские острова" + +#: ../java/build/Countries.java:73 +msgid "France" +msgstr "Франция" + +#: ../java/build/Countries.java:74 +msgid "Gabon" +msgstr "Габон" + +#: ../java/build/Countries.java:75 +msgid "United Kingdom" +msgstr "Великобритания" + +#: ../java/build/Countries.java:76 +msgid "Grenada" +msgstr "Гренада" + +#: ../java/build/Countries.java:77 +msgid "Georgia" +msgstr "Грузия" + +#: ../java/build/Countries.java:78 +msgid "French Guiana" +msgstr "Французская Гвиана" + +#: ../java/build/Countries.java:79 +msgid "Ghana" +msgstr "Гана" + +#: ../java/build/Countries.java:80 +msgid "Gibraltar" +msgstr "Гибралтар" + +#: ../java/build/Countries.java:81 +msgid "Greenland" +msgstr "Гренландия" + +#: ../java/build/Countries.java:82 +msgid "Gambia" +msgstr "Гамбия" + +#: ../java/build/Countries.java:83 +msgid "Guinea" +msgstr "Гвинея" + +#: ../java/build/Countries.java:84 +msgid "Guadeloupe" +msgstr "Гваделупа" + +#: ../java/build/Countries.java:85 +msgid "Equatorial Guinea" +msgstr "Экваториальная Гвинея" + +#: ../java/build/Countries.java:86 +msgid "Greece" +msgstr "Греция" + +#: ../java/build/Countries.java:87 +msgid "South Georgia and the South Sandwich Islands" +msgstr "Южная Джорджия и Южные Сандвичевы Острова" + +#: ../java/build/Countries.java:88 +msgid "Guatemala" +msgstr "Гватемала" + +#: ../java/build/Countries.java:89 +msgid "Guam" +msgstr "Гуам" + +#: ../java/build/Countries.java:90 +msgid "Guinea-Bissau" +msgstr "Гвинея-Бисау" + +#: ../java/build/Countries.java:91 +msgid "Guyana" +msgstr "Гайана" + +#: ../java/build/Countries.java:92 +msgid "Hong Kong" +msgstr "Гонконг" + +#: ../java/build/Countries.java:93 +msgid "Honduras" +msgstr "Гондурас" + +#: ../java/build/Countries.java:94 +msgid "Croatia" +msgstr "Хорватия" + +#: ../java/build/Countries.java:95 +msgid "Haiti" +msgstr "Гаити" + +#: ../java/build/Countries.java:96 +msgid "Hungary" +msgstr "Венгрия" + +#: ../java/build/Countries.java:97 +msgid "Indonesia" +msgstr "Индонезия" + +#: ../java/build/Countries.java:98 +msgid "Ireland" +msgstr "Ирландия" + +#: ../java/build/Countries.java:99 +msgid "Israel" +msgstr "Израиль" + +#: ../java/build/Countries.java:101 +msgid "India" +msgstr "Индия" + +#: ../java/build/Countries.java:102 +msgid "British Indian Ocean Territory" +msgstr "Британская территория в Индийском океане" + +#: ../java/build/Countries.java:103 +msgid "Iraq" +msgstr "Ирак" + +#: ../java/build/Countries.java:104 +msgid "Islamic Republic of Iran" +msgstr "Исламская Республика Иран" + +#: ../java/build/Countries.java:105 +msgid "Iceland" +msgstr "Исландия" + +#: ../java/build/Countries.java:106 +msgid "Italy" +msgstr "Италия" + +#: ../java/build/Countries.java:108 +msgid "Jamaica" +msgstr "Ямайка" + +#: ../java/build/Countries.java:109 +msgid "Jordan" +msgstr "Иордания" + +#: ../java/build/Countries.java:110 +msgid "Japan" +msgstr "Япония" + +#: ../java/build/Countries.java:111 +msgid "Kenya" +msgstr "Кения" + +#: ../java/build/Countries.java:112 +msgid "Kyrgyzstan" +msgstr "Кыргызстан" + +#: ../java/build/Countries.java:113 +msgid "Cambodia" +msgstr "Камбоджа" + +#: ../java/build/Countries.java:114 +msgid "Kiribati" +msgstr "Кирибати" + +#: ../java/build/Countries.java:115 +msgid "Comoros" +msgstr "Коморские Острова" + +#: ../java/build/Countries.java:116 +msgid "Saint Kitts and Nevis" +msgstr "Сент-Китс и Невис" + +#: ../java/build/Countries.java:117 +msgid "Republic of Korea" +msgstr "Республика Корея" + +#: ../java/build/Countries.java:118 +msgid "Kuwait" +msgstr "Кувейт" + +#: ../java/build/Countries.java:119 +msgid "Cayman Islands" +msgstr "Каймановы острова" + +#: ../java/build/Countries.java:120 +msgid "Kazakhstan" +msgstr "Казахстан" + +#: ../java/build/Countries.java:121 +msgid "Lao People's Democratic Republic" +msgstr "Лаосская Народно-Демократическая Республика" + +#: ../java/build/Countries.java:122 +msgid "Lebanon" +msgstr "Ливан" + +#: ../java/build/Countries.java:123 +msgid "Saint Lucia" +msgstr "Сент-Люсия" + +#: ../java/build/Countries.java:124 +msgid "Liechtenstein" +msgstr "Лихтенштейн" + +#: ../java/build/Countries.java:125 +msgid "Sri Lanka" +msgstr "Шри-Ланка" + +#: ../java/build/Countries.java:126 +msgid "Liberia" +msgstr "Либерия" + +#: ../java/build/Countries.java:127 +msgid "Lesotho" +msgstr "Лесото" + +#: ../java/build/Countries.java:128 +msgid "Lithuania" +msgstr "Литва" + +#: ../java/build/Countries.java:129 +msgid "Luxembourg" +msgstr "Люксембург" + +#: ../java/build/Countries.java:130 +msgid "Latvia" +msgstr "Латвия" + +#: ../java/build/Countries.java:131 +msgid "Libyan Arab Jamahiriya" +msgstr "Ливийская Арабская Джамахирия" + +#: ../java/build/Countries.java:132 +msgid "Morocco" +msgstr "Марокко" + +#: ../java/build/Countries.java:133 +msgid "Monaco" +msgstr "Монако" + +#: ../java/build/Countries.java:134 +msgid "Republic of Moldova" +msgstr "Республика Молдова" + +#: ../java/build/Countries.java:137 +msgid "Madagascar" +msgstr "Мадагаскар" + +#: ../java/build/Countries.java:138 +msgid "Marshall Islands" +msgstr "Маршалловы Острова" + +#: ../java/build/Countries.java:139 +msgid "The Former Yugoslav Republic of Macedonia" +msgstr "Бывшая югославская Республика Македония" + +#: ../java/build/Countries.java:140 +msgid "Mali" +msgstr "Мали" + +#: ../java/build/Countries.java:141 +msgid "Myanmar" +msgstr "Мьянма" + +#: ../java/build/Countries.java:142 +msgid "Mongolia" +msgstr "Монголия" + +#: ../java/build/Countries.java:143 +msgid "Macao" +msgstr "Макао" + +#: ../java/build/Countries.java:144 +msgid "Northern Mariana Islands" +msgstr "Северные Марианские острова" + +#: ../java/build/Countries.java:145 +msgid "Martinique" +msgstr "Мартиника" + +#: ../java/build/Countries.java:146 +msgid "Mauritania" +msgstr "Мавритания" + +#: ../java/build/Countries.java:147 +msgid "Montserrat" +msgstr "Монтсеррат" + +#: ../java/build/Countries.java:148 +msgid "Malta" +msgstr "Мальта" + +#: ../java/build/Countries.java:149 +msgid "Mauritius" +msgstr "Маврикий" + +#: ../java/build/Countries.java:150 +msgid "Maldives" +msgstr "Мальдивы" + +#: ../java/build/Countries.java:151 +msgid "Malawi" +msgstr "Малави" + +#: ../java/build/Countries.java:152 +msgid "Mexico" +msgstr "Мексика" + +#: ../java/build/Countries.java:153 +msgid "Malaysia" +msgstr "Малайзия" + +#: ../java/build/Countries.java:154 +msgid "Mozambique" +msgstr "Мозамбик" + +#: ../java/build/Countries.java:155 +msgid "Namibia" +msgstr "Намибия" + +#: ../java/build/Countries.java:156 +msgid "New Caledonia" +msgstr "Новая Каледония" + +#: ../java/build/Countries.java:157 +msgid "Niger" +msgstr "Нигер" + +#: ../java/build/Countries.java:158 +msgid "Norfolk Island" +msgstr "Остров Норфолк" + +#: ../java/build/Countries.java:159 +msgid "Nigeria" +msgstr "Нигерия" + +#: ../java/build/Countries.java:160 +msgid "Nicaragua" +msgstr "Никарагуа" + +#: ../java/build/Countries.java:161 +msgid "Netherlands" +msgstr "Нидерланды" + +#: ../java/build/Countries.java:162 +msgid "Norway" +msgstr "Норвегия" + +#: ../java/build/Countries.java:163 +msgid "Nepal" +msgstr "Непал" + +#: ../java/build/Countries.java:164 +msgid "Nauru" +msgstr "Науру" + +#: ../java/build/Countries.java:165 +msgid "Niue" +msgstr "Ниуэ" + +#: ../java/build/Countries.java:166 +msgid "New Zealand" +msgstr "Новая Зеландия" + +#: ../java/build/Countries.java:167 +msgid "Oman" +msgstr "Оман" + +#: ../java/build/Countries.java:168 +msgid "Panama" +msgstr "Панама" + +#: ../java/build/Countries.java:169 +msgid "Peru" +msgstr "Перу" + +#: ../java/build/Countries.java:170 +msgid "French Polynesia" +msgstr "Французская Полинезия" + +#: ../java/build/Countries.java:171 +msgid "Papua New Guinea" +msgstr "Папуа - Новая Гвинея" + +#: ../java/build/Countries.java:172 +msgid "Philippines" +msgstr "Филиппины" + +#: ../java/build/Countries.java:173 +msgid "Pakistan" +msgstr "Пакистан" + +#: ../java/build/Countries.java:174 +msgid "Poland" +msgstr "Польша" + +#: ../java/build/Countries.java:175 +msgid "Saint Pierre and Miquelon" +msgstr "Сен-Пьер и Микелон" + +#: ../java/build/Countries.java:176 +msgid "Puerto Rico" +msgstr "Пуэрто-Рико" + +#: ../java/build/Countries.java:177 +msgid "Palestinian Territory" +msgstr "Палестинская автономия" + +#: ../java/build/Countries.java:178 +msgid "Portugal" +msgstr "Португалия" + +#: ../java/build/Countries.java:179 +msgid "Palau" +msgstr "Палау" + +#: ../java/build/Countries.java:180 +msgid "Paraguay" +msgstr "Парагвай" + +#: ../java/build/Countries.java:181 +msgid "Qatar" +msgstr "Катар" + +#: ../java/build/Countries.java:182 +msgid "Reunion" +msgstr "Реюньон" + +#: ../java/build/Countries.java:183 +msgid "Romania" +msgstr "Румыния" + +#: ../java/build/Countries.java:184 +msgid "Serbia" +msgstr "Сербия" + +#: ../java/build/Countries.java:185 +msgid "Russian Federation" +msgstr "Российская Федерация" + +#: ../java/build/Countries.java:186 +msgid "Rwanda" +msgstr "Руанда" + +#: ../java/build/Countries.java:187 +msgid "Saudi Arabia" +msgstr "Саудовская Аравия" + +#: ../java/build/Countries.java:188 +msgid "Solomon Islands" +msgstr "Соломоновы Острова" + +#: ../java/build/Countries.java:189 +msgid "Seychelles" +msgstr "Сейшельские Острова" + +#: ../java/build/Countries.java:190 +msgid "Sudan" +msgstr "Судан" + +#: ../java/build/Countries.java:191 +msgid "Sweden" +msgstr "Швеция" + +#: ../java/build/Countries.java:192 +msgid "Singapore" +msgstr "Сингапур" + +#: ../java/build/Countries.java:193 +msgid "Slovenia" +msgstr "Словения" + +#: ../java/build/Countries.java:194 +msgid "Slovakia" +msgstr "Словакия" + +#: ../java/build/Countries.java:195 +msgid "Sierra Leone" +msgstr "Сьерра-Леоне" + +#: ../java/build/Countries.java:196 +msgid "San Marino" +msgstr "Сан-Марино" + +#: ../java/build/Countries.java:197 +msgid "Senegal" +msgstr "Сенегал" + +#: ../java/build/Countries.java:198 +msgid "Somalia" +msgstr "Сомали" + +#: ../java/build/Countries.java:199 +msgid "Suriname" +msgstr "Суринам" + +#: ../java/build/Countries.java:200 +msgid "Sao Tome and Principe" +msgstr "Сан-Томе и Принсипи" + +#: ../java/build/Countries.java:201 +msgid "El Salvador" +msgstr "Сальвадор" + +#: ../java/build/Countries.java:202 +msgid "Syrian Arab Republic" +msgstr "Сирийская Арабская Республика" + +#: ../java/build/Countries.java:203 +msgid "Swaziland" +msgstr "Свазиленд" + +#: ../java/build/Countries.java:204 +msgid "Turks and Caicos Islands" +msgstr "Острова Теркс и Кайкос" + +#: ../java/build/Countries.java:205 +msgid "Chad" +msgstr "Чад" + +#: ../java/build/Countries.java:206 +msgid "French Southern Territories" +msgstr "Французские Южные Территории" + +#: ../java/build/Countries.java:207 +msgid "Togo" +msgstr "Того" + +#: ../java/build/Countries.java:208 +msgid "Thailand" +msgstr "Таиланд" + +#: ../java/build/Countries.java:209 +msgid "Tajikistan" +msgstr "Таджикистан" + +#: ../java/build/Countries.java:210 +msgid "Tokelau" +msgstr "Токелау" + +#: ../java/build/Countries.java:211 +msgid "Timor-Leste" +msgstr "Восточный Тимор" + +#: ../java/build/Countries.java:212 +msgid "Turkmenistan" +msgstr "Туркменистан" + +#: ../java/build/Countries.java:213 +msgid "Tunisia" +msgstr "Тунис" + +#: ../java/build/Countries.java:214 +msgid "Tonga" +msgstr "Тонга" + +#: ../java/build/Countries.java:215 +msgid "Turkey" +msgstr "Турция" + +#: ../java/build/Countries.java:216 +msgid "Trinidad and Tobago" +msgstr "Тринидад и Тобаго" + +#: ../java/build/Countries.java:217 +msgid "Tuvalu" +msgstr "Тувалу" + +#: ../java/build/Countries.java:218 +msgid "Taiwan" +msgstr "Тайвань" + +#: ../java/build/Countries.java:219 +msgid "United Republic of Tanzania" +msgstr "Объединённая Республика Танзания" + +#: ../java/build/Countries.java:220 +msgid "Ukraine" +msgstr "Украина" + +#: ../java/build/Countries.java:221 +msgid "Uganda" +msgstr "Уганда" + +#: ../java/build/Countries.java:222 +msgid "United States Minor Outlying Islands" +msgstr "Внешние малые острова (США)" + +#: ../java/build/Countries.java:223 +msgid "United States" +msgstr "Соединённые Штаты Америки" + +#: ../java/build/Countries.java:224 +msgid "Uruguay" +msgstr "Уругвай" + +#: ../java/build/Countries.java:225 +msgid "Uzbekistan" +msgstr "Узбекистан" + +#: ../java/build/Countries.java:226 +msgid "Holy See (Vatican City State)" +msgstr "Святой Престол (Ватикан)" + +#: ../java/build/Countries.java:227 +msgid "Saint Vincent and the Grenadines" +msgstr "Сент-Винсент и Гренадины" + +#: ../java/build/Countries.java:228 +msgid "Venezuela" +msgstr "Венесуэла" + +#: ../java/build/Countries.java:229 +#: ../java/build/Countries.java:230 +msgid "Virgin Islands" +msgstr "Виргинские острова" + +#: ../java/build/Countries.java:231 +msgid "Viet Nam" +msgstr "Вьетнам" + +#: ../java/build/Countries.java:232 +msgid "Vanuatu" +msgstr "Вануату" + +#: ../java/build/Countries.java:233 +msgid "Wallis and Futuna" +msgstr "Уоллис и Футуна" + +#: ../java/build/Countries.java:234 +msgid "Samoa" +msgstr "Самоа" + +#: ../java/build/Countries.java:235 +msgid "Yemen" +msgstr "Йемен" + +#: ../java/build/Countries.java:236 +msgid "Mayotte" +msgstr "Майотта" + +#: ../java/build/Countries.java:237 +msgid "South Africa" +msgstr "Южная Африка" + +#: ../java/build/Countries.java:238 +msgid "Zambia" +msgstr "Замбия" + +#: ../java/build/Countries.java:239 +msgid "Zimbabwe" +msgstr "Зимбабве" + +#: ../java/src/net/i2p/router/web/CSSHelper.java:57 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:34 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:36 +#: ../java/strings/Strings.java:29 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/index_jsp.java:234 +msgid "I2P Router Console" +msgstr "Консоль маршрутизатора I2P" + +#: ../java/src/net/i2p/router/web/ConfigAdvancedHandler.java:57 +msgid "Error updating the configuration - please see the error logs" +msgstr "Не удалось обновить настройки — загляните в журнал ошибок" + +#: ../java/src/net/i2p/router/web/ConfigAdvancedHandler.java:69 +#: ../java/src/net/i2p/router/web/ConfigNetHandler.java:266 +msgid "Configuration saved successfully" +msgstr "Настройки сохранены" + +#: ../java/src/net/i2p/router/web/ConfigAdvancedHandler.java:71 +#: ../java/src/net/i2p/router/web/ConfigNetHandler.java:268 +msgid "Error saving the configuration (applied but not saved) - please see the error logs" +msgstr "Не удалось сохранить настройки (применены, но не сохранены) — загляните в журнал ошибок" + +#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:34 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:334 +msgid "Save Client Configuration" +msgstr "Сохранить настройки клиентов" + +#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:38 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:346 +msgid "Save WebApp Configuration" +msgstr "Сохранить настройки веб-апплетов" + +#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:42 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:356 +msgid "Save Plugin Configuration" +msgstr "Сохранить настройки плагинов" + +#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:46 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:362 +msgid "Install Plugin" +msgstr "Установить плагин" + +#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:82 +#, java-format +msgid "Deleted plugin {0}" +msgstr "Удален плагин {0}" + +#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:84 +#, java-format +msgid "Error deleting plugin {0}" +msgstr "Ошибка при удалении плагина {0}" + +#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:96 +#, java-format +msgid "Stopped plugin {0}" +msgstr "Остановлен плагин {0}" + +#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:98 +#, java-format +msgid "Error stopping plugin {0}" +msgstr "Ошибка при остановке плагина {0}" + +#. label (IE) +#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:119 +#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:189 +msgid "Start" +msgstr "Запустить" + +#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:138 +#: ../java/src/net/i2p/router/web/ConfigKeyringHandler.java:49 +#: ../java/src/net/i2p/router/web/ConfigPeerHandler.java:61 +msgid "Unsupported" +msgstr "Не поддерживается" + +#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:184 +msgid "New client added" +msgstr "Добавлен новый клиент" + +#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:188 +msgid "Client configuration saved successfully - restart required to take effect." +msgstr "Настройки клиентов сохранены, требуется перезагрузка маршрутизатора для вступления в силу." + +#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:202 +#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:213 +msgid "Bad client index." +msgstr "Индекс клиента не найден в списке." + +#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:207 +#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:218 +#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:38 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:387 +#: ../java/src/net/i2p/router/web/SummaryHelper.java:379 +msgid "Client" +msgstr "Клиент" + +#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:207 +#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:266 +msgid "started" +msgstr "запущен" + +#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:218 +msgid "deleted" +msgstr "удален" + +#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:235 +msgid "WebApp configuration saved." +msgstr "Настройки веб-апплета сохранены." + +#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:251 +msgid "Plugin configuration saved." +msgstr "Настройки плагина сохранены." + +#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:266 +#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:58 +msgid "WebApp" +msgstr "Веб-апплет" + +#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:268 +msgid "Failed to start" +msgstr "Не удалось запустить" + +#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:273 +msgid "Failed to find server." +msgstr "Не удалось найти сервер." + +#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:279 +msgid "No plugin URL specified." +msgstr "Не указан URL загрузки плагина" + +#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:289 +#, java-format +msgid "No update URL specified for {0}" +msgstr "Не указан URL загрузки плагина {0}" + +#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:297 +#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:302 +#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:315 +#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:320 +msgid "Plugin or update download already in progress." +msgstr "Загрузка плагина или обновления уже запущена." + +#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:306 +#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:117 +#, java-format +msgid "Downloading plugin from {0}" +msgstr "Производится загрузка плагина с {0}" + +#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:324 +#, java-format +msgid "Checking plugin {0} for updates" +msgstr "Проверяется наличие обновления для плагина {0}" + +#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:334 +#, java-format +msgid "Started plugin {0}" +msgstr "Запущен плагин {0}" + +#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:336 +#, java-format +msgid "Error starting plugin {0}" +msgstr "Ошибка при запуске плагина {0}" + +#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:21 +#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:192 +msgid "Edit" +msgstr "Редактировать" + +#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:30 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:330 +msgid "Add Client" +msgstr "Добавить клиент" + +#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:38 +msgid "Class and arguments" +msgstr "Название класса и параметры" + +#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:38 +#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:58 +#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:82 +msgid "Control" +msgstr "Управление" + +#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:38 +#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:58 +#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:82 +msgid "Run at Startup?" +msgstr "Запускать автоматически?" + +#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:58 +#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:82 +#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:131 +msgid "Description" +msgstr "Описание" + +#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:82 +msgid "Plugin" +msgstr "Плагин" + +#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:95 +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:268 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:180 +msgid "Version" +msgstr "Версия" + +#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:97 +msgid "Signed by" +msgstr "Подписано" + +#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:114 +msgid "Date" +msgstr "Дата" + +#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:120 +msgid "Author" +msgstr "Автор" + +#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:136 +msgid "License" +msgstr "Лицензия" + +#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:141 +msgid "Website" +msgstr "Веб-сайт" + +#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:146 +msgid "Update link" +msgstr "Адрес обновления" + +#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:194 +msgid "Stop" +msgstr "Остановить" + +#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:196 +#: ../java/src/net/i2p/router/web/ConfigUpdateHandler.java:81 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:312 +msgid "Check for updates" +msgstr "Проверить обновления" + +#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:197 +#: ../java/src/net/i2p/router/web/ConfigNavHelper.java:18 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:230 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:237 +msgid "Update" +msgstr "Обновление" + +#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:202 +#, java-format +msgid "Are you sure you want to delete {0}?" +msgstr "Вы действительно хотите удалить {0}?" + +#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:204 +msgid "Delete" +msgstr "Удалить" + +#: ../java/src/net/i2p/router/web/ConfigKeyringHandler.java:18 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:324 +msgid "Add key" +msgstr "Добавить ключ" + +#: ../java/src/net/i2p/router/web/ConfigKeyringHandler.java:19 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:322 +msgid "Delete key" +msgstr "Удалить ключ" + +#: ../java/src/net/i2p/router/web/ConfigKeyringHandler.java:21 +msgid "You must enter a destination" +msgstr "Вы должны ввести адрес назначения" + +#: ../java/src/net/i2p/router/web/ConfigKeyringHandler.java:23 +msgid "You must enter a key" +msgstr "Вы должны ввести ключ" + +#: ../java/src/net/i2p/router/web/ConfigKeyringHandler.java:34 +#: ../java/src/net/i2p/router/web/ConfigKeyringHandler.java:41 +#: ../java/src/net/i2p/router/web/ConfigKeyringHandler.java:43 +msgid "Key for" +msgstr "Ключ для" + +#: ../java/src/net/i2p/router/web/ConfigKeyringHandler.java:34 +msgid "added to keyring" +msgstr "добавлен в связку ключей" + +#: ../java/src/net/i2p/router/web/ConfigKeyringHandler.java:36 +msgid "Invalid destination or key" +msgstr "Некорректный адрес назначения или ключ" + +#: ../java/src/net/i2p/router/web/ConfigKeyringHandler.java:41 +msgid "removed from keyring" +msgstr "удален из связки ключей" + +#: ../java/src/net/i2p/router/web/ConfigKeyringHandler.java:43 +msgid "not found in keyring" +msgstr "не найден в связке ключей" + +#: ../java/src/net/i2p/router/web/ConfigKeyringHandler.java:45 +msgid "Invalid destination" +msgstr "Некорректный адрес назначения" + +#: ../java/src/net/i2p/router/web/ConfigLoggingHelper.java:46 +msgid "Add additional logging statements above. Example: net.i2p.router.tunnel=WARN" +msgstr "Впишите выше дополнительные настройки уровней детальности журнала. Пример: net.i2p.router.tunnel=WARN" + +#: ../java/src/net/i2p/router/web/ConfigLoggingHelper.java:47 +msgid "Or put entries in the logger.config file. Example: logger.record.net.i2p.router.tunnel=WARN" +msgstr "Либо добавьте эти записи в файл logger.config. Пример: logger.record.net.i2p.router.tunnel=WARN" + +#: ../java/src/net/i2p/router/web/ConfigLoggingHelper.java:48 +msgid "Valid levels are DEBUG, INFO, WARN, ERROR, CRIT" +msgstr "Поддерживаемые уровни: DEBUG, INFO, WARN, ERROR, CRIT" + +# This term intentionally left in English +#: ../java/src/net/i2p/router/web/ConfigLoggingHelper.java:52 +msgid "CRIT" +msgstr "CRIT" + +# This term intentionally left in English +#: ../java/src/net/i2p/router/web/ConfigLoggingHelper.java:52 +msgid "DEBUG" +msgstr "DEBUG" + +# This term intentionally left in English +#: ../java/src/net/i2p/router/web/ConfigLoggingHelper.java:52 +msgid "ERROR" +msgstr "ERROR" + +# This term intentionally left in English +#: ../java/src/net/i2p/router/web/ConfigLoggingHelper.java:52 +msgid "INFO" +msgstr "INFO" + +# This term intentionally left in English +#: ../java/src/net/i2p/router/web/ConfigLoggingHelper.java:52 +msgid "WARN" +msgstr "WARN" + +#: ../java/src/net/i2p/router/web/ConfigNavHelper.java:18 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:199 +msgid "Network" +msgstr "Сеть" + +#: ../java/src/net/i2p/router/web/ConfigNavHelper.java:18 +msgid "Service" +msgstr "Служба" + +#: ../java/src/net/i2p/router/web/ConfigNavHelper.java:18 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:100 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:376 +#: ../java/strings/Strings.java:72 +msgid "Tunnels" +msgstr "Туннели" + +#: ../java/src/net/i2p/router/web/ConfigNavHelper.java:18 +msgid "UI" +msgstr "Интерфейс" + +#: ../java/src/net/i2p/router/web/ConfigNavHelper.java:19 +msgid "Clients" +msgstr "Апплеты" + +#: ../java/src/net/i2p/router/web/ConfigNavHelper.java:19 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:292 +msgid "Keyring" +msgstr "Ключи" + +#: ../java/src/net/i2p/router/web/ConfigNavHelper.java:19 +msgid "Logging" +msgstr "Журнал" + +#: ../java/src/net/i2p/router/web/ConfigNavHelper.java:19 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:106 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:255 +#: ../java/strings/Strings.java:67 +msgid "Peers" +msgstr "Пиры" + +#: ../java/src/net/i2p/router/web/ConfigNavHelper.java:19 +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:382 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:142 +msgid "Stats" +msgstr "Статистика" + +#: ../java/src/net/i2p/router/web/ConfigNavHelper.java:20 +msgid "Advanced" +msgstr "Дополнительно" + +#: ../java/src/net/i2p/router/web/ConfigNetHandler.java:48 +#: ../java/src/net/i2p/router/web/ConfigNetHandler.java:264 +#: ../java/src/net/i2p/router/web/ConfigTunnelsHandler.java:35 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:359 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:515 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configadvanced_jsp.java:305 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:335 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:375 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configtunnels_jsp.java:343 +msgid "Save changes" +msgstr "Сохранить настройки" + +#: ../java/src/net/i2p/router/web/ConfigNetHandler.java:121 +msgid "Rechecking router reachability..." +msgstr "Перепроверяем доступность маршрутизатора..." + +#: ../java/src/net/i2p/router/web/ConfigNetHandler.java:153 +msgid "Updating IP address" +msgstr "Обновляем IP-адрес" + +#: ../java/src/net/i2p/router/web/ConfigNetHandler.java:171 +msgid "Disabling TCP completely" +msgstr "Полностью отключаем использование TCP" + +#: ../java/src/net/i2p/router/web/ConfigNetHandler.java:175 +msgid "Updating inbound TCP address to" +msgstr "Адрес для входящих TCP соединений изменен на" + +#: ../java/src/net/i2p/router/web/ConfigNetHandler.java:179 +msgid "Disabling inbound TCP" +msgstr "Отключаем использование TCP на вход" + +#: ../java/src/net/i2p/router/web/ConfigNetHandler.java:181 +msgid "Updating inbound TCP address to auto" +msgstr "Адрес для входящих TCP соединений будет определяться автоматически" + +#: ../java/src/net/i2p/router/web/ConfigNetHandler.java:190 +msgid "Updating inbound TCP port to" +msgstr "Порт для входящих TCP соединений изменен на" + +#: ../java/src/net/i2p/router/web/ConfigNetHandler.java:193 +msgid "Updating inbound TCP port to auto" +msgstr "Порт для входящих TCP соединений будет выбираться автоматически" + +#: ../java/src/net/i2p/router/web/ConfigNetHandler.java:205 +msgid "Updating UDP port from" +msgstr "Порт для UDP соединений изменен с" + +#: ../java/src/net/i2p/router/web/ConfigNetHandler.java:205 +msgid "to" +msgstr "на" + +#: ../java/src/net/i2p/router/web/ConfigNetHandler.java:221 +msgid "Gracefully restarting into Hidden Router Mode" +msgstr "Плавная перезагрузка для перехода в скрытый режим" + +#: ../java/src/net/i2p/router/web/ConfigNetHandler.java:223 +msgid "Gracefully restarting to exit Hidden Router Mode" +msgstr "Плавная перезагрузка для выхода из скрытого режима" + +#: ../java/src/net/i2p/router/web/ConfigNetHandler.java:232 +msgid "Enabling UPnP, restart required to take effect" +msgstr "UPnP включен, необходима перезагрузка маршрутизатора" + +#: ../java/src/net/i2p/router/web/ConfigNetHandler.java:234 +msgid "Disabling UPnP, restart required to take effect" +msgstr "UPnP выключен, необходима перезагрузка маршрутизатора" + +#: ../java/src/net/i2p/router/web/ConfigNetHandler.java:242 +msgid "Enabling laptop mode" +msgstr "Включение laptop mode" + +#: ../java/src/net/i2p/router/web/ConfigNetHandler.java:244 +msgid "Disabling laptop mode" +msgstr "Выключение laptop mode" + +#: ../java/src/net/i2p/router/web/ConfigNetHandler.java:250 +msgid "Requiring SSU introducers" +msgstr "Запрашиваем SSU-посредников" + +#. There's a few changes that don't really require restart (e.g. enabling inbound TCP) +#. But it would be hard to get right, so just do a restart. +#: ../java/src/net/i2p/router/web/ConfigNetHandler.java:291 +msgid "Gracefully restarting I2P to change published router address" +msgstr "Плавная перезагрузка для изменения публикуемого адреса" + +#: ../java/src/net/i2p/router/web/ConfigNetHandler.java:314 +msgid "Updating bandwidth share percentage" +msgstr "Обновление доли транзитного трафика" + +#: ../java/src/net/i2p/router/web/ConfigNetHandler.java:397 +msgid "Updated bandwidth limits" +msgstr "Настройки ограничений скорости сохранены" + +#: ../java/src/net/i2p/router/web/ConfigNetHelper.java:39 +#: ../java/src/net/i2p/router/web/ConfigNetHelper.java:47 +#: ../java/src/net/i2p/router/web/ConfigNetHelper.java:50 +#: ../java/src/net/i2p/router/web/ConfigNetHelper.java:57 +#: ../java/src/net/i2p/router/web/ConfigNetHelper.java:60 +msgid "unknown" +msgstr "неизвестен" + +#: ../java/src/net/i2p/router/web/ConfigNetHelper.java:169 +msgid "bits per second" +msgstr "бит/секунду" + +#: ../java/src/net/i2p/router/web/ConfigNetHelper.java:170 +#, java-format +msgid "or {0} bytes per month maximum" +msgstr "или {0} байт/месяц максимум" + +#: ../java/src/net/i2p/router/web/ConfigPeerHandler.java:20 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:314 +msgid "Ban peer until restart" +msgstr "Забанить пира до перезагрузки маршрутизатора" + +#: ../java/src/net/i2p/router/web/ConfigPeerHandler.java:23 +#, java-format +msgid "Manually banned via {0}" +msgstr "Забанен вручную через {0}" + +#: ../java/src/net/i2p/router/web/ConfigPeerHandler.java:24 +msgid "banned until restart" +msgstr "забанен до перезагрузки" + +#: ../java/src/net/i2p/router/web/ConfigPeerHandler.java:27 +#: ../java/src/net/i2p/router/web/ConfigPeerHandler.java:38 +#: ../java/src/net/i2p/router/web/ConfigPeerHandler.java:59 +msgid "Invalid peer" +msgstr "Некорректное описание пира" + +#: ../java/src/net/i2p/router/web/ConfigPeerHandler.java:28 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:316 +msgid "Unban peer" +msgstr "Разбанить пира" + +#: ../java/src/net/i2p/router/web/ConfigPeerHandler.java:33 +msgid "unbanned" +msgstr "разбанен" + +#: ../java/src/net/i2p/router/web/ConfigPeerHandler.java:35 +msgid "is not currently banned" +msgstr "на данный момент не забанен" + +#: ../java/src/net/i2p/router/web/ConfigPeerHandler.java:39 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:322 +msgid "Adjust Profile Bonuses" +msgstr "Настроить бонусы для этого пира" + +#: ../java/src/net/i2p/router/web/ConfigPeerHandler.java:47 +msgid "Bad speed value" +msgstr "Некорректное значение скорости" + +#: ../java/src/net/i2p/router/web/ConfigPeerHandler.java:52 +msgid "Bad capacity value" +msgstr "Некорректное значение ёмкости" + +#. Normal browsers send value, IE sends button label +#: ../java/src/net/i2p/router/web/ConfigRestartBean.java:32 +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:57 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:292 +msgid "Shutdown immediately" +msgstr "Выключить немедленно" + +#. ctx.router().shutdown(Router.EXIT_HARD); // never returns +#. give the UI time to respond +#: ../java/src/net/i2p/router/web/ConfigRestartBean.java:36 +msgid "Cancel shutdown" +msgstr "Отменить выключение" + +#: ../java/src/net/i2p/router/web/ConfigRestartBean.java:37 +msgid "Cancel restart" +msgstr "Отменить перезагрузку" + +#: ../java/src/net/i2p/router/web/ConfigRestartBean.java:39 +msgid "Restart immediately" +msgstr "Перезагрузить немедленно" + +#. ctx.router().shutdown(Router.EXIT_HARD_RESTART); // never returns +#. give the UI time to respond +#: ../java/src/net/i2p/router/web/ConfigRestartBean.java:43 +msgid "Restart" +msgstr "Перезагрузить" + +#: ../java/src/net/i2p/router/web/ConfigRestartBean.java:46 +msgid "Shutdown" +msgstr "Выключить" + +#: ../java/src/net/i2p/router/web/ConfigRestartBean.java:59 +msgid "Restart imminent" +msgstr "Неотменяемая перезагрузка" + +#: ../java/src/net/i2p/router/web/ConfigRestartBean.java:61 +msgid "Shutdown imminent" +msgstr "Неотменяемое выключение" + +#: ../java/src/net/i2p/router/web/ConfigRestartBean.java:65 +#, java-format +msgid "Shutdown in {0}" +msgstr "Выключение через {0}" + +#: ../java/src/net/i2p/router/web/ConfigRestartBean.java:70 +#, java-format +msgid "Restart in {0}" +msgstr "Перезагрузка через {0}" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:53 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:290 +msgid "Shutdown gracefully" +msgstr "Выключить плавно" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:56 +msgid "Graceful shutdown initiated" +msgstr "Запущено плавное выключение" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:60 +msgid "Shutdown immediately! boom bye bye bad bwoy" +msgstr "Выключаем немедленно!" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:61 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:294 +msgid "Cancel graceful shutdown" +msgstr "Отменить плавное выключение" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:63 +msgid "Graceful shutdown cancelled" +msgstr "Плавное отключение отменено" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:64 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:306 +msgid "Graceful restart" +msgstr "Перезагрузить плавно" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:67 +msgid "Graceful restart requested" +msgstr "Запущена плавная перезагрузка" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:68 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:308 +msgid "Hard restart" +msgstr "Перезагрузить немедленно" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:71 +msgid "Hard restart requested" +msgstr "Запрошена быстрая перезагрузка" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:72 +msgid "Rekey and Restart" +msgstr "Сменить ключ и перезагрузить" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:73 +msgid "Rekeying after graceful restart" +msgstr "Смена ключа после плавной перезагрузки" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:76 +msgid "Rekey and Shutdown" +msgstr "Сменить ключ и выключить" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:77 +msgid "Rekeying after graceful shutdown" +msgstr "Смена ключа после плавного выключения" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:80 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:334 +msgid "Run I2P on startup" +msgstr "Запускать I2P при старте" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:82 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:336 +msgid "Don't run I2P on startup" +msgstr "Не запускать I2P при старте" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:84 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:354 +msgid "Dump threads" +msgstr "Вывести список тредов" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:91 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:322 +msgid "Show systray icon" +msgstr "Показать значок статуса" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:96 +msgid "System tray icon enabled." +msgstr "Включен значок-индикатор статуса в области уведомлений." + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:98 +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:110 +msgid "System tray icon feature not supported on this platform. Sorry!" +msgstr "Вывод индикаторов в области уведомлений на этой платформе не поддерживается. Извините!" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:101 +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:113 +msgid "Warning: unable to contact the systray manager" +msgstr "Предупреждение: Не удалось соединиться с менеджером области уведомлений" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:103 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:324 +msgid "Hide systray icon" +msgstr "Спрятать значок статуса" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:108 +msgid "System tray icon disabled." +msgstr "Выключен значок-индикатор статуса в области уведомлений." + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:115 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:362 +msgid "View console on startup" +msgstr "Открывать веб-консоль при запуске I2P" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:117 +msgid "Console is to be shown on startup" +msgstr "Веб-консоль будет открываться при запуске I2P" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:118 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:364 +msgid "Do not view console on startup" +msgstr "Не открывать веб-консоль при запуске I2P" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:120 +msgid "Console is not to be shown on startup" +msgstr "Веб-консоль не будет открываться при запуске I2P" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:129 +msgid "Service installed" +msgstr "Служба установлена" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:131 +msgid "Warning: unable to install the service" +msgstr "Предупреждение: не удалось установить службу" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:137 +msgid "Service removed" +msgstr "Служба удалена" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:139 +msgid "Warning: unable to remove the service" +msgstr "Предупреждение: не удалось удалить службу" + +#: ../java/src/net/i2p/router/web/ConfigStatsHandler.java:118 +msgid "Stat filter and location updated successfully to" +msgstr "Обновлены настройки файла и фильтра статистики. Новый фильтр" + +#: ../java/src/net/i2p/router/web/ConfigStatsHandler.java:120 +msgid "Failed to update the stat filter and location" +msgstr "Не удалось обновить настройки файла и фильтра статистики." + +#: ../java/src/net/i2p/router/web/ConfigStatsHandler.java:121 +msgid "Graph list updated, may take up to 60s to be reflected here and on the Graphs Page" +msgstr "Список графиков обновлен, для обновления содержимого страницы графиков может потребоваться до 60 секунд." + +#. the count isn't really correct anyway, since we don't check for actual changes +#. addFormNotice("Updated settings for " + updated + " pools."); +#: ../java/src/net/i2p/router/web/ConfigTunnelsHandler.java:137 +msgid "Updated settings for all pools." +msgstr "Обновлены настройки для всех пулов." + +#: ../java/src/net/i2p/router/web/ConfigTunnelsHandler.java:142 +msgid "Exploratory tunnel configuration saved successfully." +msgstr "Настройки зондирующих туннелей сохранены." + +#: ../java/src/net/i2p/router/web/ConfigTunnelsHandler.java:144 +#: ../java/src/net/i2p/router/web/ConfigUIHandler.java:36 +msgid "Error saving the configuration (applied but not saved) - please see the error logs." +msgstr "Не удалось сохранить настройки (применены, но не сохранены) — загляните в журнал ошибок" + +#. * dummies for translation +#: ../java/src/net/i2p/router/web/ConfigTunnelsHelper.java:14 +#, java-format +msgid "1 hop" +msgid_plural "{0} hops" +msgstr[0] "{0} хоп" +msgstr[1] "{0} хопа" +msgstr[2] "{0} хопов" + +#: ../java/src/net/i2p/router/web/ConfigTunnelsHelper.java:15 +#, java-format +msgid "1 tunnel" +msgid_plural "{0} tunnels" +msgstr[0] "{0} туннель" +msgstr[1] "{0} туннеля" +msgstr[2] "{0} туннелей" + +#: ../java/src/net/i2p/router/web/ConfigTunnelsHelper.java:26 +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:41 +msgid "Exploratory tunnels" +msgstr "Зондирующие туннели" + +#: ../java/src/net/i2p/router/web/ConfigTunnelsHelper.java:46 +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:61 +msgid "Client tunnels for" +msgstr "Клиентские туннели для:" + +#: ../java/src/net/i2p/router/web/ConfigTunnelsHelper.java:69 +msgid "ANONYMITY WARNING - Settings include 0-hop tunnels." +msgstr "ОПАСНО ДЛЯ АНОНИМНОСТИ — Настройки задают 0-хоповые туннели." + +#: ../java/src/net/i2p/router/web/ConfigTunnelsHelper.java:74 +msgid "ANONYMITY WARNING - Settings include 1-hop tunnels." +msgstr "ОПАСНО ДЛЯ АНОНИМНОСТИ — Настройки задают 1-хоповые туннели." + +#: ../java/src/net/i2p/router/web/ConfigTunnelsHelper.java:77 +msgid "PERFORMANCE WARNING - Settings include very long tunnels." +msgstr "ОПАСНО ДЛЯ ПРОИЗВОДИТЕЛЬНОСТИ — Настройки задают слишком длинные туннели." + +#: ../java/src/net/i2p/router/web/ConfigTunnelsHelper.java:80 +msgid "PERFORMANCE WARNING - Settings include high tunnel quantities." +msgstr "ОПАСНО ДЛЯ ПРОИЗВОДИТЕЛЬНОСТИ — Настройки задают слишком большие количества туннелей." + +#. buf.append("\n"); +#. tunnel depth +#: ../java/src/net/i2p/router/web/ConfigTunnelsHelper.java:87 +msgid "Length" +msgstr "Длина" + +#. tunnel depth variance +#: ../java/src/net/i2p/router/web/ConfigTunnelsHelper.java:104 +msgid "Randomization" +msgstr "Разброс" + +#. tunnel quantity +#: ../java/src/net/i2p/router/web/ConfigTunnelsHelper.java:128 +msgid "Quantity" +msgstr "Количество" + +#. tunnel backup quantity +#: ../java/src/net/i2p/router/web/ConfigTunnelsHelper.java:145 +msgid "Backup quantity" +msgstr "Резервное количество" + +#: ../java/src/net/i2p/router/web/ConfigTunnelsHelper.java:167 +msgid "Inbound options" +msgstr "Дополнительные параметры для входящих" + +#: ../java/src/net/i2p/router/web/ConfigTunnelsHelper.java:180 +msgid "Outbound options" +msgstr "Дополнительные параметры для исходящих" + +#: ../java/src/net/i2p/router/web/ConfigUIHandler.java:31 +msgid "Theme change saved." +msgstr "Изменение темы оформления сохранено." + +#: ../java/src/net/i2p/router/web/ConfigUIHandler.java:33 +msgid "Refresh the page to view." +msgstr "Обновите страницу для просмотра." + +#: ../java/src/net/i2p/router/web/ConfigUIHelper.java:51 +msgid "English" +msgstr "English" + +#: ../java/src/net/i2p/router/web/ConfigUIHelper.java:51 +msgid "French" +msgstr "Français" + +#: ../java/src/net/i2p/router/web/ConfigUIHelper.java:51 +msgid "German" +msgstr "Deutsch" + +#: ../java/src/net/i2p/router/web/ConfigUIHelper.java:52 +msgid "Chinese" +msgstr "中文" + +#: ../java/src/net/i2p/router/web/ConfigUIHelper.java:52 +msgid "Dutch" +msgstr "Nederlands" + +#: ../java/src/net/i2p/router/web/ConfigUIHelper.java:52 +msgid "Russian" +msgstr "Русский" + +#: ../java/src/net/i2p/router/web/ConfigUIHelper.java:52 +msgid "Swedish" +msgstr "Svenska" + +#: ../java/src/net/i2p/router/web/ConfigUpdateHandler.java:88 +msgid "Update available, attempting to download now" +msgstr "Доступно обновление, пытаемся загрузить" + +#: ../java/src/net/i2p/router/web/ConfigUpdateHandler.java:90 +msgid "Update available, click button on left to download" +msgstr "Доступно обновление, нажмите кнопку слева для загрузки" + +#: ../java/src/net/i2p/router/web/ConfigUpdateHandler.java:96 +msgid "No update available" +msgstr "Нет доступных обновлений" + +#: ../java/src/net/i2p/router/web/ConfigUpdateHandler.java:104 +msgid "Updating news URL to" +msgstr "Новый URL новостей" + +#: ../java/src/net/i2p/router/web/ConfigUpdateHandler.java:112 +msgid "Updating proxy host to" +msgstr "Новый адрес I2P-прокси" + +#: ../java/src/net/i2p/router/web/ConfigUpdateHandler.java:120 +msgid "Updating proxy port to" +msgstr "Новый порт I2P-прокси" + +#: ../java/src/net/i2p/router/web/ConfigUpdateHandler.java:133 +msgid "Updating refresh frequency to" +msgstr "Новый интервал проверки обновлений" + +#: ../java/src/net/i2p/router/web/ConfigUpdateHandler.java:140 +msgid "Updating update policy to" +msgstr "Новый режим обновлений" + +#: ../java/src/net/i2p/router/web/ConfigUpdateHandler.java:149 +msgid "Updating update URLs." +msgstr "Новые URL обновлений" + +#: ../java/src/net/i2p/router/web/ConfigUpdateHandler.java:158 +msgid "Updating trusted keys." +msgstr "Обновление списка доверенных ключей." + +#: ../java/src/net/i2p/router/web/ConfigUpdateHandler.java:166 +msgid "Updating unsigned update URL to" +msgstr "Новый URL неподписанной тестовой сборки" + +#: ../java/src/net/i2p/router/web/ConfigUpdateHelper.java:88 +#: ../java/src/net/i2p/router/web/GraphHelper.java:138 +msgid "Never" +msgstr "Никогда" + +#: ../java/src/net/i2p/router/web/ConfigUpdateHelper.java:90 +msgid "Every" +msgstr "Каждые" + +#: ../java/src/net/i2p/router/web/ConfigUpdateHelper.java:108 +msgid "Notify only" +msgstr "Только уведомлять" + +#: ../java/src/net/i2p/router/web/ConfigUpdateHelper.java:115 +msgid "Download and verify only" +msgstr "Только скачать и проверить целостность" + +#: ../java/src/net/i2p/router/web/ConfigUpdateHelper.java:123 +msgid "Download, verify, and restart" +msgstr "Скачать, проверить и обновить I2P" + +#: ../java/src/net/i2p/router/web/FormHandler.java:163 +msgid "Invalid form submission, probably because you used the 'back' or 'reload' button on your browser. Please resubmit." +msgstr "Форма не принята, скорее всего это произошло из-за того, что Вы нажимали кнопку \"Назад\" или \"Обновить\" в браузере. Пожалуйста, заполните форму заново." + +#: ../java/src/net/i2p/router/web/GraphHelper.java:82 +msgid "Combined bandwidth graph" +msgstr "График загрузки канала" + +#. e.g. "statname for 60m" +#: ../java/src/net/i2p/router/web/GraphHelper.java:96 +#, java-format +msgid "{0} for {1}" +msgstr "{0} за {1}" + +#: ../java/src/net/i2p/router/web/GraphHelper.java:130 +msgid "Configure Graph Display" +msgstr "Настройка показа графиков" + +#: ../java/src/net/i2p/router/web/GraphHelper.java:130 +msgid "Select Stats" +msgstr "Выбрать параметры" + +#: ../java/src/net/i2p/router/web/GraphHelper.java:132 +msgid "Periods" +msgstr "Количество интервалов" + +#: ../java/src/net/i2p/router/web/GraphHelper.java:133 +msgid "Plot averages" +msgstr "Строить график средних значений" + +#: ../java/src/net/i2p/router/web/GraphHelper.java:134 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:416 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:332 +msgid "or" +msgstr "или" + +#: ../java/src/net/i2p/router/web/GraphHelper.java:134 +msgid "plot events" +msgstr "строить график количества событий" + +#: ../java/src/net/i2p/router/web/GraphHelper.java:135 +msgid "Image sizes" +msgstr "Размеры графиков" + +#: ../java/src/net/i2p/router/web/GraphHelper.java:135 +msgid "width" +msgstr "ширина" + +#: ../java/src/net/i2p/router/web/GraphHelper.java:136 +msgid "height" +msgstr "высота" + +#: ../java/src/net/i2p/router/web/GraphHelper.java:136 +#: ../java/src/net/i2p/router/web/GraphHelper.java:137 +msgid "pixels" +msgstr "пикселей" + +#: ../java/src/net/i2p/router/web/GraphHelper.java:138 +msgid "Refresh delay" +msgstr "Интервал обновления" + +#: ../java/src/net/i2p/router/web/GraphHelper.java:138 +msgid "hour" +msgstr "час" + +#: ../java/src/net/i2p/router/web/GraphHelper.java:138 +msgid "minute" +msgstr "минута" + +#: ../java/src/net/i2p/router/web/GraphHelper.java:138 +msgid "minutes" +msgstr "минут(ы)" + +#: ../java/src/net/i2p/router/web/GraphHelper.java:139 +msgid "Redraw" +msgstr "Перерисовать" + +#: ../java/src/net/i2p/router/web/LogsHelper.java:13 +#: ../java/src/net/i2p/router/web/LogsHelper.java:37 +msgid "File location" +msgstr "Путь к файлу журнала" + +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:77 +msgid "Network Database RouterInfo Lookup" +msgstr "Просмотр RouterInfo" + +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:92 +#: ../java/strings/Strings.java:68 +msgid "Router" +msgstr "Маршрутизатор" + +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:92 +msgid "not found in network database" +msgstr "не найден в сетевой базе данных" + +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:104 +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:212 +msgid "Network Database Contents" +msgstr "Просмотр сетевой базы данных" + +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:105 +msgid "View RouterInfo" +msgstr "Показать список RouterInfo" + +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:106 +msgid "LeaseSets" +msgstr "Список LeaseSet" + +# This term intentionally left in English +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:128 +msgid "LeaseSet" +msgstr "LeaseSet" + +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:130 +msgid "Local" +msgstr "Локальный" + +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:132 +msgid "Unpublished" +msgstr "Неопубликованный" + +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:133 +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:140 +msgid "Destination" +msgstr "Адрес назначения" + +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:150 +#, java-format +msgid "Expires in {0}" +msgstr "Истекает через {0}" + +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:152 +#, java-format +msgid "Expired {0} ago" +msgstr "Истек {0} назад" + +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:164 +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:156 +msgid "Gateway" +msgstr "Шлюз" + +# This term intentionally left in English +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:164 +msgid "Lease" +msgstr "Lease" + +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:166 +msgid "Tunnel" +msgstr "Туннель" + +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:212 +msgid "View LeaseSets" +msgstr "Показать список LeaseSet" + +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:214 +msgid "Not initialized" +msgstr "База не инициализирована" + +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:223 +msgid "Routers" +msgstr "Маршрутизаторы" + +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:225 +msgid "Show all routers" +msgstr "Показать полный список" + +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:227 +msgid "Show all routers with full stats" +msgstr "Показать полный список с полной статистикой" + +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:262 +msgid "Network Database Router Statistics" +msgstr "Статистика маршрутизаторов" + +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:268 +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:282 +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:300 +msgid "Count" +msgstr "Количество" + +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:282 +msgid "Transports" +msgstr "Транспортный протокол" + +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:300 +msgid "Country" +msgstr "Страна" + +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:339 +msgid "Our info" +msgstr "Информация о нас" + +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:341 +msgid "Peer info for" +msgstr "Информация о пире" + +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:345 +msgid "Full entry" +msgstr "Показать полную запись" + +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:351 +#: ../java/src/net/i2p/router/web/SummaryHelper.java:110 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:600 +msgid "Hidden" +msgstr "Скрытый" + +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:351 +msgid "Updated" +msgstr "Обновленный" + +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:352 +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:355 +#, java-format +msgid "{0} ago" +msgstr "{0} назад" + +#. shouldnt happen +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:354 +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:358 +msgid "Published" +msgstr "Опубликовано" + +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:360 +msgid "Address(es)" +msgstr "Адрес(а)" + +# This term intentionally left in English +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:373 +msgid "cost" +msgstr "cost" + +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:397 +msgid "Hidden or starting up" +msgstr "В скрытом режиме или недавно запущен" + +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:397 +msgid "SSU" +msgstr "SSU" + +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:397 +msgid "SSU with introducers" +msgstr "SSU через посредников" + +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:398 +msgid "NTCP" +msgstr "NTCP" + +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:398 +msgid "NTCP and SSU" +msgstr "NTCP и SSU" + +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:398 +msgid "NTCP and SSU with introducers" +msgstr "NTCP и SSU через посредников" + +#: ../java/src/net/i2p/router/web/NewsFetcher.java:82 +#, java-format +msgid "News last updated {0} ago." +msgstr "Новости последний раз обновлялись {0} назад." + +#: ../java/src/net/i2p/router/web/NewsFetcher.java:88 +#, java-format +msgid "News last checked {0} ago." +msgstr "Новости последний раз проверялись {0} назад." + +#: ../java/src/net/i2p/router/web/PluginUpdateChecker.java:77 +#, java-format +msgid "Cannot check, plugin {0} is not installed" +msgstr "Проверка невозможна — плагин {0} не установлен" + +#: ../java/src/net/i2p/router/web/PluginUpdateChecker.java:129 +#, java-format +msgid "Checking for update of plugin {0}" +msgstr "Проверяется наличие обновления для плагина {0}" + +#: ../java/src/net/i2p/router/web/PluginUpdateChecker.java:154 +#, java-format +msgid "New plugin version {0} is available" +msgstr "Доступна новая версия {0}" + +#: ../java/src/net/i2p/router/web/PluginUpdateChecker.java:156 +#, java-format +msgid "No new version is available for plugin {0}" +msgstr "Для плагина {0} нет обновлений" + +#: ../java/src/net/i2p/router/web/PluginUpdateChecker.java:165 +#, java-format +msgid "Update check failed for plugin {0}" +msgstr "Ошибка при проверке наличия обновлений для плагина {0}" + +#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:138 +msgid "Downloading plugin" +msgstr "Загружается плагин" + +#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:145 +#: ../java/src/net/i2p/router/web/UpdateHandler.java:179 +#, java-format +msgid "{0}B transferred" +msgstr "{0} байт скачано" + +#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:151 +msgid "Plugin downloaded" +msgstr "Плагин загружен" + +#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:156 +#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:343 +#, java-format +msgid "Cannot create plugin directory {0}" +msgstr "Не удалось создать директорию плагина {0}" + +#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:165 +#: ../java/src/net/i2p/router/web/UpdateHandler.java:220 +#, java-format +msgid "from {0}" +msgstr "из {0}" + +#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:175 +#, java-format +msgid "Plugin from {0} is corrupt" +msgstr "Загруженный из {0} плагин поврежден" + +#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:186 +#, java-format +msgid "Plugin from {0} does not contain the required configuration file" +msgstr "Загруженный из {0} плагин не содержит необходимого файла настроек" + +#. updateStatus("" + "Plugin contains an invalid key" + ' ' + pubkey + ' ' + signer + ""); +#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:199 +#, java-format +msgid "Plugin from {0} contains an invalid key" +msgstr "Загруженный из {0} плагин содержит некорректный ключ" + +#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:218 +#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:227 +#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:236 +#, java-format +msgid "Plugin signature verification of {0} failed" +msgstr "Плагин {0} содержит недействительную подпись" + +#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:251 +#, java-format +msgid "Plugin from {0} has invalid name or version" +msgstr "Загруженный из {0} плагин имеет некорректное название или версию" + +#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:256 +#, java-format +msgid "Plugin {0} has mismatched versions" +msgstr "Плагин {0} содержит несовпадающие версии" + +#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:264 +#, java-format +msgid "This plugin requires I2P version {0} or higher" +msgstr "Для этого плагина требуется версия I2P {0} и выше" + +#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:272 +#, java-format +msgid "This plugin requires Java version {0} or higher" +msgstr "Для этого плагина требуется версия Java {0} и выше" + +#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:280 +msgid "Downloaded plugin is for new installs only, but the plugin is already installed" +msgstr "Загруженный инсталлятор плагина предназначен только для первоначальной установки, но такой плагин уже установлен" + +#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:292 +msgid "Installed plugin does not contain the required configuration file" +msgstr "Установленный плагин не содержит необходимого файла настроек" + +#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:300 +msgid "Signature of downloaded plugin does not match installed plugin" +msgstr "Подпись загруженного плагина не совпадает с установленным плагином" + +#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:307 +#, java-format +msgid "Downloaded plugin version {0} is not newer than installed plugin" +msgstr "Версия скачанного плагина {0} не новее версии уже установленного плагина" + +#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:314 +#, java-format +msgid "Plugin update requires installed plugin version {0} or higher" +msgstr "Для обновления плагина требуется установленная версия плагина {0} и выше" + +#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:321 +#, java-format +msgid "Plugin update requires installed plugin version {0} or lower" +msgstr "Для обновления плагина требуется установленная версия плагина {0} и ниже" + +#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:338 +msgid "Plugin is for upgrades only, but the plugin is not installed" +msgstr "Загруженный инсталлятор плагина предназначен только для обновления, но такой плагин ещё не был установлен" + +#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:351 +#, java-format +msgid "Failed to install plugin in {0}" +msgstr "Не удалось установить плагин в {0}" + +#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:358 +#, java-format +msgid "Plugin {0} installed, router restart required" +msgstr "Плагин {0} установлен, требуется перезагрузка маршрутизатора" + +#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:360 +#, java-format +msgid "Plugin {0} installed" +msgstr "Плагин {0} установлен" + +#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:369 +#, java-format +msgid "Plugin {0} installed and started" +msgstr "Плагин {0} установлен и запущен" + +#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:371 +#, java-format +msgid "Plugin {0} installed but failed to start, check logs" +msgstr "Плагин {0} установлен, но при его запуске произошел сбой, загляните в журнал ошибок" + +#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:373 +#, java-format +msgid "Plugin {0} installed but failed to start" +msgstr "Плагин {0} установлен, но при его запуске произошел сбой" + +#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:383 +#, java-format +msgid "Failed to download plugin from {0}" +msgstr "Не удалось скачать плагин из {0}" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:72 +msgid "Peer Profiles" +msgstr "Профили пиров" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:73 +#, java-format +msgid "Showing {0} recent profiles." +msgstr "Показано {0} недавно обновленных профилей" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:75 +#, java-format +msgid "Hiding {0} older profiles." +msgstr "Скрыто {0} устаревших профилей." + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:77 +#, java-format +msgid "Hiding {0} standard profiles." +msgstr "Также скрыто {0} стандартных профилей (кликните для показа)." + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:82 +msgid "Groups (Caps)" +msgstr "Входит в группы (Caps)" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:83 +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:251 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:334 +msgid "Speed" +msgstr "Скорость" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:84 +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:253 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:338 +msgid "Capacity" +msgstr "Ёмкость" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:85 +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:255 +msgid "Integration" +msgstr "Интеграция" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:86 +msgid "Status" +msgstr "Статус" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:126 +msgid "Fast, High Capacity" +msgstr "Быстрые, Высокоёмкие" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:127 +msgid "High Capacity" +msgstr "Высокоёмкие" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:128 +msgid "Standard" +msgstr "Стандартные" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:129 +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:163 +msgid "Failing" +msgstr "Сбоит" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:131 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:281 +msgid "Integrated" +msgstr "Интегрированные" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:164 +msgid "Unreachable" +msgstr "Недоступен" + +#. hide if < 10% +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:171 +msgid "Test Fails" +msgstr "Неудачных тестов" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:175 +msgid "profile" +msgstr "профиль" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:184 +msgid "Floodfill and Integrated Peers" +msgstr "Floodfill и хорошо интегрированные пиры" + +# This term intentionally left in English +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:188 +msgid "Caps" +msgstr "Caps" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:189 +msgid "Integ. Value" +msgstr "Интег. Значение" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:190 +msgid "Last Heard About" +msgstr "Последний раз слышали о" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:191 +msgid "Last Heard From" +msgstr "Последний приём" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:192 +msgid "Last Good Send" +msgstr "Последняя удачная передача" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:193 +msgid "Last Bad Send" +msgstr "Последняя неудачная передача" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:194 +msgid "10m Resp. Time" +msgstr "Время отклика (последние 10 мин)" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:195 +msgid "1h Resp. Time" +msgstr "Время отклика (последний 1 час)" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:196 +msgid "1d Resp. Time" +msgstr "Время отклика (последний 1 день)" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:197 +msgid "Last Good Lookup" +msgstr "Последний удачный поиск" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:198 +msgid "Last Bad Lookup" +msgstr "Последний неудачный поиск" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:199 +msgid "Last Good Store" +msgstr "Последнее удачное размещение" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:200 +msgid "Last Bad Store" +msgstr "Последнее неудачное размещение" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:201 +msgid "1h Fail Rate" +msgstr "Уровень отказов за 1 час" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:202 +msgid "1d Fail Rate" +msgstr "Уровень отказов за 1 день" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:250 +msgid "Thresholds" +msgstr "Пороговые значения" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:252 +msgid "fast peers" +msgstr "быстрые пиры" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:254 +msgid "high capacity peers" +msgstr "высокоёмкие пиры" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:256 +msgid " well integrated peers" +msgstr "хорошо интегрированные пиры" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:258 +msgid "as determined by the profile organizer" +msgstr "определяется автоматически модулем ProfileOrganizer на основании собранной информации о производительности пира" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:258 +msgid "groups" +msgstr "группы" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:259 +msgid "capabilities in the netDb, not used to determine profiles" +msgstr "информация о пире, предоставленная сетевой базой данных; для профилирования не используется" + +# This term intentionally left in English +#. capabilities +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:259 +#: ../java/strings/Strings.java:81 +msgid "caps" +msgstr "caps" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:260 +msgid "peak throughput (bytes per second) over a 1 minute period that the peer has sustained in a single tunnel" +msgstr "пиковая скорость (байты/секунду) выданная пиром на одном туннеле за 1-минутый период" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:260 +msgid "speed" +msgstr "скорость" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:261 +msgid "capacity" +msgstr "ёмкость" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:261 +msgid "how many tunnels can we ask them to join in an hour?" +msgstr "к скольким туннелям мы можем попросить этого пира подсоединиться за час?" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:262 +msgid "how many new peers have they told us about lately?" +msgstr "о скольких новых пирах этот пир нам сообщил в последнее время?" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:262 +msgid "integration" +msgstr "интеграция" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:263 +msgid "is the peer banned, or unreachable, or failing tunnel tests?" +msgstr "забанен ли этот пир, недоступен, дает ошибки на тестах?" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:263 +msgid "status" +msgstr "статус" + +#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:313 +msgid "n/a" +msgstr "нет данных" + +#: ../java/src/net/i2p/router/web/ShitlistRenderer.java:57 +#, java-format +msgid "Temporary ban expiring in {0}" +msgstr "Временный бан истекает через {0}" + +#: ../java/src/net/i2p/router/web/ShitlistRenderer.java:59 +#, java-format +msgid "Banned until restart or in {0}" +msgstr "Забанен до перезагрузки или истечения {0}" + +#: ../java/src/net/i2p/router/web/ShitlistRenderer.java:71 +msgid "unban now" +msgstr "разбанить" + +#. Note to translators: all runtime zh translation disabled in this file, no font available in RRD +#: ../java/src/net/i2p/router/web/StatSummarizer.java:174 +msgid "Bandwidth usage" +msgstr "Загрузка канала" + +#: ../java/src/net/i2p/router/web/StatSummarizer.java:181 +msgid "Outbound bytes/sec" +msgstr "Исходящ. байт/сек" + +#. def.line(sendName, Color.BLUE, "Outbound bytes/sec", 3); +#: ../java/src/net/i2p/router/web/StatSummarizer.java:183 +msgid "Inbound bytes/sec" +msgstr "Входящ. байт/сек" + +#: ../java/src/net/i2p/router/web/StatSummarizer.java:186 +#: ../java/src/net/i2p/router/web/StatSummarizer.java:187 +#: ../java/src/net/i2p/router/web/StatSummarizer.java:188 +#: ../java/src/net/i2p/router/web/StatSummarizer.java:189 +msgid "bytes/sec" +msgstr "байт/сек" + +#: ../java/src/net/i2p/router/web/StatSummarizer.java:186 +msgid "out average" +msgstr "исх. сред." + +#: ../java/src/net/i2p/router/web/StatSummarizer.java:187 +#: ../java/src/net/i2p/router/web/StatSummarizer.java:189 +#: ../java/src/net/i2p/router/web/SummaryRenderer.java:110 +msgid "max" +msgstr "макс." + +#: ../java/src/net/i2p/router/web/StatSummarizer.java:188 +msgid "in average" +msgstr "вх. сред." + +#: ../java/src/net/i2p/router/web/StatsGenerator.java:56 +msgid "GO" +msgstr "Перейти" + +#: ../java/src/net/i2p/router/web/StatsGenerator.java:59 +msgid "Statistics gathered during this router's uptime" +msgstr "Статистика собрана за время с последнего запуска маршрутизатора" + +#: ../java/src/net/i2p/router/web/StatsGenerator.java:62 +msgid "The data gathered is quantized over a 1 minute period, so should just be used as an estimate." +msgstr "Собираемые данные округляются за 1-минутные промежутки, поэтому используйте эту информацию только для приблизительной оценки." + +#: ../java/src/net/i2p/router/web/StatsGenerator.java:108 +msgid "frequency" +msgstr "частота" + +#: ../java/src/net/i2p/router/web/StatsGenerator.java:142 +msgid "No lifetime events" +msgstr "Счетчик lifetime событий пуст" + +#: ../java/src/net/i2p/router/web/StatsGenerator.java:154 +msgid "rate" +msgstr "интервал" + +#: ../java/src/net/i2p/router/web/StatsGenerator.java:156 +msgid "avg value" +msgstr "среднее значение" + +#: ../java/src/net/i2p/router/web/StatsGenerator.java:185 +msgid "events" +msgstr "событий" + +#: ../java/src/net/i2p/router/web/StatsGenerator.java:191 +msgid "No events" +msgstr "Нет событий" + +#: ../java/src/net/i2p/router/web/StatsGenerator.java:197 +msgid "lifetime average" +msgstr "среднее за время работы" + +#: ../java/src/net/i2p/router/web/StatsGenerator.java:199 +msgid "peak average" +msgstr "пиковое среднее" + +#. Display the strict average +#: ../java/src/net/i2p/router/web/StatsGenerator.java:217 +msgid "lifetime average value" +msgstr "среднее значение за время работы" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:40 +msgid "I2P Router Help & FAQ" +msgstr "Справка и FAQ Маршрутизатора I2P" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:42 +msgid "Help & FAQ" +msgstr "Справка и FAQ" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:54 +msgid "Configure startup of clients and webapps (services); manually start dormant services" +msgstr "Настройка автозапуска клиентов и веб-апплетов, ручной запуск неактивных приложений" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:56 +msgid "I2P Services" +msgstr "I2P сервисы" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:62 +msgid "Manage your I2P hosts file here (I2P domain name resolution)" +msgstr "Здесь можно управлять hosts-файлами (единственный механизм, используемый I2P для отображения доменных имен)" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:64 +msgid "Addressbook" +msgstr "Адресная Книга" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:68 +msgid "Built-in anonymous BitTorrent Client" +msgstr "Встроенный анонимный Bittorrent-клиент" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:70 +msgid "Torrents" +msgstr "Торренты" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:74 +msgid "Anonymous webmail client" +msgstr "Анонимный почтовый клиент с веб-интерфейсом" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:76 +msgid "Webmail" +msgstr "Веб-почта" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:80 +msgid "Anonymous resident webserver" +msgstr "Встроенный анонимный веб-сервер" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:82 +msgid "Webserver" +msgstr "Веб-сервер" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:90 +msgid "Configure I2P Router" +msgstr "Настройка Маршрутизатора I2P" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:92 +msgid "I2P Internals" +msgstr "I2P свойства" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:98 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:374 +msgid "View existing tunnels and tunnel build status" +msgstr "Обзор списка существующих туннелей и статуса строящихся" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:104 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:253 +msgid "Show all current peer connections" +msgstr "Просмотр списка текущих соединения с пирами" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:110 +msgid "Show recent peer performance profiles" +msgstr "Просмотр профилей пиров" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:112 +msgid "Profiles" +msgstr "Профили" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:116 +msgid "Show list of all known I2P routers" +msgstr "Показать список всех известных I2P маршрутизаторов" + +# This term intentionally left in English +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:118 +msgid "NetDB" +msgstr "NetDB" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:122 +msgid "Health Report" +msgstr "Журналы сообщений маршрутизатора" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:124 +msgid "Logs" +msgstr "Журналы" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:134 +msgid "Graph router performance" +msgstr "График производительности маршрутизатора" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:136 +msgid "Graphs" +msgstr "Графики" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:140 +msgid "Textual router performance statistics" +msgstr "Статистика производительности маршрутизатора в текстовом виде" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:146 +#: ../java/src/net/i2p/router/web/SummaryHelper.java:365 +msgid "Local Destinations" +msgstr "Локальные туннели" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:148 +#: ../java/strings/Strings.java:62 +msgid "I2PTunnel" +msgstr "Менеджер Туннелей" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:159 +msgid "I2P Router Help" +msgstr "Справка Маршрутизатора I2P" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:161 +msgid "General" +msgstr "Общая информация" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:166 +msgid "Local Identity" +msgstr "Локальный идентификатор" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:170 +msgid "Your unique I2P router identity is" +msgstr "Уникальный идентификатор Вашего I2P маршрутизатора:" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:174 +msgid "never reveal it to anyone" +msgstr "никому его не показывайте." + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:176 +msgid "show" +msgstr "показать" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:187 +msgid "How long we've been running for this session" +msgstr "Время работы маршрутизатора с последнего запуска" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:190 +msgid "Uptime" +msgstr "Аптайм" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:197 +msgid "Help with configuring your firewall and router for optimal I2P performance" +msgstr "Помощь в настройке брандмауэра и маршрутизатора для обеспечения оптимальной производительности I2P" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:226 +msgid "Download" +msgstr "Скачать" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:235 +msgid "Download Unsigned" +msgstr "Скачать неподписанное" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:261 +msgid "Active" +msgstr "Активные" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:269 +msgid "Fast" +msgstr "Быстрые" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:275 +msgid "High capacity" +msgstr "Высокоёмкие" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:287 +msgid "Known" +msgstr "Известные" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:302 +msgid "Help with firewall configuration" +msgstr "Помощь в настройке брандмауэра" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:304 +msgid "Check NAT/firewall" +msgstr "Проверьте настройки NAT/брандмауэров." + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:324 +msgid "Reseed" +msgstr "Повторить начальную загрузку" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:341 +msgid "Configure router bandwidth allocation" +msgstr "Настройка ограничений скорости" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:343 +msgid "Bandwidth in/out" +msgstr "Трафик (вх./исх.)" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:359 +msgid "Total" +msgstr "Всего" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:366 +msgid "Used" +msgstr "Объем" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:381 +msgid "Exploratory" +msgstr "Зондирующие" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:393 +msgid "Participating" +msgstr "Транзитные" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:399 +msgid "Share ratio" +msgstr "Доля транзита" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:405 +msgid "What's in the router's job queue?" +msgstr "Просмотр очереди заданий маршрутизатора." + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:407 +msgid "Congestion" +msgstr "Занятость" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:412 +msgid "Job lag" +msgstr "Задержка задач" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:418 +msgid "Message delay" +msgstr "Задежка сообщений" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:424 +msgid "Tunnel lag" +msgstr "Задержка туннелей" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:430 +msgid "Backlog" +msgstr "Очередь" + +#: ../java/src/net/i2p/router/web/SummaryHelper.java:101 +msgid "ERR-Client Manager I2CP Error - check logs" +msgstr "ОШИБКА - ошибка менеджера I2CP - загляните в журнал ошибок" + +#: ../java/src/net/i2p/router/web/SummaryHelper.java:108 +#, java-format +msgid "ERR-Clock Skew of {0}" +msgstr "ОШИБКА - Часы сбиты (расхождение {0})" + +#: ../java/src/net/i2p/router/web/SummaryHelper.java:117 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:576 +msgid "OK" +msgstr "OK" + +#: ../java/src/net/i2p/router/web/SummaryHelper.java:118 +msgid "ERR-Private TCP Address" +msgstr "ОШИБКА - Частный TCP Адрес" + +#: ../java/src/net/i2p/router/web/SummaryHelper.java:120 +msgid "ERR-SymmetricNAT" +msgstr "ОШИБКА - Симмметричный NAT" + +#: ../java/src/net/i2p/router/web/SummaryHelper.java:123 +msgid "WARN-Firewalled with Inbound TCP Enabled" +msgstr "ПРЕДУПРЕЖДЕНИЕ - Заблокирован извне при включенном на вход TCP" + +#: ../java/src/net/i2p/router/web/SummaryHelper.java:125 +msgid "WARN-Firewalled and Floodfill" +msgstr "ПРЕДУПРЕЖДЕНИЕ - Заблокирован извне и Floodfill" + +#: ../java/src/net/i2p/router/web/SummaryHelper.java:127 +msgid "WARN-Firewalled and Fast" +msgstr "ПРЕДУПРЕЖДЕНИЕ - Заблокирован извне и Быстрый" + +#: ../java/src/net/i2p/router/web/SummaryHelper.java:128 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:580 +msgid "Firewalled" +msgstr "Заблокирован извне" + +#: ../java/src/net/i2p/router/web/SummaryHelper.java:130 +msgid "ERR-UDP Port In Use - Set i2np.udp.internalPort=xxxx in advanced config and restart" +msgstr "ОШИБКА - UDP-порт уже занят - перенастройте i2np.udp.internalPort=xxxx в дополнительных настройках и перезапустите маршрутизатор" + +#: ../java/src/net/i2p/router/web/SummaryHelper.java:136 +msgid "ERR-No Active Peers, Check Network Connection and Firewall" +msgstr "ОШИБКА - Нет активных пиров, проверьте подключение к сети и брандмауэр" + +#: ../java/src/net/i2p/router/web/SummaryHelper.java:139 +msgid "ERR-UDP Disabled and Inbound TCP host/port not set" +msgstr "ОШИБКА - UDP отключено и не заданы адрес/порт для входящих TCP-соединений" + +#: ../java/src/net/i2p/router/web/SummaryHelper.java:141 +msgid "WARN-Firewalled with UDP Disabled" +msgstr "ПРЕДУПРЕЖДЕНИЕ - Заблокирован извне при отключенном UDP" + +#: ../java/src/net/i2p/router/web/SummaryHelper.java:143 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:596 +msgid "Testing" +msgstr "Проверка" + +#: ../java/src/net/i2p/router/web/SummaryHelper.java:365 +msgid "Add/remove/edit & control your client and server tunnels" +msgstr "Управление клиентскими и серверными туннелями" + +#: ../java/src/net/i2p/router/web/SummaryHelper.java:377 +msgid "Server" +msgstr "Сервер" + +#: ../java/src/net/i2p/router/web/SummaryHelper.java:381 +msgid "Show tunnels" +msgstr "Перейти к списку туннелей" + +#: ../java/src/net/i2p/router/web/SummaryHelper.java:392 +msgid "Leases expired" +msgstr "Срок аренды истек" + +#. red or yellow light +#: ../java/src/net/i2p/router/web/SummaryHelper.java:392 +#: ../java/src/net/i2p/router/web/SummaryHelper.java:393 +msgid "Rebuilding" +msgstr "Построение заново" + +#: ../java/src/net/i2p/router/web/SummaryHelper.java:393 +msgid "ago" +msgstr "назад" + +#. green light +#: ../java/src/net/i2p/router/web/SummaryHelper.java:396 +msgid "Ready" +msgstr "Готов к работе" + +#. yellow light +#: ../java/src/net/i2p/router/web/SummaryHelper.java:400 +msgid "Building" +msgstr "Построение" + +#: ../java/src/net/i2p/router/web/SummaryHelper.java:400 +msgid "Building tunnels" +msgstr "Построение туннелей" + +#: ../java/src/net/i2p/router/web/SummaryHelper.java:405 +msgid "none" +msgstr "нет" + +#. tunnel nicknames, taken from i2ptunnel.config so they will display +#. nicely under 'local destinations' in the summary bar +#. note that if the wording changes in i2ptunnel.config, we have to +#. keep the old string here as well for existing installs +#: ../java/src/net/i2p/router/web/SummaryHelper.java:416 +#: ../java/strings/Strings.java:36 +msgid "shared clients" +msgstr "коллективные клиенты" + +#. Note to translators: all runtime zh translation disabled in this file, no font available in RRD +#: ../java/src/net/i2p/router/web/SummaryRenderer.java:84 +#, java-format +msgid "events in {0}" +msgstr "событий за {0}" + +#: ../java/src/net/i2p/router/web/SummaryRenderer.java:86 +#, java-format +msgid "averaged for {0}" +msgstr "усреднённое за {0}" + +#: ../java/src/net/i2p/router/web/SummaryRenderer.java:96 +msgid "Events per period" +msgstr "Событий за период" + +#: ../java/src/net/i2p/router/web/SummaryRenderer.java:109 +msgid "avg" +msgstr "сред." + +#: ../java/src/net/i2p/router/web/SummaryRenderer.java:111 +msgid "now" +msgstr "текущ." + +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:41 +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:63 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/logs_jsp.java:280 +msgid "configure" +msgstr "настроить" + +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:65 +msgid "dead" +msgstr "мертв" + +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:71 +msgid "Participating tunnels" +msgstr "Транзитные туннели" + +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:72 +msgid "From" +msgstr "От кого" + +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:72 +msgid "Receive on" +msgstr "ID принимающего туннеля" + +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:73 +msgid "Expiration" +msgstr "Истечение срока работы" + +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:73 +msgid "Send on" +msgstr "ID передающего туннеля" + +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:73 +msgid "To" +msgstr "Кому" + +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:74 +msgid "Rate" +msgstr "Скорость" + +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:74 +msgid "Role" +msgstr "Роль" + +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:74 +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:156 +msgid "Usage" +msgstr "Трафик" + +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:107 +msgid "grace period" +msgstr "резервный период" + +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:117 +msgid "Outbound Endpoint" +msgstr "Выходная конечная точка" + +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:119 +msgid "Inbound Gateway" +msgstr "Входной шлюз" + +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:121 +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:162 +msgid "Participant" +msgstr "Участник" + +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:126 +msgid "Inactive participating tunnels" +msgstr "Неактивных транзитных туннелей" + +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:127 +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:218 +msgid "Lifetime bandwidth usage" +msgstr "Трафик за время существования" + +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:156 +msgid "Expiry" +msgstr "Истечение срока работы" + +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:159 +msgid "Participants" +msgstr "Участники" + +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:165 +msgid "Endpoint" +msgstr "Конечная точка" + +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:205 +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:212 +msgid "Build in progress" +msgstr "В процессе построения" + +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:205 +msgid "inbound" +msgstr "входящий" + +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:212 +msgid "outbound" +msgstr "исходящий" + +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:217 +msgid "No tunnels; waiting for the grace period to end." +msgstr "Нет туннелей. Ожидаем окончания резервного периода." + +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:219 +msgid "in" +msgstr "(входящий)" + +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:220 +msgid "out" +msgstr "(исходящий)" + +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:237 +msgid "Tunnel Counts By Peer" +msgstr "Статистика участия пиров в туннелях" + +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:238 +msgid "% of total" +msgstr "% от всех" + +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:238 +msgid "Our Tunnels" +msgstr "Наших туннелей" + +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:238 +msgid "Participating Tunnels" +msgstr "Транзитных туннелей" + +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:256 +msgid "Totals" +msgstr "Всего" + +#: ../java/src/net/i2p/router/web/UnsignedUpdateHandler.java:66 +#: ../java/src/net/i2p/router/web/UpdateHandler.java:132 +#: ../java/src/net/i2p/router/web/UpdateHandler.java:145 +#: ../java/src/net/i2p/router/web/UpdateHandler.java:172 +msgid "Updating" +msgstr "Загружается обновление" + +#: ../java/src/net/i2p/router/web/UnsignedUpdateHandler.java:88 +#: ../java/src/net/i2p/router/web/UnsignedUpdateHandler.java:111 +#: ../java/src/net/i2p/router/web/UnsignedUpdateHandler.java:116 +#: ../java/src/net/i2p/router/web/UpdateHandler.java:183 +#: ../java/src/net/i2p/router/web/UpdateHandler.java:208 +msgid "Update downloaded" +msgstr "Обновление загружено" + +#: ../java/src/net/i2p/router/web/UnsignedUpdateHandler.java:91 +#, java-format +msgid "Unsigned update file from {0} is corrupt" +msgstr "Обнаружено повреждение в неподписанном обновлении загруженном из {0}" + +#: ../java/src/net/i2p/router/web/UnsignedUpdateHandler.java:111 +#: ../java/src/net/i2p/router/web/UpdateHandler.java:203 +msgid "Restarting" +msgstr "Производится перезагрузка" + +#: ../java/src/net/i2p/router/web/UnsignedUpdateHandler.java:118 +#: ../java/src/net/i2p/router/web/UpdateHandler.java:210 +msgid "Click Restart to install" +msgstr "Перезагрузите I2P-маршрутизатор для установки" + +#: ../java/src/net/i2p/router/web/UnsignedUpdateHandler.java:120 +#: ../java/src/net/i2p/router/web/UpdateHandler.java:212 +msgid "Click Shutdown and restart to install" +msgstr "Остановите и снова запустите I2P-маршрутизатор для установки" + +#: ../java/src/net/i2p/router/web/UnsignedUpdateHandler.java:121 +#: ../java/src/net/i2p/router/web/UpdateHandler.java:214 +#, java-format +msgid "Version {0}" +msgstr "Версия {0}" + +#: ../java/src/net/i2p/router/web/UnsignedUpdateHandler.java:126 +#, java-format +msgid "Failed copy to {0}" +msgstr "Не удалось скопировать в {0}" + +#: ../java/src/net/i2p/router/web/UpdateHandler.java:203 +msgid "Update verified" +msgstr "Подлинность обновления проверена" + +#: ../java/src/net/i2p/router/web/UpdateHandler.java:228 +msgid "Transfer failed" +msgstr "Не удалось загрузить" + +#. wars for ConfigClientsHelper +#: ../java/strings/Strings.java:12 +msgid "addressbook" +msgstr "адресная книга" + +#: ../java/strings/Strings.java:13 +msgid "i2psnark" +msgstr "i2psnark (bittorrent-клиент)" + +#: ../java/strings/Strings.java:14 +msgid "i2ptunnel" +msgstr "менеджер туннелей i2p" + +# This term intentionally left in English +#: ../java/strings/Strings.java:15 +msgid "susimail" +msgstr "susimail (почтовый клиент)" + +# This term intentionally left in English +#: ../java/strings/Strings.java:16 +msgid "susidns" +msgstr "susidns" + +#: ../java/strings/Strings.java:17 +msgid "routerconsole" +msgstr "консоль маршрутизатора i2p" + +#. clients, taken from clients.config, for ConfigClientsHelper +#. note that if the wording changes in clients.config, we have to +#. keep the old string here as well for existing installs +#: ../java/strings/Strings.java:22 +msgid "Web console" +msgstr "Веб-консоль" + +#: ../java/strings/Strings.java:23 +msgid "SAM application bridge" +msgstr "интерфейс SAM" + +#: ../java/strings/Strings.java:24 +msgid "Application tunnels" +msgstr "Клиентские туннели" + +#: ../java/strings/Strings.java:25 +msgid "My eepsite web server" +msgstr "i2p-вебсервер (eepsite)" + +#: ../java/strings/Strings.java:26 +msgid "I2P webserver (eepsite)" +msgstr "i2p-вебсервер (eepsite)" + +#: ../java/strings/Strings.java:27 +msgid "Browser launch at startup" +msgstr "Запуск браузера при старте I2P" + +#: ../java/strings/Strings.java:28 +msgid "BOB application bridge" +msgstr "интерфейс BOB" + +#: ../java/strings/Strings.java:30 +msgid "Open Router Console in web browser at startup" +msgstr "Открыть консоль маршрутизатора в веб-браузере при старте I2P" + +#: ../java/strings/Strings.java:37 +msgid "IRC proxy" +msgstr "IRC-прокси" + +#: ../java/strings/Strings.java:38 +msgid "eepsite" +msgstr "i2p-сайт" + +#: ../java/strings/Strings.java:39 +msgid "I2P webserver" +msgstr "i2p-вебсервер" + +#: ../java/strings/Strings.java:40 +msgid "HTTP Proxy" +msgstr "HTTP-прокси" + +#. older names for pre-0.7.4 installs +#: ../java/strings/Strings.java:42 +msgid "eepProxy" +msgstr "I2P-прокси" + +#: ../java/strings/Strings.java:43 +msgid "ircProxy" +msgstr "IRC-прокси" + +# This term intentionally left in English +#. hardcoded in i2psnark +#: ../java/strings/Strings.java:45 +msgid "I2PSnark" +msgstr "I2PSnark" + +# This term intentionally left in English +#. hardcoded in iMule? +#: ../java/strings/Strings.java:47 +msgid "iMule" +msgstr "iMule" + +#. standard themes for ConfigUIHelper +#: ../java/strings/Strings.java:51 +msgid "classic" +msgstr "классическая" + +#: ../java/strings/Strings.java:52 +msgid "dark" +msgstr "тёмная" + +#: ../java/strings/Strings.java:53 +msgid "light" +msgstr "светлая" + +#: ../java/strings/Strings.java:54 +msgid "midnight" +msgstr "полуночная" + +#. stat groups for stats.jsp +#: ../java/strings/Strings.java:57 +msgid "Bandwidth" +msgstr "Трафик" + +#: ../java/strings/Strings.java:58 +msgid "BandwidthLimiter" +msgstr "Ограничитель скорости" + +#: ../java/strings/Strings.java:59 +msgid "ClientMessages" +msgstr "Клиентские сообщения" + +#: ../java/strings/Strings.java:60 +msgid "Encryption" +msgstr "Шифрование" + +# This term intentionally left in English +#: ../java/strings/Strings.java:61 +msgid "i2cp" +msgstr "i2cp" + +# This term intentionally left in English +#: ../java/strings/Strings.java:63 +msgid "InNetPool" +msgstr "InNetPool" + +#: ../java/strings/Strings.java:64 +msgid "JobQueue" +msgstr "Очередь заданий" + +#: ../java/strings/Strings.java:65 +msgid "NetworkDatabase" +msgstr "Сетевая база данных" + +# This term intentionally left in English +#: ../java/strings/Strings.java:66 +msgid "ntcp" +msgstr "ntcp" + +# This term intentionally left in English +#: ../java/strings/Strings.java:69 +msgid "Stream" +msgstr "Stream" + +# This term intentionally left in English +#: ../java/strings/Strings.java:70 +msgid "Throttle" +msgstr "Throttle" + +#: ../java/strings/Strings.java:71 +msgid "Transport" +msgstr "Транспортные протоколы" + +# This term intentionally left in English +#: ../java/strings/Strings.java:73 +msgid "udp" +msgstr "udp" + +# This term intentionally left in English +#. parameters in transport addresses (netdb.jsp) +#. may or may not be worth translating +#: ../java/strings/Strings.java:77 +msgid "host" +msgstr "host" + +# This term intentionally left in English +#: ../java/strings/Strings.java:78 +msgid "key" +msgstr "key" + +# This term intentionally left in English +#: ../java/strings/Strings.java:79 +msgid "port" +msgstr "port" + +# This term intentionally left in English +#. introducer host +#: ../java/strings/Strings.java:83 +msgid "ihost0" +msgstr "ihost0" + +# This term intentionally left in English +#: ../java/strings/Strings.java:84 +msgid "ihost1" +msgstr "ihost1" + +# This term intentionally left in English +#: ../java/strings/Strings.java:85 +msgid "ihost2" +msgstr "ihost2" + +# This term intentionally left in English +#. introducer port +#: ../java/strings/Strings.java:87 +msgid "iport0" +msgstr "iport0" + +# This term intentionally left in English +#: ../java/strings/Strings.java:88 +msgid "iport1" +msgstr "iport1" + +# This term intentionally left in English +#: ../java/strings/Strings.java:89 +msgid "iport2" +msgstr "iport2" + +# This term intentionally left in English +#. introducer key +#: ../java/strings/Strings.java:91 +msgid "ikey0" +msgstr "ikey0" + +# This term intentionally left in English +#: ../java/strings/Strings.java:92 +msgid "ikey1" +msgstr "ikey1" + +# This term intentionally left in English +#: ../java/strings/Strings.java:93 +msgid "ikey2" +msgstr "ikey2" + +# This term intentionally left in English +#. introducer tag +#: ../java/strings/Strings.java:95 +msgid "itag0" +msgstr "itag0" + +# This term intentionally left in English +#: ../java/strings/Strings.java:96 +msgid "itag1" +msgstr "itag1" + +# This term intentionally left in English +#: ../java/strings/Strings.java:97 +msgid "itag2" +msgstr "itag2" + +#. Descriptions for the stats that are graphed by default +#. There are over 500 stats currently defined, we aren't going to tag them all +#: ../java/strings/Strings.java:101 +msgid "Low-level bandwidth receive rate" +msgstr "Низкоуровневая скорость приёма" + +#. bw.recvRate +#: ../java/strings/Strings.java:102 +msgid "Low-level bandwidth send rate" +msgstr "Низкоуровневая скорость передачи" + +#. bw.sendRate +#: ../java/strings/Strings.java:103 +msgid "How many peers we are actively talking with" +msgstr "Количество пиров, с которыми мы активно общаемся" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:106 +msgid "config networking" +msgstr "настройки сети" + +#. We have intl defined when this is included, but not when compiled standalone. +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:217 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configadvanced_jsp.java:218 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:217 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:217 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:231 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:217 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:217 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:218 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configtunnels_jsp.java:217 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configui_jsp.java:217 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:217 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/debug_jsp.java:220 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/error_jsp.java:228 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/graphs_jsp.java:217 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_005fru_jsp.java:220 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:220 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/index_jsp.java:223 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/jobs_jsp.java:216 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/logs_jsp.java:216 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/netdb_jsp.java:216 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/nowebapp_jsp.java:220 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/oldconsole_jsp.java:220 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/peers_jsp.java:216 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/profiles_jsp.java:216 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/stats_jsp.java:216 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/summaryframe_jsp.java:235 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/tunnels_jsp.java:216 +msgid "Refresh (s)" +msgstr "Интервал автообновления
панели (сек.)" + +#. ditto +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:221 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configadvanced_jsp.java:222 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:221 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:221 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:235 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:221 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:221 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:222 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configtunnels_jsp.java:221 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configui_jsp.java:221 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:221 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/debug_jsp.java:224 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/error_jsp.java:232 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/graphs_jsp.java:221 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_005fru_jsp.java:224 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:224 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/index_jsp.java:227 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/jobs_jsp.java:220 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/logs_jsp.java:220 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/netdb_jsp.java:220 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/nowebapp_jsp.java:224 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/oldconsole_jsp.java:224 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/peers_jsp.java:220 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/profiles_jsp.java:220 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/stats_jsp.java:220 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/summaryframe_jsp.java:238 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/tunnels_jsp.java:220 +msgid "Enable" +msgstr "Включить" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:241 +msgid "I2P Network Configuration" +msgstr "Настройки сетевых свойств I2P" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:297 +msgid "Bandwidth limiter" +msgstr "Ограничение скорости" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:299 +msgid "I2P will work best if you configure your rates to match the speed of your internet connection." +msgstr "I2P будет работать лучше, если Вы настроите ограничение скорости в соответствии со скоростью Вашего подключения к Интернету." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:303 +msgid "KBps In" +msgstr "Килобайт/секунду (на приём)" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:317 +msgid "KBps Out" +msgstr "Килобайт/секунду (на отдачу)" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:333 +msgid "Share" +msgstr "Доля транзитного трафика" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:340 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configadvanced_jsp.java:307 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configtunnels_jsp.java:303 +msgid "NOTE" +msgstr "ПРИМЕЧАНИЕ" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:342 +#, java-format +msgid "You have configured I2P to share only {0} KBps." +msgstr "Вы настроили очень низкий лимит для транзитного трафика (всего {0} килобайт/секунду)." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:345 +msgid "I2P requires at least 12KBps to enable sharing. " +msgstr "I2P нужно как минимум 12 килобайт/секунду для включения этой функции. " + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:346 +msgid "Please enable sharing (participating in tunnels) by configuring more bandwidth. " +msgstr "Пожалуйста, повысьте долю транзитного трафика. " + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:347 +msgid "It improves your anonymity by creating cover traffic, and helps the network." +msgstr "Это одновременно повысит Вашу анонимность (благодаря маскирующему транзитному трафику) и поможет сети." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:350 +#, java-format +msgid "You have configured I2P to share {0} KBps." +msgstr "Вы задали долю транзитного трафика {0} килобайт/секунду." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:353 +msgid "The higher the share bandwidth the more you improve your anonymity and help the network." +msgstr "Чем выше доля транзитного трафика, тем выше Ваша анонимность и больше Ваша помощь сети." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:357 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:513 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configadvanced_jsp.java:303 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:326 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:320 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:333 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:373 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configtunnels_jsp.java:341 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configui_jsp.java:321 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:364 +msgid "Cancel" +msgstr "Отменить" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:374 +msgid "IP and Transport Configuration" +msgstr "Настройки IP и транспортных протоколов" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:376 +msgid "The default settings will work for most people." +msgstr "Большинству пользователей подойдут настройки по умолчанию." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:378 +msgid "There is help below." +msgstr "В конце страницы приведена справка по настройкам." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:380 +msgid "UPnP Configuration" +msgstr "Настройки UPnP" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:384 +msgid "Enable UPnP to open firewall ports" +msgstr "Использовать UPnP для автоматического открытия портов на брандмауэре/роутере" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:386 +msgid "UPnP status" +msgstr "статус UPnP" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:388 +msgid "IP Configuration" +msgstr "Настройки IP" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:390 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:460 +msgid "Externally reachable hostname or IP address" +msgstr " Имя хоста или IP-адрес доступные из интернета" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:394 +msgid "Use all auto-detect methods" +msgstr "Определять автоматически всеми доступными способами" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:398 +msgid "Disable UPnP IP address detection" +msgstr "Определять автоматически (без использования UPnP)" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:402 +msgid "Ignore local interface IP address" +msgstr "Определять автоматически (без использования IP-адресов локальных сетевых интерфейсов)" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:406 +msgid "Use SSU IP address detection only" +msgstr "Определять автоматически (только через SSU)" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:410 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:478 +msgid "Specify hostname or IP" +msgstr "Задать хост или IP вручную" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:416 +msgid "Select Interface" +msgstr "Выбрать сетевой интерфейс" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:430 +msgid "Hidden mode - do not publish IP" +msgstr "Скрытый режим, не публиковать IP" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:432 +msgid "(prevents participating traffic)" +msgstr "(такой режим предотвращает транзит трафика)" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:434 +msgid "Action when IP changes" +msgstr "Действие при смене IP" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:438 +msgid "Laptop mode - Change router identity and UDP port when IP changes for enhanced anonymity" +msgstr "Режим мобильного компьютера: автоматически менять идентификатор маршрутизатора и UDP-порт после смены IP" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:440 +msgid "Experimental" +msgstr "экспериментальный режим, повышает анонимность" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:442 +msgid "UDP Configuration:" +msgstr "Настройки UDP" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:444 +msgid "UDP port:" +msgstr "UDP-порт:" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:458 +msgid "TCP Configuration" +msgstr "Настройки TCP" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:464 +msgid "Use auto-detected IP address" +msgstr "Использовать автоматически определенный IP-адрес" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:466 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:498 +msgid "currently" +msgstr "сейчас" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:470 +msgid "if we are not firewalled" +msgstr "если входящий порт не заблокирован" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:474 +msgid "Always use auto-detected IP address (Not firewalled)" +msgstr "Всегда использовать автоматически определенный IP-адрес" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:484 +msgid "Disable inbound (Firewalled)" +msgstr "Отключить поддержку входящих соединений" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:488 +msgid "Completely disable" +msgstr "Полностью отключить поддержку TCP" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:490 +msgid "(select only if behind a firewall that throttles or blocks outbound TCP)" +msgstr "(используйте этот режим только при наличии в системе брандмауэра, который замедляет или блокирует исходящие TCP-соединения)" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:492 +msgid "Externally reachable TCP port" +msgstr "Доступный из интернета TCP-порт" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:496 +msgid "Use the same port configured for UDP" +msgstr "Использовать настройки UDP-порта" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:504 +msgid "Specify Port" +msgstr "Задать порт вручную" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:508 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:338 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configtunnels_jsp.java:329 +msgid "Note" +msgstr "ВНИМАНИЕ" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:511 +msgid "Changing these settings will restart your router." +msgstr "Изменение этих настрок повлечет перезагрузку I2P маршрутизатора." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:517 +msgid "Configuration Help" +msgstr "Справка по настройкам сети" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:519 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:568 +msgid "While I2P will work fine behind most firewalls, your speeds and network integration will generally improve if the I2P port is forwarded for both UDP and TCP." +msgstr "Хотя I2P без проблем работает за большинством брандмауэров, скорость и уровень интеграции в сеть будут гораздо лучше, если открыть порт Вашего I2P-маршрутизатора для UDP и TCP соединений из интернета." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:521 +msgid "If you can, please poke a hole in your firewall to allow unsolicited UDP and TCP packets to reach you." +msgstr "Попробуйте открыть доступ на Вашем брандмауэре для произвольных входящих UDP и TCP пакетов на порт I2P." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:523 +msgid "If you can't, I2P supports UPnP (Universal Plug and Play) and UDP hole punching with \"SSU introductions\" to relay traffic." +msgstr "Ничего страшного, если такой возможности нет. I2P поддерживает UPnP (Universal Plug and Play) и обход NAT с помощью SSU-посредников." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:525 +msgid "Most of the options above are for special situations, for example where UPnP does not work correctly, or a firewall not under your control is doing harm." +msgstr "Настройки выше, в основном, предназначены для особых ситуаций. Например, некорректно сработал UPnP или возник конфликт брандмауэра и I2P." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:527 +msgid "Certain firewalls such as symmetric NATs may not work well with I2P." +msgstr "Некоторые виды брандмауэров могут быть частично несовместимы с I2P (например, симметричные NAT)." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:536 +msgid "UPnP is used to communicate with Internet Gateway Devices (IGDs) to detect the external IP address and forward ports." +msgstr "UPnP используется для взаимодействия с IGD (Internet Gateway Devices) при определении внешнего IP-адреса и переадресации портов." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:538 +msgid "UPnP support is beta, and may not work for any number of reasons" +msgstr "Поддержка UPnP находится в разработке (бета-версия). В следующих случаях UPnP возможно не будет работать" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:540 +msgid "No UPnP-compatible device present" +msgstr "Не обнаружено UPnP-совместимых устройств" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:542 +msgid "UPnP disabled on the device" +msgstr "UPnP отключено на устройстве" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:544 +msgid "Software firewall interference with UPnP" +msgstr "Программный брандмауэр мешает корректной работе UPnP" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:546 +msgid "Bugs in the device's UPnP implementation" +msgstr "UPnP в устройстве реализовано с ошибками " + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:548 +msgid "Multiple firewall/routers in the internet connection path" +msgstr "Несколько маршрутизаторов/брандмауэров на пути к интернету" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:550 +msgid "UPnP device change, reset, or address change" +msgstr "Смена/сброс UPnP-устройства или изменение адреса " + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:552 +msgid "Review the UPnP status here." +msgstr "Посмотреть статус UPnP можно тут." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:554 +msgid "UPnP may be enabled or disabled above, but a change requires a router restart to take effect." +msgstr "UPnP можно включить/выключить в настройках выше. Настройка вступит в силу только после перезагрузки I2P-маршрутизатора." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:556 +msgid "Hostnames entered above will be published in the network database." +msgstr "Если Вы задали вручную имена хостов, они будут опубликованы в сетевой базе." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:558 +msgid "They are not private." +msgstr "Не вводите локальные внутрисетевые имена." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:560 +msgid "Also, do not enter a private IP address like 127.0.0.1 or 192.168.1.1." +msgstr "Также не вводите IP из локальных диапазонов, такие как 127.0.0.1 или 192.168.1.1." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:562 +msgid "If you specify the wrong IP address or hostname, or do not properly configure your NAT or firewall, your network performance will degrade substantially." +msgstr "Производительность Вашего соединения с I2P-сетью может сильно пострадать, если Вы введете неверный IP-адрес, неверное имя хоста или неправильно настроите NAT/брандмауэр." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:564 +msgid "When in doubt, leave the settings at the defaults." +msgstr "Если сомневаетесь — оставьте настройки по умолчанию." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:566 +msgid "Reachability Help" +msgstr "Справка по статусу сетевой доступности" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:571 +msgid "If you think you have opened up your firewall and I2P still thinks you are firewalled, remember that you may have multiple firewalls, for example both software packages and external hardware routers." +msgstr "Возможно Вы собственноручно открыли порт на Вашем брандмауэре, а I2P все еще показывает, что порт закрыт. Имейте в виду, что брандмауэров может быть несколько, например, локальный программный и внешний аппаратный." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:574 +msgid "If there is an error, the logs may also help diagnose the problem." +msgstr "В случае ошибок журналы могут помочь диагностировать проблему." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:578 +msgid "Your UDP port does not appear to be firewalled." +msgstr "Ваш UDP-порт доступен извне." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:582 +msgid "Your UDP port appears to be firewalled." +msgstr "Ваш UDP-порт заблокирован брандмауэром и не может принимать входящие соединения." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:584 +msgid "As the firewall detection methods are not 100% reliable, this may occasionally be displayed in error." +msgstr "Иногда это сообщение не соответствует действительности (методы обнаружения брандмауэров пока не идеальны)." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:586 +msgid "However, if it appears consistently, you should check whether both your external and internal firewalls are open for your port." +msgstr "Но если оно появляется постоянно, Вам следует проверить, что на всех брандмауэрах порт для I2P открыт." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:588 +msgid "I2P will work fine when firewalled, there is no reason for concern. When firewalled, the router uses \"introducers\" to relay inbound connections." +msgstr "Повода для паники нет, I2P сможет работать даже с заблокированным портом при помощи заранее выбранных «посредников» для ретрансляции входящих соединений." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:590 +msgid "However, you will get more participating traffic and help the network more if you can open your firewall(s)." +msgstr "С другой стороны, при работе с открытым портом Вы получите гораздо больше транзитного трафика и сможете помочь сети." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:592 +msgid "If you think you have already done so, remember that you may have both a hardware and a software firewall, or be behind an additional, institutional firewall you cannot control." +msgstr "Возможно Вы собственноручно открыли порт на Вашем брандмауэре, но ошибка всё равно появляется. Имейте в виду, что Вы можете быть одновременно за программным и аппаратным брандмауэрами или за дополнительным корпоративным брандмауэром (который Вы не можете контролировать)." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:594 +msgid "Also, some routers cannot correctly forward both TCP and UDP on a single port, or may have other limitations or bugs that prevent them from passing traffic through to I2P." +msgstr "Кроме того, некоторые маршрутизаторы не могут корректно переадресовать одновременно TCP и UDP на один порт или имеют другие ограничения, мешающие нормальному прохождению трафика до I2P." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:598 +msgid "The router is currently testing whether your UDP port is firewalled." +msgstr "Маршрутизатор проверяет возможность принятия входящих соединений на UDP-порт." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:602 +msgid "The router is not configured to publish its address, therefore it does not expect incoming connections." +msgstr "В настройках I2P-маршрутизатора запрещена публикация его адреса, как результат, маршрутизатор не ожидает входящих соединений." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:604 +msgid "WARN - Firewalled and Fast" +msgstr "ПРЕДУПРЕЖДЕНИЕ - Заблокирован извне и Быстрый" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:606 +msgid "You have configured I2P to share more than 128KBps of bandwidth, but you are firewalled." +msgstr "Вы настроили долю транзитного трафика выше 128 килобайт/секунду, при этом у Вас заблокирован входящий порт." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:608 +msgid "While I2P will work fine in this configuration, if you really have over 128KBps of bandwidth to share, it will be much more helpful to the network if you open your firewall." +msgstr "I2P будет работать нормально в такой конфигурации, но Вы можете помочь сети разблокировав входящий порт, если у Вас действительно быстрый интернет." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:610 +msgid "WARN - Firewalled and Floodfill" +msgstr "ПРЕДУПРЕЖДЕНИЕ - Заблокирован извне и Floodfill" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:612 +msgid "You have configured I2P to be a floodfill router, but you are firewalled." +msgstr "Вы настроили I2P работать в режиме floodfill-маршрутизатора, при этом у Вас заблокирован входящий порт." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:614 +msgid "For best participation as a floodfill router, you should open your firewall." +msgstr "Для оптимальной работы в качестве floodfill-маршрутизатора Вам нужно разблокировать входящий порт." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:616 +msgid "WARN - Firewalled with Inbound TCP Enabled" +msgstr "ПРЕДУПРЕЖДЕНИЕ - Заблокирован извне при включенном на вход TCP" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:618 +msgid "You have configured inbound TCP, however your UDP port is firewalled, and therefore it is likely that your TCP port is firewalled as well." +msgstr "Вы разрешили входящие TCP-соединения, но при этом Ваш UDP-порт заблокирован, следовательно, скорее всего, TCP-порт тоже заблокирован." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:620 +msgid "If your TCP port is firewalled with inbound TCP enabled, routers will not be able to contact you via TCP, which will hurt the network." +msgstr "Если у Вас разрешены входящие TCP-соединения при заблокированном TCP-порте, то другие маршрутизаторы не смогут к Вам подсоединиться по TCP. Это повредит производительности сети. " + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:622 +msgid "Please open your firewall or disable inbound TCP above." +msgstr "Пожалуйста, проверьте состояние TCP-порта и разблокируйте его или отключите поддержку входящих TCP-соединений." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:624 +msgid "WARN - Firewalled with UDP Disabled" +msgstr "ПРЕДУПРЕЖДЕНИЕ - Заблокирован извне при отключенном UDP" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:626 +msgid "You have configured inbound TCP, however you have disabled UDP." +msgstr "Вы отключили поддержку UDP, однако Ваш TCP-порт заблокирован и в результате Ваш маршрутизатор не может принимать входящие соединения." + +# This string intentionally left blank +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:628 +msgid "You appear to be firewalled on TCP, therefore your router cannot accept inbound connections." +msgstr " " + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:630 +msgid "Please open your firewall or enable UDP." +msgstr "Пожалуйста, разблокируйте порт или включите поддержку UDP." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:632 +msgid "ERR - Clock Skew" +msgstr "ОШИБКА - Часы сбиты" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:634 +msgid "Your system's clock is skewed, which will make it difficult to participate in the network." +msgstr "Ваши системные часы сильно отстают/спешат. Это помешает Вашему участию в сети." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:636 +msgid "Correct your clock setting if this error persists." +msgstr "Поправьте настройки времени, если Вы постоянно видите это сообщение об ошибке." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:638 +msgid "ERR - Private TCP Address" +msgstr "ОШИБКА - Частный TCP Адрес" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:640 +msgid "You must never advertise an unroutable IP address such as 127.0.0.1 or 192.168.1.1 as your external address." +msgstr "Не публикуйте локальные IP-адреса (такие как 127.0.0.1 или 192.168.1.1) в качестве своего внешнего IP-адреса." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:642 +msgid "Correct the address or disable inbound TCP above." +msgstr "Исправьте адрес или отключите поддержку входящих TCP-соединений." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:644 +msgid "ERR - SymmetricNAT" +msgstr "ОШИБКА - Симметричный NAT" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:646 +msgid "I2P detected that you are firewalled by a Symmetric NAT." +msgstr "I2P обнаружил, что Вы за симметричным NAT." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:648 +msgid "I2P does not work well behind this type of firewall. You will probably not be able to accept inbound connections, which will limit your participation in the network." +msgstr "I2P не очень хорошо работает за таким типом брандмауэров. Скорее всего Вы не сможете принимать входящие соединения и это снизит эффективность Вашего участия в сети." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:650 +msgid "ERR - UDP Port In Use - Set i2np.udp.internalPort=xxxx in advanced config and restart" +msgstr "ОШИБКА - UDP-порт уже занят - перенастройте i2np.udp.internalPort=xxxx в дополнительных настройках и перезапустите маршрутизатор" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:652 +msgid "I2P was unable to bind to port 8887 or other configured port." +msgstr "I2P не удалось связать порт 8887 (или тот, что у Вас настроен)." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:654 +msgid "Check to see if another program is using the configured port. If so, stop that program or configure I2P to use a different port." +msgstr "Проверьте, не занят ли этот порт другим приложением. Если такое приложение нашлось, остановите его или задайте другой порт в настройках I2P." + +# This string intentionally left blank +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:656 +msgid "This may be a transient error, if the other program is no longer using the port." +msgstr " " + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:658 +msgid "However, a restart is always required after this error." +msgstr "После возникновения этой ошибки необходим перезапуск I2P." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:660 +msgid "ERR - UDP Disabled and Inbound TCP host/port not set" +msgstr "ОШИБКА - UDP отключено и не заданы адрес/порт для входящих TCP-соединений" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:662 +msgid "You have not configured inbound TCP with a hostname and port above, however you have disabled UDP." +msgstr "Вы не задали адрес/порт для входящих TCP-соединений и одновременно отключили поддержку UDP, в результате Ваш маршрутизатор не может принимать входящие соединения." + +# This string intentionally left blank +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:664 +msgid "Therefore your router cannot accept inbound connections." +msgstr " " + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:666 +msgid "Please configure a TCP host and port above or enable UDP." +msgstr "Пожалуйста, настройте адрес/порт для TCP или включите поддержку UDP." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:668 +msgid "ERR - Client Manager I2CP Error - check logs" +msgstr "ОШИБКА - ошибка менеджера I2CP - загляните в журнал ошибок" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:670 +msgid "This is usually due to a port 7654 conflict. Check the logs to verify." +msgstr "Эта ошибка обычно возникает из-за конфликта порта 7654. Загляните в журнал ошибок." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:672 +msgid "Do you have another I2P instance running? Stop the conflicting program and restart I2P." +msgstr "Не запущена ли у вас ещё одна копия I2P? Остановите вызвавшую конфликт программу и перезапустите I2P." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configadvanced_jsp.java:107 +msgid "config advanced" +msgstr "дополнительные настройки" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configadvanced_jsp.java:242 +msgid "I2P Advanced Configuration" +msgstr "Дополнительные настройки I2P" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configadvanced_jsp.java:299 +msgid "Advanced I2P Configuration" +msgstr "Дополнительные настройки I2P" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configadvanced_jsp.java:309 +msgid "Some changes may require a restart to take effect." +msgstr "Для вступления некоторых изменений в силу может потребоваться перезагрузка I2P-маршрутизатора." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:106 +msgid "config clients" +msgstr "настройки клиентов" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:244 +msgid "I2P Client Configuration" +msgstr "Настройки клиентов I2P" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:311 +msgid "Client Configuration" +msgstr "Настройки клиентов" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:313 +msgid "The Java clients listed below are started by the router and run in the same JVM." +msgstr "Перечисленные ниже Java-клиенты запускаются маршрутизатором внутри своей JVM." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:317 +msgid "To change other client options, edit the file" +msgstr "Для изменения других клиентских настроек отредактируйте файл" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:324 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:344 +msgid "All changes require restart to take effect." +msgstr "Для вступления изменённых настроек в силу потребуется перезагрузка маршрутизатора." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:336 +msgid "WebApp Configuration" +msgstr "Настройки веб-апплетов" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:338 +msgid "The Java web applications listed below are started by the webConsole client and run in the same JVM as the router. They are usually web applications accessible through the router console. They may be complete applications (e.g. i2psnark),front-ends to another client or application which must be separately enabled (e.g. susidns, i2ptunnel), or have no web interface at all (e.g. addressbook)." +msgstr "Перечисленные ниже Java веб-апплеты запускаются консолью маршрутизатора внутри JVM маршрутизатора. Обычно эти приложения доступны через консоль маршрутизатора. Это могут быть как самостоятельные приложения (например, i2psnark), так и интерфейсы к другим приложениям или клиентам, которые надо включать отдельно (например, susidns, i2ptunnel), либо могут вообще не иметь веб-интерфейса (например, addressbook)." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:340 +msgid "A web app may also be disabled by removing the .war file from the webapps directory; however the .war file and web app will reappear when you update your router to a newer version, so disabling the web app here is the preferred method." +msgstr "Веб-апплет также можно отключить, просто удалив .war-файл из директории webapps. Однако при обновлении маршрутизатора и .war-файл и соответствующее приложение будут возвращены на свои места, поэтому отключение веб-апплетов через эту страницу это более корректный способ." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:350 +msgid "Plugin Configuration" +msgstr "Настройки плагинов" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:352 +msgid "The plugins listed below are started by the webConsole client." +msgstr "Перечисленные ниже плагины запускаются клиентом webConsole." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:358 +msgid "Plugin Installation" +msgstr "Установка плагина" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:360 +msgid "To install a plugin, enter the download URL:" +msgstr "Для установки нового плагина введите URL:" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:106 +msgid "config keyring" +msgstr "настройки ключей" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:228 +msgid "I2P Keyring Configuration" +msgstr "Настройки связки ключей I2P" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:294 +msgid "The router keyring is used to decrypt encrypted leaseSets." +msgstr "Маршрутизатор использует связку ключей для дешифровки зашифрованных LeaseSet." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:297 +msgid "The keyring may contain keys for local or remote encrypted destinations." +msgstr "Связка ключей может хранить ключи как для локальных, так и для удаленных зашифрованных адресов назначения." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:307 +msgid "Manual Keyring Addition" +msgstr "Добавление ключей" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:309 +msgid "Enter keys for encrypted remote destinations here." +msgstr "Здесь добавляются ключи для удаленных адресов назначения." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:312 +msgid "Keys for local destinations must be entered on the" +msgstr "Ключи для локальных адресов назначения настраиваются в" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:314 +msgid "I2PTunnel page" +msgstr "Менеджере Туннелей" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:316 +msgid "Dest. name, hash, or full key" +msgstr "Имя адреса назначения, хэш или полный ключ" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:318 +msgid "Encryption Key" +msgstr "Ключ шифрования" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:107 +msgid "config logging" +msgstr "настройки журнала" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:242 +msgid "I2P Logging Configuration" +msgstr "Настройки журнала I2P" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:299 +msgid "Configure I2P Logging Options" +msgstr "Настройки журнала I2P" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:301 +msgid "Logging filename" +msgstr "Файл журнала" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:305 +msgid "(the symbol '@' will be replaced during log rotation)" +msgstr "(во время ротации журнала символ @ будет заменен на номер)" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:307 +msgid "Log record format" +msgstr "Формат записи" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:311 +msgid "(use 'd' = date, 'c' = class, 't' = thread, 'p' = priority, 'm' = message)" +msgstr "(d = дата, c = класс, t = тред, p = приоритет, m = сообщение)" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:313 +msgid "Log date format" +msgstr "Формат даты" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:317 +msgid "('MM' = month, 'dd' = day, 'HH' = hour, 'mm' = minute, 'ss' = second, 'SSS' = millisecond)" +msgstr "(MM = месяц, dd = день, HH = часы, mm = минуты, ss = секунды, SSS = миллисекунды)" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:319 +msgid "Max log file size" +msgstr "Максимальный размер файла журнала" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:323 +msgid "Default log level" +msgstr "Уровень детальности журнала" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:327 +msgid "(DEBUG and INFO are not recommended defaults, as they will drastically slow down your router)" +msgstr "(не рекомендуется использовать уровни DEBUG и INFO для постоянного использования, так как они сильно замедлят работу Вашего маршрутизатора)" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:329 +msgid "Log level overrides" +msgstr "Дополнительные настройки" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:106 +msgid "config peers" +msgstr "настройки пиров" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:228 +msgid "I2P Peer Configuration" +msgstr "Настройки пиров I2P" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:304 +msgid "Manual Peer Controls" +msgstr "Ручное управление пирами" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:306 +msgid "Router Hash" +msgstr "Хеш маршрутизатора" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:310 +msgid "Manually Ban / Unban a Peer" +msgstr "Вручную забанить/разбанить этого пира" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:312 +msgid "Banning will prevent the participation of this peer in tunnels you create." +msgstr "Бан запретит участие указанного пира в создаваемых Вами туннелях." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:324 +msgid "Bonuses may be positive or negative, and affect the peer's inclusion in Fast and High Capacity tiers. Fast peers are used for client tunnels, and High Capacity peers are used for some exploratory tunnels. Current bonuses are displayed on the" +msgstr "Бонусы могут быть положительными и отрицательными и вводятся для управления включением пира в группы «Быстрые» и «Высокоёмкие» (Быстрые пиры используются для построения клиентских туннелей, Высокоёмкие пиры используются для некоторых зондирующих туннелей). Текущие бонусы можно посмотреть на" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:326 +msgid "profiles page" +msgstr "странице профилей пиров" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:342 +msgid "Adjust peer bonuses" +msgstr "Изменить бонусы" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:344 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/profiles_jsp.java:253 +msgid "Banned Peers" +msgstr "Забаненные пиры" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:366 +msgid "Banned IPs" +msgstr "Забаненные IP-адреса" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:106 +msgid "config service" +msgstr "настройки службы" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:228 +msgid "I2P Service Configuration" +msgstr "Настройки службы I2P" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:284 +msgid "Shutdown the router" +msgstr "Выключить маршрутизатор" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:286 +msgid "Graceful shutdown lets the router satisfy the agreements it has already made before shutting down, but may take a few minutes." +msgstr "Плавное выключение позволяет маршрутизатору перед остановкой отработать все поставленные задачи, но при этом на процесс выключения потребуется дополнительное время." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:288 +msgid "If you need to kill the router immediately, that option is available as well." +msgstr "Если маршрутизатор должен быть выключен немедленно, Вы можете выбрать соответствующую команду." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:298 +msgid "If you want the router to restart itself after shutting down, you can choose one of the following." +msgstr "Иногда, Вам нужно перегрузить маршрутизатор (например, после изменения базовых настроек, которые считываются приложением только во время запуска). В этом случае, Вам доступны два варианта. Плавная перезагрузка займет несколько минут (но зато пиры, использующие Ваш маршрутизатор, будут Вам благодарны за терпение). Если Вы не можете ждать, выбирайте немедленную перезагрузку. В случае немедленной перезагрузки маршрутизатор запустится через одну минуту." + +# This string intentionally left blank +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:300 +msgid "This is useful in some situations - for example, if you changed some settings that client applications only read at startup, such as the routerconsole password or the interface it listens on." +msgstr " " + +# This string intentionally left blank +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:302 +msgid "A graceful restart will take a few minutes (but your peers will appreciate your patience), while a hard restart does so immediately." +msgstr " " + +# This string intentionally left blank +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:304 +msgid "After tearing down the router, it will wait 1 minute before starting back up again." +msgstr " " + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:314 +msgid "Systray integration" +msgstr "Интеграция в область уведомлений" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:316 +msgid "On the windows platform, there is a small application to sit in the system tray, allowing you to view the router's status" +msgstr "Если Вы работаете под Windows, у Вас есть возможность отслеживать статус маршрутизатора через значок в области уведомлений" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:318 +msgid "(later on, I2P client applications will be able to integrate their own functionality into the system tray as well)." +msgstr "(когда-нибудь и клиентские приложения для I2P будут там доступны)." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:320 +msgid "If you are on windows, you can either enable or disable that icon here." +msgstr "Если Вы пользуетесь I2P под Windows, то здесь Вы можете настроить отображение этого значка." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:326 +msgid "Run on startup" +msgstr "Автоматический запуск I2P" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:328 +msgid "You can control whether I2P is run on startup or not by selecting one of the following options - I2P will install (or remove) a service accordingly." +msgstr "Вы можете настроить автоматическую загрузку маршрутизатора при каждом запуске Windows. В зависимости от выбранной кнопки I2P немедленно установит или удалит свою службу из списка служб Windows." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:330 +msgid "If you prefer the command line, you can also run the " +msgstr "Если Вам удобно работать через командную строку, попробуйте использовать " + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:340 +msgid "If you are running I2P as service right now, removing it will shut down your router immediately." +msgstr "Если служба I2P уже была запущена, при выборе варианта \"Не запускать I2P при старте\" маршрутизатор будет моментально остановлен." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:342 +msgid "You may want to consider shutting down gracefully, as above, then running uninstall_i2p_service_winnt.bat." +msgstr "Возможно лучше плавно остановить маршрутизатор и после этого запустить файл C:\\Program Files\\I2P\\uninstall_i2p_service_winnt.bat." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:346 +msgid "Debugging" +msgstr "Отладка" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:348 +msgid "View the job queue" +msgstr "Просмотр очереди заданий" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:352 +msgid "At times, it may be helpful to debug I2P by getting a thread dump. To do so, please select the following option and review the thread dumped to wrapper.log." +msgstr "В некоторых случаях для отладки может пригодиться список состояний тредов I2P-маршутизатора. Для получения такого списка нажмите эту кнопку. Список будет сохранен в файле wrapper.log." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:358 +msgid "Launch browser on router startup?" +msgstr "Запускать браузер при старте I2P?" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:360 +msgid "I2P's main configuration interface is this web console, so for your convenience I2P can launch a web browser on startup pointing at" +msgstr "Основной интерфейс настройки I2P это веб-консоль. Здесь можно выбрать автоматическое открытие при запуске маршрутизатора страницы" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:107 +msgid "config stats" +msgstr "настройки статистики" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:229 +msgid "I2P Stats Configuration" +msgstr "Настройки статистики I2P" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:300 +msgid "Configure I2P Stat Collection" +msgstr "Настройки сбора статистики I2P" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:302 +msgid "Enable full stats?" +msgstr "Включить полную статистику?" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:309 +msgid "change requires restart to take effect" +msgstr "изменения вступят в силу только после перезагрузки маршрутизатора" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:311 +msgid "Stat file" +msgstr "Файл статистики" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:315 +msgid "Filter" +msgstr "Фильтр" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:317 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:326 +msgid "toggle all" +msgstr "переключить все" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:328 +msgid "Log" +msgstr "Журнал" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:330 +msgid "Graph" +msgstr "График" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:369 +msgid "Advanced filter" +msgstr "Дополнительный фильтр" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configtunnels_jsp.java:106 +msgid "config tunnels" +msgstr "настройки туннелей" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configtunnels_jsp.java:241 +msgid "I2P Tunnel Configuration" +msgstr "Настройки туннелей I2P" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configtunnels_jsp.java:305 +msgid "The default settings work for most people." +msgstr "Большинству пользователей подойдут настройки по умолчанию. " + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configtunnels_jsp.java:309 +msgid "There is a fundamental tradeoff between anonymity and performance." +msgstr "Примите во внимание, что между анонимностью и эффективностью есть обратная связь — длинные туннели более анонимны, но хуже работают." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configtunnels_jsp.java:312 +msgid "Tunnels longer than 3 hops (for example 2 hops + 0-2 hops, 3 hops + 0-1 hops, 3 hops + 0-2 hops), or a high quantity + backup quantity, may severely reduce performance or reliability." +msgstr " Туннели длиннее 3 хопов, а также большое количество туннелей (как обычных, так и резервных) могут привести к снижению производительности/надежности работы маршрутизатора." + +# This string intentionally left blank +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configtunnels_jsp.java:315 +msgid "High CPU and/or high outbound bandwidth usage may result." +msgstr " " + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configtunnels_jsp.java:318 +msgid "Change these settings with care, and adjust them if you have problems." +msgstr "Осторожно вносите изменения в существующие настройки и возвращайте в положение по умолчанию, если у Вас возникли проблемы." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configtunnels_jsp.java:332 +msgid "Exploratory tunnel setting changes are stored in the router.config file." +msgstr "Настройки зондирующих туннелей сохраняются в файле router.config." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configtunnels_jsp.java:335 +msgid "Client tunnel changes are temporary and are not saved." +msgstr "Настройки клиентских туннелей нигде не сохраняются и действуют только до перезагрузки." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configtunnels_jsp.java:337 +msgid "To make permanent client tunnel changes see the" +msgstr "Для задания перманентных изменений в настройках клиентских туннелей воспользуйтесь" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configtunnels_jsp.java:339 +msgid "i2ptunnel page" +msgstr "менеджером туннелей" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configui_jsp.java:106 +msgid "config UI" +msgstr "настройки интерфейса" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configui_jsp.java:241 +msgid "I2P UI Configuration" +msgstr "Настройки пользовательского интерфейса I2P" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configui_jsp.java:291 +msgid "Router Console Theme" +msgstr "Тема оформления консоли маршрутизатора" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configui_jsp.java:309 +msgid "Theme selection disabled for Internet Explorer, sorry." +msgstr "Переключатель тем отключен для Internet Explorer, извините" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configui_jsp.java:311 +msgid "If you're not using IE, it's likely that your browser is pretending to be IE; please configure your browser (or proxy) to use a different User Agent string if you'd like to access the console themes." +msgstr "Если вы не используете IE, то, скорее всего, Ваш браузер сконфигурирован представляться как IE. Пожалуйста измените строку User-Agent в настройках Вашего браузера (или прокси-сервера), если хотите использовать темы оформления" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configui_jsp.java:315 +msgid "Router Console Language" +msgstr "Язык консоли маршрутизатора" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configui_jsp.java:319 +msgid "Please contribute to the router console translation project! Contact the developers on IRC #i2p to help." +msgstr "Пожалуйста, помогите проекту перевода консоли маршрутизатора! Разработчики доступны для связи на IRC-канале #i2p" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configui_jsp.java:323 +msgid "Apply" +msgstr "Применить" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:106 +msgid "config update" +msgstr "настройки обновления" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:228 +msgid "I2P Update Configuration" +msgstr "Настройки обновлений I2P" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:302 +msgid "Check for I2P and news updates" +msgstr "Настройки проверки обновлений и новостей I2P" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:304 +msgid "News & I2P Updates" +msgstr "Новости и обновления I2P" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:308 +msgid "Update In Progress" +msgstr "Выполняется обновление" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:316 +msgid "News URL" +msgstr "URL новостей" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:320 +msgid "Refresh frequency" +msgstr "Интервал проверки" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:326 +msgid "Update policy" +msgstr "Режим обновления" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:330 +msgid "Update through the eepProxy?" +msgstr "Обновлять через I2P-прокси?" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:334 +msgid "eepProxy host" +msgstr "Адрес I2P-прокси" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:338 +msgid "eepProxy port" +msgstr "Порт I2P-прокси" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:342 +msgid "Update URLs" +msgstr "URL обновлений" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:346 +msgid "Trusted keys" +msgstr "Доверенные ключи" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:350 +msgid "Update with unsigned development builds?" +msgstr "Обновлять до неподписанной тестовой сборки?" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:354 +msgid "Unsigned Build URL" +msgstr "URL неподписанной тестовой сборки" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:360 +msgid "I2P updates are disabled because you do not have write permission for the install directory." +msgstr "Функция автообновления I2P недоступна: у Вас нет прав на запись в директорию I2P." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:366 +msgid "Save" +msgstr "Сохранить" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/error_jsp.java:117 +msgid "Page Not Found" +msgstr "Страница не найдена" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/error_jsp.java:243 +msgid "Sorry! You appear to be requesting a non-existent Router Console page or resource." +msgstr "Страница консоли маршрутизатора, которую вы запросили, не существует." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/error_jsp.java:245 +msgid "Error 404" +msgstr "Ошибка 404" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/error_jsp.java:250 +msgid "not found" +msgstr "не найдено" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/graphs_jsp.java:106 +msgid "graphs" +msgstr "графики" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/graphs_jsp.java:228 +msgid "I2P Performance Graphs" +msgstr "Графики производительности I2P" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/index_jsp.java:105 +msgid "home" +msgstr "Домашняя страница" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/jobs_jsp.java:105 +msgid "job queue" +msgstr "очередь заданий" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/jobs_jsp.java:227 +msgid "I2P Router Job Queue" +msgstr "Очередь заданий маршрутизатора I2P" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/logs_jsp.java:105 +msgid "logs" +msgstr "журналы" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/logs_jsp.java:227 +msgid "I2P Router Logs" +msgstr "Журналы маршрутизатора I2P" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/logs_jsp.java:229 +msgid "I2P Version & Running Environment" +msgstr "Версия I2P & Информация о среде выполнения" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/logs_jsp.java:231 +msgid "Please report bugs on trac.i2p2.i2p." +msgstr "Сообщайте об ошибках в багтрекер проекта I2P: trac.i2p2.i2p." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/logs_jsp.java:233 +msgid "Please include this information in bug reports" +msgstr "Пожалуйста, добавляйте эту информацию в Ваши сообщения об ошибках" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/logs_jsp.java:274 +msgid "Critical Logs" +msgstr "Журнал критических ошибок" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/logs_jsp.java:278 +msgid "Router Logs" +msgstr "Журнал маршрутизатора" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/logs_jsp.java:284 +msgid "Service (Wrapper) Logs" +msgstr "Журнал службы (wrapper)" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/netdb_jsp.java:105 +msgid "network database summary" +msgstr "сетевая база данных" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/netdb_jsp.java:227 +msgid "I2P Network Database Summary" +msgstr "Обзор сетевой базы данных I2P" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/nowebapp_jsp.java:109 +msgid "WebApp Not Found" +msgstr "Веб-апплет не найден" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/nowebapp_jsp.java:231 +msgid "Web Application Not Running" +msgstr "Веб-приложение не запущено" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/nowebapp_jsp.java:233 +msgid "The requested web application is not running." +msgstr "Запрошенное веб-приложение не запущено." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/nowebapp_jsp.java:235 +msgid "Please visit the config clients page to start it." +msgstr "Пожалуйста, запустите его со страницы настроек веб-апплетов." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/peers_jsp.java:105 +msgid "peer connections" +msgstr "обзор пиров" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/peers_jsp.java:227 +msgid "I2P Network Peers" +msgstr "Соединения с пирами I2P" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/profiles_jsp.java:105 +msgid "peer profiles" +msgstr "профили пиров" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/profiles_jsp.java:227 +msgid "I2P Network Peer Profiles" +msgstr "Профили пиров сети I2P" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/stats_jsp.java:105 +msgid "statistics" +msgstr "статистика" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/stats_jsp.java:242 +msgid "I2P Router Statistics" +msgstr "Статистика маршрутизатора I2P" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/summaryframe_jsp.java:244 +#, java-format +msgid "Disable {0}s Refresh" +msgstr "Отключить автообновление
панели ({0} сек.)" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/tunnels_jsp.java:105 +msgid "tunnel summary" +msgstr "обзор туннелей" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/tunnels_jsp.java:227 +msgid "I2P Tunnel Summary" +msgstr "Обзор туннелей I2P" + From 906bce637a6d65d639f350114e6b83d09c3bf755 Mon Sep 17 00:00:00 2001 From: echelon Date: Thu, 8 Jul 2010 08:25:17 +0000 Subject: [PATCH 32/75] new strings, corrections in german translation --- apps/i2psnark/locale/messages_de.po | 292 ++++++++++---------- apps/routerconsole/locale/messages_de.po | 335 ++++++++++++----------- 2 files changed, 320 insertions(+), 307 deletions(-) diff --git a/apps/i2psnark/locale/messages_de.po b/apps/i2psnark/locale/messages_de.po index 0c437790e..cdb9c9337 100644 --- a/apps/i2psnark/locale/messages_de.po +++ b/apps/i2psnark/locale/messages_de.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: I2P i2psnark\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-06-13 19:23+0000\n" -"PO-Revision-Date: 2010-06-15 09:07+0100\n" +"POT-Creation-Date: 2010-07-08 08:03+0000\n" +"PO-Revision-Date: 2010-07-08 10:15+0100\n" "Last-Translator: echelon \n" "Language-Team: foo \n" "MIME-Version: 1.0\n" @@ -208,554 +208,554 @@ msgstr "Download beendet:\"{0}\"" #: ../java/src/org/klomp/snark/SnarkManager.java:729 #, java-format msgid "size: {0}B" -msgstr "Größe: \"{0}\"Byte" +msgstr "Größe: {0}Byte" #: ../java/src/org/klomp/snark/SnarkManager.java:757 msgid "Unable to connect to I2P!" msgstr "Konnte nicht mit I2P verbinden!" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:168 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:174 msgid "I2PSnark - Anonymous BitTorrent Client" msgstr "I2PSnark - Anonymer BitTorrent Klient" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:179 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:185 msgid "Torrents" msgstr "Torrents" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:181 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:187 -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:831 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:193 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:837 msgid "I2PSnark" msgstr "I2PSnark" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:185 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:191 msgid "Refresh page" msgstr "Aktualisiere Seite" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:189 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:195 msgid "Forum" msgstr "Forum" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:234 -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1278 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:240 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1289 msgid "Status" msgstr "Status" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:240 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:246 msgid "Hide Peers" msgstr "Verstecke Teilnehmer" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:243 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:249 msgid "Show Peers" msgstr "Zeige Teilnehmer" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:248 -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1260 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:254 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1271 msgid "Torrent" msgstr "Torrent" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:250 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:256 msgid "ETA" msgstr "ETA" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:252 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:258 msgid "Downloaded" msgstr "Heruntergeladen" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:254 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:260 msgid "Uploaded" msgstr "Hochgeladen" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:256 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:262 msgid "Down Rate" msgstr "Down Rate" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:258 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:264 msgid "Up Rate" msgstr "Up Rate" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:265 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:271 msgid "Stop all torrents and the I2P tunnel" msgstr "Stoppe alle Torrents und den I2P Tunnel" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:267 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:273 msgid "Stop All" msgstr "Stoppe alle" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:272 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:278 msgid "Start all torrents and the I2P tunnel" msgstr "Starte alle Torrents und den I2P Tunnel" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:274 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:280 msgid "Start All" msgstr "Starte alle" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:291 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:297 msgid "No torrents loaded." msgstr "Keine Torrents geladen." -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:296 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:302 msgid "Totals" msgstr "Total" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:298 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:304 #, java-format msgid "1 torrent" msgid_plural "{0} torrents" msgstr[0] "1 Torrent" msgstr[1] "{0} Torrents" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:301 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:307 #, java-format msgid "1 connected peer" msgid_plural "{0} connected peers" msgstr[0] "1 verbundener Teilnehmer" msgstr[1] "{0} verbundene Teilnehmer" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:330 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:336 #, java-format msgid "Torrent file {0} does not exist" msgstr "Torrent Datei {0} existiert nicht" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:340 -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1465 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:346 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1476 #, java-format msgid "Torrent already running: {0}" msgstr "Torrent rennt schon: {0}" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:342 -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1467 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:348 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1478 #, java-format msgid "Torrent already in the queue: {0}" msgstr "Torrent ist schon in der Queue: {0}" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:346 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:352 #, java-format msgid "Copying torrent to {0}" msgstr "Kopiere Torrent nach {0}" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:349 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:355 #, java-format msgid "Unable to copy the torrent to {0}" msgstr "Konnte den Torrent nicht nach {0} kopieren" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:349 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:355 #, java-format msgid "from {0}" msgstr "von {0}" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:357 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:363 #, java-format msgid "Fetching {0}" msgstr "Hole {0}" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:361 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:367 msgid "Invalid URL - must start with http://" msgstr "Ungültige URL - muß mit http:// anfangen" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:391 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:397 #, java-format msgid "Starting up torrent {0}" msgstr "Starte Torrent {0}" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:411 -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:429 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:417 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:435 #, java-format msgid "Torrent file deleted: {0}" msgstr "Torrent Datei gelöscht: {0}" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:435 -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:445 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:441 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:451 #, java-format msgid "Data file deleted: {0}" msgstr "Daten Datei gelöscht: {0}" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:437 -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:447 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:443 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:453 #, java-format msgid "Data file could not be deleted: {0}" msgstr "Datendatei konnte nicht gelöscht werden: {0}" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:456 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:462 #, java-format msgid "Data dir deleted: {0}" msgstr "Datenverzeichnis wurde gelöscht: {0}" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:488 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:494 msgid "Error creating torrent - you must select a tracker" msgstr "Fehler beim Erstellen des Torrent - Sie müssen einen Tracker auswählen" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:503 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:509 #, java-format msgid "Torrent created for \"{0}\"" msgstr "Torrent erstellt für \"{0}\"" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:506 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:512 #, java-format msgid "Many I2P trackers require you to register new torrents before seeding - please do so before starting \"{0}\"" msgstr "Viele I2P Tracker erfordern eine Registrierung bevor der Torrent verteilt wird - bitte machen Sie dieses vor dem Start von \"{0}\"" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:508 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:514 #, java-format msgid "Error creating a torrent for \"{0}\"" msgstr "Fehler beim Erstellen eines Torrent für \"{0}\"" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:511 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:517 #, java-format msgid "Cannot create a torrent for the nonexistent data: {0}" msgstr "Kann keinen Torrent für nicht existierende Daten erstellen: {0}" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:514 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:520 msgid "Error creating torrent - you must enter a file or directory" msgstr "Fehler beim Erstellen des Torrent - Sie müssen eine Datei oder Verzeichnis angeben." -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:517 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:523 msgid "Stopping all torrents and closing the I2P tunnel." msgstr "Stoppt alle Torrents und beendet den I2P Tunnel." -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:526 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:532 msgid "I2P tunnel closed." msgstr "I2P Tunnel geschlossen." -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:529 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:535 msgid "Opening the I2P tunnel and starting all torrents." msgstr "Öffnet den I2P Tunnel und startet alle Torrents." -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:651 -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:845 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:657 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:851 msgid "Unknown" msgstr "Unbekannt" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:654 -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:659 -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:664 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:660 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:665 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:670 msgid "TrackerErr" msgstr "TrackerFehler" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:657 -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:660 -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:671 -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:674 -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:682 -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:685 -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:690 -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:693 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:663 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:666 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:677 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:680 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:688 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:691 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:696 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:699 #, java-format msgid "1 peer" msgid_plural "{0} peers" msgstr[0] "1 Teilnehmer" msgstr[1] "{0} Teilnehmer" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:668 -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:673 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:674 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:679 msgid "Seeding" msgstr "Verteile" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:676 -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1316 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:682 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1327 msgid "Complete" msgstr "Komplett" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:679 -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:684 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:685 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:690 msgid "OK" msgstr "OK" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:687 -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:692 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:693 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:698 msgid "Stalled" msgstr "Gedrosselt" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:695 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:701 msgid "No Peers" msgstr "Keine Teilnehmer" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:697 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:703 msgid "Stopped" msgstr "Gestoppt" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:712 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:718 msgid "View files" msgstr "Betrachte Dateien" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:714 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:720 msgid "Open file" msgstr "Öffne Datei" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:744 -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:956 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:750 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:967 msgid "Tracker" msgstr "Tracker" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:745 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:751 msgid "Details" msgstr "Details" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:779 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:785 msgid "Stop the torrent" msgstr "Stoppe den Torrent" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:781 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:787 msgid "Stop" msgstr "Stop" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:787 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:793 msgid "Start the torrent" msgstr "Starte den Torrent" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:789 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:795 msgid "Start" msgstr "Start" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:794 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:800 msgid "Remove the torrent from the active list, deleting the .torrent file" msgstr "Entfernt den Torrent von der aktiven Liste und löscht die .torrent Datei" #. Can't figure out how to escape double quotes inside the onclick string. #. Single quotes in translate strings with parameters must be doubled. #. Then the remaining single quite must be escaped -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:799 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:805 #, java-format msgid "Are you sure you want to delete the file \\''{0}.torrent\\'' (downloaded data will not be deleted) ?" msgstr "Sind Sie sicher, das Sie die Datei \\''{0}.torrent\\'' löschen wollen (heruntergeladene Daten werden nicht gelöscht)?" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:801 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:807 msgid "Remove" msgstr "Entfernen" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:805 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:811 msgid "Delete the .torrent file and the associated data file(s)" msgstr "Löscht die .torrent Datei und dazugehörigen Daten Datei(en)" #. Can't figure out how to escape double quotes inside the onclick string. #. Single quotes in translate strings with parameters must be doubled. #. Then the remaining single quite must be escaped -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:810 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:816 #, java-format msgid "Are you sure you want to delete the torrent \\''{0}\\'' and all downloaded data?" msgstr "Sind Sie sicher, das die die Torrentdatei \\''{0}\\'' und alle heruntergeladene Daten löschen wollen?" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:812 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:818 msgid "Delete" msgstr "Löschen" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:855 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:861 msgid "Seed" msgstr "Quelle" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:873 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:879 msgid "Uninteresting (The peer has no pieces we need)" msgstr "Uninteressiert (Der Teilnehmer hat keine Teile die wir benötigen)" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:875 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:881 msgid "Choked (The peer is not allowing us to request pieces)" msgstr "Gedrosselt (der Teilnehmer hat uns nicht erlaubt Teile anzufordern)" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:889 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:895 msgid "Uninterested (We have no pieces the peer needs)" msgstr "Uninteressiert (Wir haben keine Teile die der Teilnehmer benötigt)" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:891 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:897 msgid "Choking (We are not allowing the peer to request pieces)" msgstr "Gedrosselt (Wir erlauben dem Teilnehmer nicht Teile anzufordern)" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:918 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:927 msgid "Add Torrent" msgstr "Füge Torrent hinzu" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:920 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:929 msgid "From URL" msgstr "Quell URL" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:925 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:934 msgid "Add torrent" msgstr "Füge Torrent hinzu" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:928 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:937 #, java-format msgid "Alternately, you can copy .torrent files to the directory {0}." msgstr "Alternativ können Sie die .torrent Dateien auch nach {0} kopieren." -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:930 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:939 msgid "Removing a .torrent file will cause the torrent to stop." msgstr "Entfernen der .torrent Datei stoppt einen Torrent." -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:947 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:958 msgid "Create Torrent" msgstr "Erstelle einen Torrent" #. out.write("From file:
\n"); -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:950 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:961 msgid "Data to seed" msgstr "Daten zum Verteilen" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:954 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:965 msgid "File or directory to seed (must be within the specified path)" msgstr "Datei oder Verzeichnis zum Verteilen (muß im angegebenen Pfad sein)" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:958 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:969 msgid "Select a tracker" msgstr "Wähle einen Tracker" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:971 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:982 msgid "or" msgstr "oder" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:974 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:985 msgid "Specify custom tracker announce URL" msgstr "Geben Sie eine Tracker Announce URL an" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:977 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:988 msgid "Create torrent" msgstr "Erstelle Torrent" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:995 -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1122 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1006 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1133 msgid "Configuration" msgstr "Einstellungen" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:998 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1009 msgid "Data directory" msgstr "Daten Verzeichnis" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1001 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1012 msgid "Directory to store torrents and data" msgstr "Verzeichnis zum speichern von Torrent Dateien und Daten" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1003 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1014 msgid "Edit i2psnark.config and restart to change" msgstr "Editiere i2psnark.config zum ändern und starte neu." -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1007 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1018 msgid "Auto start" msgstr "Auto Start" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1011 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1022 msgid "If checked, automatically start torrents that are added" msgstr "Wenn markiert werden hinzugefügte Torrents automatisch gestartet." -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1015 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1026 msgid "Startup delay" msgstr "Startverzögerung" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1017 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1028 msgid "minutes" msgstr "Minuten" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1041 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1052 msgid "Total uploader limit" msgstr "Totales Uploader Limit." -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1044 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1055 msgid "peers" msgstr "Teilnehmer" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1048 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1059 msgid "Up bandwidth limit" msgstr "Upload Bandbreiten Limit." -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1051 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1062 msgid "Half available bandwidth recommended." msgstr "Halbe verfügbare Bandbreite ist empfohlen." -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1053 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1064 msgid "View or change router bandwidth" msgstr "Router Bandbreite ansehen oder ändern" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1057 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1068 msgid "Use open trackers also" msgstr "Benutze auch Open Tracker" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1061 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1072 msgid "If checked, announce torrents to open trackers as well as the tracker listed in the torrent file" msgstr "Wenn markiert wird der Torrent neben dem angegebenen Tracker auch bei den Open Trackers bekannt gegeben." -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1065 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1076 msgid "Open tracker announce URLs" msgstr "Open Tracker Announce URL" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1077 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1088 msgid "Inbound Settings" msgstr "Eingangseinstellungen" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1083 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1094 msgid "Outbound Settings" msgstr "Ausgangseinstellungen" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1090 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1101 msgid "I2CP host" msgstr "I2CP Host" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1095 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1106 msgid "I2CP port" msgstr "I2CP Port" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1107 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1118 msgid "I2CP options" msgstr "I2CP Optionen" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1113 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1124 msgid "Save configuration" msgstr "Speichere Einstellungen" #. * dummies for translation -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1130 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1141 #, java-format msgid "1 hop" msgid_plural "{0} hops" msgstr[0] "1 Zwischenstation" msgstr[1] "{0} Zwischenstationen" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1131 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1142 #, java-format msgid "1 tunnel" msgid_plural "{0} tunnels" msgstr[0] "1 Tunnel" msgstr[1] "{0} Tunnel" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1272 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1283 msgid "Up to higher level directory" msgstr "Eine Hierachie nach oben" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1277 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1288 msgid "File" msgstr "Datei" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1277 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1288 msgid "Size" msgstr "Größe" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1300 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1311 msgid "Directory" msgstr "Daten Verzeichnis" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1305 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1316 msgid "Torrent not found?" msgstr "Torrentdatei nicht gefunden?" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1313 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1324 msgid "File not found in torrent?" msgstr "Datei nicht gefunden im Torrent?" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1319 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1330 msgid "complete" msgstr "Komplett" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1320 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1331 msgid "bytes remaining" msgstr "Bytes noch übrig" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1445 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1456 #, java-format msgid "Torrent fetched from {0}" msgstr "Torrent geholt von {0}" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1473 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1484 #, java-format msgid "Torrent at {0} was not valid" msgstr "Torrent bei {0} war nicht gültig" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1478 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1489 #, java-format msgid "Torrent was not retrieved from {0}" msgstr "Torrent wurde nicht geladen von {0}" diff --git a/apps/routerconsole/locale/messages_de.po b/apps/routerconsole/locale/messages_de.po index 9b0caa203..05c13a037 100644 --- a/apps/routerconsole/locale/messages_de.po +++ b/apps/routerconsole/locale/messages_de.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: I2P routerconsole\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-06-14 07:06+0000\n" -"PO-Revision-Date: 2010-06-14 11:49+0100\n" +"POT-Creation-Date: 2010-07-08 08:03+0000\n" +"PO-Revision-Date: 2010-07-08 10:18+0100\n" "Last-Translator: echelon \n" "Language-Team: echelon , Sperreingang \n" "MIME-Version: 1.0\n" @@ -85,46 +85,46 @@ msgstr "Akzeptiere Tunnelanfragen" msgid "Rejecting tunnels" msgstr "Weise Tunnelanfragen zurück" -#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:49 +#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:48 msgid "Ensure that nothing blocks outbound HTTP, check logs and if nothing helps, read the FAQ about reseeding manually." msgstr "Stellen Sie bitte sicher, das nichts den HTTP Transfer blockiert, kontrollieren Sie die Berichte und wenn gar nichts hilft, lesen Sie die FAQ über das manuelle Reseeden." -#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:81 +#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:80 msgid "Reseeding" msgstr "Reseeden" -#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:145 +#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:144 msgid "Reseeding: fetching seed URL." msgstr "Reseed: Hole die Seed URL." -#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:151 +#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:150 msgid "Last reseed failed fully (failed reading seed URL)." msgstr "Letztes Reseed komplett gescheitert (konnte die Seed URL nicht lesen)." -#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:177 +#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:176 msgid "Last reseed failed fully (no routerInfo URLs at seed URL)." msgstr "Letztes Reseed komplett gescheitert (keine RouterInfo URLs bei der Seed URL)." -#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:190 +#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:189 #, java-format msgid "Reseeding: fetching router info from seed URL ({0} successful, {1} errors)." msgstr "Reseed: holen von Router Informationen von Seed URL {0} erfolgreich, {1} Fehler)." -#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:211 +#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:210 #, java-format msgid "Last reseed failed partly ({0}% of {1})." msgstr "Letzes Reseed teilweise gescheitert ({0}% von {1})." -#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:216 +#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:215 #, java-format msgid "Last reseed failed ({0}% of {1})." msgstr "Letzes Reseed gescheitert ({0}% von {1})." -#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:226 +#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:225 msgid "Last reseed failed fully (exception caught)." msgstr "Letzes Reseed gescheitert (Fehler aufgetreten)." -#: ../../../router/java/src/net/i2p/router/transport/CommSystemFacadeImpl.java:498 +#: ../../../router/java/src/net/i2p/router/transport/CommSystemFacadeImpl.java:510 msgid "NetDb entry" msgstr "NetzDB Eintrag" @@ -159,7 +159,7 @@ msgstr "Definitionen" #: ../java/src/net/i2p/router/web/ConfigPeerHandler.java:35 #: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:81 #: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:187 -#: ../java/src/net/i2p/router/web/TunnelRenderer.java:237 +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:238 msgid "Peer" msgstr "Teilnehmer" @@ -171,7 +171,7 @@ msgstr "Der entfernte Teilnehmer, über Router Prüfsumme erkannt" #: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:716 #: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1889 msgid "Dir" -msgstr "Verzeichnis" +msgstr "Richtung" #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:531 msgid "Inbound connection" @@ -257,7 +257,7 @@ msgstr "Die Rundenzeit zum Server und zurück in Millisekunden" #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:548 #: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1912 msgid "Dev" -msgstr "Entwickler" +msgstr "Abweichung" #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:548 msgid "The standard deviation of the round trip time in milliseconds" @@ -1414,8 +1414,8 @@ msgid "Zimbabwe" msgstr "Simbabwe" #: ../java/src/net/i2p/router/web/CSSHelper.java:57 -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:30 -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:32 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:34 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:36 #: ../java/strings/Strings.java:29 #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/index_jsp.java:234 msgid "I2P Router Console" @@ -1503,7 +1503,7 @@ msgstr "Falscher Index für den Klienten" #: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:207 #: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:218 #: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:38 -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:370 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:387 #: ../java/src/net/i2p/router/web/SummaryHelper.java:379 msgid "Client" msgstr "Klient" @@ -1612,8 +1612,8 @@ msgid "Plugin" msgstr "Zusatzprogramm" #: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:95 -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:266 -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:165 +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:268 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:180 msgid "Version" msgstr "Version" @@ -1646,15 +1646,15 @@ msgid "Stop" msgstr "Stop" #: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:196 -#: ../java/src/net/i2p/router/web/ConfigUpdateHandler.java:62 +#: ../java/src/net/i2p/router/web/ConfigUpdateHandler.java:81 #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:312 msgid "Check for updates" msgstr "Auf Aktualisierungen prüfen" #: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:197 #: ../java/src/net/i2p/router/web/ConfigNavHelper.java:18 -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:213 -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:220 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:230 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:237 msgid "Update" msgstr "Aktualisierung" @@ -1744,6 +1744,7 @@ msgid "WARN" msgstr "WARNUNG" #: ../java/src/net/i2p/router/web/ConfigNavHelper.java:18 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:199 msgid "Network" msgstr "Netzwerk" @@ -1752,8 +1753,8 @@ msgid "Service" msgstr "Service" #: ../java/src/net/i2p/router/web/ConfigNavHelper.java:18 -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:90 -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:359 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:100 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:376 #: ../java/strings/Strings.java:72 msgid "Tunnels" msgstr "Tunnel" @@ -1776,15 +1777,15 @@ msgid "Logging" msgstr "Statusmitschnitt" #: ../java/src/net/i2p/router/web/ConfigNavHelper.java:19 -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:96 -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:238 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:106 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:255 #: ../java/strings/Strings.java:67 msgid "Peers" msgstr "Teilnehmer" #: ../java/src/net/i2p/router/web/ConfigNavHelper.java:19 -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:373 -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:132 +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:382 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:142 msgid "Stats" msgstr "Statistiken" @@ -2266,47 +2267,47 @@ msgstr "Russisch" msgid "Swedish" msgstr "Schwedisch" -#: ../java/src/net/i2p/router/web/ConfigUpdateHandler.java:69 +#: ../java/src/net/i2p/router/web/ConfigUpdateHandler.java:88 msgid "Update available, attempting to download now" msgstr "Aktualisierung verfügbar, versuche diese zu downloaden" -#: ../java/src/net/i2p/router/web/ConfigUpdateHandler.java:71 +#: ../java/src/net/i2p/router/web/ConfigUpdateHandler.java:90 msgid "Update available, click button on left to download" msgstr "Aktualisierung verfügbar, klicke auf den Knopf links zum download" -#: ../java/src/net/i2p/router/web/ConfigUpdateHandler.java:77 +#: ../java/src/net/i2p/router/web/ConfigUpdateHandler.java:96 msgid "No update available" msgstr "Keine Aktualisierung verfügbar" -#: ../java/src/net/i2p/router/web/ConfigUpdateHandler.java:85 +#: ../java/src/net/i2p/router/web/ConfigUpdateHandler.java:104 msgid "Updating news URL to" msgstr "Aktualisiere die Adresse für die Neuigkeiten auf" -#: ../java/src/net/i2p/router/web/ConfigUpdateHandler.java:93 +#: ../java/src/net/i2p/router/web/ConfigUpdateHandler.java:112 msgid "Updating proxy host to" msgstr "Aktualisiere den Proxyhost auf" -#: ../java/src/net/i2p/router/web/ConfigUpdateHandler.java:101 +#: ../java/src/net/i2p/router/web/ConfigUpdateHandler.java:120 msgid "Updating proxy port to" msgstr "Aktualisiere den Port des Proxy auf" -#: ../java/src/net/i2p/router/web/ConfigUpdateHandler.java:114 +#: ../java/src/net/i2p/router/web/ConfigUpdateHandler.java:133 msgid "Updating refresh frequency to" msgstr "Aktualisiere die Frequenz des Neuladens auf" -#: ../java/src/net/i2p/router/web/ConfigUpdateHandler.java:121 +#: ../java/src/net/i2p/router/web/ConfigUpdateHandler.java:140 msgid "Updating update policy to" msgstr "Aktualisiere die Aktualisierungsrichtlinien auf" -#: ../java/src/net/i2p/router/web/ConfigUpdateHandler.java:130 +#: ../java/src/net/i2p/router/web/ConfigUpdateHandler.java:149 msgid "Updating update URLs." msgstr "Aktualisiere die Aktualisierungsadressen auf" -#: ../java/src/net/i2p/router/web/ConfigUpdateHandler.java:139 +#: ../java/src/net/i2p/router/web/ConfigUpdateHandler.java:158 msgid "Updating trusted keys." msgstr "Aktualisiere die vertrauten Schlüssel" -#: ../java/src/net/i2p/router/web/ConfigUpdateHandler.java:147 +#: ../java/src/net/i2p/router/web/ConfigUpdateHandler.java:166 msgid "Updating unsigned update URL to" msgstr "Aktualisiere die Adresse der nicht vertrauten Aktualisierungsdatei auf" @@ -2359,7 +2360,7 @@ msgstr "Zeitraum" #: ../java/src/net/i2p/router/web/GraphHelper.java:133 msgid "Plot averages" -msgstr "Zeichnet die MIttelwerte" +msgstr "Zeichnet die Mittelwerte" #: ../java/src/net/i2p/router/web/GraphHelper.java:134 #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:416 @@ -2413,173 +2414,173 @@ msgstr "Zeichne neu" msgid "File location" msgstr "Ort der Datei" -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:75 +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:77 msgid "Network Database RouterInfo Lookup" msgstr "RouterInfo in der Netzwerkdatenbank anschauen" -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:90 +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:92 #: ../java/strings/Strings.java:68 msgid "Router" msgstr "Router" -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:90 +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:92 msgid "not found in network database" msgstr "nicht in der Netzwerkdatenbank gefunden" -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:102 -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:210 +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:104 +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:212 msgid "Network Database Contents" msgstr "Netzwerkdatenbank Inhalt" -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:103 +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:105 msgid "View RouterInfo" msgstr "RouterInfo anschauen" -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:104 +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:106 msgid "LeaseSets" msgstr "LeaseSets" -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:126 +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:128 msgid "LeaseSet" msgstr "LeaseSet" -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:128 +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:130 msgid "Local" msgstr "Lokal" -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:130 +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:132 msgid "Unpublished" msgstr "Unveröffentlicht" -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:131 -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:138 +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:133 +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:140 msgid "Destination" msgstr "Ziel" -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:148 +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:150 #, java-format msgid "Expires in {0}" msgstr "Wird in {0} ungültig" -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:150 +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:152 #, java-format msgid "Expired {0} ago" msgstr "Wurde vor {0} ungültig" -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:162 +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:164 #: ../java/src/net/i2p/router/web/TunnelRenderer.java:156 msgid "Gateway" msgstr "Schnittstelle" -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:162 +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:164 msgid "Lease" msgstr "Lease" -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:164 +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:166 msgid "Tunnel" msgstr "Tunnel" -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:210 +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:212 msgid "View LeaseSets" msgstr "Zeige die LeaseSets" -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:212 +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:214 msgid "Not initialized" msgstr "Nicht initialisiert" -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:221 +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:223 msgid "Routers" msgstr "Router" -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:223 +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:225 msgid "Show all routers" msgstr "Zeige alle Router" -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:225 +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:227 msgid "Show all routers with full stats" msgstr "Zeige alle Router mit kompletten Statistiken" -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:260 +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:262 msgid "Network Database Router Statistics" msgstr "Statistiken der Netzwerkdatenbank Router" -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:266 -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:280 -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:298 +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:268 +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:282 +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:300 msgid "Count" msgstr "Anzahl" -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:280 +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:282 msgid "Transports" msgstr "Transporte" -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:298 +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:300 msgid "Country" msgstr "Land" -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:330 +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:339 msgid "Our info" msgstr "Unsere Informationen" -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:332 +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:341 msgid "Peer info for" msgstr "Informationen über den Kontakt" -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:336 +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:345 msgid "Full entry" msgstr "Ganzer Eintrag" -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:342 +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:351 #: ../java/src/net/i2p/router/web/SummaryHelper.java:110 #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:600 msgid "Hidden" msgstr "Versteckt" -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:342 +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:351 msgid "Updated" msgstr "Aktualisiert" -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:343 -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:346 +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:352 +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:355 #, java-format msgid "{0} ago" msgstr "vor {0}" #. shouldnt happen -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:345 -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:349 +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:354 +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:358 msgid "Published" msgstr "Veröffentlicht" -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:351 +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:360 msgid "Address(es)" msgstr "Adresse(n)" -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:364 +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:373 msgid "cost" msgstr "Kosten" -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:388 +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:397 msgid "Hidden or starting up" msgstr "Versteckt oder Startphase" -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:388 +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:397 msgid "SSU" msgstr "SSU" -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:388 +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:397 msgid "SSU with introducers" msgstr "SSU mit Hilsrouter" -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:389 +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:398 msgid "NTCP" msgstr "NTCP" -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:389 +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:398 msgid "NTCP and SSU" msgstr "NTCP und SSU" -#: ../java/src/net/i2p/router/web/NetDbRenderer.java:389 +#: ../java/src/net/i2p/router/web/NetDbRenderer.java:398 msgid "NTCP and SSU with introducers" msgstr "NTCP und SSU mit Hilfsrouter" @@ -2815,7 +2816,7 @@ msgid "Failing" msgstr "Versagend" #: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:131 -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:264 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:281 msgid "Integrated" msgstr "Integriert" @@ -3064,227 +3065,239 @@ msgstr "Mittelwert der Maximalwerte" msgid "lifetime average value" msgstr "Durchschnitt über Lebenszeit" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:44 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:40 +msgid "I2P Router Help & FAQ" +msgstr "Hilfe zum I2P-Router & FAQ" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:42 +msgid "Help & FAQ" +msgstr "Hilfe & FAQ" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:54 msgid "Configure startup of clients and webapps (services); manually start dormant services" msgstr "Einstellungen zu Klienten und WebApplikationen (Services); manuelles Starten der ruhenden Services" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:46 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:56 msgid "I2P Services" msgstr "I2P Dienste" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:52 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:62 msgid "Manage your I2P hosts file here (I2P domain name resolution)" msgstr "Verwalten Sie Ihre I2P Adressen hier (I2P-Namensauflösung)" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:54 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:64 msgid "Addressbook" msgstr "Adressbuch" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:58 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:68 msgid "Built-in anonymous BitTorrent Client" msgstr "Integrierter anonymer BitTorrent Klient" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:60 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:70 msgid "Torrents" msgstr "BitTorrent" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:64 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:74 msgid "Anonymous webmail client" msgstr "Webmail-Klient für anonymes E-Mail" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:66 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:76 msgid "Webmail" msgstr "Webmail" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:70 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:80 msgid "Anonymous resident webserver" msgstr "Residenter anonymoer Webserver" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:72 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:82 msgid "Webserver" msgstr "Webserver" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:80 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:90 msgid "Configure I2P Router" msgstr "Konfiguration des I2P-Routers" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:82 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:92 msgid "I2P Internals" msgstr "I2P Interna" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:88 -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:357 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:98 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:374 msgid "View existing tunnels and tunnel build status" msgstr "Betrachte die existierenden Tunnel und den Status der Tunnelerstellung" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:94 -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:236 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:104 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:253 msgid "Show all current peer connections" msgstr "Zeige alle derzeitigen Verbindungen zu Teilnehmern" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:100 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:110 msgid "Show recent peer performance profiles" msgstr "Zeige aktuelle Performanceprofile der Kontakte" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:102 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:112 msgid "Profiles" msgstr "Profile" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:106 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:116 msgid "Show list of all known I2P routers" msgstr "Eine Liste aller bekannten I2P Router anzeigen" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:108 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:118 msgid "NetDB" msgstr "NetzDB" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:112 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:122 msgid "Health Report" msgstr "Report" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:114 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:124 msgid "Logs" msgstr "Berichte" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:124 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:134 msgid "Graph router performance" msgstr "Graphische Darstellung der Routerperformance" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:126 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:136 msgid "Graphs" msgstr "Graphen" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:130 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:140 msgid "Textual router performance statistics" msgstr "Routerperformance-Statistiken in Textform" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:136 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:146 #: ../java/src/net/i2p/router/web/SummaryHelper.java:365 msgid "Local Destinations" msgstr "Lokale Ziele" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:138 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:148 #: ../java/strings/Strings.java:62 msgid "I2PTunnel" msgstr "I2PTunnel" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:149 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:159 msgid "I2P Router Help" msgstr "Hilfe zum I2P-Router" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:151 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:161 msgid "General" msgstr "Grundsätzliches" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:154 -msgid "Your unique I2P router identity is" -msgstr "Ihre eindeutige I2P-Routeridentifikation ist" - -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:158 -msgid "never reveal it to anyone" -msgstr "verraten Sie sie niemanden!" - -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:160 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:166 msgid "Local Identity" msgstr "Lokale Identität" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:172 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:170 +msgid "Your unique I2P router identity is" +msgstr "Ihre eindeutige I2P-Routeridentifikation ist" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:174 +msgid "never reveal it to anyone" +msgstr "verraten Sie sie niemanden!" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:176 +msgid "show" +msgstr "zeige" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:187 msgid "How long we've been running for this session" msgstr "Wie lange ist der I2P Router aktiv seit letztem Neustart" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:175 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:190 msgid "Uptime" msgstr "Laufzeit" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:182 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:197 msgid "Help with configuring your firewall and router for optimal I2P performance" msgstr "Hilfe bei der Konfiguration Ihrer Firewall und Router für eine optimale Leistung von I2P" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:209 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:226 msgid "Download" msgstr "Download" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:218 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:235 msgid "Download Unsigned" msgstr "Unsigniertes Paket downloaden" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:244 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:261 msgid "Active" msgstr "Aktiv" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:252 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:269 msgid "Fast" msgstr "Schnell" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:258 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:275 msgid "High capacity" msgstr "Hohe Kapazität" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:270 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:287 msgid "Known" msgstr "Bekannt" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:285 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:302 msgid "Help with firewall configuration" msgstr "Hilfe mit der Firewalleinstellung" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:287 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:304 msgid "Check NAT/firewall" msgstr "Kontrolliere NAT / Firewall" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:307 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:324 msgid "Reseed" msgstr "Hole neue Kontaktinformationen" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:324 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:341 msgid "Configure router bandwidth allocation" msgstr "Konfigurieren der Bandbreitenzuweisung des Routers" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:326 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:343 msgid "Bandwidth in/out" msgstr "Bandbreite ein- / ausgehend" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:342 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:359 msgid "Total" msgstr "Total" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:349 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:366 msgid "Used" msgstr "Genutzt" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:364 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:381 msgid "Exploratory" msgstr "Erkundung" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:376 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:393 msgid "Participating" msgstr "Partizipierend" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:382 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:399 msgid "Share ratio" msgstr "Verhältnis fremde/eigene Tunnel" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:388 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:405 msgid "What's in the router's job queue?" msgstr "Was ist in der Aufgabenliste des Routers?" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:390 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:407 msgid "Congestion" msgstr "Staumeldungen" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:395 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:412 msgid "Job lag" msgstr "Aufgabenverzug" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:401 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:418 msgid "Message delay" msgstr "Meldungsverzug" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:407 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:424 msgid "Tunnel lag" msgstr "Tunnelverzug" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:413 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:430 msgid "Backlog" msgstr "Rückstau" @@ -3426,7 +3439,7 @@ msgstr "Jetzt" #: ../java/src/net/i2p/router/web/TunnelRenderer.java:41 #: ../java/src/net/i2p/router/web/TunnelRenderer.java:63 -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/logs_jsp.java:275 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/logs_jsp.java:280 msgid "configure" msgstr "ändere" @@ -3526,31 +3539,31 @@ msgstr "ausgehend" msgid "No tunnels; waiting for the grace period to end." msgstr "Keine Tunnel; warte bie die Gnadenfrist abgelaufen ist" -#: ../java/src/net/i2p/router/web/TunnelRenderer.java:218 +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:219 msgid "in" msgstr "ein" -#: ../java/src/net/i2p/router/web/TunnelRenderer.java:219 +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:220 msgid "out" msgstr "aus" -#: ../java/src/net/i2p/router/web/TunnelRenderer.java:236 +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:237 msgid "Tunnel Counts By Peer" msgstr "Anzahl der Tunnel nach Kontakten" -#: ../java/src/net/i2p/router/web/TunnelRenderer.java:237 +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:238 msgid "% of total" msgstr "% von allen" -#: ../java/src/net/i2p/router/web/TunnelRenderer.java:237 +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:238 msgid "Our Tunnels" msgstr "Unsere Tunnels" -#: ../java/src/net/i2p/router/web/TunnelRenderer.java:237 +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:238 msgid "Participating Tunnels" msgstr "Teilnehmende Tunnel" -#: ../java/src/net/i2p/router/web/TunnelRenderer.java:255 +#: ../java/src/net/i2p/router/web/TunnelRenderer.java:256 msgid "Totals" msgstr "Total" @@ -4999,15 +5012,15 @@ msgstr "Bitte berichten Sie über Fehler und Bugs auf Date: Thu, 8 Jul 2010 14:41:56 +0000 Subject: [PATCH 33/75] Dutch translation for RouterConsole sidebar labels --- apps/routerconsole/locale/messages_nl.po | 929 ++++++++++++++++------- 1 file changed, 662 insertions(+), 267 deletions(-) diff --git a/apps/routerconsole/locale/messages_nl.po b/apps/routerconsole/locale/messages_nl.po index a941d07dd..ffaa50d17 100644 --- a/apps/routerconsole/locale/messages_nl.po +++ b/apps/routerconsole/locale/messages_nl.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: I2P routerconsole\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-07-04 13:00+0000\n" +"POT-Creation-Date: 2010-07-08 14:29+0000\n" "PO-Revision-Date: 2010-07-04 15:04+0100\n" "Last-Translator: duck \n" "Language-Team: duck , monkeybrains \n" @@ -85,42 +85,51 @@ msgstr "Tunnels geaccepteerd" msgid "Rejecting tunnels" msgstr "Tunnels geweigerd" -#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:49 -msgid "Ensure that nothing blocks outbound HTTP, check logs and if nothing helps, read the FAQ about reseeding manually." -msgstr "Controlleer of uitgaand HTTP verkeer niet geblokkeerd wordt, kijk in de logs en wanneer niets anders helpt, zie de FAQ over handmatig reseeden." +#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:48 +msgid "" +"Ensure that nothing blocks outbound HTTP, check logs and if nothing helps, read the FAQ about reseeding manually." +msgstr "" +"Controlleer of uitgaand HTTP verkeer niet geblokkeerd wordt, kijk in de logs en wanneer niets anders helpt, " +"zie de FAQ over " +"handmatig reseeden." -#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:81 +#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:80 msgid "Reseeding" msgstr "Reseeden" -#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:145 +#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:144 msgid "Reseeding: fetching seed URL." msgstr "Reseed: opvragen seed URL." -#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:151 +#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:150 msgid "Last reseed failed fully (failed reading seed URL)." msgstr "Laatste reseed volledig gefaald (kan seed URL niet lezen)." -#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:177 +#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:176 msgid "Last reseed failed fully (no routerInfo URLs at seed URL)." msgstr "Laatste reseed volledig gefaald (geen routerInfo URLs op de seed URL)." -#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:190 +#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:189 #, java-format -msgid "Reseeding: fetching router info from seed URL ({0} successful, {1} errors)." -msgstr "Reseeden: opvragen router info van seed URL ({0} succesvol, {1} fouten)." +msgid "" +"Reseeding: fetching router info from seed URL ({0} successful, {1} errors)." +msgstr "" +"Reseeden: opvragen router info van seed URL ({0} succesvol, {1} fouten)." -#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:211 +#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:210 #, java-format msgid "Last reseed failed partly ({0}% of {1})." msgstr "Laatste reseed gedeeltelijk gefaald ({0}% van {1})." -#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:216 +#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:215 #, java-format msgid "Last reseed failed ({0}% of {1})." msgstr "Laatste reseed gefaald ({0}% van {1})." -#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:226 +#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:225 msgid "Last reseed failed fully (exception caught)." msgstr "Laatste reseed volledig gefaald (exception opgetreden)." @@ -183,11 +192,15 @@ msgstr "Uitgaande connectie" #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:535 msgid "They offered to introduce us (help other peers traverse our firewall)" -msgstr "Ze hebben aangeboden ons te introduceren (helpt andere peers om door onze firewall te komen)" +msgstr "" +"Ze hebben aangeboden ons te introduceren (helpt andere peers om door onze " +"firewall te komen)" #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:537 msgid "We offered to introduce them (help other peers traverse their firewall)" -msgstr "We hebben aangeboden ze te introduceren (helpt andere peers om door hun firewall te komen)" +msgstr "" +"We hebben aangeboden ze te introduceren (helpt andere peers om door hun " +"firewall te komen)" #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:538 msgid "How long since a packet has been received / sent" @@ -208,7 +221,8 @@ msgstr "In/Uit" #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:539 msgid "The smoothed inbound / outbound transfer rate (KBytes per second)" -msgstr "De afgevlakte inkomende / uitgaande overdrachtsnelheid (KBytes per seconde)" +msgstr "" +"De afgevlakte inkomende / uitgaande overdrachtsnelheid (KBytes per seconde)" #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:540 msgid "How long ago this connection was established" @@ -231,8 +245,12 @@ msgid "The difference between the peer's clock and your own" msgstr "Het verschil tussen de klok van de peer en je eigen" #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:542 -msgid "The congestion window, which is how many bytes can be sent without an acknowledgement" -msgstr "Het congestion window, hoeveel bytes verzonden kunnen worden zonder een bevestiging" +msgid "" +"The congestion window, which is how many bytes can be sent without an " +"acknowledgement" +msgstr "" +"Het congestion window, hoeveel bytes verzonden kunnen worden zonder een " +"bevestiging" #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:543 msgid "The number of sent messages awaiting acknowledgement" @@ -244,7 +262,9 @@ msgstr "Het maximum aantal berichten om gelijktijdig te verzenden" #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:545 msgid "The number of pending sends which exceed congestion window" -msgstr "Het aantal wachtende uitgaande berichten dat het congestion window overschrijdt" +msgstr "" +"Het aantal wachtende uitgaande berichten dat het congestion window " +"overschrijdt" #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:546 msgid "The slow start threshold" @@ -268,8 +288,12 @@ msgid "The retransmit timeout in milliseconds" msgstr "De herzend time-out in milliseconden" #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:550 -msgid "Current maximum send packet size / estimated maximum receive packet size (bytes)" -msgstr "Huidige maximum verzonden pakket grootte / verwachte maximimum ontvangen pakket grootte (bytes)" +msgid "" +"Current maximum send packet size / estimated maximum receive packet size " +"(bytes)" +msgstr "" +"Huidige maximum verzonden pakket grootte / verwachte maximimum ontvangen " +"pakket grootte (bytes)" #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:551 #: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:721 @@ -1372,8 +1396,7 @@ msgstr "Saint Vincent en de Grenadines" msgid "Venezuela" msgstr "Venezuela" -#: ../java/build/Countries.java:229 -#: ../java/build/Countries.java:230 +#: ../java/build/Countries.java:229 ../java/build/Countries.java:230 msgid "Virgin Islands" msgstr "Virgin-eilanden" @@ -1432,8 +1455,12 @@ msgstr "Configuratie succesvol opgeslagen" #: ../java/src/net/i2p/router/web/ConfigAdvancedHandler.java:71 #: ../java/src/net/i2p/router/web/ConfigNetHandler.java:268 -msgid "Error saving the configuration (applied but not saved) - please see the error logs" -msgstr "Fout bij opslaan van de configuratie (toegepast, maar niet opgeslagen) - kijk in de fout logs" +msgid "" +"Error saving the configuration (applied but not saved) - please see the " +"error logs" +msgstr "" +"Fout bij opslaan van de configuratie (toegepast, maar niet opgeslagen) - " +"kijk in de fout logs" #: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:34 #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:334 @@ -1492,7 +1519,8 @@ msgid "New client added" msgstr "Nieuwe client toegevoegd" #: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:188 -msgid "Client configuration saved successfully - restart required to take effect." +msgid "" +"Client configuration saved successfully - restart required to take effect." msgstr "Client configuratie succesvol opgeslagen - herstart nodig" #: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:202 @@ -1503,7 +1531,7 @@ msgstr "Foute client index." #: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:207 #: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:218 #: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:38 -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:374 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:387 #: ../java/src/net/i2p/router/web/SummaryHelper.java:379 msgid "Client" msgstr "Client" @@ -1613,7 +1641,7 @@ msgstr "Plugin" #: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:95 #: ../java/src/net/i2p/router/web/NetDbRenderer.java:268 -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:169 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:180 msgid "Version" msgstr "Versie" @@ -1653,8 +1681,8 @@ msgstr "Controlleer op updates" #: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:197 #: ../java/src/net/i2p/router/web/ConfigNavHelper.java:18 -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:217 -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:224 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:230 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:237 msgid "Update" msgstr "Update" @@ -1712,12 +1740,19 @@ msgid "Invalid destination" msgstr "Ongeldige bestemming" #: ../java/src/net/i2p/router/web/ConfigLoggingHelper.java:46 -msgid "Add additional logging statements above. Example: net.i2p.router.tunnel=WARN" -msgstr "Voeg additionele logging regels boven toe. Bijvoorbeeld: net.i2p.router.tunnel=WARN" +msgid "" +"Add additional logging statements above. Example: net.i2p.router.tunnel=WARN" +msgstr "" +"Voeg additionele logging regels boven toe. Bijvoorbeeld: net.i2p.router." +"tunnel=WARN" #: ../java/src/net/i2p/router/web/ConfigLoggingHelper.java:47 -msgid "Or put entries in the logger.config file. Example: logger.record.net.i2p.router.tunnel=WARN" -msgstr "Of stop regels in het logger.config bestand. Bijvoorbeeld: logger.record.net.i2p.router.tunnel=WARN" +msgid "" +"Or put entries in the logger.config file. Example: logger.record.net.i2p." +"router.tunnel=WARN" +msgstr "" +"Of stop regels in het logger.config bestand. Bijvoorbeeld: logger.record.net." +"i2p.router.tunnel=WARN" #: ../java/src/net/i2p/router/web/ConfigLoggingHelper.java:48 msgid "Valid levels are DEBUG, INFO, WARN, ERROR, CRIT" @@ -1744,6 +1779,7 @@ msgid "WARN" msgstr "WARN" #: ../java/src/net/i2p/router/web/ConfigNavHelper.java:18 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:199 msgid "Network" msgstr "Netwerk" @@ -1752,8 +1788,8 @@ msgid "Service" msgstr "Service" #: ../java/src/net/i2p/router/web/ConfigNavHelper.java:18 -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:94 -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:363 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:100 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:376 #: ../java/strings/Strings.java:72 msgid "Tunnels" msgstr "Tunnels" @@ -1776,15 +1812,15 @@ msgid "Logging" msgstr "Logging" #: ../java/src/net/i2p/router/web/ConfigNavHelper.java:19 -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:100 -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:242 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:106 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:255 #: ../java/strings/Strings.java:67 msgid "Peers" msgstr "Peers" #: ../java/src/net/i2p/router/web/ConfigNavHelper.java:19 #: ../java/src/net/i2p/router/web/NetDbRenderer.java:382 -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:136 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:142 msgid "Stats" msgstr "Statistieken" @@ -2140,8 +2176,12 @@ msgid "Failed to update the stat filter and location" msgstr "Kan de statistiek filter en locatie niet updaten" #: ../java/src/net/i2p/router/web/ConfigStatsHandler.java:121 -msgid "Graph list updated, may take up to 60s to be reflected here and on the Graphs Page" -msgstr "Grafiek lijst geupdate, kan 60s duren voordat dit op deze plek en de Grafiek Pagina door komt" +msgid "" +"Graph list updated, may take up to 60s to be reflected here and on the Graphs Page" +msgstr "" +"Grafiek lijst geupdate, kan 60s duren voordat dit op deze plek en de Grafiek Pagina door komt" #. the count isn't really correct anyway, since we don't check for actual changes #. addFormNotice("Updated settings for " + updated + " pools."); @@ -2155,8 +2195,12 @@ msgstr "Exploratory tunnel configuratie succesvol opgeslagen." #: ../java/src/net/i2p/router/web/ConfigTunnelsHandler.java:144 #: ../java/src/net/i2p/router/web/ConfigUIHandler.java:36 -msgid "Error saving the configuration (applied but not saved) - please see the error logs." -msgstr "Fout bij opslaan van de configuratie (toegepast maar niet opgeslagen) - kijk in de fout logs." +msgid "" +"Error saving the configuration (applied but not saved) - please see the " +"error logs." +msgstr "" +"Fout bij opslaan van de configuratie (toegepast maar niet opgeslagen) - kijk " +"in de fout logs." #. * dummies for translation #: ../java/src/net/i2p/router/web/ConfigTunnelsHelper.java:14 @@ -2330,8 +2374,12 @@ msgid "Download, verify, and restart" msgstr "Download, controlleer en herstart" #: ../java/src/net/i2p/router/web/FormHandler.java:163 -msgid "Invalid form submission, probably because you used the 'back' or 'reload' button on your browser. Please resubmit." -msgstr "Ongeldig formulier verzonden, mogelijk omdat je de 'terug' of 'vernieuw' knop in je browser hebt gebruikt. Probeer opnieuw te verzenden." +msgid "" +"Invalid form submission, probably because you used the 'back' or 'reload' " +"button on your browser. Please resubmit." +msgstr "" +"Ongeldig formulier verzonden, mogelijk omdat je de 'terug' of 'vernieuw' " +"knop in je browser hebt gebruikt. Probeer opnieuw te verzenden." #: ../java/src/net/i2p/router/web/GraphHelper.java:82 msgid "Combined bandwidth graph" @@ -2686,8 +2734,12 @@ msgid "This plugin requires Java version {0} or higher" msgstr "Deze plugin heeft Java versie {0} of hoger nodig" #: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:280 -msgid "Downloaded plugin is for new installs only, but the plugin is already installed" -msgstr "De gedownloaded plugin is alleen voor nieuwe installaties, maar de plugin is al geïnstalleerd" +msgid "" +"Downloaded plugin is for new installs only, but the plugin is already " +"installed" +msgstr "" +"De gedownloaded plugin is alleen voor nieuwe installaties, maar de plugin is " +"al geïnstalleerd" #: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:292 msgid "Installed plugin does not contain the required configuration file" @@ -2695,12 +2747,15 @@ msgstr "De geïnstalleerde plugin bevat het vereiste configuratie bestand niet" #: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:300 msgid "Signature of downloaded plugin does not match installed plugin" -msgstr "De handtekening van de gedownloade plugin komt niet overeen met de geïnstalleerde plugin" +msgstr "" +"De handtekening van de gedownloade plugin komt niet overeen met de " +"geïnstalleerde plugin" #: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:307 #, java-format msgid "Downloaded plugin version {0} is not newer than installed plugin" -msgstr "De gedownloade plugin versie {0} is niet nieuwer dan de geïnstalleerde plugin" +msgstr "" +"De gedownloade plugin versie {0} is niet nieuwer dan de geïnstalleerde plugin" #: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:314 #, java-format @@ -2714,7 +2769,8 @@ msgstr "Plugin update vereist de installatie van plugin versie {0} of lager" #: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:338 msgid "Plugin is for upgrades only, but the plugin is not installed" -msgstr "De plugin is alleen voor upgrades, maar de plugin is niet geïnstalleerd" +msgstr "" +"De plugin is alleen voor upgrades, maar de plugin is niet geïnstalleerd" #: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:351 #, java-format @@ -2813,7 +2869,7 @@ msgid "Failing" msgstr "Gefaald" #: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:131 -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:268 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:281 msgid "Integrated" msgstr "Geïntegreerd" @@ -2929,8 +2985,12 @@ msgid "caps" msgstr "caps" #: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:260 -msgid "peak throughput (bytes per second) over a 1 minute period that the peer has sustained in a single tunnel" -msgstr "piek doorvoer (bytes per seconde) over een 1 minuut periode zoals de peer heeft ondervonden in een enkele tunnel" +msgid "" +"peak throughput (bytes per second) over a 1 minute period that the peer has " +"sustained in a single tunnel" +msgstr "" +"piek doorvoer (bytes per seconde) over een 1 minuut periode zoals de peer " +"heeft ondervonden in een enkele tunnel" #: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:260 msgid "speed" @@ -2942,7 +3002,8 @@ msgstr "capaciteit" #: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:261 msgid "how many tunnels can we ask them to join in an hour?" -msgstr "hoeveel tunnels kunnen we ze vragen om zich in een uur bij aan te sluiten?" +msgstr "" +"hoeveel tunnels kunnen we ze vragen om zich in een uur bij aan te sluiten?" #: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:262 msgid "how many new peers have they told us about lately?" @@ -3022,8 +3083,12 @@ msgid "Statistics gathered during this router's uptime" msgstr "Statistieken verzameld gedurende de uptime van deze router" #: ../java/src/net/i2p/router/web/StatsGenerator.java:62 -msgid "The data gathered is quantized over a 1 minute period, so should just be used as an estimate." -msgstr "De verzamelde data is gekwantiseerd over een 1 minuut peiode, dit is dus slechts een schatting." +msgid "" +"The data gathered is quantized over a 1 minute period, so should just be " +"used as an estimate." +msgstr "" +"De verzamelde data is gekwantiseerd over een 1 minuut peiode, dit is dus " +"slechts een schatting." #: ../java/src/net/i2p/router/web/StatsGenerator.java:108 msgid "frequency" @@ -3062,227 +3127,246 @@ msgstr "piek gemiddelde" msgid "lifetime average value" msgstr "levenslange gemiddelde waarde" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:48 -msgid "Configure startup of clients and webapps (services); manually start dormant services" -msgstr "Configureer de opstart van clients en webapps (services); start sluimerende services handmatig" +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:40 +msgid "I2P Router Help & FAQ" +msgstr "I2P Router Hulp & FAQ" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:50 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:42 +msgid "Help & FAQ" +msgstr "Hulp & FAQ" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:54 +msgid "" +"Configure startup of clients and webapps (services); manually start dormant " +"services" +msgstr "" +"Configureer de opstart van clients en webapps (services); start sluimerende " +"services handmatig" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:56 msgid "I2P Services" msgstr "I2P Services" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:56 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:62 msgid "Manage your I2P hosts file here (I2P domain name resolution)" msgstr "Beheer je I2P hosts bestand hier (I2P domeinnaam bepaling)" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:58 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:64 msgid "Addressbook" msgstr "Adresboek" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:62 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:68 msgid "Built-in anonymous BitTorrent Client" msgstr "Ingebouwde anonieme BitTorrent Client" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:64 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:70 msgid "Torrents" msgstr "Torrents" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:68 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:74 msgid "Anonymous webmail client" msgstr "Anonieme webmail client" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:70 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:76 msgid "Webmail" msgstr "Webmail" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:74 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:80 msgid "Anonymous resident webserver" msgstr "Anonieme ingebouwde webserver" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:76 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:82 msgid "Webserver" msgstr "Webserver" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:84 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:90 msgid "Configure I2P Router" msgstr "Configureer I2P Router" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:86 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:92 msgid "I2P Internals" msgstr "I2P Intern" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:92 -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:361 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:98 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:374 msgid "View existing tunnels and tunnel build status" msgstr "Bekijk bestaande tunnels en tunnel opbouw status" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:98 -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:240 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:104 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:253 msgid "Show all current peer connections" msgstr "Toon alle huidige peer connecties" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:104 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:110 msgid "Show recent peer performance profiles" msgstr "Toon recente peer prestatie profielen" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:106 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:112 msgid "Profiles" msgstr "Profielen" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:110 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:116 msgid "Show list of all known I2P routers" msgstr "Toon lijst met alle bekende I2P routers" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:112 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:118 msgid "NetDB" msgstr "NetDB" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:116 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:122 msgid "Health Report" msgstr "Gezondheids Rapport" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:118 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:124 msgid "Logs" msgstr "Logs" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:128 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:134 msgid "Graph router performance" msgstr "Grafieken router prestatie" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:130 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:136 msgid "Graphs" msgstr "Grafieken" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:134 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:140 msgid "Textual router performance statistics" msgstr "Tekstuele router prestatie statistieken" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:140 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:146 #: ../java/src/net/i2p/router/web/SummaryHelper.java:365 msgid "Local Destinations" msgstr "Lokale Bestemmingen" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:142 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:148 #: ../java/strings/Strings.java:62 msgid "I2PTunnel" msgstr "I2PTunnel" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:153 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:159 msgid "I2P Router Help" msgstr "I2P Router Hulp" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:155 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:161 msgid "General" msgstr "Algemeen" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:158 -msgid "Your unique I2P router identity is" -msgstr "Je unique I2P router identiteit is" - -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:162 -msgid "never reveal it to anyone" -msgstr "vertel dit aan niemand" - -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:164 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:166 msgid "Local Identity" msgstr "Lokale Identiteit" +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:170 +msgid "Your unique I2P router identity is" +msgstr "Je unique I2P router identiteit is" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:174 +msgid "never reveal it to anyone" +msgstr "vertel dit aan niemand" + #: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:176 +msgid "show" +msgstr "toon" + +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:187 msgid "How long we've been running for this session" msgstr "Hoe lang draaien we al voor deze sessie" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:179 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:190 msgid "Uptime" msgstr "Uptime" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:186 -msgid "Help with configuring your firewall and router for optimal I2P performance" -msgstr "Hulp bij het configureren van je firewall en router voor optimale I2P prestatie" +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:197 +msgid "" +"Help with configuring your firewall and router for optimal I2P performance" +msgstr "" +"Hulp bij het configureren van je firewall en router voor optimale I2P " +"prestatie" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:213 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:226 msgid "Download" msgstr "Download" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:222 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:235 msgid "Download Unsigned" msgstr "Download Niet-ondertekend" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:248 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:261 msgid "Active" msgstr "Actief" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:256 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:269 msgid "Fast" msgstr "Snel" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:262 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:275 msgid "High capacity" msgstr "Grote capaciteit" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:274 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:287 msgid "Known" msgstr "Bekend" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:289 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:302 msgid "Help with firewall configuration" msgstr "Hulp met firewall configuratie" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:291 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:304 msgid "Check NAT/firewall" msgstr "Controlleer NAT/firewall" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:311 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:324 msgid "Reseed" msgstr "Reseed" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:328 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:341 msgid "Configure router bandwidth allocation" msgstr "Configureer router bandbreedte toewijzing" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:330 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:343 msgid "Bandwidth in/out" msgstr "Bandbreedte in/uit" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:346 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:359 msgid "Total" msgstr "Totaal" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:353 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:366 msgid "Used" msgstr "Gebruikt" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:368 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:381 msgid "Exploratory" msgstr "Onderzoekend" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:380 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:393 msgid "Participating" msgstr "Deelnemend" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:386 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:399 msgid "Share ratio" msgstr "Share rato" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:392 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:405 msgid "What's in the router's job queue?" msgstr "Wat is er in de taken wachtrij van de router?" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:394 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:407 msgid "Congestion" msgstr "Verstopping" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:399 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:412 msgid "Job lag" msgstr "Taak vertraging" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:405 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:418 msgid "Message delay" msgstr "Bericht vertraging" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:411 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:424 msgid "Tunnel lag" msgstr "Tunnel vertraging" -#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:417 +#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:430 msgid "Backlog" msgstr "Achterstand" @@ -3326,7 +3410,9 @@ msgid "Firewalled" msgstr "Firewall" #: ../java/src/net/i2p/router/web/SummaryHelper.java:130 -msgid "ERR-UDP Port In Use - Set i2np.udp.internalPort=xxxx in advanced config and restart" +msgid "" +"ERR-UDP Port In Use - Set i2np.udp.internalPort=xxxx in advanced config and " +"restart" msgstr "ERR-UDP Poort in Gebruik" #: ../java/src/net/i2p/router/web/SummaryHelper.java:136 @@ -3348,7 +3434,8 @@ msgstr "Testen" #: ../java/src/net/i2p/router/web/SummaryHelper.java:365 msgid "Add/remove/edit & control your client and server tunnels" -msgstr "Toevoegen/verwijderen/wijzigen & beheer je client en server tunnels" +msgstr "" +"Toevoegen/verwijderen/wijzigen & beheer je client en server tunnels" #: ../java/src/net/i2p/router/web/SummaryHelper.java:377 msgid "Server" @@ -3928,8 +4015,12 @@ msgid "Bandwidth limiter" msgstr "Bandbreedte beperker" #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:299 -msgid "I2P will work best if you configure your rates to match the speed of your internet connection." -msgstr "I2P zal beter werken wanneer je de configuratie van de bandbreedte afstemt met de snelheid van je internet verbinding." +msgid "" +"I2P will work best if you configure your rates to match the speed of your " +"internet connection." +msgstr "" +"I2P zal beter werken wanneer je de configuratie van de bandbreedte afstemt " +"met de snelheid van je internet verbinding." #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:303 msgid "KBps In" @@ -3959,12 +4050,19 @@ msgid "I2P requires at least 12KBps to enable sharing. " msgstr "I2P vereist tenminste 12KBps om sharing in te schakelen." #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:346 -msgid "Please enable sharing (participating in tunnels) by configuring more bandwidth. " -msgstr "Schakel sharing in (deelname aan tunnels) door meer bandbreedte toe te kennen." +msgid "" +"Please enable sharing (participating in tunnels) by configuring more " +"bandwidth. " +msgstr "" +"Schakel sharing in (deelname aan tunnels) door meer bandbreedte toe te " +"kennen." #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:347 -msgid "It improves your anonymity by creating cover traffic, and helps the network." -msgstr "Het verbeterd je anonimiteit door camouflage verkeer te genereren en help het netwerk." +msgid "" +"It improves your anonymity by creating cover traffic, and helps the network." +msgstr "" +"Het verbeterd je anonimiteit door camouflage verkeer te genereren en help " +"het netwerk." #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:350 #, java-format @@ -3972,8 +4070,12 @@ msgid "You have configured I2P to share {0} KBps." msgstr "Je hebt I2P geconfigureerd om {0} KBps te delen." #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:353 -msgid "The higher the share bandwidth the more you improve your anonymity and help the network." -msgstr "Hoe meer bandbreedte je deelt, des te meer je anonimiteit verbeterd en je het netwerk helpt." +msgid "" +"The higher the share bandwidth the more you improve your anonymity and help " +"the network." +msgstr "" +"Hoe meer bandbreedte je deelt, des te meer je anonimiteit verbeterd en je " +"het netwerk helpt." #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:357 #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:513 @@ -4059,8 +4161,12 @@ msgid "Action when IP changes" msgstr "Actie wanneer IP wijzigd" #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:438 -msgid "Laptop mode - Change router identity and UDP port when IP changes for enhanced anonymity" -msgstr "Laptop modus - Wijzig router identiteit en UDP poort wanneeer IP wijzigd for meer anonimiteit" +msgid "" +"Laptop mode - Change router identity and UDP port when IP changes for " +"enhanced anonymity" +msgstr "" +"Laptop modus - Wijzig router identiteit en UDP poort wanneeer IP wijzigd for " +"meer anonimiteit" #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:440 msgid "Experimental" @@ -4104,8 +4210,11 @@ msgid "Completely disable" msgstr "Schakel volledig uit" #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:490 -msgid "(select only if behind a firewall that throttles or blocks outbound TCP)" -msgstr "(selecteer alleen wanneer je achter een firewall zit dat uitgaand TCP beperkt of blokkeert)" +msgid "" +"(select only if behind a firewall that throttles or blocks outbound TCP)" +msgstr "" +"(selecteer alleen wanneer je achter een firewall zit dat uitgaand TCP " +"beperkt of blokkeert)" #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:492 msgid "Externally reachable TCP port" @@ -4135,28 +4244,52 @@ msgstr "Configuratie Help" #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:519 #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:568 -msgid "While I2P will work fine behind most firewalls, your speeds and network integration will generally improve if the I2P port is forwarded for both UDP and TCP." -msgstr "Alhoewel I2P zal werken achter de meeste firewalls, zal de snelheid en netwerk integratie doorgaans verbeteren wanneer de I2P poort is geforward voor zowel UDP als TCP." +msgid "" +"While I2P will work fine behind most firewalls, your speeds and network " +"integration will generally improve if the I2P port is forwarded for both UDP " +"and TCP." +msgstr "" +"Alhoewel I2P zal werken achter de meeste firewalls, zal de snelheid en " +"netwerk integratie doorgaans verbeteren wanneer de I2P poort is geforward " +"voor zowel UDP als TCP." #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:521 -msgid "If you can, please poke a hole in your firewall to allow unsolicited UDP and TCP packets to reach you." -msgstr "Indien mogelijk, probeer een opening in je firewall te maken om nieuwe UDP en TCP pakketten binnen te laten." +msgid "" +"If you can, please poke a hole in your firewall to allow unsolicited UDP and " +"TCP packets to reach you." +msgstr "" +"Indien mogelijk, probeer een opening in je firewall te maken om nieuwe UDP " +"en TCP pakketten binnen te laten." #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:523 -msgid "If you can't, I2P supports UPnP (Universal Plug and Play) and UDP hole punching with \"SSU introductions\" to relay traffic." -msgstr "Indien dit niet mogelijk is, I2P ondersteunt UPnP (Universal Plug en Play) en UDP perforatie met \"SSU introducties\" om verkeer te herleiden." +msgid "" +"If you can't, I2P supports UPnP (Universal Plug and Play) and UDP hole " +"punching with \"SSU introductions\" to relay traffic." +msgstr "" +"Indien dit niet mogelijk is, I2P ondersteunt UPnP (Universal Plug en Play) " +"en UDP perforatie met \"SSU introducties\" om verkeer te herleiden." #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:525 -msgid "Most of the options above are for special situations, for example where UPnP does not work correctly, or a firewall not under your control is doing harm." -msgstr "De meeste bovenstaande opties zijn voor speciale situaties, bijvoorbeeld wanneer UPnP niet correct werkt, of wanneer firewall buiten je beheer in de weg zit." +msgid "" +"Most of the options above are for special situations, for example where UPnP " +"does not work correctly, or a firewall not under your control is doing harm." +msgstr "" +"De meeste bovenstaande opties zijn voor speciale situaties, bijvoorbeeld " +"wanneer UPnP niet correct werkt, of wanneer firewall buiten je beheer in de " +"weg zit." #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:527 msgid "Certain firewalls such as symmetric NATs may not work well with I2P." -msgstr "Bepaalde firewalls zoals symmetrische NATs werken mogelijk niet goed met I2P." +msgstr "" +"Bepaalde firewalls zoals symmetrische NATs werken mogelijk niet goed met I2P." #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:536 -msgid "UPnP is used to communicate with Internet Gateway Devices (IGDs) to detect the external IP address and forward ports." -msgstr "UPnP is gebruikt om te communiceren met Internet Gateway Devices (IGDs) om het externe IP adres te detecteren en poorten door te sturen." +msgid "" +"UPnP is used to communicate with Internet Gateway Devices (IGDs) to detect " +"the external IP address and forward ports." +msgstr "" +"UPnP is gebruikt om te communiceren met Internet Gateway Devices (IGDs) om " +"het externe IP adres te detecteren en poorten door te sturen." #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:538 msgid "UPnP support is beta, and may not work for any number of reasons" @@ -4191,24 +4324,37 @@ msgid "Review the UPnP status here." msgstr "Bekijk de UPnP status hier." #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:554 -msgid "UPnP may be enabled or disabled above, but a change requires a router restart to take effect." -msgstr "UPnP kan hierboven in- en uitgeschakeld worden, maar na een wijziging is een router herstart nodig." +msgid "" +"UPnP may be enabled or disabled above, but a change requires a router " +"restart to take effect." +msgstr "" +"UPnP kan hierboven in- en uitgeschakeld worden, maar na een wijziging is een " +"router herstart nodig." #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:556 msgid "Hostnames entered above will be published in the network database." -msgstr "Hierboven ingevulde hostnames zullen worden gepubliceerd in de netwerk database." +msgstr "" +"Hierboven ingevulde hostnames zullen worden gepubliceerd in de netwerk " +"database." #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:558 msgid "They are not private." msgstr "Deze zijn niet privé." #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:560 -msgid "Also, do not enter a private IP address like 127.0.0.1 or 192.168.1.1." -msgstr "Tevens, vul geen privé IP addres in zoals 127.0.0.1 of 192.168.1.1." +msgid "" +"Also, do not enter a private IP address like 127.0.0.1 or 192.168.1.1." +msgstr "" +"Tevens, vul geen privé IP addres in zoals 127.0.0.1 of 192.168.1.1." #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:562 -msgid "If you specify the wrong IP address or hostname, or do not properly configure your NAT or firewall, your network performance will degrade substantially." -msgstr "Als je het verkeerde IP adres of hostnaam invult, of je NAT of firewall niet goed te configureert, zal je netwerk prestaties aanzienlijk verslechteren." +msgid "" +"If you specify the wrong IP address or hostname, or do not properly " +"configure your NAT or firewall, your network performance will degrade " +"substantially." +msgstr "" +"Als je het verkeerde IP adres of hostnaam invult, of je NAT of firewall niet " +"goed te configureert, zal je netwerk prestaties aanzienlijk verslechteren." #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:564 msgid "When in doubt, leave the settings at the defaults." @@ -4219,12 +4365,23 @@ msgid "Reachability Help" msgstr "Bereikbaarheids Help" #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:571 -msgid "If you think you have opened up your firewall and I2P still thinks you are firewalled, remember that you may have multiple firewalls, for example both software packages and external hardware routers." -msgstr "Wanneer je denkt dat je je firewall open hebt gezet maar I2P nog steeds zegt dat je achter een firewall zit, bedenk dan dat je mogelijk meerdere firewalls hebt, bijvoorbeeld zowel als software pakket en een externe hardware router." +msgid "" +"If you think you have opened up your firewall and I2P still thinks you are " +"firewalled, remember that you may have multiple firewalls, for example both " +"software packages and external hardware routers." +msgstr "" +"Wanneer je denkt dat je je firewall open hebt gezet maar I2P nog steeds zegt " +"dat je achter een firewall zit, bedenk dan dat je mogelijk meerdere " +"firewalls hebt, bijvoorbeeld zowel als software pakket en een externe " +"hardware router." #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:574 -msgid "If there is an error, the logs may also help diagnose the problem." -msgstr "Indien er een fout is zijn de logs mogelijk hulpvol om het probleem te onderzoeken." +msgid "" +"If there is an error, the logs may also help " +"diagnose the problem." +msgstr "" +"Indien er een fout is zijn de logs mogelijk hulpvol " +"om het probleem te onderzoeken." #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:578 msgid "Your UDP port does not appear to be firewalled." @@ -4235,72 +4392,129 @@ msgid "Your UDP port appears to be firewalled." msgstr "Je UDP poort lijkt achter een firewall te zitten." #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:584 -msgid "As the firewall detection methods are not 100% reliable, this may occasionally be displayed in error." -msgstr "Omdat de firewall detectie methode niet 100% betrouwbaar is, kan dit soms foutief getoond worden." +msgid "" +"As the firewall detection methods are not 100% reliable, this may " +"occasionally be displayed in error." +msgstr "" +"Omdat de firewall detectie methode niet 100% betrouwbaar is, kan dit soms " +"foutief getoond worden." #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:586 -msgid "However, if it appears consistently, you should check whether both your external and internal firewalls are open for your port." -msgstr "Indien dit echter consistent optreedt, controlleer in zowel externe als interne firewalls of de poort wel geopend is." +msgid "" +"However, if it appears consistently, you should check whether both your " +"external and internal firewalls are open for your port." +msgstr "" +"Indien dit echter consistent optreedt, controlleer in zowel externe als " +"interne firewalls of de poort wel geopend is." #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:588 -msgid "I2P will work fine when firewalled, there is no reason for concern. When firewalled, the router uses \"introducers\" to relay inbound connections." -msgstr "Geen paniek, I2P zal werken achter een firewall. Wanneer dit het geval is maakt de router gebruik van \"introducers\" om inkomende connecties door te sturen." +msgid "" +"I2P will work fine when firewalled, there is no reason for concern. When " +"firewalled, the router uses \"introducers\" to relay inbound connections." +msgstr "" +"Geen paniek, I2P zal werken achter een firewall. Wanneer dit het geval is " +"maakt de router gebruik van \"introducers\" om inkomende connecties door te " +"sturen." #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:590 -msgid "However, you will get more participating traffic and help the network more if you can open your firewall(s)." -msgstr "Je krijgt meer deelnemend verkeer en helpt het netwerk meer door de firewall(s) te openen." +msgid "" +"However, you will get more participating traffic and help the network more " +"if you can open your firewall(s)." +msgstr "" +"Je krijgt meer deelnemend verkeer en helpt het netwerk meer door de firewall" +"(s) te openen." #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:592 -msgid "If you think you have already done so, remember that you may have both a hardware and a software firewall, or be behind an additional, institutional firewall you cannot control." -msgstr "Indien je van mening bent dat je dit al hebt gedaan, bedenk dat er zowel een hardware als software firewall kan zijn, of dat er een additionele firewall (universiteit, provider, etc) kan zijn waar je geen invloed op hebt." +msgid "" +"If you think you have already done so, remember that you may have both a " +"hardware and a software firewall, or be behind an additional, institutional " +"firewall you cannot control." +msgstr "" +"Indien je van mening bent dat je dit al hebt gedaan, bedenk dat er zowel een " +"hardware als software firewall kan zijn, of dat er een additionele firewall " +"(universiteit, provider, etc) kan zijn waar je geen invloed op hebt." #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:594 -msgid "Also, some routers cannot correctly forward both TCP and UDP on a single port, or may have other limitations or bugs that prevent them from passing traffic through to I2P." -msgstr "Tevens hebben sommige routers moeite om zowel TCP als UDP op dezelfde poort correct door te laten, of hebben andere beperkingen of bugs die voorkomen dat I2P verkeer goed doorkomt." +msgid "" +"Also, some routers cannot correctly forward both TCP and UDP on a single " +"port, or may have other limitations or bugs that prevent them from passing " +"traffic through to I2P." +msgstr "" +"Tevens hebben sommige routers moeite om zowel TCP als UDP op dezelfde poort " +"correct door te laten, of hebben andere beperkingen of bugs die voorkomen " +"dat I2P verkeer goed doorkomt." #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:598 msgid "The router is currently testing whether your UDP port is firewalled." msgstr "De router test op dit moment of je UDP poort achter een firewall is." #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:602 -msgid "The router is not configured to publish its address, therefore it does not expect incoming connections." -msgstr "De router is niet geconfigureerd om zijn adres te publiceren, daarom verwacht het geen inkomende verbindingen." +msgid "" +"The router is not configured to publish its address, therefore it does not " +"expect incoming connections." +msgstr "" +"De router is niet geconfigureerd om zijn adres te publiceren, daarom " +"verwacht het geen inkomende verbindingen." #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:604 msgid "WARN - Firewalled and Fast" msgstr "WARN - Firewall en Snel" #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:606 -msgid "You have configured I2P to share more than 128KBps of bandwidth, but you are firewalled." -msgstr "Je hebt I2P geconfigureerd om meer dan 128KBps aan bandbreedte te delen, maar je zit achter een firewall." +msgid "" +"You have configured I2P to share more than 128KBps of bandwidth, but you are " +"firewalled." +msgstr "" +"Je hebt I2P geconfigureerd om meer dan 128KBps aan bandbreedte te delen, " +"maar je zit achter een firewall." #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:608 -msgid "While I2P will work fine in this configuration, if you really have over 128KBps of bandwidth to share, it will be much more helpful to the network if you open your firewall." -msgstr "Alhoewel I2P met deze configuratie prima werkt, zal je 128KBps of meer aan bandbreedte het netwerk beter helpen wanneer je je firewall open zet." +msgid "" +"While I2P will work fine in this configuration, if you really have over " +"128KBps of bandwidth to share, it will be much more helpful to the network " +"if you open your firewall." +msgstr "" +"Alhoewel I2P met deze configuratie prima werkt, zal je 128KBps of meer aan " +"bandbreedte het netwerk beter helpen wanneer je je firewall open zet." #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:610 msgid "WARN - Firewalled and Floodfill" msgstr "WARN - Firewall en Floodfill" #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:612 -msgid "You have configured I2P to be a floodfill router, but you are firewalled." -msgstr "Je hebt I2P geconfigureerd als floodfill router, maar je zit achter een firewall." +msgid "" +"You have configured I2P to be a floodfill router, but you are firewalled." +msgstr "" +"Je hebt I2P geconfigureerd als floodfill router, maar je zit achter een " +"firewall." #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:614 -msgid "For best participation as a floodfill router, you should open your firewall." -msgstr "Voor een betere deelname als floodfill router, moet je je firewall openen." +msgid "" +"For best participation as a floodfill router, you should open your firewall." +msgstr "" +"Voor een betere deelname als floodfill router, moet je je firewall openen." #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:616 msgid "WARN - Firewalled with Inbound TCP Enabled" msgstr "WARN - Firewall en Inkomende TCP Ingeschakeld" #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:618 -msgid "You have configured inbound TCP, however your UDP port is firewalled, and therefore it is likely that your TCP port is firewalled as well." -msgstr "Je hebt inkomende TCP geconfigureerd, echter aangezien je UDP poort achter een firewall zit, is het waarschijnlijk dat dit ook voor je TCP poort het geval is." +msgid "" +"You have configured inbound TCP, however your UDP port is firewalled, and " +"therefore it is likely that your TCP port is firewalled as well." +msgstr "" +"Je hebt inkomende TCP geconfigureerd, echter aangezien je UDP poort achter " +"een firewall zit, is het waarschijnlijk dat dit ook voor je TCP poort het " +"geval is." #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:620 -msgid "If your TCP port is firewalled with inbound TCP enabled, routers will not be able to contact you via TCP, which will hurt the network." -msgstr "Indien je TCP poort achter een firewall zit met inkomende TCP ingeschakeld, kunnen routers geen verbinding met je maken via TCP, dit is niet goed voor het netwerk." +msgid "" +"If your TCP port is firewalled with inbound TCP enabled, routers will not be " +"able to contact you via TCP, which will hurt the network." +msgstr "" +"Indien je TCP poort achter een firewall zit met inkomende TCP ingeschakeld, " +"kunnen routers geen verbinding met je maken via TCP, dit is niet goed voor " +"het netwerk." #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:622 msgid "Please open your firewall or disable inbound TCP above." @@ -4315,8 +4529,12 @@ msgid "You have configured inbound TCP, however you have disabled UDP." msgstr "Je hebt inkomende TCP geconfigureerd, echter UDP is uitgeschakeld." #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:628 -msgid "You appear to be firewalled on TCP, therefore your router cannot accept inbound connections." -msgstr "Het lijkt erop dat je voor TCP achter een firewall zit, daarom kan je router geen inkomende connecties accepteren." +msgid "" +"You appear to be firewalled on TCP, therefore your router cannot accept " +"inbound connections." +msgstr "" +"Het lijkt erop dat je voor TCP achter een firewall zit, daarom kan je router " +"geen inkomende connecties accepteren." #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:630 msgid "Please open your firewall or enable UDP." @@ -4327,8 +4545,12 @@ msgid "ERR - Clock Skew" msgstr "ERR - Klok Afwijking" #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:634 -msgid "Your system's clock is skewed, which will make it difficult to participate in the network." -msgstr "Je systeemklok heeft een afwijking, dit zal het moeilijk maken om aan het netwerk deel te nemen." +msgid "" +"Your system's clock is skewed, which will make it difficult to participate " +"in the network." +msgstr "" +"Je systeemklok heeft een afwijking, dit zal het moeilijk maken om aan het " +"netwerk deel te nemen." #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:636 msgid "Correct your clock setting if this error persists." @@ -4339,8 +4561,12 @@ msgid "ERR - Private TCP Address" msgstr "ERR - Privaat TCP Adres" #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:640 -msgid "You must never advertise an unroutable IP address such as 127.0.0.1 or 192.168.1.1 as your external address." -msgstr "Je moet nooit een niet-routeerbaar IP adres zoals 127.0.0.1 of 192.168.1.1 adverteren als je externe adres." +msgid "" +"You must never advertise an unroutable IP address such as 127.0.0.1 or " +"192.168.1.1 as your external address." +msgstr "" +"Je moet nooit een niet-routeerbaar IP adres zoals 127.0.0.1 of 192.168.1.1 " +"adverteren als je externe adres." #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:642 msgid "Correct the address or disable inbound TCP above." @@ -4352,27 +4578,46 @@ msgstr "ERR - SymmetricNAT" #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:646 msgid "I2P detected that you are firewalled by a Symmetric NAT." -msgstr "I2P heeft gedetecteerd dat je achter een firewall zit door een Symmetric NAT." +msgstr "" +"I2P heeft gedetecteerd dat je achter een firewall zit door een Symmetric NAT." #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:648 -msgid "I2P does not work well behind this type of firewall. You will probably not be able to accept inbound connections, which will limit your participation in the network." -msgstr "I2P werkt niet goed achter dit type firewall. Waarschijnlijk kan je geen inkomende verbindingen accepteren, " +msgid "" +"I2P does not work well behind this type of firewall. You will probably not " +"be able to accept inbound connections, which will limit your participation " +"in the network." +msgstr "" +"I2P werkt niet goed achter dit type firewall. Waarschijnlijk kan je geen " +"inkomende verbindingen accepteren, " #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:650 -msgid "ERR - UDP Port In Use - Set i2np.udp.internalPort=xxxx in advanced config and restart" -msgstr "ERR - UDP Poort In Gebruik - Zet i2np.udp.internalPort=xxxx in geavanceerde configuratie en herstart" +msgid "" +"ERR - UDP Port In Use - Set i2np.udp.internalPort=xxxx in advanced config " +"and restart" +msgstr "" +"ERR - UDP Poort In Gebruik - Zet i2np.udp.internalPort=xxxx in geavanceerde " +"configuratie en herstart" #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:652 msgid "I2P was unable to bind to port 8887 or other configured port." -msgstr "I2P kon niet binden met poort 8887 of een andere geconfigureerde poort." +msgstr "" +"I2P kon niet binden met poort 8887 of een andere geconfigureerde poort." #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:654 -msgid "Check to see if another program is using the configured port. If so, stop that program or configure I2P to use a different port." -msgstr "Controlleer of een ander programma de geconfigureerde poort gebruikt. Als dit zo is, stop dit programma of configureer I2P op een andere poort." +msgid "" +"Check to see if another program is using the configured port. If so, stop " +"that program or configure I2P to use a different port." +msgstr "" +"Controlleer of een ander programma de geconfigureerde poort gebruikt. Als " +"dit zo is, stop dit programma of configureer I2P op een andere poort." #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:656 -msgid "This may be a transient error, if the other program is no longer using the port." -msgstr "Dit kan een voorbijgaande fout zijn, als het andere programma de poort niet meer gebruikt." +msgid "" +"This may be a transient error, if the other program is no longer using the " +"port." +msgstr "" +"Dit kan een voorbijgaande fout zijn, als het andere programma de poort niet " +"meer gebruikt." #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:658 msgid "However, a restart is always required after this error." @@ -4383,8 +4628,12 @@ msgid "ERR - UDP Disabled and Inbound TCP host/port not set" msgstr "ERR - UDP Uitgeschakeld en Inkomende TCP host/poort niet gezet" #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:662 -msgid "You have not configured inbound TCP with a hostname and port above, however you have disabled UDP." -msgstr "Je hebt inkomende TCP hierboven niet geconfigureerd met een hostname en poort, echter heb je je UDP uitgeschakeld." +msgid "" +"You have not configured inbound TCP with a hostname and port above, however " +"you have disabled UDP." +msgstr "" +"Je hebt inkomende TCP hierboven niet geconfigureerd met een hostname en " +"poort, echter heb je je UDP uitgeschakeld." #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:664 msgid "Therefore your router cannot accept inbound connections." @@ -4400,11 +4649,17 @@ msgstr "ERR - Client Manager I2CP Fout - controlleer logs" #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:670 msgid "This is usually due to a port 7654 conflict. Check the logs to verify." -msgstr "Dit komt doorgaans door een conflict met poort 7654. Kijk in de logs om dit te bevestigen." +msgstr "" +"Dit komt doorgaans door een conflict met poort 7654. Kijk in de logs om dit " +"te bevestigen." #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:672 -msgid "Do you have another I2P instance running? Stop the conflicting program and restart I2P." -msgstr "Heb je een andere I2P instantie draaien? Stop het conflicerende programma en herstart I2P." +msgid "" +"Do you have another I2P instance running? Stop the conflicting program and " +"restart I2P." +msgstr "" +"Heb je een andere I2P instantie draaien? Stop het conflicerende programma en " +"herstart I2P." #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configadvanced_jsp.java:107 msgid "config advanced" @@ -4435,8 +4690,12 @@ msgid "Client Configuration" msgstr "Client Configuratie" #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:313 -msgid "The Java clients listed below are started by the router and run in the same JVM." -msgstr "De Java clients in onderstaande lijst zijn gestart door de router en draaien in dezelfde JVM." +msgid "" +"The Java clients listed below are started by the router and run in the same " +"JVM." +msgstr "" +"De Java clients in onderstaande lijst zijn gestart door de router en draaien " +"in dezelfde JVM." #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:317 msgid "To change other client options, edit the file" @@ -4452,12 +4711,33 @@ msgid "WebApp Configuration" msgstr "WebApp Configuratie" #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:338 -msgid "The Java web applications listed below are started by the webConsole client and run in the same JVM as the router. They are usually web applications accessible through the router console. They may be complete applications (e.g. i2psnark),front-ends to another client or application which must be separately enabled (e.g. susidns, i2ptunnel), or have no web interface at all (e.g. addressbook)." -msgstr "De Java web applicaties hier beneden zijn gestart door de webConsole client en draaien in dezelfe JVM als de router. Het zijn meestal web applicaties die te benaderen zijn via de router console. Het kunnen volledige applicaties zijn (zoals i2psnark), front-ends voor een client of applicatie dat los hiervan ingeschakeld moet worden (zoals susidns, i2ptunnel), of zonder web interface (zoals addressbook)." +msgid "" +"The Java web applications listed below are started by the webConsole client " +"and run in the same JVM as the router. They are usually web applications " +"accessible through the router console. They may be complete applications (e." +"g. i2psnark),front-ends to another client or application which must be " +"separately enabled (e.g. susidns, i2ptunnel), or have no web interface at " +"all (e.g. addressbook)." +msgstr "" +"De Java web applicaties hier beneden zijn gestart door de webConsole client " +"en draaien in dezelfe JVM als de router. Het zijn meestal web applicaties " +"die te benaderen zijn via de router console. Het kunnen volledige " +"applicaties zijn (zoals i2psnark), front-ends voor een client of applicatie " +"dat los hiervan ingeschakeld moet worden (zoals susidns, i2ptunnel), of " +"zonder web interface (zoals addressbook)." #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:340 -msgid "A web app may also be disabled by removing the .war file from the webapps directory; however the .war file and web app will reappear when you update your router to a newer version, so disabling the web app here is the preferred method." -msgstr "Een web app kan ook uitgeschakeld worden door het .war bestand te verwijderen uit de webapps directory; ever het .war bestand en de web applicatie zal weer terugkomen wanneer je de router upgrade naar een nieuwere versie. Daarom is het aanbevolen om de web app hier uit te schakelen." +msgid "" +"A web app may also be disabled by removing the .war file from the webapps " +"directory; however the .war file and web app will reappear when you update " +"your router to a newer version, so disabling the web app here is the " +"preferred method." +msgstr "" +"Een web app kan ook uitgeschakeld worden door het .war bestand te " +"verwijderen uit de webapps directory; ever het .war bestand en de web " +"applicatie zal weer terugkomen wanneer je de router upgrade naar een " +"nieuwere versie. Daarom is het aanbevolen om de web app hier uit te " +"schakelen." #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:350 msgid "Plugin Configuration" @@ -4485,11 +4765,16 @@ msgstr "I2P Sleutelbos Configuratie" #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:294 msgid "The router keyring is used to decrypt encrypted leaseSets." -msgstr "De sleutelbos van de router is gebruikt om versleutelde leaseSets te ontsleutelen." +msgstr "" +"De sleutelbos van de router is gebruikt om versleutelde leaseSets te " +"ontsleutelen." #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:297 -msgid "The keyring may contain keys for local or remote encrypted destinations." -msgstr "De sleutelbos kan sleutels bevatten voor lokale en remote versleutelde destinations." +msgid "" +"The keyring may contain keys for local or remote encrypted destinations." +msgstr "" +"De sleutelbos kan sleutels bevatten voor lokale en remote versleutelde " +"destinations." #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:307 msgid "Manual Keyring Addition" @@ -4540,16 +4825,23 @@ msgid "Log record format" msgstr "Log regel formaat" #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:311 -msgid "(use 'd' = date, 'c' = class, 't' = thread, 'p' = priority, 'm' = message)" -msgstr "(gebruik 'd' = datum, 'c' = class, 't' = thread, 'p' = prioriteit, 'm' = bericht)" +msgid "" +"(use 'd' = date, 'c' = class, 't' = thread, 'p' = priority, 'm' = message)" +msgstr "" +"(gebruik 'd' = datum, 'c' = class, 't' = thread, 'p' = prioriteit, 'm' = " +"bericht)" #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:313 msgid "Log date format" msgstr "Log datum formaat" #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:317 -msgid "('MM' = month, 'dd' = day, 'HH' = hour, 'mm' = minute, 'ss' = second, 'SSS' = millisecond)" -msgstr "('MM' = maand, 'dd' = dag, 'HH' = uur, 'mm' = minuut, 'ss' = seconde, 'SSS' = milliseconde)" +msgid "" +"('MM' = month, 'dd' = day, 'HH' = hour, 'mm' = minute, 'ss' = second, 'SSS' " +"= millisecond)" +msgstr "" +"('MM' = maand, 'dd' = dag, 'HH' = uur, 'mm' = minuut, 'ss' = seconde, 'SSS' " +"= milliseconde)" #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:319 msgid "Max log file size" @@ -4560,8 +4852,12 @@ msgid "Default log level" msgstr "Standaard log niveau" #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:327 -msgid "(DEBUG and INFO are not recommended defaults, as they will drastically slow down your router)" -msgstr "(DEBUG en INFO zijn geen aanbevolen standaardwaarden, ze zullen je router drastisch vertragen)" +msgid "" +"(DEBUG and INFO are not recommended defaults, as they will drastically slow " +"down your router)" +msgstr "" +"(DEBUG en INFO zijn geen aanbevolen standaardwaarden, ze zullen je router " +"drastisch vertragen)" #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:329 msgid "Log level overrides" @@ -4588,12 +4884,22 @@ msgid "Manually Ban / Unban a Peer" msgstr "Handmatig een Peer Verbannen / Verbanning Opheffen" #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:312 -msgid "Banning will prevent the participation of this peer in tunnels you create." +msgid "" +"Banning will prevent the participation of this peer in tunnels you create." msgstr "Verbanning zorgt ervoor dat deze peer niet deelneemt aan je tunnels." #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:324 -msgid "Bonuses may be positive or negative, and affect the peer's inclusion in Fast and High Capacity tiers. Fast peers are used for client tunnels, and High Capacity peers are used for some exploratory tunnels. Current bonuses are displayed on the" -msgstr "Bonussen kunnen zowel positief als negatief zijn, en hebben invloed op de toekenning van de peer aan de category Snel en Hoge Capaciteit. Snelle peers worden gebruikt voor client tunnels, en Hoge Capaciteit peers worden gebruikt voor sommige exploratory tunnels. De huidige bonussen worden getoond op de" +msgid "" +"Bonuses may be positive or negative, and affect the peer's inclusion in Fast " +"and High Capacity tiers. Fast peers are used for client tunnels, and High " +"Capacity peers are used for some exploratory tunnels. Current bonuses are " +"displayed on the" +msgstr "" +"Bonussen kunnen zowel positief als negatief zijn, en hebben invloed op de " +"toekenning van de peer aan de category Snel en Hoge Capaciteit. Snelle peers " +"worden gebruikt voor client tunnels, en Hoge Capaciteit peers worden " +"gebruikt voor sommige exploratory tunnels. De huidige bonussen worden " +"getoond op de" #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:326 msgid "profiles page" @@ -4625,40 +4931,73 @@ msgid "Shutdown the router" msgstr "Stop de router" #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:286 -msgid "Graceful shutdown lets the router satisfy the agreements it has already made before shutting down, but may take a few minutes." -msgstr "Een gecontrolleerde afsluiting laat de router zijn reeds bestaande overeenkomsten vervullen alvorens te stoppen, maar dit kan een aantal minuten duren." +msgid "" +"Graceful shutdown lets the router satisfy the agreements it has already made " +"before shutting down, but may take a few minutes." +msgstr "" +"Een gecontrolleerde afsluiting laat de router zijn reeds bestaande " +"overeenkomsten vervullen alvorens te stoppen, maar dit kan een aantal " +"minuten duren." #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:288 -msgid "If you need to kill the router immediately, that option is available as well." +msgid "" +"If you need to kill the router immediately, that option is available as well." msgstr "Indien je de router onmiddelijk wilt stoppen, dan is dit ook mogelijk." #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:298 -msgid "If you want the router to restart itself after shutting down, you can choose one of the following." -msgstr "Indien je de router wilt herstarten na het afsluiten, kies dan één van de volgende opties." +msgid "" +"If you want the router to restart itself after shutting down, you can choose " +"one of the following." +msgstr "" +"Indien je de router wilt herstarten na het afsluiten, kies dan één van de " +"volgende opties." #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:300 -msgid "This is useful in some situations - for example, if you changed some settings that client applications only read at startup, such as the routerconsole password or the interface it listens on." -msgstr "Dit is handig in sommige situaties - bijvoorbeeld wanneer je een configuratie hebt gewijzigd die client applicaties alleen lezen bij het opstarten, zoals het routerconsole wachtwoord of de interface waar het op luistert." +msgid "" +"This is useful in some situations - for example, if you changed some " +"settings that client applications only read at startup, such as the " +"routerconsole password or the interface it listens on." +msgstr "" +"Dit is handig in sommige situaties - bijvoorbeeld wanneer je een " +"configuratie hebt gewijzigd die client applicaties alleen lezen bij het " +"opstarten, zoals het routerconsole wachtwoord of de interface waar het op " +"luistert." #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:302 -msgid "A graceful restart will take a few minutes (but your peers will appreciate your patience), while a hard restart does so immediately." -msgstr "Een gecontrolleerde herstart zal een aantal minuten duren (maar je peers stellen je gedult zeer op prijs), terwijl een harde herstart onmiddelijk is." +msgid "" +"A graceful restart will take a few minutes (but your peers will appreciate " +"your patience), while a hard restart does so immediately." +msgstr "" +"Een gecontrolleerde herstart zal een aantal minuten duren (maar je peers " +"stellen je gedult zeer op prijs), terwijl een harde herstart onmiddelijk is." #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:304 -msgid "After tearing down the router, it will wait 1 minute before starting back up again." -msgstr "Na het stoppen van de router, zal het 1 minuut wachten alvorens opnieuw te starten." +msgid "" +"After tearing down the router, it will wait 1 minute before starting back up " +"again." +msgstr "" +"Na het stoppen van de router, zal het 1 minuut wachten alvorens opnieuw te " +"starten." #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:314 msgid "Systray integration" msgstr "Systray integratie" #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:316 -msgid "On the windows platform, there is a small application to sit in the system tray, allowing you to view the router's status" -msgstr "Op het windows platform is er een kleine applicatie die in je system tray zit, waarmee de router status te bekijken is" +msgid "" +"On the windows platform, there is a small application to sit in the system " +"tray, allowing you to view the router's status" +msgstr "" +"Op het windows platform is er een kleine applicatie die in je system tray " +"zit, waarmee de router status te bekijken is" #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:318 -msgid "(later on, I2P client applications will be able to integrate their own functionality into the system tray as well)." -msgstr "(in de toekomst zullen I2P client applicaties hun functionaliteit ook in de system tray kunnen integreren)." +msgid "" +"(later on, I2P client applications will be able to integrate their own " +"functionality into the system tray as well)." +msgstr "" +"(in de toekomst zullen I2P client applicaties hun functionaliteit ook in de " +"system tray kunnen integreren)." #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:320 msgid "If you are on windows, you can either enable or disable that icon here." @@ -4669,20 +5008,33 @@ msgid "Run on startup" msgstr "Aan bij opstarten" #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:328 -msgid "You can control whether I2P is run on startup or not by selecting one of the following options - I2P will install (or remove) a service accordingly." -msgstr "Je kan bepalen of I2P al dan niet bij het opstarten moet starten met behulp van de volgende opties - I2P zal dan de service toevoegen (of verwijderen)." +msgid "" +"You can control whether I2P is run on startup or not by selecting one of the " +"following options - I2P will install (or remove) a service accordingly." +msgstr "" +"Je kan bepalen of I2P al dan niet bij het opstarten moet starten met behulp " +"van de volgende opties - I2P zal dan de service toevoegen (of verwijderen)." #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:330 msgid "If you prefer the command line, you can also run the " -msgstr "Indien je de voorkeur geeft aan de command line, kan je het ook starten met " +msgstr "" +"Indien je de voorkeur geeft aan de command line, kan je het ook starten met " #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:340 -msgid "If you are running I2P as service right now, removing it will shut down your router immediately." -msgstr "Indien je op dit moment I2P als service draait zal het verwijderen je router onmiddelijk stoppen." +msgid "" +"If you are running I2P as service right now, removing it will shut down your " +"router immediately." +msgstr "" +"Indien je op dit moment I2P als service draait zal het verwijderen je router " +"onmiddelijk stoppen." #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:342 -msgid "You may want to consider shutting down gracefully, as above, then running uninstall_i2p_service_winnt.bat." -msgstr "Overweeg om hierboven je router gecontrolleerd te stoppen, en daarna uninstall_i2p_service_winnt.bat te draaien." +msgid "" +"You may want to consider shutting down gracefully, as above, then running " +"uninstall_i2p_service_winnt.bat." +msgstr "" +"Overweeg om hierboven je router gecontrolleerd te stoppen, en daarna " +"uninstall_i2p_service_winnt.bat te draaien." #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:346 msgid "Debugging" @@ -4693,16 +5045,26 @@ msgid "View the job queue" msgstr "Bekijk de taak wachtrij" #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:352 -msgid "At times, it may be helpful to debug I2P by getting a thread dump. To do so, please select the following option and review the thread dumped to wrapper.log." -msgstr "Soms kan het handig zijn om I2P te debuggen met een thread dump. Om dit te doen, selecteer de volgende optie en bekijk de thread dump in de wrapper.log." +msgid "" +"At times, it may be helpful to debug I2P by getting a thread dump. To do so, " +"please select the following option and review the thread dumped to wrapper.log." +msgstr "" +"Soms kan het handig zijn om I2P te debuggen met een thread dump. Om dit te " +"doen, selecteer de volgende optie en bekijk de thread dump in de wrapper.log." #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:358 msgid "Launch browser on router startup?" msgstr "Start browser bij opstarten router?" #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:360 -msgid "I2P's main configuration interface is this web console, so for your convenience I2P can launch a web browser on startup pointing at" -msgstr "De hoofd configuratie interface van I2P is deze web console, indien gewenst kan I2P na het opstarten een web browser starten die verwijst naar" +msgid "" +"I2P's main configuration interface is this web console, so for your " +"convenience I2P can launch a web browser on startup pointing at" +msgstr "" +"De hoofd configuratie interface van I2P is deze web console, indien gewenst " +"kan I2P na het opstarten een web browser starten die verwijst naar" #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:107 msgid "config stats" @@ -4766,8 +5128,14 @@ msgid "There is a fundamental tradeoff between anonymity and performance." msgstr "Er is een fundamentele afweging tussen anonimiteit en prestatie." #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configtunnels_jsp.java:312 -msgid "Tunnels longer than 3 hops (for example 2 hops + 0-2 hops, 3 hops + 0-1 hops, 3 hops + 0-2 hops), or a high quantity + backup quantity, may severely reduce performance or reliability." -msgstr "Tunnels langer dan 3 hops (bijvoorbeeld 2 hops + 0-2 hops, 3 hops + 0-1 hops, 3 hops + 0-2 hops), of een hoge hoeveelheid + backup hoeveelheid, kunnen leiden tot een vermindering van prestatie of bereikbaarheid." +msgid "" +"Tunnels longer than 3 hops (for example 2 hops + 0-2 hops, 3 hops + 0-1 " +"hops, 3 hops + 0-2 hops), or a high quantity + backup quantity, may severely " +"reduce performance or reliability." +msgstr "" +"Tunnels langer dan 3 hops (bijvoorbeeld 2 hops + 0-2 hops, 3 hops + 0-1 " +"hops, 3 hops + 0-2 hops), of een hoge hoeveelheid + backup hoeveelheid, " +"kunnen leiden tot een vermindering van prestatie of bereikbaarheid." #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configtunnels_jsp.java:315 msgid "High CPU and/or high outbound bandwidth usage may result." @@ -4775,11 +5143,15 @@ msgstr "CPU gebruik en/of uitgaand bandbreedte kan toenemen." #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configtunnels_jsp.java:318 msgid "Change these settings with care, and adjust them if you have problems." -msgstr "Wijzig deze instellingen met zorg, en pas ze aan indien problemen optreden." +msgstr "" +"Wijzig deze instellingen met zorg, en pas ze aan indien problemen optreden." #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configtunnels_jsp.java:332 -msgid "Exploratory tunnel setting changes are stored in the router.config file." -msgstr "Exploratory tunnel configuratie wijzigingen zijn opgeslagen in het router.config bestand." +msgid "" +"Exploratory tunnel setting changes are stored in the router.config file." +msgstr "" +"Exploratory tunnel configuratie wijzigingen zijn opgeslagen in het router." +"config bestand." #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configtunnels_jsp.java:335 msgid "Client tunnel changes are temporary and are not saved." @@ -4810,16 +5182,26 @@ msgid "Theme selection disabled for Internet Explorer, sorry." msgstr "Thema selectie is uitgeschakeld voor Internet Explorer, sorry." #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configui_jsp.java:311 -msgid "If you're not using IE, it's likely that your browser is pretending to be IE; please configure your browser (or proxy) to use a different User Agent string if you'd like to access the console themes." -msgstr "Indien je geen IE gebruikt, is het mogelijk dat je browser zich voordoet als IE; configureer je browser (of proxy) om een andere User Agent tekst te gebruiken indien je de console thema's wilt wijzigen." +msgid "" +"If you're not using IE, it's likely that your browser is pretending to be " +"IE; please configure your browser (or proxy) to use a different User Agent " +"string if you'd like to access the console themes." +msgstr "" +"Indien je geen IE gebruikt, is het mogelijk dat je browser zich voordoet als " +"IE; configureer je browser (of proxy) om een andere User Agent tekst te " +"gebruiken indien je de console thema's wilt wijzigen." #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configui_jsp.java:315 msgid "Router Console Language" msgstr "Router Console Taal" #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configui_jsp.java:319 -msgid "Please contribute to the router console translation project! Contact the developers on IRC #i2p to help." -msgstr "Lever een bijdrage aan het router console vertaal project! Neem contact op met de ontwikkelaars op IRC #i2p om te helpen." +msgid "" +"Please contribute to the router console translation project! Contact the " +"developers on IRC #i2p to help." +msgstr "" +"Lever een bijdrage aan het router console vertaal project! Neem contact op " +"met de ontwikkelaars op IRC #i2p om te helpen." #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configui_jsp.java:323 msgid "Apply" @@ -4886,8 +5268,12 @@ msgid "Unsigned Build URL" msgstr "Niet-ondertekende Build URL" #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:360 -msgid "I2P updates are disabled because you do not have write permission for the install directory." -msgstr "I2P updates zijn uitgeschakeld omdat je geen schrijf rechten hebt op de installatie directory." +msgid "" +"I2P updates are disabled because you do not have write permission for the " +"install directory." +msgstr "" +"I2P updates zijn uitgeschakeld omdat je geen schrijf rechten hebt op de " +"installatie directory." #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:366 msgid "Save" @@ -4898,7 +5284,9 @@ msgid "Page Not Found" msgstr "Pagina Niet Gevonden" #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/error_jsp.java:243 -msgid "Sorry! You appear to be requesting a non-existent Router Console page or resource." +msgid "" +"Sorry! You appear to be requesting a non-existent Router Console page or " +"resource." msgstr "Sorry! Je benadert een niet bestaande Router Console pagina of bron." #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/error_jsp.java:245 @@ -4942,8 +5330,12 @@ msgid "I2P Version & Running Environment" msgstr "I2P Versie & Omgevingsinformatie" #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/logs_jsp.java:231 -msgid "Please report bugs on trac.i2p2.i2p." -msgstr "Rapporteer bugs op trac.i2p2.i2p." +msgid "" +"Please report bugs on trac.i2p2." +"i2p." +msgstr "" +"Rapporteer bugs op trac.i2p2.i2p." #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/logs_jsp.java:233 msgid "Please include this information in bug reports" @@ -4982,8 +5374,12 @@ msgid "The requested web application is not running." msgstr "De gevraagde web applicatie draait niet." #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/nowebapp_jsp.java:235 -msgid "Please visit the config clients page to start it." -msgstr "Bezoek de config clients pagina om het te starten." +msgid "" +"Please visit the config clients page to start it." +msgstr "" +"Bezoek de config clients pagina om " +"het te starten." #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/peers_jsp.java:105 msgid "peer connections" @@ -5021,4 +5417,3 @@ msgstr "tunnel samenvatting" #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/tunnels_jsp.java:227 msgid "I2P Tunnel Summary" msgstr "I2P Tunnel Samenvatting" - From be75455b847187ccb8e58577be441132bf63ad72 Mon Sep 17 00:00:00 2001 From: zzz Date: Thu, 8 Jul 2010 18:45:30 +0000 Subject: [PATCH 34/75] More i2ptunnel error propagation fixes - key file - thx echelon --- .../java/src/net/i2p/i2ptunnel/I2PTunnel.java | 16 +++++++------- .../net/i2p/i2ptunnel/TunnelController.java | 22 ++++++++++++++----- history.txt | 3 +++ .../src/net/i2p/router/RouterVersion.java | 2 +- 4 files changed, 29 insertions(+), 14 deletions(-) diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnel.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnel.java index f09f03ca4..110d62984 100644 --- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnel.java +++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnel.java @@ -390,10 +390,10 @@ public class I2PTunnel implements Logging, EventDispatcher { if (!privKeyFile.isAbsolute()) privKeyFile = new File(_context.getConfigDir(), args[2]); if (!privKeyFile.canRead()) { - l.log("private key file does not exist"); + l.log(getPrefix() + "Private key file does not exist or is not readable: " + args[2]); _log.error(getPrefix() + "Private key file does not exist or is not readable: " + args[2]); notifyEvent("serverTaskId", Integer.valueOf(-1)); - return; + throw new IllegalArgumentException(getPrefix() + "Cannot open private key file " + args[2]); } I2PTunnelServer serv = new I2PTunnelServer(serverHost, portNum, privKeyFile, args[2], l, (EventDispatcher) this, this); serv.setReadTimeout(readTimeout); @@ -441,10 +441,10 @@ public class I2PTunnel implements Logging, EventDispatcher { if (!privKeyFile.isAbsolute()) privKeyFile = new File(_context.getConfigDir(), args[2]); if (!privKeyFile.canRead()) { - l.log("private key file does not exist"); + l.log(getPrefix() + "Private key file does not exist or is not readable: " + args[2]); _log.error(getPrefix() + "Private key file does not exist or is not readable: " + args[2]); notifyEvent("serverTaskId", Integer.valueOf(-1)); - return; + throw new IllegalArgumentException(getPrefix() + "Cannot open private key file " + args[2]); } I2PTunnelServer serv = new I2PTunnelIRCServer(serverHost, portNum, privKeyFile, args[2], l, (EventDispatcher) this, this); serv.setReadTimeout(readTimeout); @@ -502,10 +502,10 @@ public class I2PTunnel implements Logging, EventDispatcher { if (!privKeyFile.isAbsolute()) privKeyFile = new File(_context.getConfigDir(), args[3]); if (!privKeyFile.canRead()) { - l.log("private key file does not exist"); + l.log(getPrefix() + "Private key file does not exist or is not readable: " + args[3]); _log.error(getPrefix() + "Private key file does not exist or is not readable: " + args[3]); notifyEvent("serverTaskId", Integer.valueOf(-1)); - return; + throw new IllegalArgumentException(getPrefix() + "Cannot open private key file " + args[3]); } I2PTunnelHTTPServer serv = new I2PTunnelHTTPServer(serverHost, portNum, privKeyFile, args[3], spoofedHost, l, (EventDispatcher) this, this); serv.setReadTimeout(readTimeout); @@ -577,10 +577,10 @@ public class I2PTunnel implements Logging, EventDispatcher { if (!privKeyFile.isAbsolute()) privKeyFile = new File(_context.getConfigDir(), args[4]); if (!privKeyFile.canRead()) { - l.log("private key file does not exist"); + l.log(getPrefix() + "Private key file does not exist or is not readable: " + args[4]); _log.error(getPrefix() + "Private key file does not exist or is not readable: " + args[4]); notifyEvent("serverTaskId", Integer.valueOf(-1)); - return; + throw new IllegalArgumentException(getPrefix() + "Cannot open private key file " + args[4]); } I2PTunnelHTTPBidirServer serv = new I2PTunnelHTTPBidirServer(serverHost, portNum, port2Num, privKeyFile, args[3], spoofedHost, l, (EventDispatcher) this, this); diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/TunnelController.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/TunnelController.java index dc6ded46e..f0470c5a3 100644 --- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/TunnelController.java +++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/TunnelController.java @@ -46,6 +46,7 @@ public class TunnelController implements Logging { public TunnelController(Properties config, String prefix) { this(config, prefix, true); } + /** * * @param createKey for servers, whether we want to create a brand new destination @@ -58,17 +59,21 @@ public class TunnelController implements Logging { setConfig(config, prefix); _messages = new ArrayList(4); _running = false; + boolean keyOK = true; if (createKey && (getType().endsWith("server") || getPersistentClientKey())) - createPrivateKey(); - _starting = getStartOnLoad(); + keyOK = createPrivateKey(); + _starting = keyOK && getStartOnLoad(); } - private void createPrivateKey() { + /** + * @return success + */ + private boolean createPrivateKey() { I2PClient client = I2PClientFactory.createClient(); String filename = getPrivKeyFile(); if ( (filename == null) || (filename.trim().length() <= 0) ) { log("No filename specified for the private key"); - return; + return false; } File keyFile = new File(getPrivKeyFile()); @@ -76,7 +81,7 @@ public class TunnelController implements Logging { keyFile = new File(I2PAppContext.getGlobalContext().getConfigDir(), getPrivKeyFile()); if (keyFile.exists()) { //log("Not overwriting existing private keys in " + keyFile.getAbsolutePath()); - return; + return true; } else { File parent = keyFile.getParentFile(); if ( (parent != null) && (!parent.exists()) ) @@ -94,13 +99,16 @@ public class TunnelController implements Logging { if (_log.shouldLog(Log.ERROR)) _log.error("Error creating new destination", ie); log("Error creating new destination: " + ie.getMessage()); + return false; } catch (IOException ioe) { if (_log.shouldLog(Log.ERROR)) _log.error("Error creating writing the destination to " + keyFile.getAbsolutePath(), ioe); log("Error writing the keys to " + keyFile.getAbsolutePath()); + return false; } finally { if (fos != null) try { fos.close(); } catch (IOException ioe) {} } + return true; } public void startTunnelBackground() { @@ -126,6 +134,10 @@ public class TunnelController implements Logging { } _starting = false; } + + /** + * @throws IllegalArgumentException via methods in I2PTunnel + */ private void doStartTunnel() { if (_running) { if (_log.shouldLog(Log.INFO)) diff --git a/history.txt b/history.txt index 7b7113ccf..254a215c0 100644 --- a/history.txt +++ b/history.txt @@ -1,3 +1,6 @@ +2010-07-08 zzz + * I2PTunnel: More error propagation fixes + 2010-07-07 duck * RouterConsole: Add Help & FAQ link, minor label improvements. diff --git a/router/java/src/net/i2p/router/RouterVersion.java b/router/java/src/net/i2p/router/RouterVersion.java index a6204817e..f2522cd4e 100644 --- a/router/java/src/net/i2p/router/RouterVersion.java +++ b/router/java/src/net/i2p/router/RouterVersion.java @@ -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 = 8; + public final static long BUILD = 9; /** for example "-test" */ public final static String EXTRA = ""; From 4f827a5b1d12c755113ef4689ef226381a1c453c Mon Sep 17 00:00:00 2001 From: duck Date: Fri, 9 Jul 2010 14:02:55 +0000 Subject: [PATCH 35/75] Dutch help page --- apps/routerconsole/jsp/help_nl.jsp | 201 +++++++++++++++++++++++++++++ 1 file changed, 201 insertions(+) create mode 100644 apps/routerconsole/jsp/help_nl.jsp diff --git a/apps/routerconsole/jsp/help_nl.jsp b/apps/routerconsole/jsp/help_nl.jsp new file mode 100644 index 000000000..b486a4c66 --- /dev/null +++ b/apps/routerconsole/jsp/help_nl.jsp @@ -0,0 +1,201 @@ +<%@page contentType="text/html"%> +<%@page pageEncoding="UTF-8"%> + +<% + /* + * Do not tag this file for translation - copy it to help_xx.jsp and translate inline. + */ +%> +I2P Router Console - help +<%@include file="css.jsi" %> + +<%@include file="summary.jsi" %> +

I2P Router Help & Support

+

+Als je wilt helpen om de documentatie te verbeteren of vertalen, of wilt helpen +met andere aspecten van het project, zie dan de documentatie voor +vrijwilligers. +

Verdere ondersteuning is hier beschikbaar: +

+
Je kunt ook het I2P forum +of IRC proberen.

+ +

Informatie over de Summary Bar

+Veel van de statistieken op de summary bar kunnen +geconfigureerd worden om te worden +geplot voor verdere analyse. +

+ +

Algemeen

    +
  • Lokale Identiteit: +De eerste vier karakters (24 bits) van je 44-karakter (256-bit) Base64 router hash. +De volledige hash is getoond op je router info pagina. +Vertel deze aan niemand, want de router info bevat je IP. +
  • Versie: +De versie van de I2P software die je nu gebruikt. +
  • Uptime: +Hoe lang je I2P router al draait. +
  • Netwerk Bereikbaarheid: +De bereikbaarheid van je router door andere routers. +Meer informatie is te vinden op de configuratie pagina. +
+ +

Peers

    +
  • Actief: +Het eerste nummer is het aantal peers waar je in de laatste paar minuten +berichten naar verzonden of van ontvangen hebt. Dit kan variëren van 8-10 tot +een paar honderd, afhankelijk van je totale bandbreedte, gedeelde bandbreedte +en lokaal gegenereerd verkeer. Het tweede nummer is het aantal peers dat je in +het laatste uur hebt gezien. Wees niet ongerust wanneer deze aantallen erg +variëren. + +[Grafieken inschakelen]. +
  • Snel: +Dit is het aantal peers dat je gebruikt om client tunnels mee te bouwen. Het ligt over +het algemeen tussen 8 en 15. +Je snelle peers worden getoond op de profielen pagina. +[Grafieken inschakelen]. +
  • Grote capaciteit: +Dit is het aantal peers dat je gebruikt om sommige van de onderzoekende tunnels mee te maken. +Het ligt over het algemeen tussen de 8 en 25. De snelle peers zijn inbegrepen in de categorie grote capaciteit. +De grote capaciteits peers worden getoond op de profielen pagina. +[Grafieken inschakelen]. +
  • Geïntegreerd: +Dit is het aantal peers dat je gebruikt bij het opzoeken in de network database. +Dit zijn gebruikelijk de "floodfill" peers. +Je goed geïntegreerde peers worden getoond aan de onderkant van de profielen pagina. +
  • Bekend: +Dit is het aantal routers dat bekend is bij je router. +Ze worden getoond op de netwerk database pagina. +Dit kan liggen tussen onder de 100 en 1000 of meer. +Dit aantal is niet de totale grootte van het netwerk; +het kan erg variëren afhankelijk van je totale bandbreedte, +gedeelde bandbreedte en lokaal gegenereerd verkeer. +Voor I2P is het niet nodig dat een router alle andere routers kent. +
+ +

Bandbreedte in/out

+Dit zou zichzelf moeten verklaren. Alle waarden zijn in bytes per seconde, niet in bits per seconde. +Wijzig je bandbreedte limieten op de configuratie pagina. +Bandbreedte wordt standaard geplot.
+ +

Tunnels

+De tunnels zelf worden getoond op de tunnels pagina.
    +
  • Onderzoekend: +Tunnels gebouwd door je router en gebruikt om te communiceren met de floodfill peers, +voor het bouwen van nieuwe tunnels en testen van bestaande tunnels.
    +
  • Client: +Tunnels gebouwd door je router voor het gebruik door elke client. +
  • Deelnemend: +Tunnels gebouwd door andere routers die door je eigen router heen lopen. +Dit kan erg variëren afhankelijk van de vraag vanuit het netwerk, +je gedeelde bandbreedte en hoeveelheid lokaal gegenereerd verkeer. +De aanbevolen methode om het aantal deelnemende tunnels te beperken +is door het share percentage te wijzigen op de configuratie pagina. +Je kan het totale aantal ook beperken met de instelling router.maxParticipatingTunnels=nnn op +de geavanceerde configuratie pagina. [Grafieken inschakelen]. +
  • Share rato: +Het aantal deelnemende tunnels dat je voor andere routeert, gedeeld door het totale aantal hops in al je onderzoekende en client tunnels. +Een aantal groter dan 1.00 betekent dat je meer tunnels aan het netwerk bijdraagt dan je gebruikt. +
+ +

Verstopping

+Een aantal basis indicatoren voor een router overbelasting:
    +
  • Taak vertraging: +Hoe lang taken moeten wachten voordat ze uitgevoerd worden. De taak wachtrij wordt getoond op de taken pagina. +Helaas zijn er ook verschillende andere taak wachtrijen in de router die verstopt kunnen raken, +hun status is niet beschikbaar in de router console. +De taak vertraging zou over het algemeen nul moeten zijn. +Indien dit consequent hoger is dan 500ms, dan is of je computer erg traag of +heeft de router een serieus probleem. +[Grafieken inschakelen]. +
  • Bericht vertraging: +Hoe lang een uitgaand bericht wacht in de wachtrij. +Dit zou over het algemeen een aantal honderd milliseconden of minder moeten zijn. +Indien dit consequent hoger is dan 1000ms, dan is of je computer erg traag +of moet je je bandbreedte instellingen aanpassen, of je (bittorrent?) clients +versturen mogelijk teveel data en moeten hun transmissie bandbreedte beperkt hebben. +[Grafieken inschakelen] (transport.sendProcessingTime). +
  • Tunnel vertraging: +Dit is de rondgangstijd voor een tunnel test, welke een enkel bericht verstuurt +vanuit een client tunnel dat dan bij een onderzoekende tunnel naar binnen gaat, of omgekeerd. +Dit zou over het algemeen minder dan 5 seconden moeten zijn. +Indien dit consequent hoger is, dan is of je computer erg traag of +moet je je bandbreedte instellingen aanpassen of zijn er netwerk problemen. +[Grafieken inschakelen] (tunnel.testSuccessTime). +
  • Achterstand: +Dit is het aantal wachtende aanvragen van andere routers om een deelnemende +tunnel door je eigen router te bouwen. +Dit zou over het algemeen dicht bij de nul moeten zijn. +Indien dit consequent hoog is, dan is of je computer te traag of +moet je je bandbreedte instellingen aanpassen. +
  • Accepteren / Weigeren: +De status van de router voor het accepteren of weigeren +van verzoeken van andere routers om een deelnemende tunnel door je router te bouwen. +Je router kan alle aanvragen accepteren, een percentage accepteren of weigeren, +of alle aanvragen weigeren om verschillende redenen, om de bandbreedte en CPU +gebruik te beheren en capaciteit te houden voor lokale clients.
+ +

Lokale bestemmingen

+De lokale applicaties die door je router verbinden. +Dit kunnen clients zijn die gestart zijn door I2PTunnel +of externe programma's die verbinden via SAM, BOB of direct met I2CP. +
+ +

Juridische zaken

De I2P router (router.jar) en SDK (i2p.jar) zijn bijna geheel in het publieke domein, met een aantal noemenswaardige uitzonderingen:

    +
  • ElGamal en DSA code, valt onder de BSD licentie, geschreven door TheCrypto
  • +
  • SHA256 en HMAC-SHA256, valt onder de MIT licentie, geschreven door the Legion of the Bouncycastle
  • +
  • AES code, valt onder de MIT licentie, geschreven door het Cryptix team
  • +
  • SNTP code, valt onder de BSD licentie, geschreven door Adam Buckley
  • +
  • De rest is helemaal public domain, geschreven door jrandom, mihi, hypercubus, oOo, + ugha, duck, shendaras, en anderen.
  • +
+ +

Bovenop de I2P router zijn een aantal client applicaties gemaakt, elk met +hun eigen set aan licenties en afhankelijkheden. Deze webpagine is aangeboden +als onderdeel van de I2P routerconsole client applicatie, gebouwd op basis van +een afgeslankte Jetty +instantie (afgeslankt, als in, we voegen geen demo applicaties of andere add-ons bij, +en hebben de configuratie eenvoudiger gemaakt), +welke je standaard JSP/Servlet web applicaties laat deployen in je router. +Jetty maakt gebruik van Apache's javax.servlet (javax.servlet.jar) implementatie. +Dit product bevat software ontwikkeld door de Apache Software Foundation +(http://www.apache.org/).

+ +

Een andere applicatie op deze webpagina is I2PTunnel (je web interface) - een GPL applicatie geschreven door mihi +die normaal TCP/IP verkeer over I2P laat tunnelen (zoals de eepproxy en de irc +proxy). Er is ook een susimail web based mail +client beschikbaar op de console, dit is een +GPL applicatie geschreven door susi23. De adresboek applicatie, geschreven door +Ragnarok helpt je met het beheren van je +hosts.txt bestanden (zie ./addressbook/ voor meer informatie).

+ +

De router bevat ook standaard human's public domain SAM brug, welke andere client applicaties +(zoals de bittorrent port) kan gebruiken. +Er is ook een geoptimaliseerde library voor het uitvoeren van berekeningen met +grote getallen - jbigi - deze gebruikt de LGPL licensed GMP library, aangepast voor verschillende PC +architecturen. Opstarters voor windows gebruikers zijn gemaakt met Launch4J, en de installer is +gemaakt met IzPack. Voor details +over andere beschikbare applicaties, en hun licenties, zie het licentie beleid. Broncode voor I2P en +de meeste gebundelde client applicaties kan gevonden worden op onze download pagina.

+ +

Release geschiedenis

+ + <% java.io.File fpath = new java.io.File(net.i2p.I2PAppContext.getGlobalContext().getBaseDir(), "history.txt"); %> + + + + + +

Een completere lijst met wijzigingen is te vinden + in het history.txt bestand in je i2p directory. +


From 870ace55e260cdeddfe56b5820ef7a0f82c03d96 Mon Sep 17 00:00:00 2001 From: zzz Date: Fri, 9 Jul 2010 17:46:38 +0000 Subject: [PATCH 36/75] version bump just to add -rc --- router/java/src/net/i2p/router/RouterVersion.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/router/java/src/net/i2p/router/RouterVersion.java b/router/java/src/net/i2p/router/RouterVersion.java index f2522cd4e..895e8eb46 100644 --- a/router/java/src/net/i2p/router/RouterVersion.java +++ b/router/java/src/net/i2p/router/RouterVersion.java @@ -18,10 +18,10 @@ public class RouterVersion { /** deprecated */ public final static String ID = "Monotone"; public final static String VERSION = CoreVersion.VERSION; - public final static long BUILD = 9; + public final static long BUILD = 10; /** for example "-test" */ - public final static String EXTRA = ""; + public final static String EXTRA = "-rc"; public final static String FULL_VERSION = VERSION + "-" + BUILD + EXTRA; public static void main(String args[]) { System.out.println("I2P Router version: " + FULL_VERSION); From ee29074a300468f8fb7c55046b99a32aff891c7b Mon Sep 17 00:00:00 2001 From: duck Date: Sat, 10 Jul 2010 09:06:26 +0000 Subject: [PATCH 37/75] Dutch proxy translations, we missed a couple. --- .../proxy/ahelper-conflict-header_nl.ht | 28 +++++++++++++++++++ installer/resources/proxy/dnf-header_nl.ht | 4 +-- installer/resources/proxy/dnfh-header_nl.ht | 2 +- 3 files changed, 31 insertions(+), 3 deletions(-) create mode 100644 installer/resources/proxy/ahelper-conflict-header_nl.ht diff --git a/installer/resources/proxy/ahelper-conflict-header_nl.ht b/installer/resources/proxy/ahelper-conflict-header_nl.ht new file mode 100644 index 000000000..65a83797a --- /dev/null +++ b/installer/resources/proxy/ahelper-conflict-header_nl.ht @@ -0,0 +1,28 @@ +HTTP/1.1 409 Conflict +Content-Type: text/html; charset=UTF-8 +Cache-control: no-cache +Connection: close +Proxy-Connection: close + + +I2P Waarschuwing: Destination conflict + + + + + +
+

Waarschuwing: Destination Conflict

+De adreshelper link die je probeert te volgen gebruikt een andere destination +dan een host item in je host database. +Mogelijk probeert iemand een andere eepsite na te apen, +of mensen hebben twee eepsites een identieke naam gegeven. +

+Je kan dit conflict oplossen door te bepalen welke destination je vertrouwt, +en dan of de adreshelper link te verwerpen, +de host item in je host database te verwijderen, +of één van de twee een andere naam te geven. +

diff --git a/installer/resources/proxy/dnf-header_nl.ht b/installer/resources/proxy/dnf-header_nl.ht index afb4481a9..9bd31407a 100644 --- a/installer/resources/proxy/dnf-header_nl.ht +++ b/installer/resources/proxy/dnf-header_nl.ht @@ -5,7 +5,7 @@ Connection: close Proxy-Connection: close -I2P Warning: Eepsite niet bereikbaar +I2P Waarschuwing: Eepsite niet bereikbaar @@ -15,7 +15,7 @@ Proxy-Connection: close Configuratie Help Adresboek

-

Warning: Eepsite Onbereikbaar

+

Waarschuwing: Eepsite Onbereikbaar

De eepsite was niet bereikbaar. De eepsite is offline, er is een netwerk verstopping, of je router is niet goed geïntegreerd met peers. diff --git a/installer/resources/proxy/dnfh-header_nl.ht b/installer/resources/proxy/dnfh-header_nl.ht index 0d7dc2131..7a1e367ed 100644 --- a/installer/resources/proxy/dnfh-header_nl.ht +++ b/installer/resources/proxy/dnfh-header_nl.ht @@ -5,7 +5,7 @@ Connection: close Proxy-Connection: close -I2P Warning: Eepsite onbekend +I2P Waarschuwing: Eepsite onbekend From 7532276a006ccdb9a1d137a80366f322d758df73 Mon Sep 17 00:00:00 2001 From: duck Date: Sat, 10 Jul 2010 11:04:30 +0000 Subject: [PATCH 38/75] Dutch eepsite help page --- .../resources/eepsite.help/help/index.html | 2 +- .../resources/eepsite.help/help/index_de.html | 2 +- .../resources/eepsite.help/help/index_fr.html | 2 +- .../resources/eepsite.help/help/index_na.html | 2 +- .../resources/eepsite.help/help/index_nl.html | 116 ++++++++++++++++++ .../resources/eepsite.help/help/index_ru.html | 2 +- .../eepsite.help/help/pagetemplate.html | 2 +- 7 files changed, 122 insertions(+), 6 deletions(-) create mode 100644 installer/resources/eepsite.help/help/index_nl.html diff --git a/installer/resources/eepsite.help/help/index.html b/installer/resources/eepsite.help/help/index.html index c5be8fa36..d434c7707 100644 --- a/installer/resources/eepsite.help/help/index.html +++ b/installer/resources/eepsite.help/help/index.html @@ -15,7 +15,7 @@ 中文 Deutsch Français -Nederlands +Nederlands Русский Svenska diff --git a/installer/resources/eepsite.help/help/index_de.html b/installer/resources/eepsite.help/help/index_de.html index 263d9a487..bdd0f73b5 100644 --- a/installer/resources/eepsite.help/help/index_de.html +++ b/installer/resources/eepsite.help/help/index_de.html @@ -16,7 +16,7 @@ 中文 Deutsch Français -Nederlands +Nederlands Русский Svenska
diff --git a/installer/resources/eepsite.help/help/index_fr.html b/installer/resources/eepsite.help/help/index_fr.html index a7c7515b5..a5d96cbdb 100644 --- a/installer/resources/eepsite.help/help/index_fr.html +++ b/installer/resources/eepsite.help/help/index_fr.html @@ -15,7 +15,7 @@ 中文 Deutsch Français -Nederlands +Nederlands Русский Svenska diff --git a/installer/resources/eepsite.help/help/index_na.html b/installer/resources/eepsite.help/help/index_na.html index 1475c6eba..37cc3c77c 100644 --- a/installer/resources/eepsite.help/help/index_na.html +++ b/installer/resources/eepsite.help/help/index_na.html @@ -14,7 +14,7 @@ 中文 Deutsch Français -Nederlands +Nederlands Русский Svenska diff --git a/installer/resources/eepsite.help/help/index_nl.html b/installer/resources/eepsite.help/help/index_nl.html new file mode 100644 index 000000000..017b1e4b7 --- /dev/null +++ b/installer/resources/eepsite.help/help/index_nl.html @@ -0,0 +1,116 @@ + + + I2P Anonieme Webserver | Welkom op je eepsite + + + + + +
+
+

I2P Anonieme Webserver

+
+ +English +中文 +Deutsch +Français +Nederlands +Русский +Svenska + +
+

Korte Handleiding voor Anoniem Webhosten op I2P

+ +

Dit is je eepsite, je eigen anonieme I2P webserver - pas de bestanden onder ~/.i2p/eepsite/docroot/ (Linux) of %APPDATA%\I2P\eepsite\docroot\ (Windows) simpelweg aan + en ze zijn bereikbaar door anderen zodra je onderstaande instructies hebt opgevolgd. + In I2P worden eepsites aangeduid met een 'destination', dit is een erg lange Base64 string. + (De 'destination' is vergelijkbaar met een IP adres en wordt getoond op de eepsite's I2PTunnel + configuratie pagina). + Onderstaande instructies laten zien hoe je een naam zoals "mijnsite.i2p" kunt laten verwijzen naar je destination en + hoe je je eepsite moet starten.

+

Je kan je eepsite lokaal benaderen via + http://127.0.0.1:7658/. +

+ +

Hoe je eepsite op te zetten en aan te kondigen

+ Je eepsite is standaard gestopt. + Nadat je tunnel voor je eepsite start, zullen anderen je site nog niet kunnen vinden + want het heeft nog geen naam en ze hebben je erg lange Base64 destination nog niet. + Je zou deze lange destination aan iedereen kunnen vertellen, maar gelukkig heeft + i2p een adresboek en verschillende eenvoudige manieren om anderen over je eepsite te + vertellen. Hier zijn de gedetailleerde instructies. +
    +
  • Kies een naam voor je eepsite (mijnsite.i2p). Gebruik alleen kleine letters. + Kijk eerst + hier, + in het adresboek van je router of in het bestand i2p/hosts.txt of de naam nog beschikbaar is. + Voer de nieuwe naam voor je eepsite in op de + eepsite i2ptunnel configuratie pagina + onder "Website naam". Dit vervangt de standaard "mysite.i2p". + Klik ook op de "Auto Start" box, hiermee zal je eepsite elke keer starten samen met je router. + Vergeet niet om op "Opslaan" te klikken. +
  • Klik op de start knop voor je eepsite op de + hoofd i2ptunnel configuratie pagina. + Je zult nu "eepsite" zien onder "Lokale Destinations" aan de linker kant van je + I2P Router Console. + Je eepsite draait nu. +
  • Selecteer de gehele "Lokale destination" tekst op de + eepsite i2ptunnel configuratie pagina. + en kopieer het op het klipbord. + Zorg ervoor dat je het helemaal hebt - het is meer dan 500 karakters lang en eindigt met "AAAA". +
  • Voer de naam in en plak je destination in je + hoofd adresboek. + Klik "Toevoegen" om de destination aan je adresboek toe te voegen. +
  • In je browser, voel je eepsite naam in (mijnsite.i2p) en je komt hier hopelijk weer terug. +
  • Voordat je de rest van de wereld over je nieuwe eepsite vertelt, zorg eerst voor wat content. + Ga naar ~/.i2p/eepsite/docroot/ (Linux) of %APPDATA%\I2P\eepsite\docroot\ (Windows) en vervang de index.html verwijs pagina met je eigen content. Virtual folders werken, dus kan je bestanden vanuit een subdirectory hosten zonder dat je een pagina met links naar deze files moet maken. Mocht je een template nodig hebben voor een basis site, weer vrij om deze pagina en deze content te gebruiken en aan te passen! +
+

Registreer je eigen .I2P Domein

    +
  • Nu is het tijd om je eepsite toe te voegen aan een I2P adresboek gehost door een site + zoals stats.i2p. + Om dat te doen, voer je eepsite naam en destination in op de web interface van een of meer van deze sites. + Hier is het invoer formulier op stats.i2p. + De key is de "Lokale destination" sleutel op de + eepsite i2ptunnel configuratie pagina. + Zorg ervoor dat je het geheel plakt, de destination eindigt met "AAAA". + Lees de voorwaarden en klik op de "Submit" button. + Het kan een aantal uren duren (afhankelijk van de voorwaarden van de gebruikte site en de subscription update instellingen van andere routers) waarna anderen je eepsite kunnen vinden door het invoeren van mijnsite.i2p in hun browser. +

Adresboek Subscriptions Toevoegen

    +
  • Over adresboek updates gesproken, dit zou een goed moment zijn om wat adresboek subscriptions toe te voegen aan je eigen + subscription pagina. Ga naar je subscriptions configuratie pagina en voeg een aantal van deze URLs toe om automatisch op de hoogte te blijven van nieuwe hosts: +
  • Mocht je haast hebben en niet een aantal uren kunnen wachten, dan kan je gebruik maken van een "jump" adres helper redirection service. + Dit dit werkt al een paar minuten nadat je de destination aan het adresboek van dezelfde site hebt toegevoegd. + Test het eerst zelf door het invoeren van + http://stats.i2p/cgi-bin/jump.cgi?a=mijnsite.i2p of + http://i2host.i2p/cgi-bin/i2hostjump?mijnsite.i2p + in je browser. + Zodra dit werkt kan je andere hierover vertellen. +
  • Sommigen kijken op eepsite lijsten zoals + inproxy.tino.i2p/status.php voor nieuwe eepsites, dus kan je zo een aantal bezoekers krijgen. + Maar er zijn genoeg andere manieren om je eepsite te promoten. Hier zijn er een aantal: + +
+

Verdere assistentie

+Noot: Deze pagina, de website en console moeten allemaal vertaald worden in JOUW eigen taal, mocht dit nog niet gedaan zijn. Help de groei van dit project door bij te dragen aan de vertaling. Neem contact op met het project via het hierboven genoemde IRC kanaal. Alvast bedankt!
+
+Document laatst gewijzigd: November 2009.
+
+ + diff --git a/installer/resources/eepsite.help/help/index_ru.html b/installer/resources/eepsite.help/help/index_ru.html index 3fca0f2e6..9c8eccdc3 100644 --- a/installer/resources/eepsite.help/help/index_ru.html +++ b/installer/resources/eepsite.help/help/index_ru.html @@ -15,7 +15,7 @@ 中文 Deutsch Français -Nederlands +Nederlands Русский Svenska diff --git a/installer/resources/eepsite.help/help/pagetemplate.html b/installer/resources/eepsite.help/help/pagetemplate.html index fea7378de..a0ac67c29 100644 --- a/installer/resources/eepsite.help/help/pagetemplate.html +++ b/installer/resources/eepsite.help/help/pagetemplate.html @@ -14,7 +14,7 @@ 中文 Deutsch Français -Nederlands +Nederlands Русский Svenska From c08f79f71e9b0ebe85afe1b0954eef8481630fcb Mon Sep 17 00:00:00 2001 From: duck Date: Sat, 10 Jul 2010 11:49:40 +0000 Subject: [PATCH 39/75] Unfuzzy susidns translation, typo fixes for eepsite help. (thx _4get) --- apps/susidns/locale/messages_nl.po | 1 - installer/resources/eepsite.help/help/index_nl.html | 4 ++-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/apps/susidns/locale/messages_nl.po b/apps/susidns/locale/messages_nl.po index c3afac128..fb9a70421 100644 --- a/apps/susidns/locale/messages_nl.po +++ b/apps/susidns/locale/messages_nl.po @@ -500,7 +500,6 @@ msgid "The subscription file contains a list of i2p URLs." msgstr "Het subscription bestand bevat een lijst met i2p URLs." #: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:134 -#, fuzzy msgid "" "The addressbook application regularly checks this list for new eepsites." msgstr "" diff --git a/installer/resources/eepsite.help/help/index_nl.html b/installer/resources/eepsite.help/help/index_nl.html index 017b1e4b7..5d6c9a61a 100644 --- a/installer/resources/eepsite.help/help/index_nl.html +++ b/installer/resources/eepsite.help/help/index_nl.html @@ -88,7 +88,7 @@ http://stats.i2p/cgi-bin/jump.cgi?a=mijnsite.i2p of http://i2host.i2p/cgi-bin/i2hostjump?mijnsite.i2p in je browser. - Zodra dit werkt kan je andere hierover vertellen. + Zodra dit werkt kan je anderen hierover vertellen.
  • Sommigen kijken op eepsite lijsten zoals inproxy.tino.i2p/status.php voor nieuwe eepsites, dus kan je zo een aantal bezoekers krijgen. Maar er zijn genoeg andere manieren om je eepsite te promoten. Hier zijn er een aantal: @@ -101,7 +101,7 @@

    Verdere assistentie

      -
    • In dien je nog vragen hebt, de volgende plaatsten bieden support: +
    • In dien je nog vragen hebt, de volgende plaatsen bieden support:
      • Ons IRC support kanaal: From 8cc561775b9d811b7a78a5e4eab1d3d4fb0c5ab7 Mon Sep 17 00:00:00 2001 From: zzz Date: Mon, 12 Jul 2010 14:25:21 +0000 Subject: [PATCH 40/75] 0.8 --- core/java/src/net/i2p/CoreVersion.java | 2 +- history.txt | 2 ++ installer/install.xml | 2 +- installer/resources/initialNews.xml | 4 ++-- installer/resources/news.xml | 20 +++++++------------ .../src/net/i2p/router/RouterVersion.java | 4 ++-- 6 files changed, 15 insertions(+), 19 deletions(-) diff --git a/core/java/src/net/i2p/CoreVersion.java b/core/java/src/net/i2p/CoreVersion.java index 00495669c..fd43c87fc 100644 --- a/core/java/src/net/i2p/CoreVersion.java +++ b/core/java/src/net/i2p/CoreVersion.java @@ -16,7 +16,7 @@ package net.i2p; public class CoreVersion { /** deprecated */ public final static String ID = "Monotone"; - public final static String VERSION = "0.7.14"; + public final static String VERSION = "0.8"; public static void main(String args[]) { System.out.println("I2P Core version: " + VERSION); diff --git a/history.txt b/history.txt index 254a215c0..78e36b4bb 100644 --- a/history.txt +++ b/history.txt @@ -1,3 +1,5 @@ +* 2010-07-12 0.8 released + 2010-07-08 zzz * I2PTunnel: More error propagation fixes diff --git a/installer/install.xml b/installer/install.xml index 248e594b8..65f56dbc4 100644 --- a/installer/install.xml +++ b/installer/install.xml @@ -4,7 +4,7 @@ i2p - 0.7.14 + 0.8 diff --git a/installer/resources/initialNews.xml b/installer/resources/initialNews.xml index e87a7dbab..05e4436e0 100644 --- a/installer/resources/initialNews.xml +++ b/installer/resources/initialNews.xml @@ -1,6 +1,6 @@

        • Congratulations on getting I2P installed!

        diff --git a/installer/resources/news.xml b/installer/resources/news.xml index 775246baa..9e754a9e4 100644 --- a/installer/resources/news.xml +++ b/installer/resources/news.xml @@ -1,20 +1,14 @@
        -

        +

        -The 0.7.14 release contains the usual collection of bug fixes and performance tweaks. -There are also some i2psnark improvements and more fixes for plugins. -Upgrading is recommended. -

        -Important note: Due to a bug in 0.7.13 and earlier releases, clicking 'Download 0.7.14 Update' -in your router console summary bar, when you have the summary bar refresh enabled, -may result in multiple downloads of the update. Please disable the summary bar refresh -before clicking the download button. -If your update policy is set to 'Download and Verify Only' (the default) then -you should not have a problem, the router will download the file once. +The 0.8 release contains the usual collection of bug fixes, +as well as completion of the German translation by eche|on and a complete Dutch translation by monkeybrains and duck. +This release is fully compatible with the 0.7.x releases. +As usual, upgrading is recommended.

        Please help grow the network! Say hello to the volunteers on the new #i2p-help IRC channel. diff --git a/router/java/src/net/i2p/router/RouterVersion.java b/router/java/src/net/i2p/router/RouterVersion.java index 895e8eb46..a411b0099 100644 --- a/router/java/src/net/i2p/router/RouterVersion.java +++ b/router/java/src/net/i2p/router/RouterVersion.java @@ -18,10 +18,10 @@ public class RouterVersion { /** deprecated */ public final static String ID = "Monotone"; public final static String VERSION = CoreVersion.VERSION; - public final static long BUILD = 10; + public final static long BUILD = 0; /** for example "-test" */ - public final static String EXTRA = "-rc"; + public final static String EXTRA = ""; public final static String FULL_VERSION = VERSION + "-" + BUILD + EXTRA; public static void main(String args[]) { System.out.println("I2P Router version: " + FULL_VERSION); From 38169b6d70b889dbec78641577915c687e9a1dcd Mon Sep 17 00:00:00 2001 From: echelon Date: Mon, 26 Jul 2010 12:08:17 +0000 Subject: [PATCH 41/75] small fixes to _de --- apps/routerconsole/locale/messages_de.po | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/apps/routerconsole/locale/messages_de.po b/apps/routerconsole/locale/messages_de.po index 05c13a037..40ebdebd6 100644 --- a/apps/routerconsole/locale/messages_de.po +++ b/apps/routerconsole/locale/messages_de.po @@ -9,7 +9,7 @@ msgstr "" "Project-Id-Version: I2P routerconsole\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-07-08 08:03+0000\n" -"PO-Revision-Date: 2010-07-08 10:18+0100\n" +"PO-Revision-Date: 2010-07-26 14:04+0100\n" "Last-Translator: echelon \n" "Language-Team: echelon , Sperreingang \n" "MIME-Version: 1.0\n" @@ -3441,7 +3441,7 @@ msgstr "Jetzt" #: ../java/src/net/i2p/router/web/TunnelRenderer.java:63 #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/logs_jsp.java:280 msgid "configure" -msgstr "ändere" +msgstr "ändern" #: ../java/src/net/i2p/router/web/TunnelRenderer.java:65 msgid "dead" @@ -3482,7 +3482,7 @@ msgstr "Aufgabe" #: ../java/src/net/i2p/router/web/TunnelRenderer.java:74 #: ../java/src/net/i2p/router/web/TunnelRenderer.java:156 msgid "Usage" -msgstr "Benutzt" +msgstr "Datenmenge" #: ../java/src/net/i2p/router/web/TunnelRenderer.java:107 msgid "grace period" @@ -3512,7 +3512,7 @@ msgstr "Verbrauchte Bandbreite über die aktive Zeit" #: ../java/src/net/i2p/router/web/TunnelRenderer.java:156 msgid "Expiry" -msgstr "Verfallzeit" +msgstr "Restzeit" #: ../java/src/net/i2p/router/web/TunnelRenderer.java:159 msgid "Participants" @@ -3950,11 +3950,11 @@ msgstr "" #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:303 msgid "KBps In" -msgstr "kbit/s Eingehend" +msgstr "kbyte/s Eingehend" #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:317 msgid "KBps Out" -msgstr "kbit/s Ausgehend" +msgstr "kbyte/s Ausgehend" #: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:333 msgid "Share" From 6ddac9a47869ff1c5accaa9cf59aa2ab0caa97ad Mon Sep 17 00:00:00 2001 From: duck Date: Fri, 30 Jul 2010 08:54:21 +0000 Subject: [PATCH 42/75] Fix typo (trac #32) --- installer/resources/readme/readme_de.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/installer/resources/readme/readme_de.html b/installer/resources/readme/readme_de.html index 8a637a787..32a65c7fd 100644 --- a/installer/resources/readme/readme_de.html +++ b/installer/resources/readme/readme_de.html @@ -48,7 +48,7 @@ Jetty Instanz horcht auf http://127.0.0.1:7658/. Platziere einfach Deine Dateien in das eepsite/docroot/ Verzeichnis (oder jedes - standart JSP/Servlet .war unter eepsite/webapps, + Standard-JSP/Servlet .war unter eepsite/webapps, oder CGI Scripte unter eepsite/cgi-bin) und schon sind sie verfügbar. Nach dem Start des Eepsite tunnels der darauf zeigt ist Deine Eepsite für Andere verfügbar. From 87abc1d6b467f081f9f410bb6681c060625076f4 Mon Sep 17 00:00:00 2001 From: mathiasdm Date: Sat, 31 Jul 2010 12:49:38 +0000 Subject: [PATCH 43/75] CryptoConstants update from draft to RFC. --- core/java/src/net/i2p/crypto/CryptoConstants.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/core/java/src/net/i2p/crypto/CryptoConstants.java b/core/java/src/net/i2p/crypto/CryptoConstants.java index 965039074..4728de8de 100644 --- a/core/java/src/net/i2p/crypto/CryptoConstants.java +++ b/core/java/src/net/i2p/crypto/CryptoConstants.java @@ -34,8 +34,8 @@ import java.math.BigInteger; import net.i2p.util.NativeBigInteger; /** - * Primes for ElGamal and DSA from - * http://www.ietf.org/proceedings/03mar/I-D/draft-ietf-ipsec-ike-modp-groups-05.txt + * Prime for ElGamal from http://tools.ietf.org/html/rfc3526 + * Primes for DSA: unknown. */ public class CryptoConstants { public static final BigInteger dsap = new NativeBigInteger( @@ -63,4 +63,4 @@ public class CryptoConstants { + "DE2BCBF6955817183995497CEA956AE515D2261898FA0510" + "15728E5A8AACAA68FFFFFFFFFFFFFFFF", 16); public static final BigInteger elgg = new NativeBigInteger("2"); -} \ No newline at end of file +} From 6add722a2534a55b86411533296053faa4d94892 Mon Sep 17 00:00:00 2001 From: mathiasdm Date: Sun, 8 Aug 2010 10:01:35 +0000 Subject: [PATCH 44/75] Javadoc fix - thanks, duck! --- core/java/src/net/i2p/crypto/ElGamalEngine.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/java/src/net/i2p/crypto/ElGamalEngine.java b/core/java/src/net/i2p/crypto/ElGamalEngine.java index fe34012f2..93a017656 100644 --- a/core/java/src/net/i2p/crypto/ElGamalEngine.java +++ b/core/java/src/net/i2p/crypto/ElGamalEngine.java @@ -45,7 +45,7 @@ import net.i2p.util.RandomSource; /** * Wrapper for ElGamal encryption/signature schemes. * - * Does all of Elgamal now for data sizes of 223 bytes and less. The data to be + * Does all of Elgamal now for data sizes of 222 bytes and less. The data to be * encrypted is first prepended with a random nonzero byte, then the 32 bytes * making up the SHA256 of the data, then the data itself. The random byte and * the SHA256 hash is stripped on decrypt so the original data is returned. From 4323036992528caec3411c7b56e04648b4cf6295 Mon Sep 17 00:00:00 2001 From: zzz Date: Tue, 10 Aug 2010 16:17:09 +0000 Subject: [PATCH 45/75] javadocs --- .../java/src/net/i2p/i2ptunnel/I2PTunnel.java | 6 +++ core/java/src/net/i2p/I2PAppContext.java | 2 + core/java/src/net/i2p/data/DataHelper.java | 53 +++++++++++++++++-- .../net/i2p/data/i2np/I2NPMessageImpl.java | 4 ++ .../i2p/router/peermanager/PeerProfile.java | 3 ++ .../router/transport/ntcp/EstablishState.java | 8 +++ .../i2p/router/tunnel/pool/BuildHandler.java | 2 + 7 files changed, 74 insertions(+), 4 deletions(-) diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnel.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnel.java index 110d62984..17049626c 100644 --- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnel.java +++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnel.java @@ -1463,6 +1463,7 @@ public class I2PTunnel implements Logging, EventDispatcher { /** * Create a new destination, storing the destination and its private keys where * instructed + * Deprecated - only used by CLI * * @param writeTo location to store the private keys * @param pubDest location to store the destination @@ -1487,6 +1488,7 @@ public class I2PTunnel implements Logging, EventDispatcher { /** * Read in the given destination, display it, and write it to the given location + * Deprecated - only used by CLI * * @param readFrom stream to read the destination from * @param pubDest stream to write the destination to @@ -1508,6 +1510,7 @@ public class I2PTunnel implements Logging, EventDispatcher { /** * Write out the destination to the stream + * Deprecated - only used by CLI * * @param d Destination to write * @param o stream to write the destination to @@ -1525,6 +1528,9 @@ public class I2PTunnel implements Logging, EventDispatcher { * also supported, where filename is a file that either contains a * binary Destination structure or the Base64 encoding of that * structure. + * + * Since file: isn't really used, this method is deprecated, + * just call context.namingService.lookup() directly. */ public static Destination destFromName(String name) throws DataFormatException { diff --git a/core/java/src/net/i2p/I2PAppContext.java b/core/java/src/net/i2p/I2PAppContext.java index aac61d4be..1bfde4aad 100644 --- a/core/java/src/net/i2p/I2PAppContext.java +++ b/core/java/src/net/i2p/I2PAppContext.java @@ -586,12 +586,14 @@ public class I2PAppContext { } } + /** @deprecated unused */ public HMAC256Generator hmac256() { if (!_hmac256Initialized) initializeHMAC256(); return _hmac256; } + /** @deprecated unused */ private void initializeHMAC256() { synchronized (this) { if (_hmac256 == null) { diff --git a/core/java/src/net/i2p/data/DataHelper.java b/core/java/src/net/i2p/data/DataHelper.java index 3c83d6527..0743defde 100644 --- a/core/java/src/net/i2p/data/DataHelper.java +++ b/core/java/src/net/i2p/data/DataHelper.java @@ -98,6 +98,10 @@ public class DataHelper { /** * Write a mapping to the stream, as defined by the I2P data structure spec, * and store it into a Properties object. See readProperties for the format. + * Property keys and values must not contain '=' or ';', this is not checked and they are not escaped + * Keys and values must be 255 bytes or less, + * Formatted length must not exceed 65535 bytes + * @throws DataFormatException if either is too long. * * @param rawStream stream to write to * @param props properties to write out @@ -111,6 +115,11 @@ public class DataHelper { /** * Writes the props to the stream, sorted by property name. + * See readProperties() for the format. + * Property keys and values must not contain '=' or ';', this is not checked and they are not escaped + * Keys and values must be 255 bytes or less, + * Formatted length must not exceed 65535 bytes + * @throws DataFormatException if either is too long. * * jrandom disabled UTF-8 in mid-2004, for performance reasons, * i.e. slow foo.getBytes("UTF-8") @@ -151,8 +160,19 @@ public class DataHelper { } /* - * Reads the props from the byte array - * @param props returned OrderedProperties (sorted by property name) + * Writes the props to the byte array, sorted + * See readProperties() for the format. + * Property keys and values must not contain '=' or ';', this is not checked and they are not escaped + * Keys and values must be 255 bytes or less, + * @throws DataFormatException if too long. + * Formatted length must not exceed 65535 bytes + * Should throw DataFormatException if too long but it doesn't. + * Warning - confusing method name, Properties is the source. + * + * @deprecated unused + * + * @param target returned array as specified in data structure spec + * @param props source * @return new offset */ public static int toProperties(byte target[], int offset, Properties props) throws DataFormatException, IOException { @@ -185,8 +205,14 @@ public class DataHelper { } /** - * Writes the props to the byte array, not sorted - * (unless the target param is an OrderedProperties) + * Reads the props from the byte array and puts them in the Properties target + * See readProperties() for the format. + * Warning - confusing method name, Properties is the target. + * + * @deprecated unused + * + * @param source source + * @param target returned Properties * @return new offset */ public static int fromProperties(byte source[], int offset, Properties target) throws DataFormatException, IOException { @@ -214,6 +240,15 @@ public class DataHelper { /** * Writes the props to returned byte array, not sorted * (unless the opts param is an OrderedProperties) + * See readProperties() for the format. + * Property keys and values must not contain '=' or ';', this is not checked and they are not escaped + * Keys and values must be 255 bytes or less, + * Formatted length must not exceed 65535 bytes + * Warning - confusing method name, Properties is the source. + * + * @deprecated unused + * + * @throws RuntimeException if either is too long. */ public static byte[] toProperties(Properties opts) { try { @@ -604,6 +639,7 @@ public class DataHelper { * @throws DataFormatException if the boolean is not valid * @throws IOException if there is an IO error reading the boolean * @return boolean value, or null + * @deprecated unused */ public static Boolean readBoolean(InputStream in) throws DataFormatException, IOException { int val = (int) readLong(in, 1); @@ -626,6 +662,7 @@ public class DataHelper { * @param bool boolean value, or null * @throws DataFormatException if the boolean is not valid * @throws IOException if there is an IO error writing the boolean + * @deprecated unused */ public static void writeBoolean(OutputStream out, Boolean bool) throws DataFormatException, IOException { @@ -637,6 +674,7 @@ public class DataHelper { writeLong(out, 1, BOOLEAN_FALSE); } + /** @deprecated unused */ public static Boolean fromBoolean(byte data[], int offset) { if (data[offset] == BOOLEAN_TRUE) return Boolean.TRUE; @@ -646,9 +684,12 @@ public class DataHelper { return null; } + /** @deprecated unused */ public static void toBoolean(byte data[], int offset, boolean value) { data[offset] = (value ? BOOLEAN_TRUE : BOOLEAN_FALSE); } + + /** @deprecated unused */ public static void toBoolean(byte data[], int offset, Boolean value) { if (value == null) data[offset] = BOOLEAN_UNKNOWN; @@ -656,9 +697,13 @@ public class DataHelper { data[offset] = (value.booleanValue() ? BOOLEAN_TRUE : BOOLEAN_FALSE); } + /** deprecated - used only in DatabaseLookupMessage */ public static final byte BOOLEAN_TRUE = 0x1; + /** deprecated - used only in DatabaseLookupMessage */ public static final byte BOOLEAN_FALSE = 0x0; + /** @deprecated unused */ public static final byte BOOLEAN_UNKNOWN = 0x2; + /** @deprecated unused */ public static final int BOOLEAN_LENGTH = 1; // diff --git a/router/java/src/net/i2p/data/i2np/I2NPMessageImpl.java b/router/java/src/net/i2p/data/i2np/I2NPMessageImpl.java index 108ee0eb0..ae22437b8 100644 --- a/router/java/src/net/i2p/data/i2np/I2NPMessageImpl.java +++ b/router/java/src/net/i2p/data/i2np/I2NPMessageImpl.java @@ -58,6 +58,10 @@ public abstract class I2NPMessageImpl extends DataStructureImpl implements I2NPM //_context.statManager().createRateStat("i2np.readTime", "How long it takes to read an I2NP message", "I2NP", new long[] { 10*60*1000, 60*60*1000 }); } + /** + * Read the whole message (including the type) and throw it away. + * @deprecated Unused, why would you do this + */ public void readBytes(InputStream in) throws DataFormatException, IOException { try { readBytes(in, -1, new byte[1024]); diff --git a/router/java/src/net/i2p/router/peermanager/PeerProfile.java b/router/java/src/net/i2p/router/peermanager/PeerProfile.java index a0e4f76a0..6f7fe54bb 100644 --- a/router/java/src/net/i2p/router/peermanager/PeerProfile.java +++ b/router/java/src/net/i2p/router/peermanager/PeerProfile.java @@ -224,6 +224,7 @@ public class PeerProfile { public double getIntegrationValue() { return _integrationValue; } /** * is this peer actively failing (aka not worth touching)? + * deprecated - unused - always false */ public boolean getIsFailing() { return _isFailing; } @@ -476,7 +477,9 @@ public class PeerProfile { private double calculateSpeed() { return _context.speedCalculator().calc(this); } private double calculateCapacity() { return _context.capacityCalculator().calc(this); } private double calculateIntegration() { return _context.integrationCalculator().calc(this); } + /** deprecated - unused - always false */ private boolean calculateIsFailing() { return false; } + /** deprecated - unused - always false */ void setIsFailing(boolean val) { _isFailing = val; } @Override diff --git a/router/java/src/net/i2p/router/transport/ntcp/EstablishState.java b/router/java/src/net/i2p/router/transport/ntcp/EstablishState.java index 0749e8d6c..747c923ec 100644 --- a/router/java/src/net/i2p/router/transport/ntcp/EstablishState.java +++ b/router/java/src/net/i2p/router/transport/ntcp/EstablishState.java @@ -703,6 +703,9 @@ public class EstablishState { * - 4 byte i2p network time as known by the remote side (seconds since the epoch) * - uninterpreted padding data, up to byte 223 * - xor of the local router's identity hash and the SHA256 of bytes 32 through bytes 223 + * + * @return should always be false since nobody ever sends a check info message + * */ private static boolean isCheckInfo(I2PAppContext ctx, Hash us, byte first256[]) { Log log = ctx.logManager().getLog(EstablishState.class); @@ -742,6 +745,8 @@ public class EstablishState { } } + /** @deprecated unused */ +/********* public static void checkHost(String args[]) { if (args.length != 3) { System.err.println("Usage: EstablishState ipOrHostname portNum peerHashBase64"); @@ -779,7 +784,9 @@ public class EstablishState { e.printStackTrace(); } } +*******/ +/******* public static void main(String args[]) { if (args.length == 3) { checkHost(args); @@ -943,6 +950,7 @@ public class EstablishState { e.printStackTrace(); } } +*******/ /** * Mark a string for extraction by xgettext and translation. diff --git a/router/java/src/net/i2p/router/tunnel/pool/BuildHandler.java b/router/java/src/net/i2p/router/tunnel/pool/BuildHandler.java index 705552c19..7be46e0c7 100644 --- a/router/java/src/net/i2p/router/tunnel/pool/BuildHandler.java +++ b/router/java/src/net/i2p/router/tunnel/pool/BuildHandler.java @@ -498,6 +498,8 @@ class BuildHandler { long nextId = req.readNextTunnelId(); boolean isInGW = req.readIsInboundGateway(); boolean isOutEnd = req.readIsOutboundEndpoint(); + // time is in hours, and only for log below - what's the point? + // tunnel-alt-creation.html specifies that this is enforced +/- 1 hour but it is not. long time = req.readRequestTime(); long now = (_context.clock().now() / (60l*60l*1000l)) * (60*60*1000); int ourSlot = -1; From 2244142bd80ef1a8291fb420b1eeb29c26d036e4 Mon Sep 17 00:00:00 2001 From: zzz Date: Sat, 14 Aug 2010 18:22:46 +0000 Subject: [PATCH 46/75] javadoc, comment out some main()s --- core/java/src/net/i2p/I2PAppContext.java | 67 +++++++++++++++++++ core/java/src/net/i2p/crypto/AESEngine.java | 12 +++- .../src/net/i2p/crypto/CryptixAESEngine.java | 5 +- .../src/net/i2p/crypto/ElGamalEngine.java | 10 +-- .../java/src/net/i2p/crypto/KeyGenerator.java | 8 ++- .../router/transport/udp/UDPPacketReader.java | 8 +++ 6 files changed, 98 insertions(+), 12 deletions(-) diff --git a/core/java/src/net/i2p/I2PAppContext.java b/core/java/src/net/i2p/I2PAppContext.java index 1bfde4aad..637596c4f 100644 --- a/core/java/src/net/i2p/I2PAppContext.java +++ b/core/java/src/net/i2p/I2PAppContext.java @@ -210,6 +210,7 @@ public class I2PAppContext { * need to look there as well. * * All dirs except the base are created if they don't exist, but the creation will fail silently. + * @since 0.7.6 */ private void initializeDirs() { String s = getProperty("i2p.dir.base", System.getProperty("user.dir")); @@ -265,12 +266,78 @@ public class I2PAppContext { ******/ } + /** + * This is the installation dir, often referred to as $I2P. + * Applilcations should consider this directory read-only and never + * attempt to write to it. + * It may actually be read-only on a multi-user installation. + * The config files in this directory are templates for user + * installations and should not be accessed by applications. + * The only thing that may be useful in here is the lib/ dir + * containing the .jars. + * @since 0.7.6 + * @return dir constant for the life of the context + */ public File getBaseDir() { return _baseDir; } + + /** + * The base dir for config files. + * Applications may use this to access router configuration files if necessary. + * Usually ~/.i2p on Linux and %APPDIR%\I2P on Windows. + * In installations originally installed with 0.7.5 or earlier, and in + * "portable" installations, this will be the same as the base dir. + * @since 0.7.6 + * @return dir constant for the life of the context + */ public File getConfigDir() { return _configDir; } + + /** + * Where the router keeps its files. + * Applications should not use this. + * The same as the config dir for now. + * @since 0.7.6 + * @return dir constant for the life of the context + */ public File getRouterDir() { return _routerDir; } + + /** + * Where router.ping goes. + * Applications should not use this. + * The same as the system temp dir for now. + * Which is a problem for multi-user installations. + * @since 0.7.6 + * @return dir constant for the life of the context + */ public File getPIDDir() { return _pidDir; } + + /** + * Where the router keeps its log directory. + * Applications should not use this. + * The same as the config dir for now. + * (i.e. ~/.i2p, NOT ~/.i2p/logs) + * @since 0.7.6 + * @return dir constant for the life of the context + */ public File getLogDir() { return _logDir; } + + /** + * Where applications may store data. + * The same as the config dir for now, but may change in the future. + * Apps should be careful not to overwrite router files. + * @since 0.7.6 + * @return dir constant for the life of the context + */ public File getAppDir() { return _appDir; } + + /** + * Where anybody may store temporary data. + * This is a directory created in the system temp dir on the + * first call in this context, and is deleted on JVM exit. + * Applications should create their own directory inside this directory + * to avoid collisions with other apps. + * @since 0.7.6 + * @return dir constant for the life of the context + */ public File getTempDir() { // fixme don't synchronize every time synchronized (this) { diff --git a/core/java/src/net/i2p/crypto/AESEngine.java b/core/java/src/net/i2p/crypto/AESEngine.java index a67281b23..fa6a9110a 100644 --- a/core/java/src/net/i2p/crypto/AESEngine.java +++ b/core/java/src/net/i2p/crypto/AESEngine.java @@ -18,7 +18,8 @@ import net.i2p.util.RandomSource; /** * Dummy wrapper for AES cipher operation. - * + * UNUSED unless i2p.encryption = off + * See CryptixAESEngine for the real thing. */ public class AESEngine { private Log _log; @@ -145,7 +146,10 @@ public class AESEngine { _log.warn("Warning: AES is disabled"); } - + /** + * Just copies payload to out + * @param sessionKey unused + */ public void encryptBlock(byte payload[], int inIndex, SessionKey sessionKey, byte out[], int outIndex) { System.arraycopy(payload, inIndex, out, outIndex, out.length - outIndex); } @@ -158,6 +162,7 @@ public class AESEngine { System.arraycopy(payload, inIndex, rv, outIndex, rv.length - outIndex); } +/****** public static void main(String args[]) { I2PAppContext ctx = new I2PAppContext(); SessionKey key = ctx.keyGenerator().generateSessionKey(); @@ -178,4 +183,5 @@ public class AESEngine { byte ld[] = ctx.aes().safeDecrypt(le, key, iv); ctx.logManager().getLog(AESEngine.class).debug("Long test: " + DataHelper.eq(ld, lbuf)); } -} \ No newline at end of file +******/ +} diff --git a/core/java/src/net/i2p/crypto/CryptixAESEngine.java b/core/java/src/net/i2p/crypto/CryptixAESEngine.java index b2d92bc06..fb3393dcd 100644 --- a/core/java/src/net/i2p/crypto/CryptixAESEngine.java +++ b/core/java/src/net/i2p/crypto/CryptixAESEngine.java @@ -126,6 +126,7 @@ public class CryptixAESEngine extends AESEngine { _prevCache.release(curA); } + /** encrypt exactly 16 bytes using the session key */ @Override public final void encryptBlock(byte payload[], int inIndex, SessionKey sessionKey, byte out[], int outIndex) { if (sessionKey.getPreparedKey() == null) { @@ -166,6 +167,7 @@ public class CryptixAESEngine extends AESEngine { CryptixRijndael_Algorithm.blockDecrypt(payload, rv, inIndex, outIndex, sessionKey.getPreparedKey(), 16); } +/******** public static void main(String args[]) { I2PAppContext ctx = new I2PAppContext(); try { @@ -278,4 +280,5 @@ public class CryptixAESEngine extends AESEngine { else System.out.println("block D(E(orig)) == orig"); } -} \ No newline at end of file +*******/ +} diff --git a/core/java/src/net/i2p/crypto/ElGamalEngine.java b/core/java/src/net/i2p/crypto/ElGamalEngine.java index 93a017656..c5e9cd963 100644 --- a/core/java/src/net/i2p/crypto/ElGamalEngine.java +++ b/core/java/src/net/i2p/crypto/ElGamalEngine.java @@ -66,10 +66,10 @@ public class ElGamalEngine { public ElGamalEngine(I2PAppContext context) { context.statManager().createRateStat("crypto.elGamal.encrypt", "how long does it take to do a full ElGamal encryption", "Encryption", - new long[] { 60 * 1000, 60 * 60 * 1000, 24 * 60 * 60 * 1000}); + new long[] { 60 * 60 * 1000}); context.statManager().createRateStat("crypto.elGamal.decrypt", "how long does it take to do a full ElGamal decryption", "Encryption", - new long[] { 60 * 1000, 60 * 60 * 1000, 24 * 60 * 60 * 1000}); + new long[] { 60 * 60 * 1000}); _context = context; _log = context.logManager().getLog(ElGamalEngine.class); } @@ -85,9 +85,9 @@ public class ElGamalEngine { } /** encrypt the data to the public key - * @return encrypted data + * @return encrypted data, will be about twice as big as the cleartext * @param publicKey public key encrypt to - * @param data data to encrypt + * @param data data to encrypt, must be 222 bytes or less */ public byte[] encrypt(byte data[], PublicKey publicKey) { if ((data == null) || (data.length >= 223)) @@ -156,7 +156,7 @@ public class ElGamalEngine { } /** Decrypt the data - * @param encrypted encrypted data + * @param encrypted encrypted data, must be 514 bytes or less * @param privateKey private key to decrypt with * @return unencrypted data */ diff --git a/core/java/src/net/i2p/crypto/KeyGenerator.java b/core/java/src/net/i2p/crypto/KeyGenerator.java index 6140b9c5d..7853063f3 100644 --- a/core/java/src/net/i2p/crypto/KeyGenerator.java +++ b/core/java/src/net/i2p/crypto/KeyGenerator.java @@ -25,7 +25,7 @@ import net.i2p.util.Log; import net.i2p.util.NativeBigInteger; import net.i2p.util.RandomSource; -/** Define a way of generating asymetrical key pairs as well as symetrical keys +/** Define a way of generating asymmetrical key pairs as well as symmetrical keys * @author jrandom */ public class KeyGenerator { @@ -157,7 +157,7 @@ public class KeyGenerator { * Pad the buffer w/ leading 0s or trim off leading bits so the result is the * given length. */ - final static byte[] padBuffer(byte src[], int length) { + private final static byte[] padBuffer(byte src[], int length) { byte buf[] = new byte[length]; if (src.length > buf.length) // extra bits, chop leading bits @@ -171,6 +171,7 @@ public class KeyGenerator { return buf; } +/****** public static void main(String args[]) { Log log = new Log("keygenTest"); RandomSource.getInstance().nextBoolean(); @@ -222,4 +223,5 @@ public class KeyGenerator { } catch (InterruptedException ie) { // nop } } -} \ No newline at end of file +******/ +} diff --git a/router/java/src/net/i2p/router/transport/udp/UDPPacketReader.java b/router/java/src/net/i2p/router/transport/udp/UDPPacketReader.java index 395a2fcf0..aaf0f721a 100644 --- a/router/java/src/net/i2p/router/transport/udp/UDPPacketReader.java +++ b/router/java/src/net/i2p/router/transport/udp/UDPPacketReader.java @@ -598,6 +598,8 @@ public class UDPPacketReader { _log.debug("read alice port: " + rv); return rv; } + + /** unused */ public int readChallengeSize() { int offset = readBodyOffset() + 4; offset += DataHelper.fromLong(_message, offset, 1); @@ -608,6 +610,8 @@ public class UDPPacketReader { _log.debug("read challenge size: " + rv); return rv; } + + /** unused */ public void readChallengeSize(byte target[], int targetOffset) { int offset = readBodyOffset() + 4; offset += DataHelper.fromLong(_message, offset, 1); @@ -668,6 +672,8 @@ public class UDPPacketReader { offset++; return (int)DataHelper.fromLong(_message, offset, 2); } + + /** unused */ public int readChallengeSize() { int offset = readBodyOffset(); offset += DataHelper.fromLong(_message, offset, 1); @@ -675,6 +681,8 @@ public class UDPPacketReader { offset += 2; return (int)DataHelper.fromLong(_message, offset, 1); } + + /** unused */ public void readChallengeSize(byte target[], int targetOffset) { int offset = readBodyOffset(); offset += DataHelper.fromLong(_message, offset, 1); From 4f31691c8aa27e62e038324576354dd1c3625446 Mon Sep 17 00:00:00 2001 From: z3d Date: Fri, 20 Aug 2010 22:51:58 +0000 Subject: [PATCH 47/75] Add Swedish translation for eepsite help and update other help pages accordingly. Thanks to olleolleolle. --- .../resources/eepsite.help/help/index.html | 2 +- .../resources/eepsite.help/help/index_de.html | 2 +- .../resources/eepsite.help/help/index_fr.html | 2 +- .../resources/eepsite.help/help/index_na.html | 2 +- .../resources/eepsite.help/help/index_sv.html | 137 ++++++++++++++++++ .../eepsite.help/help/pagetemplate.html | 2 +- 6 files changed, 142 insertions(+), 5 deletions(-) create mode 100644 installer/resources/eepsite.help/help/index_sv.html diff --git a/installer/resources/eepsite.help/help/index.html b/installer/resources/eepsite.help/help/index.html index c5be8fa36..fee5e2602 100644 --- a/installer/resources/eepsite.help/help/index.html +++ b/installer/resources/eepsite.help/help/index.html @@ -17,7 +17,7 @@ Français Nederlands Русский -Svenska +Svenska

        Quick Guide to Anonymous Webserving on I2P

        diff --git a/installer/resources/eepsite.help/help/index_de.html b/installer/resources/eepsite.help/help/index_de.html index 263d9a487..c7da86263 100644 --- a/installer/resources/eepsite.help/help/index_de.html +++ b/installer/resources/eepsite.help/help/index_de.html @@ -18,7 +18,7 @@ Français Nederlands Русский -Svenska +Svenska

        Diese ist Ihre Eepsite, Ihre Web-Präsens über I2P. Editieren Sie einfach die Dateien unter ~/.i2p/eepsite/docroot/ (Linux) oder %APPDATA%\I2P\eepsite\docroot\ (Windows) diff --git a/installer/resources/eepsite.help/help/index_fr.html b/installer/resources/eepsite.help/help/index_fr.html index a7c7515b5..d12cdb107 100644 --- a/installer/resources/eepsite.help/help/index_fr.html +++ b/installer/resources/eepsite.help/help/index_fr.html @@ -17,7 +17,7 @@ Français Nederlands Русский -Svenska +Svenska

        Un mini guide pour faire un serveur web anonyme utilisant I2P

        diff --git a/installer/resources/eepsite.help/help/index_na.html b/installer/resources/eepsite.help/help/index_na.html index 1475c6eba..8b5087d1a 100644 --- a/installer/resources/eepsite.help/help/index_na.html +++ b/installer/resources/eepsite.help/help/index_na.html @@ -16,7 +16,7 @@ Français Nederlands Русский -Svenska +Svenska

        Help translate this page into your language!

        diff --git a/installer/resources/eepsite.help/help/index_sv.html b/installer/resources/eepsite.help/help/index_sv.html new file mode 100644 index 000000000..c044bd271 --- /dev/null +++ b/installer/resources/eepsite.help/help/index_sv.html @@ -0,0 +1,137 @@ + + + I2P Anonym Webbserver | Vlkommen till din eepsite + + + + + +
        +
        +

        I2P Anonym Webbserver

        +
        + +English +?? +Deutsch +Franais +Nederlands +??????? +Svenska + +
        +

        Snabb vgledning till anonym webbservning p I2P

        + +

        Det hr r din eepsite, din egen anonyma I2P-webbserver - redigera bara filerna + under ~/.i2p/eepsite/docroot/ (Linux, OS X) + eller %APPDATA%\I2P\eepsite\docroot\ (Windows) + s kommer andra kunna n dem efter att du fljt instruktionerna nedan. + I I2P s adresseras eepsajter med en 'nyckel', som representeras som en vldigt lng Base64-strng. + ('Nyckeln' r ngot s nr analog med en IP-adress och visas + p eepsajtens I2PTunnel-konfigurationssida). + Nedan ges instruktioner om hur du kan ange ett namn som "minsajt.i2p" till din nyckel och brja kra din eepsajt.

        +

        Du kan n din eepsajt lokalt via + http://127.0.0.1:7658/. +

        + +

        Att stta upp och annonsera din eepsajt

        + Din eepsajt r stoppad som standard. + Efter att du startat den kommer det att vara svrt fr att andra att hitta den, + eftersom den inte har ett namn och de inte knner till din mycket lnga Base64-nyckel. + Du skulle bara kunna bertta fr andra om den lnga nyckeln, men tacksamt nog har i2p en + adressbok och mnga enkla stt att bertta fr folk om din eepsajt. Hr r alla stegen. +
          +
        • Vlj ett namn t din eepsajt (ettbranamn.i2p). Sm bokstver. + Kanske vill du frst kolla i + din routers adressbok, + eller i filen i2p/hosts.txt fr att se om ditt tilltnkta namn redan r taget. + Skriv in namnet fr din eepsajt p + eepsitekonfigurationssidan fr i2ptunnel + dr det str "Website name". Detta kommer att erstta det frinstllda "mysite.i2p". + Nr du r dr, kryssa i "Auto Start"-rutan. Din eepsajt kommer nu att starta varje gng som du startar + din router. + Tryck sedan p "Save". +
        • Klicka p startknappen fr din eepsajt p + huvudkonfigurationssidan fr i2ptunnel. + Du borde nu kunna se "eepsite" listad under "Local Destinations" p vnster sida om + I2P Router Console. + Din eepsajt kr nu. +
        • Markera hela "Local destination"-nyckeln p + eepsitekonfigurationssidan fr i2ptunnel + och kopiera den fr att senare klistra in den. + Skerstll att du fr med hela texten - det r mer n 500 bokstver och den mste sluta p "AAAA". +
        • Skriv in namnet och klistra in destinationsnyckeln i din + huvudadressbok. + Klicka p "Add" fr att lgga till destinationen i din adressbok. +
        • I din webblsare, skriv in ditt eepsajtnamn (ettbranamn.i2p) s borde du landa p den hr sidan igen. + Frhoppningsvis fungerade det. +
        • Innan du berttar fr vrlden om den nya eepsajt borde du lgga till lite innehll. + G till ~/.i2p/eepsite/docroot/ (p Linux eller OS X) eller %APPDATA%\I2P\eepsite\docroot\ (p Windows) + och erstt omdirigeringssidan index.html med ditt eget innehll. Virtuella mappar fungerar, s du kan serva filer frn en + underkatalog utan att behva ge en sida med lnkar till filer. Om du behver en mall fr en enkel sajt s + varsgod och lna och anpassa + denna sida och det hr innehllet! +
        +

        Registrera din egen .I2P-domn

          +
        • Nu r det dags att lgga till din eepsajt till en I2P-adressbok som hostas p en sajt + som stats.i2p. + Allts, du mste skriva in namn och nyckeln p din eepsajt i ett webbgrnssnitt p + en eller flera av dessa sajter. + Hr r nyckelinmatningsformulret hos stats.i2p. + terigen, din nyckel r hela "Local destination"-nyckeln p + eepsite-konfigurationssidan fr i2ptunnel. + Skerstll att du fr med hela texten, som slutar med "AAAA". + Glm inte att klicka p "add a key". + Kolla att den rapporterar att nyckeln lagts till. + Eftersom mnga routrar periodiskt skaffar adressboksuppdateringar frn dessa sajter + s kommer andra att kunna finna din eepsajt inom ett antal timmar, bara genom att + skriva ettbranamn.i2p i sin webblsare. +

        Att prenumerera p adressbcker

          +
        • P tal adressboksuppdateringar, nu vore en bra tidpunkt att lgga till ngra fler adressbcker + till din egen + prenumerationslista. + G till din prenumerationsinstllningssida och lgg till ett par av de hr fr en automatiskt uppdaterad + lista ver nya hosts: +
        • Om du har brttom och inte kan vnta ett par timmar s kan du sga t folk att anvnda en "jump"-adresshjlpar- + omdirigeringstjnst. + Detta kommer att funka inom ett par minuter efter att du skrivit in nyckeln i en adressbok p samma sajt. + Prova frst sjlv genom att skriva: + http://stats.i2p/cgi-bin/jump.cgi?a=ettbranamn.i2p eller + http://i2host.i2p/cgi-bin/i2hostjump?ettbranamn.i2p + i din webblsare. + S snart som det funkar kan du bertta fr andra att de ska anvnda det. +
        • Vissa mnniskor kolla p eepsajtlistor som + inproxy.tino.i2p/status.php efter nya eepsajter, + s att du kan brja f ett par beskare. Men det finns massor av stt att bertta fr folk. + Hr r en rad ider: + + Notera att vissa sajter rekommenderar att du klistrar in den verkligt + lnga destinationsnyckeln. Det kan du om vill - men om du har framgngsrikt har skickat din + nyckel, testat den med en "hopptjnst", och vntat 24 timmar p att adressboken ska brja + propagera sina ndringar till andra, s det borde inte vara ndvndigt.
        +

        Vidare assistans

        +

        + Ifall du har ngra frgor, s finns fljande stllen fr support: +

        + +
        +Note: This page, the website and the console all need translating into YOUR language if it's not already been done or in progress. Please consider helping the project grow by volunteering your time to translate. Contact the project via the IRC channel listed above. Thanks in advance!
        +
        +Document last edited: August 2010.
        +
        + + \ No newline at end of file diff --git a/installer/resources/eepsite.help/help/pagetemplate.html b/installer/resources/eepsite.help/help/pagetemplate.html index fea7378de..39723c366 100644 --- a/installer/resources/eepsite.help/help/pagetemplate.html +++ b/installer/resources/eepsite.help/help/pagetemplate.html @@ -16,7 +16,7 @@ Français Nederlands Русский -Svenska +Svenska

        Words and pictures and stuff

        From 91bcf947df16df1b4b017fcd616bf9060440a3cc Mon Sep 17 00:00:00 2001 From: zzz Date: Mon, 30 Aug 2010 17:51:49 +0000 Subject: [PATCH 48/75] * Javadocs * Base64: comment out some unused methods * Remove huge whitespace in CryptoConstants * ElGamalAESEngine: - Reduce rates - Check number of tags earlier --- .../i2p/i2ptunnel/I2PTunnelConnectClient.java | 4 ++ .../net/i2p/i2ptunnel/I2PTunnelRunner.java | 2 + .../streaming/I2PSocketManagerFull.java | 13 +++- .../src/net/i2p/crypto/CryptixAESEngine.java | 4 +- .../src/net/i2p/crypto/CryptoConstants.java | 14 ++--- .../src/net/i2p/crypto/ElGamalAESEngine.java | 48 +++++++++++--- .../src/net/i2p/crypto/ElGamalEngine.java | 19 +++++- core/java/src/net/i2p/data/Base32.java | 22 +++++-- core/java/src/net/i2p/data/Base64.java | 41 ++++++++++-- .../net/i2p/data/i2np/BuildRequestRecord.java | 4 +- .../router/message/GarlicMessageBuilder.java | 5 ++ .../networkdb/kademlia/MessageWrapper.java | 2 +- .../router/transport/ntcp/EstablishState.java | 62 +++++++++++++++---- .../router/transport/udp/PacketBuilder.java | 1 + 14 files changed, 193 insertions(+), 48 deletions(-) diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelConnectClient.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelConnectClient.java index 7a80c181f..fe92e94b6 100644 --- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelConnectClient.java +++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelConnectClient.java @@ -26,6 +26,7 @@ import net.i2p.util.Log; /** * Supports the following: + *
          *   (where protocol is generally HTTP/1.1 but is ignored)
          *   (where host is one of:
          *      example.i2p
        @@ -39,16 +40,19 @@ import net.i2p.util.Log;
          *   CONNECT host protocol
          *   CONNECT host:port
          *   CONNECT host:port protocol (this is the standard)
        + *
        * * Additional lines after the CONNECT line but before the blank line are ignored and stripped. * The CONNECT line is removed for .i2p accesses * but passed along for outproxy accesses. * * Ref: + *
          *  INTERNET-DRAFT                                              Ari Luotonen
          *  Expires: September 26, 1997          Netscape Communications Corporation
          *                       March 26, 1997
          *                     Tunneling SSL Through a WWW Proxy
        + *
        * * @author zzz a stripped-down I2PTunnelHTTPClient */ diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelRunner.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelRunner.java index 6be20ba8b..c2a014020 100644 --- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelRunner.java +++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelRunner.java @@ -127,6 +127,8 @@ public class I2PTunnelRunner extends I2PAppThread implements I2PSocket.SocketErr // this does not increment totalSent i2pout.write(initialI2PData); // do NOT flush here, it will block and then onTimeout.run() won't happen on fail. + // But if we don't flush, then we have to wait for the connectDelay timer to fire + // in i2p socket? To be researched and/or fixed. //i2pout.flush(); } } diff --git a/apps/streaming/java/src/net/i2p/client/streaming/I2PSocketManagerFull.java b/apps/streaming/java/src/net/i2p/client/streaming/I2PSocketManagerFull.java index b904243b1..c26a27fe2 100644 --- a/apps/streaming/java/src/net/i2p/client/streaming/I2PSocketManagerFull.java +++ b/apps/streaming/java/src/net/i2p/client/streaming/I2PSocketManagerFull.java @@ -176,7 +176,11 @@ public class I2PSocketManagerFull implements I2PSocketManager { } /** - * Create a new connected socket (block until the socket is created) + * Create a new connected socket. Blocks until the socket is created, + * unless the connectDelay option (i2p.streaming.connectDelay) is + * set and greater than zero. If so this will return immediately, + * and the client may quickly write initial data to the socket and + * this data will be bundled in the SYN packet. * * @param peer Destination to connect to * @param options I2P socket options to be used for connecting @@ -199,6 +203,7 @@ public class I2PSocketManagerFull implements I2PSocketManager { if (_log.shouldLog(Log.INFO)) _log.info("Connecting to " + peer.calculateHash().toBase64().substring(0,6) + " with options: " + opts); + // the following blocks unless connect delay > 0 Connection con = _connectionManager.connect(peer, opts); if (con == null) throw new TooManyStreamsException("Too many streams (max " + _maxStreams + ")"); @@ -212,7 +217,11 @@ public class I2PSocketManagerFull implements I2PSocketManager { } /** - * Create a new connected socket (block until the socket is created) + * Create a new connected socket. Blocks until the socket is created, + * unless the connectDelay option (i2p.streaming.connectDelay) is + * set and greater than zero in the default options. If so this will return immediately, + * and the client may quickly write initial data to the socket and + * this data will be bundled in the SYN packet. * * @param peer Destination to connect to * diff --git a/core/java/src/net/i2p/crypto/CryptixAESEngine.java b/core/java/src/net/i2p/crypto/CryptixAESEngine.java index fb3393dcd..acd2eb702 100644 --- a/core/java/src/net/i2p/crypto/CryptixAESEngine.java +++ b/core/java/src/net/i2p/crypto/CryptixAESEngine.java @@ -41,11 +41,13 @@ public class CryptixAESEngine extends AESEngine { _cache = new CryptixAESKeyCache(); } + /** @param length must be a multiple of 16 */ @Override public void encrypt(byte payload[], int payloadIndex, byte out[], int outIndex, SessionKey sessionKey, byte iv[], int length) { encrypt(payload, payloadIndex, out, outIndex, sessionKey, iv, 0, length); } + /** @param length must be a multiple of 16 */ @Override public void encrypt(byte payload[], int payloadIndex, byte out[], int outIndex, SessionKey sessionKey, byte iv[], int ivOffset, int length) { if ( (payload == null) || (out == null) || (sessionKey == null) || (iv == null) ) @@ -142,7 +144,7 @@ public class CryptixAESEngine extends AESEngine { CryptixRijndael_Algorithm.blockEncrypt(payload, out, inIndex, outIndex, sessionKey.getPreparedKey(), 16); } - /** decrypt the data with the session key provided + /** decrypt exactly 16 bytes of data with the session key provided * @param payload encrypted data * @param sessionKey private session key */ diff --git a/core/java/src/net/i2p/crypto/CryptoConstants.java b/core/java/src/net/i2p/crypto/CryptoConstants.java index 4728de8de..228a92e84 100644 --- a/core/java/src/net/i2p/crypto/CryptoConstants.java +++ b/core/java/src/net/i2p/crypto/CryptoConstants.java @@ -35,21 +35,21 @@ import net.i2p.util.NativeBigInteger; /** * Prime for ElGamal from http://tools.ietf.org/html/rfc3526 - * Primes for DSA: unknown. + * Primes for DSA: Generated by TheCrypto http://article.gmane.org/gmane.comp.security.invisiblenet.iip.devel/343 */ public class CryptoConstants { public static final BigInteger dsap = new NativeBigInteger( "9c05b2aa960d9b97b8931963c9cc9e8c3026e9b8ed92fad0a69cc886d5bf8015fcadae31" - + "a0ad18fab3f01b00a358de237655c4964afaa2b337e96ad316b9fb1cc564b5aec5b69a9f" - + "f6c3e4548707fef8503d91dd8602e867e6d35d2235c1869ce2479c3b9d5401de04e0727f" - + "b33d6511285d4cf29538d9e3b6051f5b22cc1c93", + + "a0ad18fab3f01b00a358de237655c4964afaa2b337e96ad316b9fb1cc564b5aec5b69a9f" + + "f6c3e4548707fef8503d91dd8602e867e6d35d2235c1869ce2479c3b9d5401de04e0727f" + + "b33d6511285d4cf29538d9e3b6051f5b22cc1c93", 16); public static final BigInteger dsaq = new NativeBigInteger("a5dfc28fef4ca1e286744cd8eed9d29d684046b7", 16); public static final BigInteger dsag = new NativeBigInteger( "c1f4d27d40093b429e962d7223824e0bbc47e7c832a39236fc683af84889581075ff9082" - + "ed32353d4374d7301cda1d23c431f4698599dda02451824ff369752593647cc3ddc197de" - + "985e43d136cdcfc6bd5409cd2f450821142a5e6f8eb1c3ab5d0484b8129fcf17bce4f7f3" - + "3321c3cb3dbb14a905e7b2b3e93be4708cbcc82", + + "ed32353d4374d7301cda1d23c431f4698599dda02451824ff369752593647cc3ddc197de" + + "985e43d136cdcfc6bd5409cd2f450821142a5e6f8eb1c3ab5d0484b8129fcf17bce4f7f3" + + "3321c3cb3dbb14a905e7b2b3e93be4708cbcc82", 16); public static final BigInteger elgp = new NativeBigInteger("FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD1" + "29024E088A67CC74020BBEA63B139B22514A08798E3404DD" diff --git a/core/java/src/net/i2p/crypto/ElGamalAESEngine.java b/core/java/src/net/i2p/crypto/ElGamalAESEngine.java index 820a57c67..f4f276de2 100644 --- a/core/java/src/net/i2p/crypto/ElGamalAESEngine.java +++ b/core/java/src/net/i2p/crypto/ElGamalAESEngine.java @@ -43,19 +43,19 @@ public class ElGamalAESEngine { _context.statManager().createFrequencyStat("crypto.elGamalAES.encryptNewSession", "how frequently we encrypt to a new ElGamal/AES+SessionTag session?", - "Encryption", new long[] { 60*1000l, 60*60*1000l, 24*60*60*1000l}); + "Encryption", new long[] { 60*60*1000l}); _context.statManager().createFrequencyStat("crypto.elGamalAES.encryptExistingSession", "how frequently we encrypt to an existing ElGamal/AES+SessionTag session?", - "Encryption", new long[] { 60 * 1000l, 60 * 60 * 1000l, 24 * 60 * 60 * 1000l}); + "Encryption", new long[] { 60*60*1000l}); _context.statManager().createFrequencyStat("crypto.elGamalAES.decryptNewSession", "how frequently we decrypt with a new ElGamal/AES+SessionTag session?", - "Encryption", new long[] { 60 * 1000l, 60 * 60 * 1000l, 24 * 60 * 60 * 1000l}); + "Encryption", new long[] { 60*60*1000l}); _context.statManager().createFrequencyStat("crypto.elGamalAES.decryptExistingSession", "how frequently we decrypt with an existing ElGamal/AES+SessionTag session?", - "Encryption", new long[] { 60 * 1000l, 60 * 60 * 1000l, 24 * 60 * 60 * 1000l}); + "Encryption", new long[] { 60*60*1000l}); _context.statManager().createFrequencyStat("crypto.elGamalAES.decryptFailed", - "how frequently we fail to decrypt with ElGamal/AES+SessionTag?", "Encryption", - new long[] { 60 * 60 * 1000l, 24 * 60 * 60 * 1000l}); + "how frequently we fail to decrypt with ElGamal/AES+SessionTag?", + "Encryption", new long[] { 60*60*1000l}); } /** @@ -73,6 +73,7 @@ public class ElGamalAESEngine { * This works according to the * ElGamal+AES algorithm in the data structure spec. * + * @return decrypted data or null on failure */ public byte[] decrypt(byte data[], PrivateKey targetPrivateKey, SessionKeyManager keyManager) throws DataFormatException { if (data == null) { @@ -148,9 +149,12 @@ public class ElGamalAESEngine { /** * scenario 1: * Begin with 222 bytes, ElG encrypted, containing: + *
              *  - 32 byte SessionKey
              *  - 32 byte pre-IV for the AES
              *  - 158 bytes of random padding
        +     * 
        + * After encryption, the ElG section is 514 bytes long. * Then encrypt with AES using that session key and the first 16 bytes of the SHA256 of the pre-IV, using * the decryptAESBlock method & structure. * @@ -213,6 +217,7 @@ public class ElGamalAESEngine { * scenario 2: * The data begins with 32 byte session tag, which also serves as the preIV. * Then decrypt with AES using that session key and the first 16 bytes of the SHA256 of the pre-IV: + *
              *  - 2 byte integer specifying the # of session tags
              *  - that many 32 byte session tags
              *  - 4 byte integer specifying data.length
        @@ -220,11 +225,13 @@ public class ElGamalAESEngine {
              *  - 1 byte flag that, if == 1, is followed by a new SessionKey
              *  - data
              *  - random bytes, padding the total size to greater than paddedSize with a mod 16 = 0
        +     * 
        * * If anything doesn't match up in decryption, it falls back to decryptNewSession * * @param foundTags set which is filled with any sessionTags found during decryption * @param foundKey session key which may be filled with a new sessionKey found during decryption + * @return decrypted data or null on failure * */ byte[] decryptExistingSession(byte data[], SessionKey key, PrivateKey targetPrivateKey, Set foundTags, @@ -264,6 +271,7 @@ public class ElGamalAESEngine { /** * Decrypt the AES data with the session key and IV. The result should be: + *
              *  - 2 byte integer specifying the # of session tags
              *  - that many 32 byte session tags
              *  - 4 byte integer specifying data.length
        @@ -271,6 +279,7 @@ public class ElGamalAESEngine {
              *  - 1 byte flag that, if == 1, is followed by a new SessionKey
              *  - data
              *  - random bytes, padding the total size to greater than paddedSize with a mod 16 = 0
        +     * 
        * * If anything doesn't match up in decryption, return null. Otherwise, return * the decrypted data and update the session as necessary. If the sentTag is not null, @@ -278,6 +287,7 @@ public class ElGamalAESEngine { * * @param foundTags set which is filled with any sessionTags found during decryption * @param foundKey session key which may be filled with a new sessionKey found during decryption + * @return decrypted data or null on failure */ byte[] decryptAESBlock(byte encrypted[], SessionKey key, byte iv[], byte sentTag[], Set foundTags, SessionKey foundKey) throws DataFormatException { @@ -299,10 +309,10 @@ public class ElGamalAESEngine { //ByteArrayInputStream bais = new ByteArrayInputStream(decrypted); int cur = 0; long numTags = DataHelper.fromLong(decrypted, cur, 2); + if ((numTags < 0) || (numTags > 200)) throw new Exception("Invalid number of session tags"); if (numTags > 0) tags = new ArrayList((int)numTags); cur += 2; //_log.debug("# tags: " + numTags); - if ((numTags < 0) || (numTags > 200)) throw new Exception("Invalid number of session tags"); if (numTags * SessionTag.BYTE_LENGTH > decrypted.length - 2) { throw new Exception("# tags: " + numTags + " is too many for " + (decrypted.length - 2)); } @@ -363,6 +373,8 @@ public class ElGamalAESEngine { * @param newKey key to be delivered to the target, with which the tagsForDelivery should be associated, or null * @param paddedSize minimum size in bytes of the body after padding it (if less than the * body's real size, no bytes are appended but the body is not truncated) + * + * Unused externally, only called by below (i.e. newKey is always null) */ public byte[] encrypt(byte data[], PublicKey target, SessionKey key, Set tagsForDelivery, SessionTag currentTag, SessionKey newKey, long paddedSize) { @@ -384,6 +396,7 @@ public class ElGamalAESEngine { /** * Encrypt the data to the target using the given key and deliver the specified tags * No new session key + * This is the one called from GarlicMessageBuilder and is the primary entry point. */ public byte[] encrypt(byte data[], PublicKey target, SessionKey key, Set tagsForDelivery, SessionTag currentTag, long paddedSize) { @@ -394,6 +407,8 @@ public class ElGamalAESEngine { * Encrypt the data to the target using the given key and deliver the specified tags * No new session key * No current tag (encrypt as new session) + * + * @deprecated unused */ public byte[] encrypt(byte data[], PublicKey target, SessionKey key, Set tagsForDelivery, long paddedSize) { return encrypt(data, target, key, tagsForDelivery, null, null, paddedSize); @@ -403,6 +418,8 @@ public class ElGamalAESEngine { * Encrypt the data to the target using the given key delivering no tags * No new session key * No current tag (encrypt as new session) + * + * @deprecated unused */ public byte[] encrypt(byte data[], PublicKey target, SessionKey key, long paddedSize) { return encrypt(data, target, key, null, null, null, paddedSize); @@ -411,10 +428,14 @@ public class ElGamalAESEngine { /** * scenario 1: * Begin with 222 bytes, ElG encrypted, containing: + *
              *  - 32 byte SessionKey
              *  - 32 byte pre-IV for the AES
              *  - 158 bytes of random padding
        -     * Then encrypt with AES using that session key and the first 16 bytes of the SHA256 of the pre-IV:
        +     * 
        + * After encryption, the ElG section is 514 bytes long. + * Then encrypt the following with AES using that session key and the first 16 bytes of the SHA256 of the pre-IV: + *
              *  - 2 byte integer specifying the # of session tags
              *  - that many 32 byte session tags
              *  - 4 byte integer specifying data.length
        @@ -422,6 +443,7 @@ public class ElGamalAESEngine {
              *  - 1 byte flag that, if == 1, is followed by a new SessionKey
              *  - data
              *  - random bytes, padding the total size to greater than paddedSize with a mod 16 = 0
        +     * 
        * */ byte[] encryptNewSession(byte data[], PublicKey target, SessionKey key, Set tagsForDelivery, @@ -440,10 +462,12 @@ public class ElGamalAESEngine { //_log.debug("SessionKey for encryptNewSession: " + DataHelper.toString(key.getData(), 32)); long before = _context.clock().now(); byte elgEncr[] = _context.elGamalEngine().encrypt(elgSrcData, target); - long after = _context.clock().now(); - if (_log.shouldLog(Log.INFO)) + if (_log.shouldLog(Log.INFO)) { + long after = _context.clock().now(); _log.info("elgEngine.encrypt of the session key took " + (after - before) + "ms"); + } if (elgEncr.length < 514) { + // ??? ElGamalEngine.encrypt() always returns 514 bytes byte elg[] = new byte[514]; int diff = elg.length - elgEncr.length; //if (_log.shouldLog(Log.DEBUG)) _log.debug("Difference in size: " + diff); @@ -474,6 +498,7 @@ public class ElGamalAESEngine { * scenario 2: * Begin with 32 byte session tag, which also serves as the preIV. * Then encrypt with AES using that session key and the first 16 bytes of the SHA256 of the pre-IV: + *
              *  - 2 byte integer specifying the # of session tags
              *  - that many 32 byte session tags
              *  - 4 byte integer specifying data.length
        @@ -481,6 +506,7 @@ public class ElGamalAESEngine {
              *  - 1 byte flag that, if == 1, is followed by a new SessionKey
              *  - data
              *  - random bytes, padding the total size to greater than paddedSize with a mod 16 = 0
        +     * 
        * */ byte[] encryptExistingSession(byte data[], PublicKey target, SessionKey key, Set tagsForDelivery, @@ -506,6 +532,7 @@ public class ElGamalAESEngine { * For both scenarios, this method encrypts the AES area using the given key, iv * and making sure the resulting data is at least as long as the paddedSize and * also mod 16 bytes. The contents of the encrypted data is: + *
              *  - 2 byte integer specifying the # of session tags
              *  - that many 32 byte session tags
              *  - 4 byte integer specifying data.length
        @@ -513,6 +540,7 @@ public class ElGamalAESEngine {
              *  - 1 byte flag that, if == 1, is followed by a new SessionKey
              *  - data
              *  - random bytes, padding the total size to greater than paddedSize with a mod 16 = 0
        +     * 
        * */ final byte[] encryptAESBlock(byte data[], SessionKey key, byte[] iv, Set tagsForDelivery, SessionKey newKey, diff --git a/core/java/src/net/i2p/crypto/ElGamalEngine.java b/core/java/src/net/i2p/crypto/ElGamalEngine.java index c5e9cd963..ae3b0eb3a 100644 --- a/core/java/src/net/i2p/crypto/ElGamalEngine.java +++ b/core/java/src/net/i2p/crypto/ElGamalEngine.java @@ -85,9 +85,17 @@ public class ElGamalEngine { } /** encrypt the data to the public key - * @return encrypted data, will be about twice as big as the cleartext + * @return encrypted data, will be exactly 514 bytes long + * Contains the two-part encrypted data starting at bytes 0 and 257. + * If the encrypted parts are smaller than 257 bytes, they will be + * padded with leading zeros. + * The parts appear to always be 256 bytes or less, in other words, + * bytes 0 and 257 are always zero. * @param publicKey public key encrypt to * @param data data to encrypt, must be 222 bytes or less + * As the encrypted data may contain a substantial number of zeros if the + * cleartext is smaller than 222 bytes, it is recommended that the caller pad + * the cleartext to 222 bytes with random data. */ public byte[] encrypt(byte data[], PublicKey publicKey) { if ((data == null) || (data.length >= 223)) @@ -97,6 +105,7 @@ public class ElGamalEngine { long start = _context.clock().now(); byte d2[] = new byte[1+Hash.HASH_LENGTH+data.length]; + // FIXME this isn't a random nonzero byte! d2[0] = (byte)0xFF; Hash hash = _context.sha().calculateHash(data); System.arraycopy(hash.getData(), 0, d2, 1, Hash.HASH_LENGTH); @@ -156,11 +165,15 @@ public class ElGamalEngine { } /** Decrypt the data - * @param encrypted encrypted data, must be 514 bytes or less + * @param encrypted encrypted data, must be exactly 514 bytes + * Contains the two-part encrypted data starting at bytes 0 and 257. + * If the encrypted parts are smaller than 257 bytes, they must be + * padded with leading zeros. * @param privateKey private key to decrypt with - * @return unencrypted data + * @return unencrypted data or null on failure */ public byte[] decrypt(byte encrypted[], PrivateKey privateKey) { + // actually it must be exactly 514 bytes or the arraycopy below will AIOOBE if ((encrypted == null) || (encrypted.length > 514)) throw new IllegalArgumentException("Data to decrypt must be <= 514 bytes at the moment"); long start = _context.clock().now(); diff --git a/core/java/src/net/i2p/data/Base32.java b/core/java/src/net/i2p/data/Base32.java index adb7e9196..3071e0bc0 100644 --- a/core/java/src/net/i2p/data/Base32.java +++ b/core/java/src/net/i2p/data/Base32.java @@ -23,12 +23,14 @@ import net.i2p.util.Log; * No whitespace allowed. * * Decode accepts upper or lower case. + * @author zzz + * @since 0.7 */ public class Base32 { private final static Log _log = new Log(Base32.class); - /** The 64 valid Base32 values. */ + /** The 32 valid Base32 values. */ private final static char[] ALPHABET = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', @@ -132,10 +134,16 @@ public class Base32 { System.out.println("or : Base32 decode"); } + /** + * @param source if null will return "" + */ public static String encode(String source) { return (source != null ? encode(source.getBytes()) : ""); } + /** + * @param source The data to convert non-null + */ public static String encode(byte[] source) { StringBuilder buf = new StringBuilder((source.length + 7) * 8 / 5); encodeBytes(source, buf); @@ -147,7 +155,7 @@ public class Base32 { /** * Encodes a byte array into Base32 notation. * - * @param source The data to convert + * @param source The data to convert non-null */ private static void encodeBytes(byte[] source, StringBuilder out) { int usedbits = 0; @@ -174,7 +182,7 @@ public class Base32 { * Decodes data from Base32 notation and * returns it as a string. * - * @param s the string to decode + * @param s the string to decode, if null returns null * @return The data as a string or null on failure */ public static String decodeToString(String s) { @@ -184,6 +192,10 @@ public class Base32 { return new String(b); } + /** + * @param s non-null + * @return decoded data, null on error + */ public static byte[] decode(String s) { return decode(s.getBytes()); } @@ -194,8 +206,8 @@ public class Base32 { * Decodes Base32 content in byte array format and returns * the decoded byte array. * - * @param source The Base32 encoded data - * @return decoded data + * @param source The Base32 encoded data non-null + * @return decoded data, null on error */ private static byte[] decode(byte[] source) { int len58; diff --git a/core/java/src/net/i2p/data/Base64.java b/core/java/src/net/i2p/data/Base64.java index 2b9fe85e6..b5e03b03c 100644 --- a/core/java/src/net/i2p/data/Base64.java +++ b/core/java/src/net/i2p/data/Base64.java @@ -42,23 +42,46 @@ public class Base64 { private final static Log _log = new Log(Base64.class); - /** added by aum */ + /** + * @param source if null will return "" + */ public static String encode(String source) { return (source != null ? encode(source.getBytes()) : ""); } + + /** + * @param source if null will return "" + */ public static String encode(byte[] source) { return (source != null ? encode(source, 0, source.length) : ""); } + + /** + * @param source if null will return "" + */ public static String encode(byte[] source, int off, int len) { return (source != null ? encode(source, off, len, false) : ""); } + + /** + * @param source if null will return "" + * @param useStandardAlphabet Warning, must be false for I2P compatibility + */ public static String encode(byte[] source, boolean useStandardAlphabet) { return (source != null ? encode(source, 0, source.length, useStandardAlphabet) : ""); } + + /** + * @param source if null will return "" + * @param useStandardAlphabet Warning, must be false for I2P compatibility + */ public static String encode(byte[] source, int off, int len, boolean useStandardAlphabet) { return (source != null ? safeEncode(source, off, len, useStandardAlphabet) : ""); } + /** + * @param s Base 64 encoded string using the I2P alphabet A-Z, a-z, 0-9, -, ~ + */ public static byte[] decode(String s) { return safeDecode(s, false); } @@ -84,6 +107,8 @@ public class Base64 { (byte) 'w', (byte) 'x', (byte) 'y', (byte) 'z', (byte) '0', (byte) '1', (byte) '2', (byte) '3', (byte) '4', (byte) '5', (byte) '6', (byte) '7', (byte) '8', (byte) '9', (byte) '+', (byte) '/'}; + + /** The 64 valid Base64 values for I2P. */ private final static byte[] ALPHABET_ALT = { (byte) 'A', (byte) 'B', (byte) 'C', (byte) 'D', (byte) 'E', (byte) 'F', (byte) 'G', (byte) 'H', (byte) 'I', (byte) 'J', (byte) 'K', (byte) 'L', (byte) 'M', (byte) 'N', (byte) 'O', (byte) 'P', (byte) 'Q', (byte) 'R', @@ -241,7 +266,7 @@ public class Base64 { * @return four byte array in Base64 notation. * @since 1.3 */ -/***** unused +/***** unused (standard alphabet) private static byte[] encode3to4(byte[] threeBytes) { return encode3to4(threeBytes, 3); } // end encodeToBytes @@ -260,11 +285,13 @@ public class Base64 { * @return four byte array in Base64 notation. * @since 1.3 */ +/***** unused (standard alphabet) private static byte[] encode3to4(byte[] threeBytes, int numSigBytes) { byte[] dest = new byte[4]; encode3to4(threeBytes, 0, numSigBytes, dest, 0); return dest; } +******/ /** * Encodes up to three bytes of the array source @@ -287,6 +314,7 @@ public class Base64 { * @return the destination array * @since 1.3 */ +/***** unused (standard alphabet) private static byte[] encode3to4(byte[] source, int srcOffset, int numSigBytes, byte[] destination, int destOffset) { // 1 2 3 // 01234567890123456789012345678901 Bit position @@ -329,7 +357,11 @@ public class Base64 { return destination; } // end switch } // end encode3to4 +******/ + /** + * @param alpha alphabet + */ private static void encode3to4(byte[] source, int srcOffset, int numSigBytes, StringBuilder buf, byte alpha[]) { // 1 2 3 // 01234567890123456789012345678901 Bit position @@ -628,7 +660,7 @@ public class Base64 { * Decodes data from Base64 notation. * * @param s the string to decode - * @return the decoded data + * @return the decoded data, null on error * @since 1.4 */ private static byte[] standardDecode(String s) { @@ -647,6 +679,7 @@ public class Base64 { * @param s the strind to decode * @return The data as a string * @since 1.4 + * @throws NPE on error? */ public static String decodeToString(String s) { return new String(decode(s)); @@ -659,7 +692,7 @@ public class Base64 { * @param source The Base64 encoded data * @param off The offset of where to begin decoding * @param len The length of characters to decode - * @return decoded data + * @return decoded data, null on error * @since 1.3 */ private static byte[] decode(byte[] source, int off, int len) { diff --git a/router/java/src/net/i2p/data/i2np/BuildRequestRecord.java b/router/java/src/net/i2p/data/i2np/BuildRequestRecord.java index 7bd8352b6..7ff81a2ad 100644 --- a/router/java/src/net/i2p/data/i2np/BuildRequestRecord.java +++ b/router/java/src/net/i2p/data/i2np/BuildRequestRecord.java @@ -23,7 +23,7 @@ import net.i2p.data.SessionKey; * byte 184: flags * bytes 185-188: request time (in hours since the epoch) * bytes 189-192: next message ID - * bytes 193-222: uninterpreted / random padding + * bytes 193-221: uninterpreted / random padding * * */ @@ -226,7 +226,7 @@ public class BuildRequestRecord { * byte 184: flags * bytes 185-188: request time (in hours since the epoch) * bytes 189-192: next message ID - * bytes 193-222: uninterpreted / random padding + * bytes 193-221: uninterpreted / random padding */ DataHelper.toLong(buf, OFF_RECV_TUNNEL, 4, receiveTunnelId); System.arraycopy(peer.getData(), 0, buf, OFF_OUR_IDENT, Hash.HASH_LENGTH); diff --git a/router/java/src/net/i2p/router/message/GarlicMessageBuilder.java b/router/java/src/net/i2p/router/message/GarlicMessageBuilder.java index a9bea9c2f..99c282a0c 100644 --- a/router/java/src/net/i2p/router/message/GarlicMessageBuilder.java +++ b/router/java/src/net/i2p/router/message/GarlicMessageBuilder.java @@ -35,6 +35,7 @@ public class GarlicMessageBuilder { /** * This was 100 since 0.6.1.10 (50 before that). It's important because: + *
              *  - Tags are 32 bytes. So it previously added 3200 bytes to an initial message.
              *  - Too many tags adds a huge overhead to short-duration connections
              *    (like http, datagrams, etc.)
        @@ -43,14 +44,17 @@ public class GarlicMessageBuilder {
              *  - This reduces the effective maximum datagram size because the client
              *    doesn't know when tags will be bundled, so the tag size must be
              *    subtracted from the maximum I2NP size or transport limit.
        +     * 
        * * Issues with too small a value: + *
              *  - When tags are sent, a reply leaseset (~1KB) is always bundled.
              *    Maybe don't need to bundle more than every minute or so
              *    rather than every time?
              *  - Does the number of tags (and the threshold of 20) limit the effective
              *    streaming lib window size? Should the threshold and the number of
              *    sent tags be variable based on the message rate?
        +     * 
        * * We have to be very careful if we implement an adaptive scheme, * since the key manager is per-router, not per-local-dest. @@ -218,6 +222,7 @@ public class GarlicMessageBuilder { byte cloveSet[] = buildCloveSet(ctx, config); + // TODO - 128 is the minimum padded size - should it be more? less? random? byte encData[] = ctx.elGamalAESEngine().encrypt(cloveSet, target, encryptKey, wrappedTags, encryptTag, 128); msg.setData(encData); msg.setMessageExpiration(config.getExpiration()); diff --git a/router/java/src/net/i2p/router/networkdb/kademlia/MessageWrapper.java b/router/java/src/net/i2p/router/networkdb/kademlia/MessageWrapper.java index 82c7f121f..1f521455e 100644 --- a/router/java/src/net/i2p/router/networkdb/kademlia/MessageWrapper.java +++ b/router/java/src/net/i2p/router/networkdb/kademlia/MessageWrapper.java @@ -20,7 +20,7 @@ import net.i2p.router.message.PayloadGarlicConfig; import net.i2p.util.Log; /** - * Method an class for garlic encrypting outbound netdb traffic, + * Method and class for garlic encrypting outbound netdb traffic, * including management of the ElGamal/AES tags * * @since 0.7.10 diff --git a/router/java/src/net/i2p/router/transport/ntcp/EstablishState.java b/router/java/src/net/i2p/router/transport/ntcp/EstablishState.java index 747c923ec..dce7d0de7 100644 --- a/router/java/src/net/i2p/router/transport/ntcp/EstablishState.java +++ b/router/java/src/net/i2p/router/transport/ntcp/EstablishState.java @@ -29,18 +29,45 @@ import net.i2p.router.Router; import net.i2p.router.RouterContext; import net.i2p.util.Log; -/* +/** + * Handle the 4-phase establishment, which is as follows: + * + *
        + *
          * Alice                   contacts                      Bob
          * =========================================================
        + *
        + * Message 1 (Session Request):
          *  X+(H(X) xor Bob.identHash)----------------------------->
        + *
        + * Message 2 (Session Created):
          *  <----------------------------------------Y+E(H(X+Y)+tsB, sk, Y[239:255])
        - *  E(#+Alice.identity+tsA+padding+S(X+Y+Bob.identHash+tsA+tsB+padding), sk, hX_xor_Bob.identHash[16:31])--->
        + *
        + * Message 3 (Session Confirm A):
        + *  E(sz+Alice.identity+tsA+padding+S(X+Y+Bob.identHash+tsA+tsB), sk, hX_xor_Bob.identHash[16:31])--->
        + *
        + * Message 4 (Session Confirm B):
          *  <----------------------E(S(X+Y+Alice.identHash+tsA+tsB)+padding, sk, prev)
          *
        + *  Key:
        + *
        + *    X, Y: 256 byte DH keys
        + *    H(): 32 byte SHA256 Hash
        + *    E(data, session key, IV): AES256 Encrypt
        + *    S(): 40 byte DSA Signature
        + *    tsA, tsB: timestamps (4 bytes, seconds since epoch)
        + *    sk: 32 byte Session key
        + *    sz: 2 byte size of Alice identity to follow
        + *
        + * 
        + * + * * Alternately, when Bob receives a connection, it could be a * check connection (perhaps prompted by Bob asking for someone * to verify his listener). check connections are formatted per - * {@link #isCheckInfo()} + * isCheckInfo() + * NOTE: Check info is unused. + * */ public class EstablishState { private RouterContext _context; @@ -57,7 +84,9 @@ public class EstablishState { // alice receives (and bob sends) private byte _Y[]; private transient byte _e_hXY_tsB[]; + /** Bob's Timestamp in seconds */ private transient long _tsB; + /** Alice's Timestamp in seconds */ private transient long _tsA; private transient byte _e_bobSig[]; @@ -98,9 +127,6 @@ public class EstablishState { _log = ctx.logManager().getLog(getClass()); _transport = transport; _con = con; - _verified = false; - _corrupt = false; - _confirmWritten = false; _dh = new DHSessionKeyBuilder(); if (_con.isInbound()) { _X = new byte[256]; @@ -116,10 +142,7 @@ public class EstablishState { _prevEncrypted = new byte[16]; _curEncrypted = new byte[16]; - _curEncryptedOffset = 0; _curDecrypted = new byte[16]; - - _received = 0; } /** @@ -150,7 +173,10 @@ public class EstablishState { public boolean getFailedBySkew() { return _failedBySkew; } - /** we are Bob, so receive these bytes as part of an inbound connection */ + /** + * we are Bob, so receive these bytes as part of an inbound connection + * This method receives messages 1 and 3, and sends messages 2 and 4. + */ private void receiveInbound(ByteBuffer src) { if (_log.shouldLog(Log.DEBUG)) _log.debug(prefix()+"Receiving inbound: prev received=" + _received + " src.remaining=" + src.remaining()); @@ -311,7 +337,10 @@ public class EstablishState { } } - /** we are Alice, so receive these bytes as part of an outbound connection */ + /** + * We are Alice, so receive these bytes as part of an outbound connection. + * This method receives messages 2 and 4, and sends message 3. + */ private void receiveOutbound(ByteBuffer src) { if (_log.shouldLog(Log.DEBUG)) _log.debug(prefix()+"Receive outbound " + src + " received=" + _received); @@ -498,8 +527,10 @@ public class EstablishState { public boolean isComplete() { return _verified; } /** - * we are establishing an outbound connection, so prepare ourselves by + * We are Alice. + * We are establishing an outbound connection, so prepare ourselves by * queueing up the write of the first part of the handshake + * This method sends message #1 to Bob. */ public void prepareOutbound() { if (_received <= 0) { @@ -516,7 +547,9 @@ public class EstablishState { } /** - * make sure the signatures are correct, and if they are, update the + * We are Bob. Verify message #3 from Alice, then send message #4 to Alice. + * + * Make sure the signatures are correct, and if they are, update the * NIOConnection with the session key / peer ident / clock skew / iv. * The NIOConnection itself is responsible for registering with the * transport @@ -623,6 +656,9 @@ public class EstablishState { } } + /** + * We are Bob. Send message #4 to Alice. + */ private void sendInboundConfirm(RouterIdentity alice, long tsA) { // send Alice E(S(X+Y+Alice.identHash+tsA+tsB), sk, prev) byte toSign[] = new byte[256+256+32+4+4]; diff --git a/router/java/src/net/i2p/router/transport/udp/PacketBuilder.java b/router/java/src/net/i2p/router/transport/udp/PacketBuilder.java index c0d9e22f3..3ebbdd343 100644 --- a/router/java/src/net/i2p/router/transport/udp/PacketBuilder.java +++ b/router/java/src/net/i2p/router/transport/udp/PacketBuilder.java @@ -607,6 +607,7 @@ public class PacketBuilder { // pad here if we want. maybe randomized? // pad up so we're on the encryption boundary + // TODO: why not random data? if ( (off % 16) != 0) off += 16 - (off % 16); packet.getPacket().setLength(off); From db0bc1a6183c257fde546452a10b8197f7cf604c Mon Sep 17 00:00:00 2001 From: forget Date: Tue, 7 Sep 2010 03:24:28 +0000 Subject: [PATCH 49/75] Fixed: missing links to the new Swedish help page. --- installer/resources/eepsite.help/help/index_nl.html | 2 +- installer/resources/eepsite.help/help/index_ru.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/installer/resources/eepsite.help/help/index_nl.html b/installer/resources/eepsite.help/help/index_nl.html index 5d6c9a61a..290b1718f 100644 --- a/installer/resources/eepsite.help/help/index_nl.html +++ b/installer/resources/eepsite.help/help/index_nl.html @@ -17,7 +17,7 @@ Français Nederlands Русский -Svenska +Svenska

        Korte Handleiding voor Anoniem Webhosten op I2P

        diff --git a/installer/resources/eepsite.help/help/index_ru.html b/installer/resources/eepsite.help/help/index_ru.html index 9c8eccdc3..2c6c0e2ff 100644 --- a/installer/resources/eepsite.help/help/index_ru.html +++ b/installer/resources/eepsite.help/help/index_ru.html @@ -17,7 +17,7 @@ Français Nederlands Русский -Svenska +Svenska

        Краткое руководство по анонимному хостингу сайтов в I2P

        From 73d956462f5ff150bb388912bd9da211e3cbd89c Mon Sep 17 00:00:00 2001 From: forget Date: Tue, 7 Sep 2010 03:25:48 +0000 Subject: [PATCH 50/75] Fixed: recoded to UTF-8, cyrillic and chinese labels repaired. --- .../resources/eepsite.help/help/index_sv.html | 272 +++++++++--------- 1 file changed, 136 insertions(+), 136 deletions(-) diff --git a/installer/resources/eepsite.help/help/index_sv.html b/installer/resources/eepsite.help/help/index_sv.html index c044bd271..1eb42e929 100644 --- a/installer/resources/eepsite.help/help/index_sv.html +++ b/installer/resources/eepsite.help/help/index_sv.html @@ -1,137 +1,137 @@ - - - I2P Anonym Webbserver | Vlkommen till din eepsite - - - - - -
        -
        -

        I2P Anonym Webbserver

        -
        - -English -?? -Deutsch -Franais -Nederlands -??????? -Svenska - -
        -

        Snabb vgledning till anonym webbservning p I2P

        - -

        Det hr r din eepsite, din egen anonyma I2P-webbserver - redigera bara filerna - under ~/.i2p/eepsite/docroot/ (Linux, OS X) - eller %APPDATA%\I2P\eepsite\docroot\ (Windows) - s kommer andra kunna n dem efter att du fljt instruktionerna nedan. - I I2P s adresseras eepsajter med en 'nyckel', som representeras som en vldigt lng Base64-strng. - ('Nyckeln' r ngot s nr analog med en IP-adress och visas - p eepsajtens I2PTunnel-konfigurationssida). - Nedan ges instruktioner om hur du kan ange ett namn som "minsajt.i2p" till din nyckel och brja kra din eepsajt.

        -

        Du kan n din eepsajt lokalt via - http://127.0.0.1:7658/. -

        - -

        Att stta upp och annonsera din eepsajt

        - Din eepsajt r stoppad som standard. - Efter att du startat den kommer det att vara svrt fr att andra att hitta den, - eftersom den inte har ett namn och de inte knner till din mycket lnga Base64-nyckel. - Du skulle bara kunna bertta fr andra om den lnga nyckeln, men tacksamt nog har i2p en - adressbok och mnga enkla stt att bertta fr folk om din eepsajt. Hr r alla stegen. -
          -
        • Vlj ett namn t din eepsajt (ettbranamn.i2p). Sm bokstver. - Kanske vill du frst kolla i - din routers adressbok, - eller i filen i2p/hosts.txt fr att se om ditt tilltnkta namn redan r taget. - Skriv in namnet fr din eepsajt p - eepsitekonfigurationssidan fr i2ptunnel - dr det str "Website name". Detta kommer att erstta det frinstllda "mysite.i2p". - Nr du r dr, kryssa i "Auto Start"-rutan. Din eepsajt kommer nu att starta varje gng som du startar - din router. - Tryck sedan p "Save". -
        • Klicka p startknappen fr din eepsajt p - huvudkonfigurationssidan fr i2ptunnel. - Du borde nu kunna se "eepsite" listad under "Local Destinations" p vnster sida om - I2P Router Console. - Din eepsajt kr nu. -
        • Markera hela "Local destination"-nyckeln p - eepsitekonfigurationssidan fr i2ptunnel - och kopiera den fr att senare klistra in den. - Skerstll att du fr med hela texten - det r mer n 500 bokstver och den mste sluta p "AAAA". -
        • Skriv in namnet och klistra in destinationsnyckeln i din - huvudadressbok. - Klicka p "Add" fr att lgga till destinationen i din adressbok. -
        • I din webblsare, skriv in ditt eepsajtnamn (ettbranamn.i2p) s borde du landa p den hr sidan igen. - Frhoppningsvis fungerade det. -
        • Innan du berttar fr vrlden om den nya eepsajt borde du lgga till lite innehll. - G till ~/.i2p/eepsite/docroot/ (p Linux eller OS X) eller %APPDATA%\I2P\eepsite\docroot\ (p Windows) - och erstt omdirigeringssidan index.html med ditt eget innehll. Virtuella mappar fungerar, s du kan serva filer frn en - underkatalog utan att behva ge en sida med lnkar till filer. Om du behver en mall fr en enkel sajt s - varsgod och lna och anpassa - denna sida och det hr innehllet! -
        -

        Registrera din egen .I2P-domn

          -
        • Nu r det dags att lgga till din eepsajt till en I2P-adressbok som hostas p en sajt - som stats.i2p. - Allts, du mste skriva in namn och nyckeln p din eepsajt i ett webbgrnssnitt p - en eller flera av dessa sajter. - Hr r nyckelinmatningsformulret hos stats.i2p. - terigen, din nyckel r hela "Local destination"-nyckeln p - eepsite-konfigurationssidan fr i2ptunnel. - Skerstll att du fr med hela texten, som slutar med "AAAA". - Glm inte att klicka p "add a key". - Kolla att den rapporterar att nyckeln lagts till. - Eftersom mnga routrar periodiskt skaffar adressboksuppdateringar frn dessa sajter - s kommer andra att kunna finna din eepsajt inom ett antal timmar, bara genom att - skriva ettbranamn.i2p i sin webblsare. -

        Att prenumerera p adressbcker

          -
        • P tal adressboksuppdateringar, nu vore en bra tidpunkt att lgga till ngra fler adressbcker - till din egen - prenumerationslista. - G till din prenumerationsinstllningssida och lgg till ett par av de hr fr en automatiskt uppdaterad - lista ver nya hosts: -
        • Om du har brttom och inte kan vnta ett par timmar s kan du sga t folk att anvnda en "jump"-adresshjlpar- - omdirigeringstjnst. - Detta kommer att funka inom ett par minuter efter att du skrivit in nyckeln i en adressbok p samma sajt. - Prova frst sjlv genom att skriva: - http://stats.i2p/cgi-bin/jump.cgi?a=ettbranamn.i2p eller - http://i2host.i2p/cgi-bin/i2hostjump?ettbranamn.i2p - i din webblsare. - S snart som det funkar kan du bertta fr andra att de ska anvnda det. -
        • Vissa mnniskor kolla p eepsajtlistor som - inproxy.tino.i2p/status.php efter nya eepsajter, - s att du kan brja f ett par beskare. Men det finns massor av stt att bertta fr folk. - Hr r en rad ider: - - Notera att vissa sajter rekommenderar att du klistrar in den verkligt - lnga destinationsnyckeln. Det kan du om vill - men om du har framgngsrikt har skickat din - nyckel, testat den med en "hopptjnst", och vntat 24 timmar p att adressboken ska brja - propagera sina ndringar till andra, s det borde inte vara ndvndigt.
        -

        Vidare assistans

        -

        - Ifall du har ngra frgor, s finns fljande stllen fr support: -

        - -
        -Note: This page, the website and the console all need translating into YOUR language if it's not already been done or in progress. Please consider helping the project grow by volunteering your time to translate. Contact the project via the IRC channel listed above. Thanks in advance!
        -
        -Document last edited: August 2010.
        -
        - + + + I2P Anonym Webbserver | Välkommen till din eepsite + + + + + +
        +
        +

        I2P Anonym Webbserver

        +
        + +English +中文 +Deutsch +Français +Nederlands +Русский +Svenska + +
        +

        Snabb vägledning till anonym webbservning på I2P

        + +

        Det här är din eepsite, din egen anonyma I2P-webbserver - redigera bara filerna + under ~/.i2p/eepsite/docroot/ (Linux, OS X) + eller %APPDATA%\I2P\eepsite\docroot\ (Windows) + så kommer andra kunna nå dem efter att du följt instruktionerna nedan. + I I2P så adresseras eepsajter med en 'nyckel', som representeras som en väldigt lång Base64-sträng. + ('Nyckeln' är något så när analog med en IP-adress och visas + på eepsajtens I2PTunnel-konfigurationssida). + Nedan ges instruktioner om hur du kan ange ett namn som "minsajt.i2p" till din nyckel och börja köra din eepsajt.

        +

        Du kan nå din eepsajt lokalt via + http://127.0.0.1:7658/. +

        + +

        Att sätta upp och annonsera din eepsajt

        + Din eepsajt är stoppad som standard. + Efter att du startat den kommer det att vara svårt för att andra att hitta den, + eftersom den inte har ett namn och de inte känner till din mycket långa Base64-nyckel. + Du skulle bara kunna berätta för andra om den långa nyckeln, men tacksamt nog har i2p en + adressbok och många enkla sätt att berätta för folk om din eepsajt. Här är alla stegen. +
          +
        • Välj ett namn åt din eepsajt (ettbranamn.i2p). Små bokstäver. + Kanske vill du först kolla i + din routers adressbok, + eller i filen i2p/hosts.txt för att se om ditt tilltänkta namn redan är taget. + Skriv in namnet för din eepsajt på + eepsitekonfigurationssidan för i2ptunnel + där det står "Website name". Detta kommer att ersätta det förinställda "mysite.i2p". + När du är där, kryssa i "Auto Start"-rutan. Din eepsajt kommer nu att starta varje gång som du startar + din router. + Tryck sedan på "Save". +
        • Klicka på startknappen för din eepsajt på + huvudkonfigurationssidan för i2ptunnel. + Du borde nu kunna se "eepsite" listad under "Local Destinations" på vänster sida om + I2P Router Console. + Din eepsajt kör nu. +
        • Markera hela "Local destination"-nyckeln på + eepsitekonfigurationssidan för i2ptunnel + och kopiera den för att senare klistra in den. + Säkerställ att du får med hela texten - det är mer än 500 bokstäver och den måste sluta på "AAAA". +
        • Skriv in namnet och klistra in destinationsnyckeln i din + huvudadressbok. + Klicka på "Add" för att lägga till destinationen i din adressbok. +
        • I din webbläsare, skriv in ditt eepsajtnamn (ettbranamn.i2p) så borde du landa på den här sidan igen. + Förhoppningsvis fungerade det. +
        • Innan du berättar för världen om den nya eepsajt borde du lägga till lite innehåll. + Gå till ~/.i2p/eepsite/docroot/ (på Linux eller OS X) eller %APPDATA%\I2P\eepsite\docroot\ (på Windows) + och ersätt omdirigeringssidan index.html med ditt eget innehåll. Virtuella mappar fungerar, så du kan serva filer från en + underkatalog utan att behöva ge en sida med länkar till filer. Om du behöver en mall för en enkel sajt så + varsågod och låna och anpassa + denna sida och det här innehållet! +
        +

        Registrera din egen .I2P-domän

          +
        • Nu är det dags att lägga till din eepsajt till en I2P-adressbok som hostas på en sajt + som stats.i2p. + Alltså, du måste skriva in namn och nyckeln på din eepsajt i ett webbgränssnitt på + en eller flera av dessa sajter. + Här är nyckelinmatningsformuläret hos stats.i2p. + Återigen, din nyckel är hela "Local destination"-nyckeln på + eepsite-konfigurationssidan för i2ptunnel. + Säkerställ att du får med hela texten, som slutar med "AAAA". + Glöm inte att klicka på "add a key". + Kolla att den rapporterar att nyckeln lagts till. + Eftersom många routrar periodiskt skaffar adressboksuppdateringar från dessa sajter + så kommer andra att kunna finna din eepsajt inom ett antal timmar, bara genom att + skriva ettbranamn.i2p i sin webbläsare. +

        Att prenumerera på adressböcker

          +
        • På tal adressboksuppdateringar, nu vore en bra tidpunkt att lägga till några fler adressböcker + till din egen + prenumerationslista. + Gå till din prenumerationsinställningssida och lägg till ett par av de här för en automatiskt uppdaterad + lista över nya hosts: +
        • Om du har bråttom och inte kan vänta ett par timmar så kan du säga åt folk att använda en "jump"-adresshjälpar- + omdirigeringstjänst. + Detta kommer att funka inom ett par minuter efter att du skrivit in nyckeln i en adressbok på samma sajt. + Prova först själv genom att skriva: + http://stats.i2p/cgi-bin/jump.cgi?a=ettbranamn.i2p eller + http://i2host.i2p/cgi-bin/i2hostjump?ettbranamn.i2p + i din webbläsare. + Så snart som det funkar kan du berätta för andra att de ska använda det. +
        • Vissa människor kolla på eepsajtlistor som + inproxy.tino.i2p/status.php efter nya eepsajter, + så att du kan börja få ett par besökare. Men det finns massor av sätt att berätta för folk. + Här är en rad idëer: + + Notera att vissa sajter rekommenderar att du klistrar in den verkligt + långa destinationsnyckeln. Det kan du om vill - men om du har framgångsrikt har skickat din + nyckel, testat den med en "hopptjänst", och väntat 24 timmar på att adressboken ska börja + propagera sina ändringar till andra, så det borde inte vara nödvändigt.
        +

        Vidare assistans

        +

        + Ifall du har några frågor, så finns följande ställen för support: +

        + +
        +Note: This page, the website and the console all need translating into YOUR language if it's not already been done or in progress. Please consider helping the project grow by volunteering your time to translate. Contact the project via the IRC channel listed above. Thanks in advance!
        +
        +Document last edited: August 2010.
        +
        + \ No newline at end of file From 2bffeea7eb05dbdab9276399f567b8df3cabbecc Mon Sep 17 00:00:00 2001 From: zzz Date: Sat, 2 Oct 2010 14:01:38 +0000 Subject: [PATCH 51/75] comment out main --- .../java/src/net/i2p/client/streaming/ConnectionOptions.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/apps/streaming/java/src/net/i2p/client/streaming/ConnectionOptions.java b/apps/streaming/java/src/net/i2p/client/streaming/ConnectionOptions.java index 627113abe..c6596b7c9 100644 --- a/apps/streaming/java/src/net/i2p/client/streaming/ConnectionOptions.java +++ b/apps/streaming/java/src/net/i2p/client/streaming/ConnectionOptions.java @@ -646,6 +646,7 @@ public class ConnectionOptions extends I2PSocketOptionsImpl { return Boolean.valueOf(val).booleanValue(); } +/**** public static void main(String args[]) { Properties p = new Properties(); @@ -656,4 +657,5 @@ public class ConnectionOptions extends I2PSocketOptionsImpl { c = new ConnectionOptions(new I2PSocketOptionsImpl(p)); System.out.println("opts: " + c); } +****/ } From 171e3abe341bd44a203cae033ddcf1d14ebfe997 Mon Sep 17 00:00:00 2001 From: zzz Date: Sat, 2 Oct 2010 14:02:41 +0000 Subject: [PATCH 52/75] cleanups --- .../client/streaming/MessageInputStream.java | 49 ++++++++----------- 1 file changed, 20 insertions(+), 29 deletions(-) diff --git a/apps/streaming/java/src/net/i2p/client/streaming/MessageInputStream.java b/apps/streaming/java/src/net/i2p/client/streaming/MessageInputStream.java index 14b304b26..5a87d6be1 100644 --- a/apps/streaming/java/src/net/i2p/client/streaming/MessageInputStream.java +++ b/apps/streaming/java/src/net/i2p/client/streaming/MessageInputStream.java @@ -11,7 +11,7 @@ import java.util.Map; import net.i2p.I2PAppContext; import net.i2p.data.ByteArray; -import net.i2p.util.ByteCache; +//import net.i2p.util.ByteCache; import net.i2p.util.Log; /** @@ -20,8 +20,8 @@ import net.i2p.util.Log; * */ public class MessageInputStream extends InputStream { - private I2PAppContext _context; - private Log _log; + private final I2PAppContext _context; + private final Log _log; /** * List of ByteArray objects of data ready to be read, * with the first ByteArray at index 0, and the next @@ -29,7 +29,7 @@ public class MessageInputStream extends InputStream { * that array. * */ - private List _readyDataBlocks; + private final List _readyDataBlocks; private int _readyDataBlockIndex; /** highest message ID used in the readyDataBlocks */ private volatile long _highestReadyBlockId; @@ -40,7 +40,7 @@ public class MessageInputStream extends InputStream { * out of order when there are lower IDs not yet * received */ - private Map _notYetReadyBlocks; + private final Map _notYetReadyBlocks; /** * if we have received a flag saying there won't be later messages, EOF * after we have cleared what we have received. @@ -51,9 +51,9 @@ public class MessageInputStream extends InputStream { private int _readTimeout; private IOException _streamError; private long _readTotal; - private ByteCache _cache; + //private ByteCache _cache; - private byte[] _oneByte = new byte[1]; + private final byte[] _oneByte = new byte[1]; private final Object _dataLock; @@ -61,16 +61,12 @@ public class MessageInputStream extends InputStream { _context = ctx; _log = ctx.logManager().getLog(MessageInputStream.class); _readyDataBlocks = new ArrayList(4); - _readyDataBlockIndex = 0; _highestReadyBlockId = -1; _highestBlockId = -1; _readTimeout = -1; - _readTotal = 0; _notYetReadyBlocks = new HashMap(4); _dataLock = new Object(); - _closeReceived = false; - _locallyClosed = false; - _cache = ByteCache.getInstance(128, Packet.MAX_PAYLOAD_SIZE); + //_cache = ByteCache.getInstance(128, Packet.MAX_PAYLOAD_SIZE); } /** What is the highest block ID we've completely received through? @@ -140,10 +136,8 @@ public class MessageInputStream extends InputStream { if (num <= 0) return null; blocks = new long[num]; int i = 0; - for (Iterator iter = _notYetReadyBlocks.keySet().iterator(); iter.hasNext(); ) { - Long id = (Long)iter.next(); - blocks[i] = id.longValue(); - i++; + for (Long id : _notYetReadyBlocks.keySet()) { + blocks[i++] = id.longValue(); } } Arrays.sort(blocks); @@ -178,16 +172,15 @@ public class MessageInputStream extends InputStream { buf.append("Close received, ready bytes: "); long available = 0; for (int i = 0; i < _readyDataBlocks.size(); i++) - available += ((ByteArray)_readyDataBlocks.get(i)).getValid(); + available += _readyDataBlocks.get(i).getValid(); available -= _readyDataBlockIndex; buf.append(available); buf.append(" blocks: ").append(_readyDataBlocks.size()); buf.append(" not ready blocks: "); long notAvailable = 0; - for (Iterator iter = _notYetReadyBlocks.keySet().iterator(); iter.hasNext(); ) { - Long id = (Long)iter.next(); - ByteArray ba = (ByteArray)_notYetReadyBlocks.get(id); + for (Long id : _notYetReadyBlocks.keySet()) { + ByteArray ba = _notYetReadyBlocks.get(id); buf.append(id).append(" "); if (ba != null) @@ -237,7 +230,7 @@ public class MessageInputStream extends InputStream { long cur = _highestReadyBlockId + 1; // now pull in any previously pending blocks while (_notYetReadyBlocks.containsKey(new Long(cur))) { - ByteArray ba = (ByteArray)_notYetReadyBlocks.remove(new Long(cur)); + ByteArray ba = _notYetReadyBlocks.remove(new Long(cur)); if ( (ba != null) && (ba.getData() != null) && (ba.getValid() > 0) ) { _readyDataBlocks.add(ba); } @@ -341,7 +334,7 @@ public class MessageInputStream extends InputStream { return i; } else { // either was already ready, or we wait()ed and it arrived - ByteArray cur = (ByteArray)_readyDataBlocks.get(0); + ByteArray cur = _readyDataBlocks.get(0); byte rv = cur.getData()[cur.getOffset()+_readyDataBlockIndex]; _readyDataBlockIndex++; boolean removed = false; @@ -378,7 +371,7 @@ public class MessageInputStream extends InputStream { int numBytes = 0; synchronized (_dataLock) { for (int i = 0; i < _readyDataBlocks.size(); i++) { - ByteArray cur = (ByteArray)_readyDataBlocks.get(i); + ByteArray cur = _readyDataBlocks.get(i); if (i == 0) numBytes += cur.getValid() - _readyDataBlockIndex; else @@ -402,14 +395,13 @@ public class MessageInputStream extends InputStream { if (_locallyClosed) return 0; int numBytes = 0; for (int i = 0; i < _readyDataBlocks.size(); i++) { - ByteArray cur = (ByteArray)_readyDataBlocks.get(i); + ByteArray cur = _readyDataBlocks.get(i); if (i == 0) numBytes += cur.getValid() - _readyDataBlockIndex; else numBytes += cur.getValid(); } - for (Iterator iter = _notYetReadyBlocks.values().iterator(); iter.hasNext(); ) { - ByteArray cur = (ByteArray)iter.next(); + for (ByteArray cur : _notYetReadyBlocks.values()) { numBytes += cur.getValid(); } return numBytes; @@ -421,7 +413,7 @@ public class MessageInputStream extends InputStream { if (_locallyClosed) return 0; int numBytes = 0; for (int i = 0; i < _readyDataBlocks.size(); i++) { - ByteArray cur = (ByteArray)_readyDataBlocks.get(i); + ByteArray cur = _readyDataBlocks.get(i); if (i == 0) numBytes += cur.getValid() - _readyDataBlockIndex; else @@ -440,8 +432,7 @@ public class MessageInputStream extends InputStream { // we don't need the data, but we do need to keep track of the messageIds // received, so we can ACK accordingly - for (Iterator iter = _notYetReadyBlocks.values().iterator(); iter.hasNext(); ) { - ByteArray ba = (ByteArray)iter.next(); + for (ByteArray ba : _notYetReadyBlocks.values()) { ba.setData(null); //_cache.release(ba); } From 6f449aa4f6ba7f39cb15bab19f47547331c3fe72 Mon Sep 17 00:00:00 2001 From: zzz Date: Sat, 2 Oct 2010 14:07:46 +0000 Subject: [PATCH 53/75] Naming: - Increase cache size and expiration time - Add clearCache() method - Don't use EepGet or Exec for b32 - Javadoc updates --- .../net/i2p/client/naming/EepGetNamingService.java | 4 ++++ .../src/net/i2p/client/naming/ExecNamingService.java | 4 ++++ core/java/src/net/i2p/client/naming/LookupDest.java | 2 ++ .../java/src/net/i2p/client/naming/NamingService.java | 11 +++++++++-- 4 files changed, 19 insertions(+), 2 deletions(-) diff --git a/core/java/src/net/i2p/client/naming/EepGetNamingService.java b/core/java/src/net/i2p/client/naming/EepGetNamingService.java index d83317967..737e33423 100644 --- a/core/java/src/net/i2p/client/naming/EepGetNamingService.java +++ b/core/java/src/net/i2p/client/naming/EepGetNamingService.java @@ -66,6 +66,10 @@ public class EepGetNamingService extends NamingService { hostname = hostname.toLowerCase(); + // If you want b32, chain with HostsTxtNamingService + if (hostname.length() == 60 && hostname.endsWith(".b32.i2p")) + return null; + // check the cache Destination d = getCache(hostname); if (d != null) diff --git a/core/java/src/net/i2p/client/naming/ExecNamingService.java b/core/java/src/net/i2p/client/naming/ExecNamingService.java index 446e907c4..118f06eac 100644 --- a/core/java/src/net/i2p/client/naming/ExecNamingService.java +++ b/core/java/src/net/i2p/client/naming/ExecNamingService.java @@ -66,6 +66,10 @@ public class ExecNamingService extends NamingService { hostname = hostname.toLowerCase(); + // If you want b32, chain with HostsTxtNamingService + if (hostname.length() == 60 && hostname.endsWith(".b32.i2p")) + return null; + // check the cache Destination d = getCache(hostname); if (d != null) diff --git a/core/java/src/net/i2p/client/naming/LookupDest.java b/core/java/src/net/i2p/client/naming/LookupDest.java index 1a8a1632b..2bbb2eeb6 100644 --- a/core/java/src/net/i2p/client/naming/LookupDest.java +++ b/core/java/src/net/i2p/client/naming/LookupDest.java @@ -27,6 +27,7 @@ class LookupDest { protected LookupDest(I2PAppContext context) {} + /** @param key 52 chars (do not include the .b32.i2p suffix) */ static Destination lookupBase32Hash(I2PAppContext ctx, String key) { byte[] h = Base32.decode(key); if (h == null) @@ -44,6 +45,7 @@ class LookupDest { } ****/ + /** @param h 32 byte hash */ static Destination lookupHash(I2PAppContext ctx, byte[] h) { Hash key = new Hash(h); Destination rv = null; diff --git a/core/java/src/net/i2p/client/naming/NamingService.java b/core/java/src/net/i2p/client/naming/NamingService.java index a7098d799..fc9a53414 100644 --- a/core/java/src/net/i2p/client/naming/NamingService.java +++ b/core/java/src/net/i2p/client/naming/NamingService.java @@ -32,7 +32,7 @@ public abstract class NamingService { public static final String PROP_IMPL = "i2p.naming.impl"; private static final String DEFAULT_IMPL = "net.i2p.client.naming.HostsTxtNamingService"; - protected static final int CACHE_MAX_SIZE = 8; + protected static final int CACHE_MAX_SIZE = 16; /** @@ -107,7 +107,7 @@ public abstract class NamingService { * The service may override the age and/or size limit */ /** Don't know why a dest would ever change but keep this short anyway */ - protected static final long CACHE_MAX_AGE = 60*1000; + protected static final long CACHE_MAX_AGE = 7*60*1000; private class CacheEntry { public Destination dest; @@ -174,4 +174,11 @@ public abstract class NamingService { return ce.dest; } } + + /** @since 0.8.1 */ + public void clearCache() { + synchronized (_cache) { + _cache.clear(); + } + } } From 53dd0c76551a3fcf1e6c501affdbedba2125f7e6 Mon Sep 17 00:00:00 2001 From: zzz Date: Sat, 2 Oct 2010 14:23:56 +0000 Subject: [PATCH 54/75] * Crypto: - Convert all ArrayList caching to LBQs in YKGenerator, HMACGenerator, and AESKeyCache. - Change DSAEngine params from Hash to new SHA1Hash, since these were really 20 byte hashes, not 32 byte Hashes. - Add stats to track YKGenerator caching success - Fix YKGenerator precalculation to be much more useful by increasing the cache size and dramatically shortening the delay - Option cleanups - YKGenerator cleanups - Mark HMAC256Generator unused --- .../net/i2p/crypto/CryptixAESKeyCache.java | 19 +- .../net/i2p/crypto/DHSessionKeyBuilder.java | 30 +--- core/java/src/net/i2p/crypto/DSAEngine.java | 25 ++- .../src/net/i2p/crypto/HMAC256Generator.java | 10 +- .../src/net/i2p/crypto/HMACGenerator.java | 38 ++-- core/java/src/net/i2p/crypto/SHA1.java | 2 +- core/java/src/net/i2p/crypto/SHA1Hash.java | 81 +++++++++ core/java/src/net/i2p/crypto/YKGenerator.java | 168 ++++++++---------- 8 files changed, 202 insertions(+), 171 deletions(-) create mode 100644 core/java/src/net/i2p/crypto/SHA1Hash.java diff --git a/core/java/src/net/i2p/crypto/CryptixAESKeyCache.java b/core/java/src/net/i2p/crypto/CryptixAESKeyCache.java index 5084ae2b0..5d39c1578 100644 --- a/core/java/src/net/i2p/crypto/CryptixAESKeyCache.java +++ b/core/java/src/net/i2p/crypto/CryptixAESKeyCache.java @@ -1,7 +1,6 @@ package net.i2p.crypto; -import java.util.ArrayList; -import java.util.List; +import java.util.concurrent.LinkedBlockingQueue; /** * Cache the objects used in CryptixRijndael_Algorithm.makeKey to reduce @@ -11,7 +10,7 @@ import java.util.List; * */ public final class CryptixAESKeyCache { - private final List _availableKeys; + private final LinkedBlockingQueue _availableKeys; private static final int KEYSIZE = 32; // 256bit AES private static final int BLOCKSIZE = 16; @@ -22,7 +21,7 @@ public final class CryptixAESKeyCache { private static final int MAX_KEYS = 64; public CryptixAESKeyCache() { - _availableKeys = new ArrayList(MAX_KEYS); + _availableKeys = new LinkedBlockingQueue(MAX_KEYS); } /** @@ -30,10 +29,9 @@ public final class CryptixAESKeyCache { * */ public final KeyCacheEntry acquireKey() { - synchronized (_availableKeys) { - if (!_availableKeys.isEmpty()) - return (KeyCacheEntry)_availableKeys.remove(0); - } + KeyCacheEntry rv = _availableKeys.poll(); + if (rv != null) + return rv; return createNew(); } @@ -42,10 +40,7 @@ public final class CryptixAESKeyCache { * */ public final void releaseKey(KeyCacheEntry key) { - synchronized (_availableKeys) { - if (_availableKeys.size() < MAX_KEYS) - _availableKeys.add(key); - } + _availableKeys.offer(key); } public static final KeyCacheEntry createNew() { diff --git a/core/java/src/net/i2p/crypto/DHSessionKeyBuilder.java b/core/java/src/net/i2p/crypto/DHSessionKeyBuilder.java index 2c1e57d8e..b438f2b47 100644 --- a/core/java/src/net/i2p/crypto/DHSessionKeyBuilder.java +++ b/core/java/src/net/i2p/crypto/DHSessionKeyBuilder.java @@ -65,35 +65,17 @@ public class DHSessionKeyBuilder { public final static String PROP_DH_PRECALC_MIN = "crypto.dh.precalc.min"; public final static String PROP_DH_PRECALC_MAX = "crypto.dh.precalc.max"; public final static String PROP_DH_PRECALC_DELAY = "crypto.dh.precalc.delay"; - public final static String DEFAULT_DH_PRECALC_MIN = "5"; - public final static String DEFAULT_DH_PRECALC_MAX = "50"; - public final static String DEFAULT_DH_PRECALC_DELAY = "10000"; + public final static int DEFAULT_DH_PRECALC_MIN = 5; + public final static int DEFAULT_DH_PRECALC_MAX = 50; + public final static int DEFAULT_DH_PRECALC_DELAY = 10000; static { I2PAppContext ctx = _context; ctx.statManager().createRateStat("crypto.dhGeneratePublicTime", "How long it takes to create x and X", "Encryption", new long[] { 60*1000, 5*60*1000, 60*60*1000 }); ctx.statManager().createRateStat("crypto.dhCalculateSessionTime", "How long it takes to create the session key", "Encryption", new long[] { 60*1000, 5*60*1000, 60*60*1000 }); - try { - int val = Integer.parseInt(ctx.getProperty(PROP_DH_PRECALC_MIN, DEFAULT_DH_PRECALC_MIN)); - MIN_NUM_BUILDERS = val; - } catch (Throwable t) { - int val = Integer.parseInt(DEFAULT_DH_PRECALC_MIN); - MIN_NUM_BUILDERS = val; - } - try { - int val = Integer.parseInt(ctx.getProperty(PROP_DH_PRECALC_MAX, DEFAULT_DH_PRECALC_MAX)); - MAX_NUM_BUILDERS = val; - } catch (Throwable t) { - int val = Integer.parseInt(DEFAULT_DH_PRECALC_MAX); - MAX_NUM_BUILDERS = val; - } - try { - int val = Integer.parseInt(ctx.getProperty(PROP_DH_PRECALC_DELAY, DEFAULT_DH_PRECALC_DELAY)); - CALC_DELAY = val; - } catch (Throwable t) { - int val = Integer.parseInt(DEFAULT_DH_PRECALC_DELAY); - CALC_DELAY = val; - } + MIN_NUM_BUILDERS = ctx.getProperty(PROP_DH_PRECALC_MIN, DEFAULT_DH_PRECALC_MIN); + MAX_NUM_BUILDERS = ctx.getProperty(PROP_DH_PRECALC_MAX, DEFAULT_DH_PRECALC_MAX); + CALC_DELAY = ctx.getProperty(PROP_DH_PRECALC_DELAY, DEFAULT_DH_PRECALC_DELAY); if (_log.shouldLog(Log.DEBUG)) _log.debug("DH Precalc (minimum: " + MIN_NUM_BUILDERS + " max: " + MAX_NUM_BUILDERS + ", delay: " diff --git a/core/java/src/net/i2p/crypto/DSAEngine.java b/core/java/src/net/i2p/crypto/DSAEngine.java index b083cc248..941774253 100644 --- a/core/java/src/net/i2p/crypto/DSAEngine.java +++ b/core/java/src/net/i2p/crypto/DSAEngine.java @@ -41,6 +41,10 @@ import net.i2p.data.SigningPublicKey; import net.i2p.util.Log; import net.i2p.util.NativeBigInteger; +/** + * Params and rv's changed from Hash to SHA1Hash for version 0.8.1 + * There shouldn't be any external users of those variants. + */ public class DSAEngine { private Log _log; private I2PAppContext _context; @@ -61,7 +65,9 @@ public class DSAEngine { public boolean verifySignature(Signature signature, InputStream in, SigningPublicKey verifyingKey) { return verifySignature(signature, calculateHash(in), verifyingKey); } - public boolean verifySignature(Signature signature, Hash hash, SigningPublicKey verifyingKey) { + + /** @param hash SHA-1 hash, NOT a SHA-256 hash */ + public boolean verifySignature(Signature signature, SHA1Hash hash, SigningPublicKey verifyingKey) { long start = _context.clock().now(); try { @@ -111,17 +117,18 @@ public class DSAEngine { } public Signature sign(byte data[], int offset, int length, SigningPrivateKey signingKey) { if ((signingKey == null) || (data == null) || (data.length <= 0)) return null; - Hash h = calculateHash(data, offset, length); + SHA1Hash h = calculateHash(data, offset, length); return sign(h, signingKey); } public Signature sign(InputStream in, SigningPrivateKey signingKey) { if ((signingKey == null) || (in == null) ) return null; - Hash h = calculateHash(in); + SHA1Hash h = calculateHash(in); return sign(h, signingKey); } - public Signature sign(Hash hash, SigningPrivateKey signingKey) { + /** @param hash SHA-1 hash, NOT a SHA-256 hash */ + public Signature sign(SHA1Hash hash, SigningPrivateKey signingKey) { if ((signingKey == null) || (hash == null)) return null; long start = _context.clock().now(); @@ -186,7 +193,8 @@ public class DSAEngine { return sig; } - public Hash calculateHash(InputStream in) { + /** @return hash SHA-1 hash, NOT a SHA-256 hash */ + public SHA1Hash calculateHash(InputStream in) { SHA1 digest = new SHA1(); byte buf[] = new byte[64]; int read = 0; @@ -199,14 +207,15 @@ public class DSAEngine { _log.warn("Unable to hash the stream", ioe); return null; } - return new Hash(digest.engineDigest()); + return new SHA1Hash(digest.engineDigest()); } - public static Hash calculateHash(byte[] source, int offset, int len) { + /** @return hash SHA-1 hash, NOT a SHA-256 hash */ + public static SHA1Hash calculateHash(byte[] source, int offset, int len) { SHA1 h = new SHA1(); h.engineUpdate(source, offset, len); byte digested[] = h.digest(); - return new Hash(digested); + return new SHA1Hash(digested); } public static void main(String args[]) { diff --git a/core/java/src/net/i2p/crypto/HMAC256Generator.java b/core/java/src/net/i2p/crypto/HMAC256Generator.java index bf0532109..3fc554639 100644 --- a/core/java/src/net/i2p/crypto/HMAC256Generator.java +++ b/core/java/src/net/i2p/crypto/HMAC256Generator.java @@ -15,16 +15,16 @@ import org.bouncycastle.crypto.macs.I2PHMac; * in {@link org.bouncycastle.crypto.macs.I2PHMac} and * {@link org.bouncycastle.crypto.digests.MD5Digest}. * + * deprecated unused */ public class HMAC256Generator extends HMACGenerator { public HMAC256Generator(I2PAppContext context) { super(context); } @Override protected I2PHMac acquire() { - synchronized (_available) { - if (!_available.isEmpty()) - return (I2PHMac)_available.remove(0); - } + I2PHMac rv = _available.poll(); + if (rv != null) + return rv; // the HMAC is hardcoded to use SHA256 digest size // for backwards compatability. next time we have a backwards // incompatible change, we should update this by removing ", 32" @@ -43,6 +43,7 @@ public class HMAC256Generator extends HMACGenerator { } +/****** public static void main(String args[]) { I2PAppContext ctx = I2PAppContext.getGlobalContext(); byte data[] = new byte[64]; @@ -51,4 +52,5 @@ public class HMAC256Generator extends HMACGenerator { Hash mac = ctx.hmac256().calculate(key, data); System.out.println(Base64.encode(mac.getData())); } +******/ } diff --git a/core/java/src/net/i2p/crypto/HMACGenerator.java b/core/java/src/net/i2p/crypto/HMACGenerator.java index aed444ed0..237c65055 100644 --- a/core/java/src/net/i2p/crypto/HMACGenerator.java +++ b/core/java/src/net/i2p/crypto/HMACGenerator.java @@ -1,8 +1,7 @@ package net.i2p.crypto; -import java.util.ArrayList; import java.util.Arrays; -import java.util.List; +import java.util.concurrent.LinkedBlockingQueue; import net.i2p.I2PAppContext; import net.i2p.data.DataHelper; @@ -22,14 +21,14 @@ import org.bouncycastle.crypto.macs.I2PHMac; public class HMACGenerator { private I2PAppContext _context; /** set of available HMAC instances for calculate */ - protected final List _available; + protected final LinkedBlockingQueue _available; /** set of available byte[] buffers for verify */ - private final List _availableTmp; + private final LinkedBlockingQueue _availableTmp; public HMACGenerator(I2PAppContext context) { _context = context; - _available = new ArrayList(32); - _availableTmp = new ArrayList(32); + _available = new LinkedBlockingQueue(32); + _availableTmp = new LinkedBlockingQueue(32); } /** @@ -88,39 +87,30 @@ public class HMACGenerator { } protected I2PHMac acquire() { - synchronized (_available) { - if (!_available.isEmpty()) - return (I2PHMac)_available.remove(0); - } + I2PHMac rv = _available.poll(); + if (rv != null) + return rv; // the HMAC is hardcoded to use SHA256 digest size // for backwards compatability. next time we have a backwards // incompatible change, we should update this by removing ", 32" return new I2PHMac(new MD5Digest(), 32); } - private void release(Mac mac) { - synchronized (_available) { - if (_available.size() < 64) - _available.add(mac); - } + + private void release(I2PHMac mac) { + _available.offer(mac); } // temp buffers for verify(..) private byte[] acquireTmp() { - byte rv[] = null; - synchronized (_availableTmp) { - if (!_availableTmp.isEmpty()) - rv = (byte[])_availableTmp.remove(0); - } + byte rv[] = _availableTmp.poll(); if (rv != null) Arrays.fill(rv, (byte)0x0); else rv = new byte[Hash.HASH_LENGTH]; return rv; } + private void releaseTmp(byte tmp[]) { - synchronized (_availableTmp) { - if (_availableTmp.size() < 64) - _availableTmp.add((Object)tmp); - } + _availableTmp.offer(tmp); } } diff --git a/core/java/src/net/i2p/crypto/SHA1.java b/core/java/src/net/i2p/crypto/SHA1.java index d8a0ac1c2..6dbdee074 100644 --- a/core/java/src/net/i2p/crypto/SHA1.java +++ b/core/java/src/net/i2p/crypto/SHA1.java @@ -63,7 +63,7 @@ public final class SHA1 extends MessageDigest implements Cloneable { /** * This implementation returns a fixed-size digest. */ - private static final int HASH_LENGTH = 20; // bytes == 160 bits + static final int HASH_LENGTH = 20; // bytes == 160 bits /** * Private context for incomplete blocks and padding bytes. diff --git a/core/java/src/net/i2p/crypto/SHA1Hash.java b/core/java/src/net/i2p/crypto/SHA1Hash.java new file mode 100644 index 000000000..acbb68d4b --- /dev/null +++ b/core/java/src/net/i2p/crypto/SHA1Hash.java @@ -0,0 +1,81 @@ +package net.i2p.crypto; + +/* + * free (adj.): unencumbered; not under the control of others + * Written by jrandom in 2003 and released into the public domain + * with no warranty of any kind, either expressed or implied. + * It probably won't make your computer catch on fire, or eat + * your children, but it might. Use at your own risk. + * + */ + +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; + +import net.i2p.data.DataFormatException; +import net.i2p.data.DataHelper; +import net.i2p.data.DataStructureImpl; + +/** + * Because DSAEngine was abusing Hash for 20-byte hashes + * + * @since 0.8.1 + * @author zzz + */ +public class SHA1Hash extends DataStructureImpl { + private byte[] _data; + private int _cachedHashCode; + + public final static int HASH_LENGTH = SHA1.HASH_LENGTH; + + /** @throws IllegalArgumentException if data is not 20 bytes (null is ok) */ + public SHA1Hash(byte data[]) { + setData(data); + } + + public byte[] getData() { + return _data; + } + + /** @throws IllegalArgumentException if data is not 20 bytes (null is ok) */ + public void setData(byte[] data) { + // FIXME DSAEngine uses a SHA-1 "Hash" as parameters and return values! + if (data != null && data.length != HASH_LENGTH) + throw new IllegalArgumentException("Hash must be 20 bytes"); + _data = data; + _cachedHashCode = calcHashCode(); + } + + /** @throws IOException always */ + public void readBytes(InputStream in) throws DataFormatException, IOException { + throw new IOException("unimplemented"); + } + + /** @throws IOException always */ + public void writeBytes(OutputStream out) throws DataFormatException, IOException { + throw new IOException("unimplemented"); + } + + @Override + public boolean equals(Object obj) { + if ((obj == null) || !(obj instanceof SHA1Hash)) return false; + return DataHelper.eq(_data, ((SHA1Hash) obj)._data); + } + + /** a Hash is a hash, so just use the first 4 bytes for speed */ + @Override + public int hashCode() { + return _cachedHashCode; + } + + /** a Hash is a hash, so just use the first 4 bytes for speed */ + private int calcHashCode() { + int rv = 0; + if (_data != null) { + for (int i = 0; i < 4; i++) + rv ^= (_data[i] << (i*8)); + } + return rv; + } +} diff --git a/core/java/src/net/i2p/crypto/YKGenerator.java b/core/java/src/net/i2p/crypto/YKGenerator.java index ad68ebec1..af83f2c92 100644 --- a/core/java/src/net/i2p/crypto/YKGenerator.java +++ b/core/java/src/net/i2p/crypto/YKGenerator.java @@ -10,24 +10,22 @@ package net.i2p.crypto; */ import java.math.BigInteger; -import java.util.ArrayList; -import java.util.List; +import java.util.concurrent.LinkedBlockingQueue; import net.i2p.I2PAppContext; import net.i2p.util.Clock; import net.i2p.util.I2PThread; import net.i2p.util.Log; import net.i2p.util.NativeBigInteger; -import net.i2p.util.RandomSource; /** * Precalculate the Y and K for ElGamal encryption operations. * * This class precalcs a set of values on its own thread, using those transparently * when a new instance is created. By default, the minimum threshold for creating - * new values for the pool is 5, and the max pool size is 10. Whenever the pool has + * new values for the pool is 20, and the max pool size is 50. Whenever the pool has * less than the minimum, it fills it up again to the max. There is a delay after - * each precalculation so that the CPU isn't hosed during startup (defaulting to 10 seconds). + * each precalculation so that the CPU isn't hosed during startup. * These three parameters are controlled by java environmental variables and * can be adjusted via: * -Dcrypto.yk.precalc.min=40 -Dcrypto.yk.precalc.max=100 -Dcrypto.yk.precalc.delay=60000 @@ -39,51 +37,36 @@ import net.i2p.util.RandomSource; * @author jrandom */ class YKGenerator { - private final static Log _log = new Log(YKGenerator.class); - private static int MIN_NUM_BUILDERS = -1; - private static int MAX_NUM_BUILDERS = -1; - private static int CALC_DELAY = -1; - /* FIXME final type if you are to syncronize FIXME */ - private static volatile List _values = new ArrayList(50); // list of BigInteger[] values (y and k) - private static Thread _precalcThread = null; + //private final static Log _log = new Log(YKGenerator.class); + private static final int MIN_NUM_BUILDERS; + private static final int MAX_NUM_BUILDERS; + private static final int CALC_DELAY; + private static final LinkedBlockingQueue _values = new LinkedBlockingQueue(50); // list of BigInteger[] values (y and k) + private static final Thread _precalcThread; + private static final I2PAppContext ctx; public final static String PROP_YK_PRECALC_MIN = "crypto.yk.precalc.min"; public final static String PROP_YK_PRECALC_MAX = "crypto.yk.precalc.max"; public final static String PROP_YK_PRECALC_DELAY = "crypto.yk.precalc.delay"; - public final static String DEFAULT_YK_PRECALC_MIN = "10"; - public final static String DEFAULT_YK_PRECALC_MAX = "30"; - public final static String DEFAULT_YK_PRECALC_DELAY = "10000"; + public final static int DEFAULT_YK_PRECALC_MIN = 20; + public final static int DEFAULT_YK_PRECALC_MAX = 50; + public final static int DEFAULT_YK_PRECALC_DELAY = 200; /** check every 30 seconds whether we have less than the minimum */ - private final static long CHECK_DELAY = 30 * 1000; + private static long CHECK_DELAY = 30 * 1000; static { - I2PAppContext ctx = I2PAppContext.getGlobalContext(); - try { - int val = Integer.parseInt(ctx.getProperty(PROP_YK_PRECALC_MIN, DEFAULT_YK_PRECALC_MIN)); - MIN_NUM_BUILDERS = val; - } catch (Throwable t) { - int val = Integer.parseInt(DEFAULT_YK_PRECALC_MIN); - MIN_NUM_BUILDERS = val; - } - try { - int val = Integer.parseInt(ctx.getProperty(PROP_YK_PRECALC_MAX, DEFAULT_YK_PRECALC_MAX)); - MAX_NUM_BUILDERS = val; - } catch (Throwable t) { - int val = Integer.parseInt(DEFAULT_YK_PRECALC_MAX); - MAX_NUM_BUILDERS = val; - } - try { - int val = Integer.parseInt(ctx.getProperty(PROP_YK_PRECALC_DELAY, DEFAULT_YK_PRECALC_DELAY)); - CALC_DELAY = val; - } catch (Throwable t) { - int val = Integer.parseInt(DEFAULT_YK_PRECALC_DELAY); - CALC_DELAY = val; - } + ctx = I2PAppContext.getGlobalContext(); + MIN_NUM_BUILDERS = ctx.getProperty(PROP_YK_PRECALC_MIN, DEFAULT_YK_PRECALC_MIN); + MAX_NUM_BUILDERS = ctx.getProperty(PROP_YK_PRECALC_MAX, DEFAULT_YK_PRECALC_MAX); + CALC_DELAY = ctx.getProperty(PROP_YK_PRECALC_DELAY, DEFAULT_YK_PRECALC_DELAY); - if (_log.shouldLog(Log.DEBUG)) - _log.debug("ElGamal YK Precalc (minimum: " + MIN_NUM_BUILDERS + " max: " + MAX_NUM_BUILDERS + ", delay: " - + CALC_DELAY + ")"); + //if (_log.shouldLog(Log.DEBUG)) + // _log.debug("ElGamal YK Precalc (minimum: " + MIN_NUM_BUILDERS + " max: " + MAX_NUM_BUILDERS + ", delay: " + // + CALC_DELAY + ")"); + + ctx.statManager().createRateStat("crypto.YKUsed", "Need a YK from the queue", "Encryption", new long[] { 60*60*1000 }); + ctx.statManager().createRateStat("crypto.YKEmpty", "YK queue empty", "Encryption", new long[] { 60*60*1000 }); _precalcThread = new I2PThread(new YKPrecalcRunner(MIN_NUM_BUILDERS, MAX_NUM_BUILDERS)); _precalcThread.setName("YK Precalc"); @@ -93,45 +76,36 @@ class YKGenerator { } private static final int getSize() { - synchronized (_values) { - return _values.size(); - } + return _values.size(); } - private static final int addValues(BigInteger yk[]) { - int sz = 0; - synchronized (_values) { - _values.add(yk); - sz = _values.size(); - } - return sz; + /** @return true if successful, false if full */ + private static final boolean addValues(BigInteger yk[]) { + return _values.offer(yk); } + /** @return rv[0] = Y; rv[1] = K */ public static BigInteger[] getNextYK() { - if (true) { - synchronized (_values) { - if (!_values.isEmpty()) { - if (_log.shouldLog(Log.DEBUG)) - _log.debug("Sufficient precalculated YK values - fetch the existing"); - return (BigInteger[]) _values.remove(0); - } - } - } - if (_log.shouldLog(Log.INFO)) _log.info("Insufficient precalculated YK values - create a new one"); + ctx.statManager().addRateData("crypto.YKUsed", 1, 0); + BigInteger[] rv = _values.poll(); + if (rv != null) + return rv; + ctx.statManager().addRateData("crypto.YKEmpty", 1, 0); return generateYK(); } private final static BigInteger _two = new NativeBigInteger(1, new byte[] { 0x02}); + /** @return rv[0] = Y; rv[1] = K */ private static final BigInteger[] generateYK() { NativeBigInteger k = null; BigInteger y = null; - long t0 = 0; - long t1 = 0; + //long t0 = 0; + //long t1 = 0; while (k == null) { - t0 = Clock.getInstance().now(); - k = new NativeBigInteger(KeyGenerator.PUBKEY_EXPONENT_SIZE, RandomSource.getInstance()); - t1 = Clock.getInstance().now(); + //t0 = Clock.getInstance().now(); + k = new NativeBigInteger(KeyGenerator.PUBKEY_EXPONENT_SIZE, ctx.random()); + //t1 = Clock.getInstance().now(); if (BigInteger.ZERO.compareTo(k) == 0) { k = null; continue; @@ -139,39 +113,31 @@ class YKGenerator { BigInteger kPlus2 = k.add(_two); if (kPlus2.compareTo(CryptoConstants.elgp) > 0) k = null; } - long t2 = Clock.getInstance().now(); + //long t2 = Clock.getInstance().now(); y = CryptoConstants.elgg.modPow(k, CryptoConstants.elgp); BigInteger yk[] = new BigInteger[2]; yk[0] = y; yk[1] = k; - long diff = t2 - t0; - if (diff > 1000) { - if (_log.shouldLog(Log.WARN)) _log.warn("Took too long to generate YK value for ElGamal (" + diff + "ms)"); - } + //long diff = t2 - t0; + //if (diff > 1000) { + // if (_log.shouldLog(Log.WARN)) _log.warn("Took too long to generate YK value for ElGamal (" + diff + "ms)"); + //} return yk; } public static void main(String args[]) { - RandomSource.getInstance().nextBoolean(); // warm it up - try { - Thread.sleep(20 * 1000); - } catch (InterruptedException ie) { // nop - } - _log.debug("\n\n\n\nBegin test\n"); + System.out.println("\n\n\n\nBegin test\n"); long negTime = 0; for (int i = 0; i < 5; i++) { long startNeg = Clock.getInstance().now(); getNextYK(); long endNeg = Clock.getInstance().now(); + negTime += endNeg - startNeg; } - _log.debug("YK fetch time for 5 runs: " + negTime + " @ " + negTime / 5l + "ms each"); - try { - Thread.sleep(30 * 1000); - } catch (InterruptedException ie) { // nop - } + System.out.println("YK fetch time for 5 runs: " + negTime + " @ " + negTime / 5l + "ms each"); } private static class YKPrecalcRunner implements Runnable { @@ -186,15 +152,21 @@ class YKGenerator { public void run() { while (true) { int curSize = 0; - long start = Clock.getInstance().now(); + //long start = Clock.getInstance().now(); int startSize = getSize(); + // Adjust delay + if (startSize <= (_minSize / 2) && CHECK_DELAY > 1000) + CHECK_DELAY -= 1000; + else if (startSize > (_minSize * 2) && CHECK_DELAY < 60000) + CHECK_DELAY += 1000; curSize = startSize; - while (curSize < _minSize) { - while (curSize < _maxSize) { - long begin = Clock.getInstance().now(); - curSize = addValues(generateYK()); - long end = Clock.getInstance().now(); - if (_log.shouldLog(Log.DEBUG)) _log.debug("Precalculated YK value in " + (end - begin) + "ms"); + if (curSize < _minSize) { + for (int i = curSize; i < _maxSize; i++) { + //long begin = Clock.getInstance().now(); + if (!addValues(generateYK())) + break; + //long end = Clock.getInstance().now(); + //if (_log.shouldLog(Log.DEBUG)) _log.debug("Precalculated YK value in " + (end - begin) + "ms"); // for some relief... try { Thread.sleep(CALC_DELAY); @@ -202,14 +174,14 @@ class YKGenerator { } } } - long end = Clock.getInstance().now(); - int numCalc = curSize - startSize; - if (numCalc > 0) { - if (_log.shouldLog(Log.DEBUG)) - _log.debug("Precalced " + numCalc + " to " + curSize + " in " - + (end - start - CALC_DELAY * numCalc) + "ms (not counting " - + (CALC_DELAY * numCalc) + "ms relief). now sleeping"); - } + //long end = Clock.getInstance().now(); + //int numCalc = curSize - startSize; + //if (numCalc > 0) { + // if (_log.shouldLog(Log.DEBUG)) + // _log.debug("Precalced " + numCalc + " to " + curSize + " in " + // + (end - start - CALC_DELAY * numCalc) + "ms (not counting " + // + (CALC_DELAY * numCalc) + "ms relief). now sleeping"); + //} try { Thread.sleep(CHECK_DELAY); } catch (InterruptedException ie) { // nop @@ -217,4 +189,4 @@ class YKGenerator { } } } -} \ No newline at end of file +} From c10a4f51baa010df8fe63159cca823d823d141c7 Mon Sep 17 00:00:00 2001 From: zzz Date: Sat, 2 Oct 2010 14:27:01 +0000 Subject: [PATCH 55/75] I2CP: cleanups to replace method calls with fields --- .../src/net/i2p/data/i2cp/AbuseReason.java | 6 ++--- .../src/net/i2p/data/i2cp/AbuseSeverity.java | 6 ++--- .../i2p/data/i2cp/CreateSessionMessage.java | 8 +++---- .../i2p/data/i2cp/DestroySessionMessage.java | 4 ++-- .../net/i2p/data/i2cp/I2CPMessageHandler.java | 8 ++++--- .../java/src/net/i2p/data/i2cp/MessageId.java | 8 +++---- .../i2p/data/i2cp/MessagePayloadMessage.java | 12 +++++----- .../i2p/data/i2cp/MessageStatusMessage.java | 22 ++++++++++--------- .../data/i2cp/ReceiveMessageBeginMessage.java | 8 +++---- .../data/i2cp/ReceiveMessageEndMessage.java | 8 +++---- .../data/i2cp/ReconfigureSessionMessage.java | 8 +++---- .../i2p/data/i2cp/RequestLeaseSetMessage.java | 8 +++---- .../src/net/i2p/data/i2cp/SessionConfig.java | 4 ++-- .../java/src/net/i2p/data/i2cp/SessionId.java | 8 +++---- .../src/net/i2p/data/i2cp/SetDateMessage.java | 6 ++--- 15 files changed, 63 insertions(+), 61 deletions(-) diff --git a/core/java/src/net/i2p/data/i2cp/AbuseReason.java b/core/java/src/net/i2p/data/i2cp/AbuseReason.java index f631fa591..99388faf2 100644 --- a/core/java/src/net/i2p/data/i2cp/AbuseReason.java +++ b/core/java/src/net/i2p/data/i2cp/AbuseReason.java @@ -49,16 +49,16 @@ public class AbuseReason extends DataStructureImpl { @Override public boolean equals(Object object) { if ((object == null) || !(object instanceof AbuseReason)) return false; - return DataHelper.eq(getReason(), ((AbuseReason) object).getReason()); + return DataHelper.eq(_reason, ((AbuseReason) object).getReason()); } @Override public int hashCode() { - return DataHelper.hashCode(getReason()); + return DataHelper.hashCode(_reason); } @Override public String toString() { - return "[AbuseReason: " + getReason() + "]"; + return "[AbuseReason: " + _reason + "]"; } } diff --git a/core/java/src/net/i2p/data/i2cp/AbuseSeverity.java b/core/java/src/net/i2p/data/i2cp/AbuseSeverity.java index 69cba7d24..bc3b9bbc9 100644 --- a/core/java/src/net/i2p/data/i2cp/AbuseSeverity.java +++ b/core/java/src/net/i2p/data/i2cp/AbuseSeverity.java @@ -28,7 +28,7 @@ public class AbuseSeverity extends DataStructureImpl { private int _severityId; public AbuseSeverity() { - setSeverity(-1); + _severityId = -1; } public int getSeverity() { @@ -56,11 +56,11 @@ public class AbuseSeverity extends DataStructureImpl { @Override public int hashCode() { - return getSeverity(); + return _severityId; } @Override public String toString() { - return "[AbuseSeverity: " + getSeverity() + "]"; + return "[AbuseSeverity: " + _severityId + "]"; } } diff --git a/core/java/src/net/i2p/data/i2cp/CreateSessionMessage.java b/core/java/src/net/i2p/data/i2cp/CreateSessionMessage.java index 1b8004ce0..8590a554c 100644 --- a/core/java/src/net/i2p/data/i2cp/CreateSessionMessage.java +++ b/core/java/src/net/i2p/data/i2cp/CreateSessionMessage.java @@ -27,11 +27,11 @@ public class CreateSessionMessage extends I2CPMessageImpl { private SessionConfig _sessionConfig; public CreateSessionMessage(SessionConfig config) { - setSessionConfig(config); + _sessionConfig = config; } public CreateSessionMessage() { - setSessionConfig(new SessionConfig()); + _sessionConfig = new SessionConfig(); } public SessionConfig getSessionConfig() { @@ -75,7 +75,7 @@ public class CreateSessionMessage extends I2CPMessageImpl { public boolean equals(Object object) { if ((object != null) && (object instanceof CreateSessionMessage)) { CreateSessionMessage msg = (CreateSessionMessage) object; - return DataHelper.eq(getSessionConfig(), msg.getSessionConfig()); + return DataHelper.eq(_sessionConfig, msg.getSessionConfig()); } return false; @@ -85,7 +85,7 @@ public class CreateSessionMessage extends I2CPMessageImpl { public String toString() { StringBuilder buf = new StringBuilder(); buf.append("[CreateSessionMessage: "); - buf.append("\n\tConfig: ").append(getSessionConfig()); + buf.append("\n\tConfig: ").append(_sessionConfig); buf.append("]"); return buf.toString(); } diff --git a/core/java/src/net/i2p/data/i2cp/DestroySessionMessage.java b/core/java/src/net/i2p/data/i2cp/DestroySessionMessage.java index 8b4db852f..edb07ae41 100644 --- a/core/java/src/net/i2p/data/i2cp/DestroySessionMessage.java +++ b/core/java/src/net/i2p/data/i2cp/DestroySessionMessage.java @@ -69,7 +69,7 @@ public class DestroySessionMessage extends I2CPMessageImpl { public boolean equals(Object object) { if ((object != null) && (object instanceof DestroySessionMessage)) { DestroySessionMessage msg = (DestroySessionMessage) object; - return DataHelper.eq(getSessionId(), msg.getSessionId()); + return DataHelper.eq(_sessionId, msg.getSessionId()); } return false; @@ -86,7 +86,7 @@ public class DestroySessionMessage extends I2CPMessageImpl { public String toString() { StringBuilder buf = new StringBuilder(); buf.append("[DestroySessionMessage: "); - buf.append("\n\tSessionId: ").append(getSessionId()); + buf.append("\n\tSessionId: ").append(_sessionId); buf.append("]"); return buf.toString(); } diff --git a/core/java/src/net/i2p/data/i2cp/I2CPMessageHandler.java b/core/java/src/net/i2p/data/i2cp/I2CPMessageHandler.java index 739f7823e..aaa35427b 100644 --- a/core/java/src/net/i2p/data/i2cp/I2CPMessageHandler.java +++ b/core/java/src/net/i2p/data/i2cp/I2CPMessageHandler.java @@ -41,7 +41,7 @@ public class I2CPMessageHandler { try { if (length < 0) throw new I2CPMessageException("Invalid message length specified"); int type = (int) DataHelper.readLong(in, 1); - I2CPMessage msg = createMessage(in, length, type); + I2CPMessage msg = createMessage(type); msg.readMessage(in, length, type); return msg; } catch (DataFormatException dfe) { @@ -53,8 +53,8 @@ public class I2CPMessageHandler { * Yes, this is fairly ugly, but its the only place it ever happens. * */ - private static I2CPMessage createMessage(InputStream in, int length, int type) throws IOException, - I2CPMessageException { + private static I2CPMessage createMessage(int type) throws IOException, + I2CPMessageException { switch (type) { case CreateLeaseSetMessage.MESSAGE_TYPE: return new CreateLeaseSetMessage(); @@ -101,6 +101,7 @@ public class I2CPMessageHandler { } } +/*** public static void main(String args[]) { try { I2CPMessage msg = readMessage(new FileInputStream(args[0])); @@ -109,4 +110,5 @@ public class I2CPMessageHandler { e.printStackTrace(); } } +***/ } diff --git a/core/java/src/net/i2p/data/i2cp/MessageId.java b/core/java/src/net/i2p/data/i2cp/MessageId.java index d1db73761..365dc6dbb 100644 --- a/core/java/src/net/i2p/data/i2cp/MessageId.java +++ b/core/java/src/net/i2p/data/i2cp/MessageId.java @@ -27,10 +27,10 @@ public class MessageId extends DataStructureImpl { private long _messageId; public MessageId() { - setMessageId(-1); + _messageId = -1; } public MessageId(long id) { - setMessageId(id); + _messageId = id; } public long getMessageId() { @@ -58,11 +58,11 @@ public class MessageId extends DataStructureImpl { @Override public int hashCode() { - return (int)getMessageId(); + return (int)_messageId; } @Override public String toString() { - return "[MessageId: " + getMessageId() + "]"; + return "[MessageId: " + _messageId + "]"; } } diff --git a/core/java/src/net/i2p/data/i2cp/MessagePayloadMessage.java b/core/java/src/net/i2p/data/i2cp/MessagePayloadMessage.java index f06fe86f3..d9739ee58 100644 --- a/core/java/src/net/i2p/data/i2cp/MessagePayloadMessage.java +++ b/core/java/src/net/i2p/data/i2cp/MessagePayloadMessage.java @@ -29,8 +29,8 @@ public class MessagePayloadMessage extends I2CPMessageImpl { private Payload _payload; public MessagePayloadMessage() { - setSessionId(-1); - setMessageId(-1); + _sessionId = -1; + _messageId = -1; } public long getSessionId() { @@ -113,7 +113,7 @@ public class MessagePayloadMessage extends I2CPMessageImpl { MessagePayloadMessage msg = (MessagePayloadMessage) object; return _sessionId == msg.getSessionId() && _messageId == msg.getMessageId() - && DataHelper.eq(getPayload(), msg.getPayload()); + && DataHelper.eq(_payload, msg.getPayload()); } return false; @@ -123,9 +123,9 @@ public class MessagePayloadMessage extends I2CPMessageImpl { public String toString() { StringBuilder buf = new StringBuilder(); buf.append("[MessagePayloadMessage: "); - buf.append("\n\tSessionId: ").append(getSessionId()); - buf.append("\n\tMessageId: ").append(getMessageId()); - buf.append("\n\tPayload: ").append(getPayload()); + buf.append("\n\tSessionId: ").append(_sessionId); + buf.append("\n\tMessageId: ").append(_messageId); + buf.append("\n\tPayload: ").append(_payload); buf.append("]"); return buf.toString(); } diff --git a/core/java/src/net/i2p/data/i2cp/MessageStatusMessage.java b/core/java/src/net/i2p/data/i2cp/MessageStatusMessage.java index 67fde8134..933a80785 100644 --- a/core/java/src/net/i2p/data/i2cp/MessageStatusMessage.java +++ b/core/java/src/net/i2p/data/i2cp/MessageStatusMessage.java @@ -32,17 +32,19 @@ public class MessageStatusMessage extends I2CPMessageImpl { public final static int STATUS_AVAILABLE = 0; public final static int STATUS_SEND_ACCEPTED = 1; + /** unused */ public final static int STATUS_SEND_BEST_EFFORT_SUCCESS = 2; + /** unused */ public final static int STATUS_SEND_BEST_EFFORT_FAILURE = 3; public final static int STATUS_SEND_GUARANTEED_SUCCESS = 4; public final static int STATUS_SEND_GUARANTEED_FAILURE = 5; public MessageStatusMessage() { - setSessionId(-1); - setStatus(-1); - setMessageId(-1); - setSize(-1); - setNonce(-1); + _sessionId = -1; + _status = -1; + _messageId = -1; + _size = -1; + _nonce = -1; } public long getSessionId() { @@ -169,11 +171,11 @@ public class MessageStatusMessage extends I2CPMessageImpl { public String toString() { StringBuilder buf = new StringBuilder(); buf.append("[MessageStatusMessage: "); - buf.append("\n\tSessionId: ").append(getSessionId()); - buf.append("\n\tNonce: ").append(getNonce()); - buf.append("\n\tMessageId: ").append(getMessageId()); - buf.append("\n\tStatus: ").append(getStatusString(getStatus())); - buf.append("\n\tSize: ").append(getSize()); + buf.append("\n\tSessionId: ").append(_sessionId); + buf.append("\n\tNonce: ").append(_nonce); + buf.append("\n\tMessageId: ").append(_messageId); + buf.append("\n\tStatus: ").append(getStatusString(_status)); + buf.append("\n\tSize: ").append(_size); buf.append("]"); return buf.toString(); } diff --git a/core/java/src/net/i2p/data/i2cp/ReceiveMessageBeginMessage.java b/core/java/src/net/i2p/data/i2cp/ReceiveMessageBeginMessage.java index 6ad5e2745..15bd6779d 100644 --- a/core/java/src/net/i2p/data/i2cp/ReceiveMessageBeginMessage.java +++ b/core/java/src/net/i2p/data/i2cp/ReceiveMessageBeginMessage.java @@ -28,8 +28,8 @@ public class ReceiveMessageBeginMessage extends I2CPMessageImpl { private long _messageId; public ReceiveMessageBeginMessage() { - setSessionId(-1); - setMessageId(-1); + _sessionId = -1; + _messageId = -1; } public long getSessionId() { @@ -103,8 +103,8 @@ public class ReceiveMessageBeginMessage extends I2CPMessageImpl { public String toString() { StringBuilder buf = new StringBuilder(); buf.append("[ReceiveMessageBeginMessage: "); - buf.append("\n\tSessionId: ").append(getSessionId()); - buf.append("\n\tMessageId: ").append(getMessageId()); + buf.append("\n\tSessionId: ").append(_sessionId); + buf.append("\n\tMessageId: ").append(_messageId); buf.append("]"); return buf.toString(); } diff --git a/core/java/src/net/i2p/data/i2cp/ReceiveMessageEndMessage.java b/core/java/src/net/i2p/data/i2cp/ReceiveMessageEndMessage.java index 79cf88382..718fd8b73 100644 --- a/core/java/src/net/i2p/data/i2cp/ReceiveMessageEndMessage.java +++ b/core/java/src/net/i2p/data/i2cp/ReceiveMessageEndMessage.java @@ -27,8 +27,8 @@ public class ReceiveMessageEndMessage extends I2CPMessageImpl { private long _messageId; public ReceiveMessageEndMessage() { - setSessionId(-1); - setMessageId(-1); + _sessionId = -1; + _messageId = -1; } public long getSessionId() { @@ -87,8 +87,8 @@ public class ReceiveMessageEndMessage extends I2CPMessageImpl { public String toString() { StringBuilder buf = new StringBuilder(); buf.append("[ReceiveMessageEndMessage: "); - buf.append("\n\tSessionId: ").append(getSessionId()); - buf.append("\n\tMessageId: ").append(getMessageId()); + buf.append("\n\tSessionId: ").append(_sessionId); + buf.append("\n\tMessageId: ").append(_messageId); buf.append("]"); return buf.toString(); } diff --git a/core/java/src/net/i2p/data/i2cp/ReconfigureSessionMessage.java b/core/java/src/net/i2p/data/i2cp/ReconfigureSessionMessage.java index 9400091be..336fb3ed5 100644 --- a/core/java/src/net/i2p/data/i2cp/ReconfigureSessionMessage.java +++ b/core/java/src/net/i2p/data/i2cp/ReconfigureSessionMessage.java @@ -81,8 +81,8 @@ public class ReconfigureSessionMessage extends I2CPMessageImpl { public boolean equals(Object object) { if ((object != null) && (object instanceof ReconfigureSessionMessage)) { ReconfigureSessionMessage msg = (ReconfigureSessionMessage) object; - return DataHelper.eq(getSessionId(), msg.getSessionId()) - && DataHelper.eq(getSessionConfig(), msg.getSessionConfig()); + return DataHelper.eq(_sessionId, msg.getSessionId()) + && DataHelper.eq(_sessionConfig, msg.getSessionConfig()); } return false; @@ -92,8 +92,8 @@ public class ReconfigureSessionMessage extends I2CPMessageImpl { public String toString() { StringBuilder buf = new StringBuilder(); buf.append("[ReconfigureSessionMessage: "); - buf.append("\n\tSessionId: ").append(getSessionId()); - buf.append("\n\tSessionConfig: ").append(getSessionConfig()); + buf.append("\n\tSessionId: ").append(_sessionId); + buf.append("\n\tSessionConfig: ").append(_sessionConfig); buf.append("]"); return buf.toString(); } diff --git a/core/java/src/net/i2p/data/i2cp/RequestLeaseSetMessage.java b/core/java/src/net/i2p/data/i2cp/RequestLeaseSetMessage.java index ef877afe5..32241e833 100644 --- a/core/java/src/net/i2p/data/i2cp/RequestLeaseSetMessage.java +++ b/core/java/src/net/i2p/data/i2cp/RequestLeaseSetMessage.java @@ -30,7 +30,7 @@ import net.i2p.data.TunnelId; public class RequestLeaseSetMessage extends I2CPMessageImpl { public final static int MESSAGE_TYPE = 21; private SessionId _sessionId; - private List _endpoints; + private List _endpoints; private Date _end; public RequestLeaseSetMessage() { @@ -51,12 +51,12 @@ public class RequestLeaseSetMessage extends I2CPMessageImpl { public Hash getRouter(int endpoint) { if ((endpoint < 0) || (_endpoints.size() < endpoint)) return null; - return ((TunnelEndpoint) _endpoints.get(endpoint)).getRouter(); + return _endpoints.get(endpoint).getRouter(); } public TunnelId getTunnelId(int endpoint) { if ((endpoint < 0) || (_endpoints.size() < endpoint)) return null; - return ((TunnelEndpoint) _endpoints.get(endpoint)).getTunnelId(); + return _endpoints.get(endpoint).getTunnelId(); } /** @deprecated unused - presumably he meant remove? */ @@ -159,8 +159,6 @@ public class RequestLeaseSetMessage extends I2CPMessageImpl { private TunnelId _tunnelId; public TunnelEndpoint() { - _router = null; - _tunnelId = null; } public TunnelEndpoint(Hash router, TunnelId id) { diff --git a/core/java/src/net/i2p/data/i2cp/SessionConfig.java b/core/java/src/net/i2p/data/i2cp/SessionConfig.java index b96918a45..6534e0dbb 100644 --- a/core/java/src/net/i2p/data/i2cp/SessionConfig.java +++ b/core/java/src/net/i2p/data/i2cp/SessionConfig.java @@ -168,8 +168,8 @@ public class SessionConfig extends DataStructureImpl { ByteArrayOutputStream out = new ByteArrayOutputStream(); try { - _log.debug("PubKey size for destination: " + _destination.getPublicKey().getData().length); - _log.debug("SigningKey size for destination: " + _destination.getSigningPublicKey().getData().length); + //_log.debug("PubKey size for destination: " + _destination.getPublicKey().getData().length); + //_log.debug("SigningKey size for destination: " + _destination.getSigningPublicKey().getData().length); _destination.writeBytes(out); DataHelper.writeProperties(out, _options, true); // UTF-8 DataHelper.writeDate(out, _creationDate); diff --git a/core/java/src/net/i2p/data/i2cp/SessionId.java b/core/java/src/net/i2p/data/i2cp/SessionId.java index f79589c42..708ba9c46 100644 --- a/core/java/src/net/i2p/data/i2cp/SessionId.java +++ b/core/java/src/net/i2p/data/i2cp/SessionId.java @@ -26,7 +26,7 @@ public class SessionId extends DataStructureImpl { private int _sessionId; public SessionId() { - setSessionId(-1); + _sessionId = -1; } public int getSessionId() { @@ -49,16 +49,16 @@ public class SessionId extends DataStructureImpl { @Override public boolean equals(Object obj) { if ((obj == null) || !(obj instanceof SessionId)) return false; - return getSessionId() == ((SessionId) obj).getSessionId(); + return _sessionId == ((SessionId) obj).getSessionId(); } @Override public int hashCode() { - return getSessionId(); + return _sessionId; } @Override public String toString() { - return "[SessionId: " + getSessionId() + "]"; + return "[SessionId: " + _sessionId + "]"; } } diff --git a/core/java/src/net/i2p/data/i2cp/SetDateMessage.java b/core/java/src/net/i2p/data/i2cp/SetDateMessage.java index f0abce1a5..9f6633b6d 100644 --- a/core/java/src/net/i2p/data/i2cp/SetDateMessage.java +++ b/core/java/src/net/i2p/data/i2cp/SetDateMessage.java @@ -28,7 +28,7 @@ public class SetDateMessage extends I2CPMessageImpl { public SetDateMessage() { super(); - setDate(new Date(Clock.getInstance().now())); + _date = new Date(Clock.getInstance().now()); } public Date getDate() { @@ -70,7 +70,7 @@ public class SetDateMessage extends I2CPMessageImpl { public boolean equals(Object object) { if ((object != null) && (object instanceof SetDateMessage)) { SetDateMessage msg = (SetDateMessage) object; - return DataHelper.eq(getDate(), msg.getDate()); + return DataHelper.eq(_date, msg.getDate()); } return false; @@ -80,7 +80,7 @@ public class SetDateMessage extends I2CPMessageImpl { public String toString() { StringBuilder buf = new StringBuilder(); buf.append("[SetDateMessage"); - buf.append("\n\tDate: ").append(getDate()); + buf.append("\n\tDate: ").append(_date); buf.append("]"); return buf.toString(); } From 4c31c70298aba8f4d47c3f4a8c7f5f37a4faeda6 Mon Sep 17 00:00:00 2001 From: zzz Date: Sat, 2 Oct 2010 14:28:27 +0000 Subject: [PATCH 56/75] Startup hint in installer for non-x86 --- installer/resources/start-i2p.txt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/installer/resources/start-i2p.txt b/installer/resources/start-i2p.txt index e20ed1e73..2e51ea48c 100644 --- a/installer/resources/start-i2p.txt +++ b/installer/resources/start-i2p.txt @@ -1,3 +1,8 @@ To start I2P, run: $INSTALL_PATH/i2prouter start + + +On non-x86, run: + +$INSTALL_PATH/runplain.sh From 4456048e79cde5019108db7c8406a9d8169cccc9 Mon Sep 17 00:00:00 2001 From: zzz Date: Sat, 2 Oct 2010 14:43:40 +0000 Subject: [PATCH 57/75] * HTTPResponseOutputStream - More caching - Stats cleanup - Max header length check - Catch OOM - Initializer cleanup - Javadoc --- .../i2ptunnel/HTTPResponseOutputStream.java | 68 ++++++++++++------- .../i2p/i2ptunnel/I2PTunnelHTTPServer.java | 1 + 2 files changed, 44 insertions(+), 25 deletions(-) diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/HTTPResponseOutputStream.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/HTTPResponseOutputStream.java index af4049a21..326ebb644 100644 --- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/HTTPResponseOutputStream.java +++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/HTTPResponseOutputStream.java @@ -24,6 +24,9 @@ import net.i2p.util.I2PAppThread; import net.i2p.util.Log; /** + * This does the transparent gzip decompression on the client side. + * Extended in I2PTunnelHTTPServer to do the compression on the server side. + * * Simple stream for delivering an HTTP response to * the client, trivially filtered to make sure "Connection: close" * is always in the response. Perhaps add transparent handling of the @@ -33,29 +36,27 @@ import net.i2p.util.Log; * */ class HTTPResponseOutputStream extends FilterOutputStream { - private I2PAppContext _context; - private Log _log; - private ByteCache _cache; + private final I2PAppContext _context; + private final Log _log; protected ByteArray _headerBuffer; private boolean _headerWritten; - private byte _buf1[]; + private final byte _buf1[]; protected boolean _gzip; private long _dataWritten; private InternalGZIPInputStream _in; private static final int CACHE_SIZE = 8*1024; + private static final ByteCache _cache = ByteCache.getInstance(8, CACHE_SIZE); + // OOM DOS prevention + private static final int MAX_HEADER_SIZE = 64*1024; public HTTPResponseOutputStream(OutputStream raw) { super(raw); _context = I2PAppContext.getGlobalContext(); - _context.statManager().createRateStat("i2ptunnel.httpCompressionRatio", "ratio of compressed size to decompressed size after transfer", "I2PTunnel", new long[] { 60*1000, 30*60*1000 }); - _context.statManager().createRateStat("i2ptunnel.httpCompressed", "compressed size transferred", "I2PTunnel", new long[] { 60*1000, 30*60*1000 }); - _context.statManager().createRateStat("i2ptunnel.httpExpanded", "size transferred after expansion", "I2PTunnel", new long[] { 60*1000, 30*60*1000 }); + _context.statManager().createRateStat("i2ptunnel.httpCompressionRatio", "ratio of compressed size to decompressed size after transfer", "I2PTunnel", new long[] { 60*60*1000 }); + _context.statManager().createRateStat("i2ptunnel.httpCompressed", "compressed size transferred", "I2PTunnel", new long[] { 60*60*1000 }); + _context.statManager().createRateStat("i2ptunnel.httpExpanded", "size transferred after expansion", "I2PTunnel", new long[] { 60*60*1000 }); _log = _context.logManager().getLog(getClass()); - _cache = ByteCache.getInstance(8, CACHE_SIZE); _headerBuffer = _cache.acquire(); - _headerWritten = false; - _gzip = false; - _dataWritten = 0; _buf1 = new byte[1]; } @@ -96,14 +97,20 @@ class HTTPResponseOutputStream extends FilterOutputStream { } } - /** grow (and free) the buffer as necessary */ - private void ensureCapacity() { + /** + * grow (and free) the buffer as necessary + * @throws IOException if the headers are too big + */ + private void ensureCapacity() throws IOException { + if (_headerBuffer.getValid() >= MAX_HEADER_SIZE) + throw new IOException("Max header size exceeded: " + MAX_HEADER_SIZE); if (_headerBuffer.getValid() + 1 >= _headerBuffer.getData().length) { int newSize = (int)(_headerBuffer.getData().length * 1.5); ByteArray newBuf = new ByteArray(new byte[newSize]); System.arraycopy(_headerBuffer.getData(), 0, newBuf.getData(), 0, _headerBuffer.getValid()); newBuf.setValid(_headerBuffer.getValid()); newBuf.setOffset(0); + // if we changed the ByteArray size, don't put it back in the cache if (_headerBuffer.getData().length == CACHE_SIZE) _cache.release(_headerBuffer); _headerBuffer = newBuf; @@ -219,7 +226,7 @@ class HTTPResponseOutputStream extends FilterOutputStream { //out.flush(); PipedInputStream pi = new PipedInputStream(); PipedOutputStream po = new PipedOutputStream(pi); - new I2PAppThread(new Pusher(pi, out), "HTTP decompresser").start(); + new I2PAppThread(new Pusher(pi, out), "HTTP decompressor").start(); out = po; } @@ -231,13 +238,13 @@ class HTTPResponseOutputStream extends FilterOutputStream { _out = out; } public void run() { - OutputStream to = null; _in = null; - long start = System.currentTimeMillis(); long written = 0; + ByteArray ba = null; try { _in = new InternalGZIPInputStream(_inRaw); - byte buf[] = new byte[8192]; + ba = _cache.acquire(); + byte buf[] = ba.getData(); int read = -1; while ( (read = _in.read(buf)) != -1) { if (_log.shouldLog(Log.DEBUG)) @@ -251,6 +258,8 @@ class HTTPResponseOutputStream extends FilterOutputStream { } catch (IOException ioe) { if (_log.shouldLog(Log.WARN)) _log.warn("Error decompressing: " + written + ", " + (_in != null ? _in.getTotalRead() + "/" + _in.getTotalExpanded() : ""), ioe); + } catch (OutOfMemoryError oom) { + _log.error("OOM in HTTP Decompressor", oom); } finally { if (_log.shouldLog(Log.WARN) && (_in != null)) _log.warn("After decompression, written=" + written + @@ -259,23 +268,26 @@ class HTTPResponseOutputStream extends FilterOutputStream { + ", expanded=" + _in.getTotalExpanded() + ", remaining=" + _in.getRemaining() + ", finished=" + _in.getFinished() : "")); + if (ba != null) + _cache.release(ba); if (_out != null) try { _out.close(); } catch (IOException ioe) {} } - long end = System.currentTimeMillis(); + double compressed = (_in != null ? _in.getTotalRead() : 0); double expanded = (_in != null ? _in.getTotalExpanded() : 0); - double ratio = 0; - if (expanded > 0) - ratio = compressed/expanded; - - _context.statManager().addRateData("i2ptunnel.httpCompressionRatio", (int)(100d*ratio), end-start); - _context.statManager().addRateData("i2ptunnel.httpCompressed", (long)compressed, end-start); - _context.statManager().addRateData("i2ptunnel.httpExpanded", (long)expanded, end-start); + if (compressed > 0 && expanded > 0) { + // only update the stats if we did something + double ratio = compressed/expanded; + _context.statManager().addRateData("i2ptunnel.httpCompressionRatio", (int)(100d*ratio), 0); + _context.statManager().addRateData("i2ptunnel.httpCompressed", (long)compressed, 0); + _context.statManager().addRateData("i2ptunnel.httpExpanded", (long)expanded, 0); + } } } + /** just a wrapper to provide stats for debugging */ private static class InternalGZIPInputStream extends GZIPInputStream { public InternalGZIPInputStream(InputStream in) throws IOException { super(in); @@ -294,6 +306,12 @@ class HTTPResponseOutputStream extends FilterOutputStream { return 0; } } + + /** + * From Inflater javadoc: + * Returns the total number of bytes remaining in the input buffer. This can be used to find out + * what bytes still remain in the input buffer after decompression has finished. + */ public long getRemaining() { try { return super.inf.getRemaining(); diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPServer.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPServer.java index 728d3537c..ca568ab92 100644 --- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPServer.java +++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPServer.java @@ -290,6 +290,7 @@ public class I2PTunnelHTTPServer extends I2PTunnelServer { } } + /** just a wrapper to provide stats for debugging */ private static class InternalGZIPOutputStream extends GZIPOutputStream { public InternalGZIPOutputStream(OutputStream target) throws IOException { super(target); From 7424fdd623ee52585b0b0169f1def03ad24aad3b Mon Sep 17 00:00:00 2001 From: zzz Date: Sat, 2 Oct 2010 14:45:13 +0000 Subject: [PATCH 58/75] javadoc --- .../src/net/i2p/data/i2np/BuildRequestRecord.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/router/java/src/net/i2p/data/i2np/BuildRequestRecord.java b/router/java/src/net/i2p/data/i2np/BuildRequestRecord.java index 7ff81a2ad..667d7fb18 100644 --- a/router/java/src/net/i2p/data/i2np/BuildRequestRecord.java +++ b/router/java/src/net/i2p/data/i2np/BuildRequestRecord.java @@ -9,7 +9,9 @@ import net.i2p.data.PublicKey; import net.i2p.data.SessionKey; /** - * Hold the tunnel request record, managing its encryption and decryption. + * Hold the tunnel request record, managing its ElGamal encryption and decryption. + * Iterative AES encryption/decryption is done elsewhere. + * * Cleartext: *
          *   bytes     0-3: tunnel ID to receive messages as
        @@ -26,6 +28,12 @@ import net.i2p.data.SessionKey;
          *   bytes 193-221: uninterpreted / random padding
          * 
        * + * Encrypted: + *
        + *   bytes    0-15: First 16 bytes of router hash
        + *   bytes  16-527: ElGamal encrypted block (discarding zero bytes at elg[0] and elg[257])
        + * 
        + * */ public class BuildRequestRecord { private ByteArray _data; @@ -152,7 +160,7 @@ public class BuildRequestRecord { /** * Encrypt the record to the specified peer. The result is formatted as:
        -     *   bytes 0-15: SHA-256-128 of the current hop's identity (the toPeer parameter)
        +     *   bytes 0-15: truncated SHA-256 of the current hop's identity (the toPeer parameter)
              * bytes 15-527: ElGamal-2048 encrypted block
              * 
        */ From 939dcee537c20b9bfae720535774d6c943c91636 Mon Sep 17 00:00:00 2001 From: zzz Date: Sat, 2 Oct 2010 14:48:50 +0000 Subject: [PATCH 59/75] * GeoIP: Fix locking bug causing lookups to stop --- .../src/net/i2p/router/transport/GeoIP.java | 35 ++++++++++--------- 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/router/java/src/net/i2p/router/transport/GeoIP.java b/router/java/src/net/i2p/router/transport/GeoIP.java index cc0a63ba6..85a89b3c6 100644 --- a/router/java/src/net/i2p/router/transport/GeoIP.java +++ b/router/java/src/net/i2p/router/transport/GeoIP.java @@ -98,23 +98,26 @@ public class GeoIP { public void run() { if (_lock.getAndSet(true)) return; - // clear the negative cache every few runs, to prevent it from getting too big - if (((++_lookupRunCount) % CLEAR) == 0) - _notFound.clear(); - Long[] search = _pendingSearch.toArray(new Long[_pendingSearch.size()]); - if (search.length <= 0) - return; - _pendingSearch.clear(); - Arrays.sort(search); - String[] countries = readGeoIPFile(search); - - for (int i = 0; i < countries.length; i++) { - if (countries[i] != null) - _IPToCountry.put(search[i], countries[i]); - else - _notFound.add(search[i]); + try { + // clear the negative cache every few runs, to prevent it from getting too big + if (((++_lookupRunCount) % CLEAR) == 0) + _notFound.clear(); + Long[] search = _pendingSearch.toArray(new Long[_pendingSearch.size()]); + if (search.length <= 0) + return; + _pendingSearch.clear(); + Arrays.sort(search); + String[] countries = readGeoIPFile(search); + + for (int i = 0; i < countries.length; i++) { + if (countries[i] != null) + _IPToCountry.put(search[i], countries[i]); + else + _notFound.add(search[i]); + } + } finally { + _lock.set(false); } - _lock.set(false); } } From ed4c09b45668074d0891f64b33d122b2576b71b8 Mon Sep 17 00:00:00 2001 From: zzz Date: Sat, 2 Oct 2010 14:56:45 +0000 Subject: [PATCH 60/75] * Tunnels: - Don't use peers < 0.7.9 for tunnels due to the old message corruption bugs - Javadoc - Cleanups --- .../router/tunnel/BuildMessageProcessor.java | 2 +- .../tunnel/InboundEndpointProcessor.java | 13 +++-- .../tunnel/OutboundGatewayProcessor.java | 17 +++--- .../net/i2p/router/tunnel/TunnelGateway.java | 9 ++-- .../tunnel/pool/ClientPeerSelector.java | 5 +- .../tunnel/pool/ExploratoryPeerSelector.java | 49 +++++++++-------- .../pool/PooledTunnelCreatorConfig.java | 2 +- .../tunnel/pool/TunnelPeerSelector.java | 52 ++++++++++++++++--- 8 files changed, 99 insertions(+), 50 deletions(-) diff --git a/router/java/src/net/i2p/router/tunnel/BuildMessageProcessor.java b/router/java/src/net/i2p/router/tunnel/BuildMessageProcessor.java index fddccd52f..1194cc103 100644 --- a/router/java/src/net/i2p/router/tunnel/BuildMessageProcessor.java +++ b/router/java/src/net/i2p/router/tunnel/BuildMessageProcessor.java @@ -24,7 +24,7 @@ public class BuildMessageProcessor { public BuildMessageProcessor(I2PAppContext ctx) { _filter = new DecayingHashSet(ctx, 60*1000, 32, "TunnelBMP"); - ctx.statManager().createRateStat("tunnel.buildRequestDup", "How frequently we get dup build request messages", "Tunnels", new long[] { 60*1000, 10*60*1000 }); + ctx.statManager().createRateStat("tunnel.buildRequestDup", "How frequently we get dup build request messages", "Tunnels", new long[] { 60*60*1000 }); } /** * Decrypt the record targetting us, encrypting all of the other records with the included diff --git a/router/java/src/net/i2p/router/tunnel/InboundEndpointProcessor.java b/router/java/src/net/i2p/router/tunnel/InboundEndpointProcessor.java index 7376a5046..6d467016a 100644 --- a/router/java/src/net/i2p/router/tunnel/InboundEndpointProcessor.java +++ b/router/java/src/net/i2p/router/tunnel/InboundEndpointProcessor.java @@ -15,17 +15,19 @@ import net.i2p.util.Log; * */ public class InboundEndpointProcessor { - private RouterContext _context; - private Log _log; - private TunnelCreatorConfig _config; - private IVValidator _validator; + private final RouterContext _context; + private final Log _log; + private final TunnelCreatorConfig _config; + private final IVValidator _validator; static final boolean USE_ENCRYPTION = HopProcessor.USE_ENCRYPTION; private static final ByteCache _cache = ByteCache.getInstance(128, HopProcessor.IV_LENGTH); + /** @deprecated unused */ public InboundEndpointProcessor(RouterContext ctx, TunnelCreatorConfig cfg) { this(ctx, cfg, DummyValidator.getInstance()); } + public InboundEndpointProcessor(RouterContext ctx, TunnelCreatorConfig cfg, IVValidator validator) { _context = ctx; _log = ctx.logManager().getLog(InboundEndpointProcessor.class); @@ -84,6 +86,9 @@ public class InboundEndpointProcessor { return true; } + /** + * Iteratively undo the crypto that the various layers in the tunnel added. + */ private void decrypt(RouterContext ctx, TunnelCreatorConfig cfg, byte iv[], byte orig[], int offset, int length) { Log log = ctx.logManager().getLog(OutboundGatewayProcessor.class); ByteArray ba = _cache.acquire(); diff --git a/router/java/src/net/i2p/router/tunnel/OutboundGatewayProcessor.java b/router/java/src/net/i2p/router/tunnel/OutboundGatewayProcessor.java index 36593db09..bd9120080 100644 --- a/router/java/src/net/i2p/router/tunnel/OutboundGatewayProcessor.java +++ b/router/java/src/net/i2p/router/tunnel/OutboundGatewayProcessor.java @@ -14,9 +14,9 @@ import net.i2p.util.Log; * */ public class OutboundGatewayProcessor { - private I2PAppContext _context; - private Log _log; - private TunnelCreatorConfig _config; + private final I2PAppContext _context; + private final Log _log; + private final TunnelCreatorConfig _config; static final boolean USE_ENCRYPTION = HopProcessor.USE_ENCRYPTION; private static final ByteCache _cache = ByteCache.getInstance(128, HopProcessor.IV_LENGTH); @@ -54,10 +54,8 @@ public class OutboundGatewayProcessor { } /** - * Undo the crypto that the various layers in the tunnel added. This is used - * by both the outbound gateway (preemptively undoing the crypto peers will add) - * and by the inbound endpoint. - * + * Iteratively undo the crypto that the various layers in the tunnel added. This is used + * by the outbound gateway (preemptively undoing the crypto peers will add). */ private void decrypt(I2PAppContext ctx, TunnelCreatorConfig cfg, byte iv[], byte orig[], int offset, int length) { Log log = ctx.logManager().getLog(OutboundGatewayProcessor.class); @@ -73,6 +71,11 @@ public class OutboundGatewayProcessor { _cache.release(ba); } + /** + * Undo the crypto for a single hop. This is used + * by both the outbound gateway (preemptively undoing the crypto peers will add) + * and by the inbound endpoint. + */ static void decrypt(I2PAppContext ctx, byte iv[], byte orig[], int offset, int length, byte cur[], HopConfig config) { // update the IV for the previous (next?) hop ctx.aes().decryptBlock(orig, offset, config.getIVKey(), orig, offset); diff --git a/router/java/src/net/i2p/router/tunnel/TunnelGateway.java b/router/java/src/net/i2p/router/tunnel/TunnelGateway.java index 7291c8706..3ec567098 100644 --- a/router/java/src/net/i2p/router/tunnel/TunnelGateway.java +++ b/router/java/src/net/i2p/router/tunnel/TunnelGateway.java @@ -60,7 +60,6 @@ public class TunnelGateway { _preprocessor = preprocessor; _sender = sender; _receiver = receiver; - _messagesSent = 0; _flushFrequency = 500; _delayedFlush = new DelayedFlush(); _lastFlush = _context.clock().now(); @@ -128,8 +127,8 @@ public class TunnelGateway { FlushTimer.getInstance().addEvent(_delayedFlush, delayAmount); } _context.statManager().addRateData("tunnel.lockedGatewayAdd", afterAdded-beforeLock, remaining); - long complete = System.currentTimeMillis(); - if (_log.shouldLog(Log.DEBUG)) + if (_log.shouldLog(Log.DEBUG)) { + long complete = System.currentTimeMillis(); _log.debug("Time to add the message " + msg.getUniqueId() + ": " + (complete-startAdd) + " delayed? " + delayedFlush + " remaining: " + remaining + " prepare: " + (beforeLock-startAdd) @@ -137,6 +136,7 @@ public class TunnelGateway { + " preprocess: " + (afterPreprocess-afterAdded) + " expire: " + (afterExpire-afterPreprocess) + " queue flush: " + (complete-afterExpire)); + } } public int getMessagesSent() { return _messagesSent; } @@ -202,10 +202,7 @@ public class TunnelGateway { _messageId = message.getUniqueId(); _expiration = message.getMessageExpiration(); _remaining = message.toByteArray(); - _offset = 0; - _fragmentNumber = 0; _created = now; - _messageIds = null; } /** may be null */ public Hash getToRouter() { return _toRouter; } diff --git a/router/java/src/net/i2p/router/tunnel/pool/ClientPeerSelector.java b/router/java/src/net/i2p/router/tunnel/pool/ClientPeerSelector.java index a9199b690..f4042feee 100644 --- a/router/java/src/net/i2p/router/tunnel/pool/ClientPeerSelector.java +++ b/router/java/src/net/i2p/router/tunnel/pool/ClientPeerSelector.java @@ -5,6 +5,7 @@ import java.util.HashSet; import java.util.List; import java.util.Set; +import net.i2p.data.Hash; import net.i2p.router.RouterContext; import net.i2p.router.TunnelPoolSettings; @@ -14,7 +15,7 @@ import net.i2p.router.TunnelPoolSettings; * */ class ClientPeerSelector extends TunnelPeerSelector { - public List selectPeers(RouterContext ctx, TunnelPoolSettings settings) { + public List selectPeers(RouterContext ctx, TunnelPoolSettings settings) { int length = getLength(ctx, settings); if (length < 0) return null; @@ -31,7 +32,7 @@ class ClientPeerSelector extends TunnelPeerSelector { ctx.profileOrganizer().selectFastPeers(length, exclude, matches, settings.getIPRestriction()); matches.remove(ctx.routerHash()); - ArrayList rv = new ArrayList(matches); + ArrayList rv = new ArrayList(matches); if (rv.size() > 1) orderPeers(rv, settings.getRandomKey()); if (settings.isInbound()) diff --git a/router/java/src/net/i2p/router/tunnel/pool/ExploratoryPeerSelector.java b/router/java/src/net/i2p/router/tunnel/pool/ExploratoryPeerSelector.java index 073088fb3..503504cac 100644 --- a/router/java/src/net/i2p/router/tunnel/pool/ExploratoryPeerSelector.java +++ b/router/java/src/net/i2p/router/tunnel/pool/ExploratoryPeerSelector.java @@ -5,6 +5,7 @@ import java.util.HashSet; import java.util.List; import java.util.Set; +import net.i2p.data.Hash; import net.i2p.router.RouterContext; import net.i2p.router.TunnelPoolSettings; import net.i2p.stat.Rate; @@ -17,7 +18,7 @@ import net.i2p.util.Log; * */ class ExploratoryPeerSelector extends TunnelPeerSelector { - public List selectPeers(RouterContext ctx, TunnelPoolSettings settings) { + public List selectPeers(RouterContext ctx, TunnelPoolSettings settings) { Log l = ctx.logManager().getLog(getClass()); int length = getLength(ctx, settings); if (length < 0) { @@ -33,7 +34,7 @@ class ExploratoryPeerSelector extends TunnelPeerSelector { return rv; } - Set exclude = getExclude(ctx, settings.isInbound(), settings.isExploratory()); + Set exclude = getExclude(ctx, settings.isInbound(), settings.isExploratory()); exclude.add(ctx.routerHash()); // Don't use ff peers for exploratory tunnels to lessen exposure to netDb searches and stores // Hmm if they don't get explored they don't get a speed/capacity rating @@ -56,7 +57,7 @@ class ExploratoryPeerSelector extends TunnelPeerSelector { l.debug("profileOrganizer.selectNotFailing(" + length + ") found " + matches); matches.remove(ctx.routerHash()); - ArrayList rv = new ArrayList(matches); + ArrayList rv = new ArrayList(matches); if (rv.size() > 1) orderPeers(rv, settings.getRandomKey()); if (settings.isInbound()) @@ -67,7 +68,7 @@ class ExploratoryPeerSelector extends TunnelPeerSelector { } private static final int MIN_NONFAILING_PCT = 25; - private boolean shouldPickHighCap(RouterContext ctx) { + private static boolean shouldPickHighCap(RouterContext ctx) { if (Boolean.valueOf(ctx.getProperty("router.exploreHighCapacity", "false")).booleanValue()) return true; // no need to explore too wildly at first @@ -86,9 +87,9 @@ class ExploratoryPeerSelector extends TunnelPeerSelector { failPct = 100 - MIN_NONFAILING_PCT; } else { failPct = getExploratoryFailPercentage(ctx); - Log l = ctx.logManager().getLog(getClass()); - if (l.shouldLog(Log.DEBUG)) - l.debug("Normalized Fail pct: " + failPct); + //Log l = ctx.logManager().getLog(getClass()); + //if (l.shouldLog(Log.DEBUG)) + // l.debug("Normalized Fail pct: " + failPct); // always try a little, this helps keep the failPct stat accurate too if (failPct > 100 - MIN_NONFAILING_PCT) failPct = 100 - MIN_NONFAILING_PCT; @@ -96,21 +97,23 @@ class ExploratoryPeerSelector extends TunnelPeerSelector { return (failPct >= ctx.random().nextInt(100)); } - // We should really use the difference between the exploratory fail rate - // and the high capacity fail rate - but we don't have a stat for high cap, - // so use the fast (== client) fail rate, it should be close - // if the expl. and client tunnel lengths aren't too different. - // So calculate the difference between the exploratory fail rate - // and the client fail rate, normalized to 100: - // 100 * ((Efail - Cfail) / (100 - Cfail)) - // Even this isn't the "true" rate for the NonFailingPeers pool, since we - // are often building exploratory tunnels using the HighCapacity pool. - private int getExploratoryFailPercentage(RouterContext ctx) { + /** + * We should really use the difference between the exploratory fail rate + * and the high capacity fail rate - but we don't have a stat for high cap, + * so use the fast (== client) fail rate, it should be close + * if the expl. and client tunnel lengths aren't too different. + * So calculate the difference between the exploratory fail rate + * and the client fail rate, normalized to 100: + * 100 * ((Efail - Cfail) / (100 - Cfail)) + * Even this isn't the "true" rate for the NonFailingPeers pool, since we + * are often building exploratory tunnels using the HighCapacity pool. + */ + private static int getExploratoryFailPercentage(RouterContext ctx) { int c = getFailPercentage(ctx, "Client"); int e = getFailPercentage(ctx, "Exploratory"); - Log l = ctx.logManager().getLog(getClass()); - if (l.shouldLog(Log.DEBUG)) - l.debug("Client, Expl. Fail pct: " + c + ", " + e); + //Log l = ctx.logManager().getLog(getClass()); + //if (l.shouldLog(Log.DEBUG)) + // l.debug("Client, Expl. Fail pct: " + c + ", " + e); if (e <= c || e <= 25) // doing very well (unlikely) return 0; if (c >= 90) // doing very badly @@ -118,7 +121,7 @@ class ExploratoryPeerSelector extends TunnelPeerSelector { return (100 * (e-c)) / (100-c); } - private int getFailPercentage(RouterContext ctx, String t) { + private static int getFailPercentage(RouterContext ctx, String t) { String pfx = "tunnel.build" + t; int timeout = getEvents(ctx, pfx + "Expire", 10*60*1000); int reject = getEvents(ctx, pfx + "Reject", 10*60*1000); @@ -129,8 +132,8 @@ class ExploratoryPeerSelector extends TunnelPeerSelector { return (int)(100 * pct); } - // Use current + last to get more recent and smoother data - private int getEvents(RouterContext ctx, String stat, long period) { + /** Use current + last to get more recent and smoother data */ + private static int getEvents(RouterContext ctx, String stat, long period) { RateStat rs = ctx.statManager().getRate(stat); if (rs == null) return 0; diff --git a/router/java/src/net/i2p/router/tunnel/pool/PooledTunnelCreatorConfig.java b/router/java/src/net/i2p/router/tunnel/pool/PooledTunnelCreatorConfig.java index afe149fc6..cbe794815 100644 --- a/router/java/src/net/i2p/router/tunnel/pool/PooledTunnelCreatorConfig.java +++ b/router/java/src/net/i2p/router/tunnel/pool/PooledTunnelCreatorConfig.java @@ -12,7 +12,7 @@ import net.i2p.util.Log; /** * */ -public class PooledTunnelCreatorConfig extends TunnelCreatorConfig { +class PooledTunnelCreatorConfig extends TunnelCreatorConfig { private TunnelPool _pool; private TestJob _testJob; // private Job _expireJob; diff --git a/router/java/src/net/i2p/router/tunnel/pool/TunnelPeerSelector.java b/router/java/src/net/i2p/router/tunnel/pool/TunnelPeerSelector.java index bb22ab0e4..083e2501a 100644 --- a/router/java/src/net/i2p/router/tunnel/pool/TunnelPeerSelector.java +++ b/router/java/src/net/i2p/router/tunnel/pool/TunnelPeerSelector.java @@ -21,10 +21,13 @@ import net.i2p.router.TunnelPoolSettings; import net.i2p.router.networkdb.kademlia.FloodfillNetworkDatabaseFacade; import net.i2p.router.networkdb.kademlia.HashDistance; import net.i2p.util.Log; +import net.i2p.util.VersionComparator; /** * Coordinate the selection of peers to go into a tunnel for one particular * pool. + * + * Todo: there's nothing non-static in here */ public abstract class TunnelPeerSelector { /** @@ -36,7 +39,7 @@ public abstract class TunnelPeerSelector { * to build through, and the settings reject 0 hop tunnels, this will * return null. */ - public abstract List selectPeers(RouterContext ctx, TunnelPoolSettings settings); + public abstract List selectPeers(RouterContext ctx, TunnelPoolSettings settings); protected int getLength(RouterContext ctx, TunnelPoolSettings settings) { int length = settings.getLength(); @@ -79,6 +82,11 @@ public abstract class TunnelPeerSelector { return length; } + /** + * For debugging, also possibly for restricted routes? + * Needs analysis and testing + * @return should always be false + */ protected boolean shouldSelectExplicit(TunnelPoolSettings settings) { if (settings.isExploratory()) return false; Properties opts = settings.getUnknownOptions(); @@ -92,7 +100,12 @@ public abstract class TunnelPeerSelector { return false; } - protected List selectExplicit(RouterContext ctx, TunnelPoolSettings settings, int length) { + /** + * For debugging, also possibly for restricted routes? + * Needs analysis and testing + * @return should always be false + */ + protected List selectExplicit(RouterContext ctx, TunnelPoolSettings settings, int length) { String peers = null; Properties opts = settings.getUnknownOptions(); if (opts != null) @@ -102,7 +115,7 @@ public abstract class TunnelPeerSelector { peers = I2PAppContext.getGlobalContext().getProperty("explicitPeers"); Log log = ctx.logManager().getLog(ClientPeerSelector.class); - List rv = new ArrayList(); + List rv = new ArrayList(); StringTokenizer tok = new StringTokenizer(peers, ","); while (tok.hasMoreTokens()) { String peerStr = tok.nextToken(); @@ -156,7 +169,7 @@ public abstract class TunnelPeerSelector { /** * Pick peers that we want to avoid */ - public Set getExclude(RouterContext ctx, boolean isInbound, boolean isExploratory) { + public Set getExclude(RouterContext ctx, boolean isInbound, boolean isExploratory) { // we may want to update this to skip 'hidden' or 'unreachable' peers, but that // isn't safe, since they may publish one set of routerInfo to us and another to // other peers. the defaults for filterUnreachable has always been to return false, @@ -175,11 +188,12 @@ public abstract class TunnelPeerSelector { // // Defaults changed to true for inbound only in filterUnreachable below. - Set peers = new HashSet(1); + Set peers = new HashSet(1); peers.addAll(ctx.profileOrganizer().selectPeersRecentlyRejecting()); peers.addAll(ctx.tunnelManager().selectPeersInTooManyTunnels()); // if (false && filterUnreachable(ctx, isInbound, isExploratory)) { if (filterUnreachable(ctx, isInbound, isExploratory)) { + // NOTE: filterUnreachable returns true for inbound, false for outbound // This is the only use for getPeersByCapability? And the whole set of datastructures in PeerManager? List caps = ctx.peerManager().getPeersByCapability(Router.CAPABILITY_UNREACHABLE); if (caps != null) @@ -189,6 +203,7 @@ public abstract class TunnelPeerSelector { peers.addAll(caps); } if (filterSlow(ctx, isInbound, isExploratory)) { + // NOTE: filterSlow always returns true Log log = ctx.logManager().getLog(TunnelPeerSelector.class); char excl[] = getExcludeCaps(ctx); if (excl != null) { @@ -301,6 +316,7 @@ public abstract class TunnelPeerSelector { return peers; } + /** warning, this is also called by ProfileOrganizer.isSelectable() */ public static boolean shouldExclude(RouterContext ctx, RouterInfo peer) { Log log = ctx.logManager().getLog(TunnelPeerSelector.class); return shouldExclude(ctx, log, peer, getExcludeCaps(ctx)); @@ -318,6 +334,10 @@ public abstract class TunnelPeerSelector { } private static final long DONT_EXCLUDE_PERIOD = 15*60*1000; + /** 0.7.8 and earlier had major message corruption bugs */ + private static final String MIN_VERSION = "0.7.9"; + private static final VersionComparator _versionComparator = new VersionComparator(); + private static boolean shouldExclude(RouterContext ctx, Log log, RouterInfo peer, char excl[]) { String cap = peer.getCapabilities(); if (cap == null) { @@ -340,6 +360,13 @@ public abstract class TunnelPeerSelector { // otherwise, it contains flags we aren't trying to focus on, // so don't exclude it based on published capacity + // minimum version check + String v = peer.getOption("router.version"); + if (v == null || _versionComparator.compare(v, MIN_VERSION) < 0) + return true; + + // uptime is always spoofed to 90m, so just remove all this + /****** String val = peer.getOption("stat_uptime"); if (val != null) { long uptimeMs = 0; @@ -390,6 +417,8 @@ public abstract class TunnelPeerSelector { // not publishing an uptime, so exclude it return true; } + ******/ + return false; } private static final String PROP_OUTBOUND_EXPLORATORY_EXCLUDE_UNREACHABLE = "router.outboundExploratoryExcludeUnreachable"; @@ -403,6 +432,10 @@ public abstract class TunnelPeerSelector { private static final String DEFAULT_INBOUND_EXPLORATORY_EXCLUDE_UNREACHABLE = "true"; private static final String DEFAULT_INBOUND_CLIENT_EXCLUDE_UNREACHABLE = "true"; + /** + * do we want to skip peers who haven't been up for long? + * @return true for inbound, false for outbound, unless configured otherwise + */ protected boolean filterUnreachable(RouterContext ctx, boolean isInbound, boolean isExploratory) { boolean def = false; String val = null; @@ -429,6 +462,10 @@ public abstract class TunnelPeerSelector { private static final String PROP_INBOUND_EXPLORATORY_EXCLUDE_SLOW = "router.inboundExploratoryExcludeSlow"; private static final String PROP_INBOUND_CLIENT_EXCLUDE_SLOW = "router.inboundClientExcludeSlow"; + /** + * do we want to skip peers that are slow? + * @return true unless configured otherwise + */ protected boolean filterSlow(RouterContext ctx, boolean isInbound, boolean isExploratory) { boolean def = true; String val = null; @@ -454,7 +491,10 @@ public abstract class TunnelPeerSelector { private static final String PROP_INBOUND_EXPLORATORY_EXCLUDE_UPTIME = "router.inboundExploratoryExcludeUptime"; private static final String PROP_INBOUND_CLIENT_EXCLUDE_UPTIME = "router.inboundClientExcludeUptime"; - /** do we want to skip peers who haven't been up for long? */ + /** + * do we want to skip peers who haven't been up for long? + * @return true unless configured otherwise + */ protected boolean filterUptime(RouterContext ctx, boolean isInbound, boolean isExploratory) { boolean def = true; String val = null; From 4a96e881189383399206504e139094f6d60fe353 Mon Sep 17 00:00:00 2001 From: zzz Date: Sat, 2 Oct 2010 15:00:30 +0000 Subject: [PATCH 61/75] * Hash: Throw IAE if data length is not 32 bytes, now that DSAEngine abuse is gone --- core/java/src/net/i2p/data/Hash.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/core/java/src/net/i2p/data/Hash.java b/core/java/src/net/i2p/data/Hash.java index 83579d116..afd173c24 100644 --- a/core/java/src/net/i2p/data/Hash.java +++ b/core/java/src/net/i2p/data/Hash.java @@ -31,6 +31,7 @@ public class Hash extends DataStructureImpl { public Hash() { } + /** @throws IllegalArgumentException if data is not 32 bytes (null is ok) */ public Hash(byte data[]) { setData(data); } @@ -39,7 +40,10 @@ public class Hash extends DataStructureImpl { return _data; } + /** @throws IllegalArgumentException if data is not 32 bytes (null is ok) */ public void setData(byte[] data) { + if (data != null && data.length != HASH_LENGTH) + throw new IllegalArgumentException("Hash must be 32 bytes"); _data = data; _stringified = null; _base64ed = null; From 6100c799b7b120b3f3f22dcc8bdae9c5ea04ab3a Mon Sep 17 00:00:00 2001 From: zzz Date: Sat, 2 Oct 2010 15:03:20 +0000 Subject: [PATCH 62/75] LogConsoleBuffer cleanup --- .../java/src/net/i2p/router/web/LogsHelper.java | 7 +++++-- core/java/src/net/i2p/util/LogConsoleBuffer.java | 10 +++++----- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/apps/routerconsole/java/src/net/i2p/router/web/LogsHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/LogsHelper.java index d6eb2edd1..f499b2ea4 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/LogsHelper.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/LogsHelper.java @@ -44,13 +44,16 @@ public class LogsHelper extends HelperBase { } ******/ - private String formatMessages(List msgs) { + /** formats in reverse order */ + private String formatMessages(List msgs) { + if (msgs.isEmpty()) + return "

        " + _("No log messages") + "

        "; boolean colorize = Boolean.valueOf(_context.getProperty("routerconsole.logs.color")).booleanValue(); StringBuilder buf = new StringBuilder(16*1024); buf.append("
          "); buf.append("\n"); for (int i = msgs.size(); i > 0; i--) { - String msg = (String)msgs.get(i - 1); + String msg = msgs.get(i - 1); buf.append("
        • "); if (colorize) { String color; diff --git a/core/java/src/net/i2p/util/LogConsoleBuffer.java b/core/java/src/net/i2p/util/LogConsoleBuffer.java index a9aab2625..2fe270849 100644 --- a/core/java/src/net/i2p/util/LogConsoleBuffer.java +++ b/core/java/src/net/i2p/util/LogConsoleBuffer.java @@ -11,8 +11,8 @@ import net.i2p.I2PAppContext; */ public class LogConsoleBuffer { private I2PAppContext _context; - private final List _buffer; - private final List _critBuffer; + private final List _buffer; + private final List _critBuffer; public LogConsoleBuffer(I2PAppContext context) { _context = context; @@ -43,7 +43,7 @@ public class LogConsoleBuffer { * in the logs) * */ - public List getMostRecentMessages() { + public List getMostRecentMessages() { synchronized (_buffer) { return new ArrayList(_buffer); } @@ -54,9 +54,9 @@ public class LogConsoleBuffer { * in the logs) * */ - public List getMostRecentCriticalMessages() { + public List getMostRecentCriticalMessages() { synchronized (_critBuffer) { return new ArrayList(_critBuffer); } } -} \ No newline at end of file +} From 3489512a54d21df354bb23798875a93b14896dc5 Mon Sep 17 00:00:00 2001 From: zzz Date: Sat, 2 Oct 2010 15:07:35 +0000 Subject: [PATCH 63/75] client cleanups --- core/java/src/net/i2p/client/HandlerImpl.java | 6 +++--- core/java/src/net/i2p/client/MessageState.java | 6 ------ core/java/src/net/i2p/client/SessionIdleTimer.java | 7 +++---- 3 files changed, 6 insertions(+), 13 deletions(-) diff --git a/core/java/src/net/i2p/client/HandlerImpl.java b/core/java/src/net/i2p/client/HandlerImpl.java index 98d1e76ff..d1b5100e2 100644 --- a/core/java/src/net/i2p/client/HandlerImpl.java +++ b/core/java/src/net/i2p/client/HandlerImpl.java @@ -18,9 +18,9 @@ import net.i2p.util.Log; * @author jrandom */ abstract class HandlerImpl implements I2CPMessageHandler { - protected Log _log; - private int _type; - protected I2PAppContext _context; + protected final Log _log; + private final int _type; + protected final I2PAppContext _context; public HandlerImpl(I2PAppContext context, int type) { _context = context; diff --git a/core/java/src/net/i2p/client/MessageState.java b/core/java/src/net/i2p/client/MessageState.java index 84ec9ad6a..a67b52770 100644 --- a/core/java/src/net/i2p/client/MessageState.java +++ b/core/java/src/net/i2p/client/MessageState.java @@ -37,13 +37,7 @@ class MessageState { _context = ctx; _nonce = nonce; _prefix = prefix + "[" + _stateId + "]: "; - _id = null; _receivedStatus = new HashSet(); - _cancelled = false; - _key = null; - _newKey = null; - _tags = null; - _to = null; _created = ctx.clock().now(); //ctx.statManager().createRateStat("i2cp.checkStatusTime", "how long it takes to go through the states", "i2cp", new long[] { 60*1000 }); } diff --git a/core/java/src/net/i2p/client/SessionIdleTimer.java b/core/java/src/net/i2p/client/SessionIdleTimer.java index dad736d97..91c1c4b0f 100644 --- a/core/java/src/net/i2p/client/SessionIdleTimer.java +++ b/core/java/src/net/i2p/client/SessionIdleTimer.java @@ -18,13 +18,13 @@ import net.i2p.util.SimpleTimer; * * @author zzz */ -public class SessionIdleTimer implements SimpleTimer.TimedEvent { +class SessionIdleTimer implements SimpleTimer.TimedEvent { public static final long MINIMUM_TIME = 5*60*1000; private static final long DEFAULT_REDUCE_TIME = 20*60*1000; private static final long DEFAULT_CLOSE_TIME = 30*60*1000; private final static Log _log = new Log(SessionIdleTimer.class); - private I2PAppContext _context; - private I2PSessionImpl _session; + private final I2PAppContext _context; + private final I2PSessionImpl _session; private boolean _reduceEnabled; private int _reduceQuantity; private long _reduceTime; @@ -36,7 +36,6 @@ public class SessionIdleTimer implements SimpleTimer.TimedEvent { /** * reduce, shutdown, or both must be true */ - /* FIXME Exporting non-public type through public API FIXME */ public SessionIdleTimer(I2PAppContext context, I2PSessionImpl session, boolean reduce, boolean shutdown) { _context = context; _session = session; From 333f80680e9c3c6038554b9a379fbc9e8a88b571 Mon Sep 17 00:00:00 2001 From: zzz Date: Sat, 2 Oct 2010 15:11:41 +0000 Subject: [PATCH 64/75] * UDP: - Avoid rare AIOOBE - Comments - Logging cleanup - Comment out a main() --- .../transport/udp/InboundEstablishState.java | 7 +++++++ .../net/i2p/router/transport/udp/UDPPacket.java | 2 ++ .../i2p/router/transport/udp/UDPPacketReader.java | 2 ++ .../net/i2p/router/transport/udp/UDPTransport.java | 14 ++++++++------ 4 files changed, 19 insertions(+), 6 deletions(-) diff --git a/router/java/src/net/i2p/router/transport/udp/InboundEstablishState.java b/router/java/src/net/i2p/router/transport/udp/InboundEstablishState.java index 829f62ee0..6bdfa23a5 100644 --- a/router/java/src/net/i2p/router/transport/udp/InboundEstablishState.java +++ b/router/java/src/net/i2p/router/transport/udp/InboundEstablishState.java @@ -218,6 +218,13 @@ public class InboundEstablishState { if (_receivedIdentity == null) _receivedIdentity = new byte[conf.readTotalFragmentNum()][]; int cur = conf.readCurrentFragmentNum(); + if (cur >= _receivedIdentity.length) { + // avoid AIOOBE + // should do more than this, but what? disconnect? + fail(); + packetReceived(); + return; + } if (_receivedIdentity[cur] == null) { byte fragment[] = new byte[conf.readCurrentFragmentSize()]; conf.readFragmentData(fragment, 0); diff --git a/router/java/src/net/i2p/router/transport/udp/UDPPacket.java b/router/java/src/net/i2p/router/transport/udp/UDPPacket.java index 5dc001e18..588b0ff49 100644 --- a/router/java/src/net/i2p/router/transport/udp/UDPPacket.java +++ b/router/java/src/net/i2p/router/transport/udp/UDPPacket.java @@ -67,9 +67,11 @@ public class UDPPacket { // various flag fields for use in the data packets public static final byte DATA_FLAG_EXPLICIT_ACK = (byte)(1 << 7); public static final byte DATA_FLAG_ACK_BITFIELDS = (1 << 6); + // unused public static final byte DATA_FLAG_ECN = (1 << 4); public static final byte DATA_FLAG_WANT_ACKS = (1 << 3); public static final byte DATA_FLAG_WANT_REPLY = (1 << 2); + // unused public static final byte DATA_FLAG_EXTENDED = (1 << 1); public static final byte BITFIELD_CONTINUATION = (byte)(1 << 7); diff --git a/router/java/src/net/i2p/router/transport/udp/UDPPacketReader.java b/router/java/src/net/i2p/router/transport/udp/UDPPacketReader.java index aaf0f721a..9d2c32939 100644 --- a/router/java/src/net/i2p/router/transport/udp/UDPPacketReader.java +++ b/router/java/src/net/i2p/router/transport/udp/UDPPacketReader.java @@ -756,6 +756,7 @@ public class UDPPacketReader { } +/****** public static void main(String args[]) { I2PAppContext ctx = I2PAppContext.getGlobalContext(); try { @@ -781,4 +782,5 @@ public class UDPPacketReader { } } +*******/ } diff --git a/router/java/src/net/i2p/router/transport/udp/UDPTransport.java b/router/java/src/net/i2p/router/transport/udp/UDPTransport.java index 5570b8389..0617790a3 100644 --- a/router/java/src/net/i2p/router/transport/udp/UDPTransport.java +++ b/router/java/src/net/i2p/router/transport/udp/UDPTransport.java @@ -945,7 +945,7 @@ public class UDPTransport extends TransportImpl implements TimedWeightedPriority // try to shift 'em around every 10 minutes or so if (_introducersSelectedOn < _context.clock().now() - 10*60*1000) { if (_log.shouldLog(Log.WARN)) - _log.warn("Our introducers are valid, but thy havent changed in a while, so lets rechoose"); + _log.warn("Our introducers are valid, but havent changed in a while, so lets rechoose"); return true; } else { if (_log.shouldLog(Log.INFO)) @@ -954,7 +954,7 @@ public class UDPTransport extends TransportImpl implements TimedWeightedPriority } } else { if (_log.shouldLog(Log.INFO)) - _log.info("Our introducers are not valid (" +valid + ")"); + _log.info("Need more introducers (have " +valid + " need " + PUBLIC_RELAY_COUNT + ')'); return true; } } else { @@ -1233,7 +1233,9 @@ public class UDPTransport extends TransportImpl implements TimedWeightedPriority _introducersSelectedOn = _context.clock().now(); introducersIncluded = true; } else { + // FIXME // maybe we should fail to publish an address at all in this case? + // YES that would be better if (_log.shouldLog(Log.WARN)) _log.warn("Need introducers but we don't know any"); } @@ -1331,13 +1333,13 @@ public class UDPTransport extends TransportImpl implements TimedWeightedPriority switch (status) { case CommSystemFacade.STATUS_REJECT_UNSOLICITED: case CommSystemFacade.STATUS_DIFFERENT: - if (_log.shouldLog(Log.INFO)) - _log.info("Require introducers, because our status is " + status); + if (_log.shouldLog(Log.DEBUG)) + _log.debug("Require introducers, because our status is " + status); return true; default: if (!allowDirectUDP()) { - if (_log.shouldLog(Log.INFO)) - _log.info("Require introducers, because we do not allow direct UDP connections"); + if (_log.shouldLog(Log.DEBUG)) + _log.debug("Require introducers, because we do not allow direct UDP connections"); return true; } return false; From f0f1a6f529b505d95eef0b4d30cd654609dc1060 Mon Sep 17 00:00:00 2001 From: zzz Date: Sat, 2 Oct 2010 15:15:03 +0000 Subject: [PATCH 65/75] initializer cleanups, reduce rates, javadoc --- .../src/net/i2p/router/client/ClientListenerRunner.java | 2 -- .../src/net/i2p/router/client/ClientManagerFacadeImpl.java | 1 - .../java/src/net/i2p/router/client/LeaseRequestState.java | 1 - .../java/src/net/i2p/router/client/MessageReceivedJob.java | 4 +--- .../java/src/net/i2p/router/client/RequestLeaseSetJob.java | 6 +++--- 5 files changed, 4 insertions(+), 10 deletions(-) diff --git a/router/java/src/net/i2p/router/client/ClientListenerRunner.java b/router/java/src/net/i2p/router/client/ClientListenerRunner.java index 2c96fa487..7a7d448ea 100644 --- a/router/java/src/net/i2p/router/client/ClientListenerRunner.java +++ b/router/java/src/net/i2p/router/client/ClientListenerRunner.java @@ -41,8 +41,6 @@ public class ClientListenerRunner implements Runnable { _log = _context.logManager().getLog(ClientListenerRunner.class); _manager = manager; _port = port; - _running = false; - _listening = false; String val = context.getProperty(BIND_ALL_INTERFACES); _bindAllInterfaces = Boolean.valueOf(val).booleanValue(); diff --git a/router/java/src/net/i2p/router/client/ClientManagerFacadeImpl.java b/router/java/src/net/i2p/router/client/ClientManagerFacadeImpl.java index e90d12f53..066d6cc35 100644 --- a/router/java/src/net/i2p/router/client/ClientManagerFacadeImpl.java +++ b/router/java/src/net/i2p/router/client/ClientManagerFacadeImpl.java @@ -43,7 +43,6 @@ public class ClientManagerFacadeImpl extends ClientManagerFacade { public ClientManagerFacadeImpl(RouterContext context) { _context = context; - _manager = null; _log.debug("Client manager facade created"); } diff --git a/router/java/src/net/i2p/router/client/LeaseRequestState.java b/router/java/src/net/i2p/router/client/LeaseRequestState.java index b4cf4415a..7e2a248ac 100644 --- a/router/java/src/net/i2p/router/client/LeaseRequestState.java +++ b/router/java/src/net/i2p/router/client/LeaseRequestState.java @@ -33,7 +33,6 @@ class LeaseRequestState { _onFailed = onFailed; _expiration = expiration; _requestedLeaseSet = requested; - _successful = false; } /** created lease set from client */ diff --git a/router/java/src/net/i2p/router/client/MessageReceivedJob.java b/router/java/src/net/i2p/router/client/MessageReceivedJob.java index d0c767828..82744659a 100644 --- a/router/java/src/net/i2p/router/client/MessageReceivedJob.java +++ b/router/java/src/net/i2p/router/client/MessageReceivedJob.java @@ -47,9 +47,6 @@ class MessageReceivedJob extends JobImpl { /** * Deliver notification to the client that the given message is available. - * This is synchronous and returns true if the notification was sent safely, - * otherwise it returns false - * */ public void messageAvailable(MessageId id, long size) { if (_log.shouldLog(Log.DEBUG)) @@ -59,6 +56,7 @@ class MessageReceivedJob extends JobImpl { msg.setMessageId(id.getMessageId()); msg.setSessionId(_runner.getSessionId().getSessionId()); msg.setSize(size); + // has to be >= 0, it is initialized to -1 msg.setNonce(1); msg.setStatus(MessageStatusMessage.STATUS_AVAILABLE); try { diff --git a/router/java/src/net/i2p/router/client/RequestLeaseSetJob.java b/router/java/src/net/i2p/router/client/RequestLeaseSetJob.java index 51d3a304c..516a652d2 100644 --- a/router/java/src/net/i2p/router/client/RequestLeaseSetJob.java +++ b/router/java/src/net/i2p/router/client/RequestLeaseSetJob.java @@ -44,9 +44,9 @@ class RequestLeaseSetJob extends JobImpl { _onCreate = onCreate; _onFail = onFail; _requestState = state; - ctx.statManager().createRateStat("client.requestLeaseSetSuccess", "How frequently the router requests successfully a new leaseSet?", "ClientMessages", new long[] { 10*60*1000, 60*60*1000, 24*60*60*1000 }); - ctx.statManager().createRateStat("client.requestLeaseSetTimeout", "How frequently the router requests a new leaseSet but gets no reply?", "ClientMessages", new long[] { 10*60*1000, 60*60*1000, 24*60*60*1000 }); - ctx.statManager().createRateStat("client.requestLeaseSetDropped", "How frequently the router requests a new leaseSet but the client drops?", "ClientMessages", new long[] { 10*60*1000, 60*60*1000, 24*60*60*1000 }); + ctx.statManager().createRateStat("client.requestLeaseSetSuccess", "How frequently the router requests successfully a new leaseSet?", "ClientMessages", new long[] { 60*60*1000 }); + ctx.statManager().createRateStat("client.requestLeaseSetTimeout", "How frequently the router requests a new leaseSet but gets no reply?", "ClientMessages", new long[] { 60*60*1000 }); + ctx.statManager().createRateStat("client.requestLeaseSetDropped", "How frequently the router requests a new leaseSet but the client drops?", "ClientMessages", new long[] { 60*60*1000 }); } public String getName() { return "Request Lease Set"; } From b83184e895edef44085879ef87ef436e10fbdf19 Mon Sep 17 00:00:00 2001 From: zzz Date: Sat, 2 Oct 2010 15:16:07 +0000 Subject: [PATCH 66/75] initializer cleanup --- router/java/src/net/i2p/router/message/GarlicConfig.java | 8 -------- 1 file changed, 8 deletions(-) diff --git a/router/java/src/net/i2p/router/message/GarlicConfig.java b/router/java/src/net/i2p/router/message/GarlicConfig.java index 1c616f43c..b23d4ac9a 100644 --- a/router/java/src/net/i2p/router/message/GarlicConfig.java +++ b/router/java/src/net/i2p/router/message/GarlicConfig.java @@ -37,17 +37,9 @@ public class GarlicConfig { private long _replyBlockExpiration; public GarlicConfig() { - _recipient = null; - _recipientPublicKey = null; - _cert = null; _id = -1; _expiration = -1; _cloveConfigs = new ArrayList(); - _instructions = null; - _requestAck = false; - _replyThroughRouter = null; - _replyInstructions = null; - _replyBlockCertificate = null; _replyBlockMessageId = -1; _replyBlockExpiration = -1; } From ec0c678cc9be0b9ae42aae410e85b78a40a2d62d Mon Sep 17 00:00:00 2001 From: zzz Date: Sat, 2 Oct 2010 15:43:56 +0000 Subject: [PATCH 67/75] * i2psnark: - Add link to finished torrent in message box - Don't let one bad torrent prevent others from starting or stopping --- .../java/src/org/klomp/snark/Snark.java | 2 +- .../src/org/klomp/snark/SnarkManager.java | 31 +++++++++++++++---- 2 files changed, 26 insertions(+), 7 deletions(-) diff --git a/apps/i2psnark/java/src/org/klomp/snark/Snark.java b/apps/i2psnark/java/src/org/klomp/snark/Snark.java index c2afec346..9d6cd9460 100644 --- a/apps/i2psnark/java/src/org/klomp/snark/Snark.java +++ b/apps/i2psnark/java/src/org/klomp/snark/Snark.java @@ -437,7 +437,7 @@ public class Snark try { storage.close(); } catch (IOException ioee) { ioee.printStackTrace(); } - fatal("Could not create storage", ioe); + fatal("Could not check or create storage", ioe); } } diff --git a/apps/i2psnark/java/src/org/klomp/snark/SnarkManager.java b/apps/i2psnark/java/src/org/klomp/snark/SnarkManager.java index 59ab86a12..1ddaa6b03 100644 --- a/apps/i2psnark/java/src/org/klomp/snark/SnarkManager.java +++ b/apps/i2psnark/java/src/org/klomp/snark/SnarkManager.java @@ -439,7 +439,10 @@ public class SnarkManager implements Snark.CompleteListener { return null; } + /** @throws RuntimeException via Snark.fatal() */ public void addTorrent(String filename) { addTorrent(filename, false); } + + /** @throws RuntimeException via Snark.fatal() */ public void addTorrent(String filename, boolean dontAutoStart) { if ((!dontAutoStart) && !_util.connected()) { addMessage(_("Connecting to I2P")); @@ -724,9 +727,13 @@ public class SnarkManager implements Snark.CompleteListener { /** two listeners */ public void torrentComplete(Snark snark) { - File f = new File(snark.torrent); + StringBuilder buf = new StringBuilder(256); + buf.append("").append(snark.storage.getBaseName()).append(""); long len = snark.meta.getTotalLength(); - addMessage(_("Download finished: \"{0}\"", f.getName()) + " (" + _("size: {0}B", DataHelper.formatSize2(len)) + ')'); + addMessage(_("Download finished: {0}", buf.toString()) + " (" + _("size: {0}B", DataHelper.formatSize2(len)) + ')'); updateStatus(snark); } @@ -736,7 +743,7 @@ public class SnarkManager implements Snark.CompleteListener { private void monitorTorrents(File dir) { String fileNames[] = dir.list(TorrentFilenameFilter.instance()); - List foundNames = new ArrayList(0); + List foundNames = new ArrayList(0); if (fileNames != null) { for (int i = 0; i < fileNames.length; i++) { try { @@ -747,7 +754,7 @@ public class SnarkManager implements Snark.CompleteListener { } } - Set existingNames = listTorrentFiles(); + Set existingNames = listTorrentFiles(); // lets find new ones first... for (int i = 0; i < foundNames.size(); i++) { if (existingNames.contains(foundNames.get(i))) { @@ -755,7 +762,13 @@ public class SnarkManager implements Snark.CompleteListener { } else { if (shouldAutoStart() && !_util.connect()) addMessage(_("Unable to connect to I2P!")); - addTorrent((String)foundNames.get(i), !shouldAutoStart()); + try { + // Snark.fatal() throws a RuntimeException + // don't let one bad torrent kill the whole loop + addTorrent(foundNames.get(i), !shouldAutoStart()); + } catch (Exception e) { + addMessage(_("Unable to add {0}", foundNames.get(i)) + ": " + e); + } } } // now lets see which ones have been removed... @@ -765,7 +778,13 @@ public class SnarkManager implements Snark.CompleteListener { // known and still there. noop } else { // known, but removed. drop it - stopTorrent(name, true); + try { + // Snark.fatal() throws a RuntimeException + // don't let one bad torrent kill the whole loop + stopTorrent(name, true); + } catch (Exception e) { + // don't bother with message + } } } } From 53847dc3ad7dc4bb8222679573bc5a06a64823ee Mon Sep 17 00:00:00 2001 From: zzz Date: Sat, 2 Oct 2010 15:51:48 +0000 Subject: [PATCH 68/75] Sort RouterAddress options on peers.jsp and netdb.jsp --- .../src/net/i2p/router/web/NetDbRenderer.java | 11 +++++-- core/java/src/net/i2p/data/RouterAddress.java | 32 +++++++++++++------ 2 files changed, 30 insertions(+), 13 deletions(-) diff --git a/apps/routerconsole/java/src/net/i2p/router/web/NetDbRenderer.java b/apps/routerconsole/java/src/net/i2p/router/web/NetDbRenderer.java index 244cc13a0..a2c5632fa 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/NetDbRenderer.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/NetDbRenderer.java @@ -19,6 +19,8 @@ import java.util.Comparator; import java.util.Iterator; import java.util.List; import java.util.Locale; +import java.util.Map; +import java.util.Properties; import java.util.Set; import java.util.TreeSet; @@ -34,6 +36,7 @@ import net.i2p.router.TunnelPoolSettings; import net.i2p.router.networkdb.kademlia.HashDistance; // debug import net.i2p.util.HexDump; // debug import net.i2p.util.ObjectCounter; +import net.i2p.util.OrderedProperties; import net.i2p.util.VersionComparator; public class NetDbRenderer { @@ -371,9 +374,11 @@ public class NetDbRenderer { int cost = addr.getCost(); if (!((style.equals("SSU") && cost == 5) || (style.equals("NTCP") && cost == 10))) buf.append('[').append(_("cost")).append('=').append("" + cost).append("] "); - for (Iterator optIter = addr.getOptions().keySet().iterator(); optIter.hasNext(); ) { - String name = (String)optIter.next(); - String val = addr.getOptions().getProperty(name); + Properties p = new OrderedProperties(); + p.putAll(addr.getOptions()); + for (Map.Entry e : p.entrySet()) { + String name = (String) e.getKey(); + String val = (String) e.getValue(); buf.append('[').append(_(DataHelper.stripHTML(name))).append('=').append(DataHelper.stripHTML(val)).append("] "); } } diff --git a/core/java/src/net/i2p/data/RouterAddress.java b/core/java/src/net/i2p/data/RouterAddress.java index 9d199e574..1b4d6438f 100644 --- a/core/java/src/net/i2p/data/RouterAddress.java +++ b/core/java/src/net/i2p/data/RouterAddress.java @@ -14,8 +14,11 @@ import java.io.InputStream; import java.io.OutputStream; import java.util.Date; import java.util.Iterator; +import java.util.Map; import java.util.Properties; +import net.i2p.util.OrderedProperties; + /** * Defines a method of communicating with a router * @@ -28,7 +31,7 @@ public class RouterAddress extends DataStructureImpl { private Properties _options; public RouterAddress() { - setCost(-1); + _cost = -1; } /** @@ -134,18 +137,27 @@ public class RouterAddress extends DataStructureImpl { return DataHelper.hashCode(_transportStyle); } + /** + * This is used on peers.jsp so sort options so it looks better. + * We don't just use OrderedProperties for _options because DataHelper.writeProperties() + * sorts also. + */ @Override public String toString() { - StringBuilder buf = new StringBuilder(64); + StringBuilder buf = new StringBuilder(128); buf.append("[RouterAddress: "); - buf.append("\n\tTransportStyle: ").append(getTransportStyle()); - buf.append("\n\tCost: ").append(getCost()); - buf.append("\n\tExpiration: ").append(getExpiration()); - buf.append("\n\tOptions: #: ").append(getOptions().size()); - for (Iterator iter = getOptions().keySet().iterator(); iter.hasNext();) { - String key = (String) iter.next(); - String val = getOptions().getProperty(key); - buf.append("\n\t\t[").append(key).append("] = [").append(val).append("]"); + buf.append("\n\tTransportStyle: ").append(_transportStyle); + buf.append("\n\tCost: ").append(_cost); + buf.append("\n\tExpiration: ").append(_expiration); + if (_options != null) { + buf.append("\n\tOptions: #: ").append(_options.size()); + Properties p = new OrderedProperties(); + p.putAll(_options); + for (Map.Entry e : p.entrySet()) { + String key = (String) e.getKey(); + String val = (String) e.getValue(); + buf.append("\n\t\t[").append(key).append("] = [").append(val).append("]"); + } } buf.append("]"); return buf.toString(); From b1fd835f56d59e4bcb3445eedf8bdcacf221cef9 Mon Sep 17 00:00:00 2001 From: zzz Date: Sat, 2 Oct 2010 15:55:46 +0000 Subject: [PATCH 69/75] update irc description --- installer/resources/i2ptunnel.config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/installer/resources/i2ptunnel.config b/installer/resources/i2ptunnel.config index 6f97a1170..ecb45b206 100644 --- a/installer/resources/i2ptunnel.config +++ b/installer/resources/i2ptunnel.config @@ -25,7 +25,7 @@ tunnel.0.startOnLoad=true # irc tunnel.1.name=IRC Proxy -tunnel.1.description=IRC proxy to access the anonymous IRC network +tunnel.1.description=IRC proxy to access anonymous IRC servers tunnel.1.type=ircclient tunnel.1.sharedClient=false tunnel.1.interface=127.0.0.1 From a687180d98468e2ca5753c54a56c250974d4ce82 Mon Sep 17 00:00:00 2001 From: zzz Date: Sat, 2 Oct 2010 16:30:07 +0000 Subject: [PATCH 70/75] * TransportManager: Convert _transports from a List to a CHM to prevent a rare concurrent exception --- .../router/transport/TransportManager.java | 89 +++++++++---------- 1 file changed, 40 insertions(+), 49 deletions(-) diff --git a/router/java/src/net/i2p/router/transport/TransportManager.java b/router/java/src/net/i2p/router/transport/TransportManager.java index 87a8bc8b2..243c76237 100644 --- a/router/java/src/net/i2p/router/transport/TransportManager.java +++ b/router/java/src/net/i2p/router/transport/TransportManager.java @@ -21,6 +21,7 @@ import java.util.Properties; import java.util.Set; import java.util.TreeMap; import java.util.Vector; +import java.util.concurrent.ConcurrentHashMap; import net.i2p.data.Hash; import net.i2p.data.RouterAddress; @@ -36,7 +37,11 @@ import net.i2p.util.Translate; public class TransportManager implements TransportEventListener { private Log _log; - private List _transports; + /** + * Converted from List to prevent concurrent modification exceptions. + * If we want more than one transport with the same style we will have to change this. + */ + private Map _transports; private RouterContext _context; private UPnPManager _upnpManager; @@ -56,20 +61,20 @@ public class TransportManager implements TransportEventListener { _context.statManager().createRateStat("transport.bidFailSelf", "Could not attempt to bid on message, as it targeted ourselves", "Transport", new long[] { 60*1000, 10*60*1000, 60*60*1000 }); _context.statManager().createRateStat("transport.bidFailNoTransports", "Could not attempt to bid on message, as none of the transports could attempt it", "Transport", new long[] { 60*1000, 10*60*1000, 60*60*1000 }); _context.statManager().createRateStat("transport.bidFailAllTransports", "Could not attempt to bid on message, as all of the transports had failed", "Transport", new long[] { 60*1000, 10*60*1000, 60*60*1000 }); - _transports = new ArrayList(); + _transports = new ConcurrentHashMap(2); if (Boolean.valueOf(_context.getProperty(PROP_ENABLE_UPNP, "true")).booleanValue()) _upnpManager = new UPnPManager(context, this); } public void addTransport(Transport transport) { if (transport == null) return; - _transports.add(transport); + _transports.put(transport.getStyle(), transport); transport.setListener(this); } public void removeTransport(Transport transport) { if (transport == null) return; - _transports.remove(transport); + _transports.remove(transport.getStyle()); transport.setListener(null); } @@ -140,11 +145,10 @@ public class TransportManager implements TransportEventListener { _upnpManager.start(); configTransports(); _log.debug("Starting up the transport manager"); - for (int i = 0; i < _transports.size(); i++) { - Transport t = _transports.get(i); + for (Transport t : _transports.values()) { RouterAddress addr = t.startListening(); if (_log.shouldLog(Log.DEBUG)) - _log.debug("Transport " + i + " (" + t.getStyle() + ") started"); + _log.debug("Transport " + t.getStyle() + " started"); } // kick UPnP - Do this to get the ports opened even before UDP registers an address transportAddressChanged(); @@ -161,19 +165,14 @@ public class TransportManager implements TransportEventListener { public void stopListening() { if (_upnpManager != null) _upnpManager.stop(); - for (int i = 0; i < _transports.size(); i++) { - _transports.get(i).stopListening(); + for (Transport t : _transports.values()) { + t.stopListening(); } _transports.clear(); } public Transport getTransport(String style) { - for (int i = 0; i < _transports.size(); i++) { - Transport t = _transports.get(i); - if(style.equals(t.getStyle())) - return t; - } - return null; + return _transports.get(style); } int getTransportCount() { return _transports.size(); } @@ -189,16 +188,16 @@ public class TransportManager implements TransportEventListener { public int countActivePeers() { int peers = 0; - for (int i = 0; i < _transports.size(); i++) { - peers += _transports.get(i).countActivePeers(); + for (Transport t : _transports.values()) { + peers += t.countActivePeers(); } return peers; } public int countActiveSendPeers() { int peers = 0; - for (int i = 0; i < _transports.size(); i++) { - peers += _transports.get(i).countActiveSendPeers(); + for (Transport t : _transports.values()) { + peers += t.countActiveSendPeers(); } return peers; } @@ -210,8 +209,8 @@ public class TransportManager implements TransportEventListener { * @param pct percent of limit 0-100 */ public boolean haveOutboundCapacity(int pct) { - for (int i = 0; i < _transports.size(); i++) { - if (_transports.get(i).haveCapacity(pct)) + for (Transport t : _transports.values()) { + if (t.haveCapacity(pct)) return true; } return false; @@ -225,8 +224,8 @@ public class TransportManager implements TransportEventListener { public boolean haveHighOutboundCapacity() { if (_transports.isEmpty()) return false; - for (int i = 0; i < _transports.size(); i++) { - if (!_transports.get(i).haveCapacity(HIGH_CAPACITY_PCT)) + for (Transport t : _transports.values()) { + if (!t.haveCapacity(HIGH_CAPACITY_PCT)) return false; } return true; @@ -239,8 +238,8 @@ public class TransportManager implements TransportEventListener { * @param pct percent of limit 0-100 */ public boolean haveInboundCapacity(int pct) { - for (int i = 0; i < _transports.size(); i++) { - if (_transports.get(i).getCurrentAddress() != null && _transports.get(i).haveCapacity(pct)) + for (Transport t : _transports.values()) { + if (t.getCurrentAddress() != null && t.haveCapacity(pct)) return true; } return false; @@ -253,8 +252,8 @@ public class TransportManager implements TransportEventListener { */ public Vector getClockSkews() { Vector skews = new Vector(); - for (int i = 0; i < _transports.size(); i++) { - Vector tempSkews = _transports.get(i).getClockSkews(); + for (Transport t : _transports.values()) { + Vector tempSkews = t.getClockSkews(); if ((tempSkews == null) || (tempSkews.isEmpty())) continue; skews.addAll(tempSkews); } @@ -266,7 +265,7 @@ public class TransportManager implements TransportEventListener { /** @return the best status of any transport */ public short getReachabilityStatus() { short rv = CommSystemFacade.STATUS_UNKNOWN; - for (Transport t : _transports) { + for (Transport t : _transports.values()) { short s = t.getReachabilityStatus(); if (s < rv) rv = s; @@ -275,13 +274,12 @@ public class TransportManager implements TransportEventListener { } public void recheckReachability() { - for (int i = 0; i < _transports.size(); i++) - _transports.get(i).recheckReachability(); + for (Transport t : _transports.values()) + t.recheckReachability(); } public boolean isBacklogged(Hash dest) { - for (int i = 0; i < _transports.size(); i++) { - Transport t = _transports.get(i); + for (Transport t : _transports.values()) { if (t.isBacklogged(dest)) return true; } @@ -289,8 +287,7 @@ public class TransportManager implements TransportEventListener { } public boolean isEstablished(Hash dest) { - for (int i = 0; i < _transports.size(); i++) { - Transport t = _transports.get(i); + for (Transport t : _transports.values()) { if (t.isEstablished(dest)) return true; } @@ -303,8 +300,7 @@ public class TransportManager implements TransportEventListener { * This is NOT reset if the peer contacts us. */ public boolean wasUnreachable(Hash dest) { - for (int i = 0; i < _transports.size(); i++) { - Transport t = _transports.get(i); + for (Transport t : _transports.values()) { if (!t.wasUnreachable(dest)) return false; } @@ -330,9 +326,9 @@ public class TransportManager implements TransportEventListener { public Map getAddresses() { Map rv = new HashMap(_transports.size()); // do this first since SSU may force a NTCP change - for (Transport t : _transports) + for (Transport t : _transports.values()) t.updateAddress(); - for (Transport t : _transports) { + for (Transport t : _transports.values()) { if (t.getCurrentAddress() != null) rv.put(t.getStyle(), t.getCurrentAddress()); } @@ -345,7 +341,7 @@ public class TransportManager implements TransportEventListener { */ private Map getPorts() { Map rv = new HashMap(_transports.size()); - for (Transport t : _transports) { + for (Transport t : _transports.values()) { int port = t.getRequestedPort(); if (t.getCurrentAddress() != null) { Properties opts = t.getCurrentAddress().getOptions(); @@ -386,8 +382,7 @@ public class TransportManager implements TransportEventListener { List rv = new ArrayList(_transports.size()); Set failedTransports = msg.getFailedTransports(); - for (int i = 0; i < _transports.size(); i++) { - Transport t = _transports.get(i); + for (Transport t : _transports.values()) { if (failedTransports.contains(t.getStyle())) { if (_log.shouldLog(Log.DEBUG)) _log.debug("Skipping transport " + t.getStyle() + " as it already failed"); @@ -415,8 +410,7 @@ public class TransportManager implements TransportEventListener { Hash peer = msg.getTarget().getIdentity().calculateHash(); Set failedTransports = msg.getFailedTransports(); TransportBid rv = null; - for (int i = 0; i < _transports.size(); i++) { - Transport t = _transports.get(i); + for (Transport t : _transports.values()) { if (t.isUnreachable(peer)) { unreachableTransports++; // this keeps GetBids() from shitlisting for "no common transports" @@ -482,8 +476,7 @@ public class TransportManager implements TransportEventListener { public List getMostRecentErrorMessages() { List rv = new ArrayList(16); - for (int i = 0; i < _transports.size(); i++) { - Transport t = _transports.get(i); + for (Transport t : _transports.values()) { rv.addAll(t.getMostRecentErrorMessages()); } return rv; @@ -491,8 +484,7 @@ public class TransportManager implements TransportEventListener { public void renderStatusHTML(Writer out, String urlBase, int sortFlags) throws IOException { TreeMap transports = new TreeMap(); - for (int i = 0; i < _transports.size(); i++) { - Transport t = _transports.get(i); + for (Transport t : _transports.values()) { transports.put(t.getStyle(), t); } for (Iterator iter = transports.values().iterator(); iter.hasNext(); ) { @@ -506,8 +498,7 @@ public class TransportManager implements TransportEventListener { StringBuilder buf = new StringBuilder(4*1024); buf.append("

          ").append(_("Router Transport Addresses")).append("

          \n");
          -        for (int i = 0; i < _transports.size(); i++) {
          -            Transport t = _transports.get(i);
          +        for (Transport t : _transports.values()) {
                       if (t.getCurrentAddress() != null)
                           buf.append(t.getCurrentAddress());
                       else
          
          From 3b2aa946afabd17e1d86529e32ebd40ecd746179 Mon Sep 17 00:00:00 2001
          From: zzz 
          Date: Sat, 2 Oct 2010 16:56:02 +0000
          Subject: [PATCH 71/75]     * I2CP:       - Add new option
           i2cp.messageReliability=none, which prevents the         router from sending
           MessageStatusMessages back in reply to an         outbound
           SendMessageMessage. Since the streaming lib always ignored         the MSMs
           anyway, make it the default for streaming.         This will reduce the I2CP
           traffic significantly.         MSM handling now avoided, but it is still
           fairly broken, see         comments in I2PSessionImpl2.       - Cleanups,
           javadoc, rate reduction
          
          ---
           .../streaming/I2PSocketManagerFactory.java    | 15 ++--
           core/java/src/net/i2p/client/I2PClient.java   |  4 +-
           .../src/net/i2p/client/I2PSessionImpl2.java   | 79 ++++++++++++++-----
           .../router/client/ClientConnectionRunner.java | 32 ++++++--
           4 files changed, 99 insertions(+), 31 deletions(-)
          
          diff --git a/apps/ministreaming/java/src/net/i2p/client/streaming/I2PSocketManagerFactory.java b/apps/ministreaming/java/src/net/i2p/client/streaming/I2PSocketManagerFactory.java
          index 393cf1ae2..34dc8ac59 100644
          --- a/apps/ministreaming/java/src/net/i2p/client/streaming/I2PSocketManagerFactory.java
          +++ b/apps/ministreaming/java/src/net/i2p/client/streaming/I2PSocketManagerFactory.java
          @@ -130,16 +130,19 @@ public class I2PSocketManagerFactory {
                       if (!opts.containsKey(name))
                           opts.setProperty(name, System.getProperty(name));
                   }
          -        boolean oldLib = DEFAULT_MANAGER.equals(opts.getProperty(PROP_MANAGER, DEFAULT_MANAGER));
          -        if (oldLib && false) {
          +        //boolean oldLib = DEFAULT_MANAGER.equals(opts.getProperty(PROP_MANAGER, DEFAULT_MANAGER));
          +        //if (oldLib && false) {
                       // for the old streaming lib
          -            opts.setProperty(I2PClient.PROP_RELIABILITY, I2PClient.PROP_RELIABILITY_GUARANTEED);
          +        //    opts.setProperty(I2PClient.PROP_RELIABILITY, I2PClient.PROP_RELIABILITY_GUARANTEED);
                       //opts.setProperty("tunnels.depthInbound", "0");
          -        } else {
          +        //} else {
                       // for new streaming lib:
          -            opts.setProperty(I2PClient.PROP_RELIABILITY, I2PClient.PROP_RELIABILITY_BEST_EFFORT);
          +            //opts.setProperty(I2PClient.PROP_RELIABILITY, I2PClient.PROP_RELIABILITY_BEST_EFFORT);
          +            // as of 0.8.1 (I2CP default is BestEffort)
          +            if (!opts.containsKey(I2PClient.PROP_RELIABILITY))
          +                opts.setProperty(I2PClient.PROP_RELIABILITY, I2PClient.PROP_RELIABILITY_NONE);
                       //p.setProperty("tunnels.depthInbound", "0");
          -        }
          +        //}
           
                   if (i2cpHost != null)
                       opts.setProperty(I2PClient.PROP_TCP_HOST, i2cpHost);
          diff --git a/core/java/src/net/i2p/client/I2PClient.java b/core/java/src/net/i2p/client/I2PClient.java
          index 9a732c3db..941549d53 100644
          --- a/core/java/src/net/i2p/client/I2PClient.java
          +++ b/core/java/src/net/i2p/client/I2PClient.java
          @@ -34,6 +34,8 @@ public interface I2PClient {
               public final static String PROP_RELIABILITY_BEST_EFFORT = "BestEffort";
               /** Reliability value: guaranteed */
               public final static String PROP_RELIABILITY_GUARANTEED = "Guaranteed";
          +    /** @since 0.8.1 */
          +    public final static String PROP_RELIABILITY_NONE = "none";
           
               /** protocol flag that must be sent when opening the i2cp connection to the router */
               public final static int PROTOCOL_BYTE = 0x2A;
          @@ -64,4 +66,4 @@ public interface I2PClient {
                * @return newly created destination
                */
               public Destination createDestination(OutputStream destKeyStream, Certificate cert) throws I2PException, IOException;
          -}
          \ No newline at end of file
          +}
          diff --git a/core/java/src/net/i2p/client/I2PSessionImpl2.java b/core/java/src/net/i2p/client/I2PSessionImpl2.java
          index d8d8c8dfc..62b0d3d08 100644
          --- a/core/java/src/net/i2p/client/I2PSessionImpl2.java
          +++ b/core/java/src/net/i2p/client/I2PSessionImpl2.java
          @@ -33,12 +33,14 @@ import net.i2p.util.Log;
           class I2PSessionImpl2 extends I2PSessionImpl {
           
               /** set of MessageState objects, representing all of the messages in the process of being sent */
          -    private /* FIXME final FIXME */ Set _sendingStates;
          +    private /* FIXME final FIXME */ Set _sendingStates;
               /** max # seconds to wait for confirmation of the message send */
               private final static long SEND_TIMEOUT = 60 * 1000; // 60 seconds to send 
               /** should we gzip each payload prior to sending it? */
               private final static boolean SHOULD_COMPRESS = true;
               private final static boolean SHOULD_DECOMPRESS = true;
          +    /** Don't expect any MSMs from the router for outbound traffic @since 0.8.1 */
          +    private boolean _noEffort;
           
               /** for extension */
               public I2PSessionImpl2() {}
          @@ -53,6 +55,8 @@ class I2PSessionImpl2 extends I2PSessionImpl {
                   super(ctx, destKeyStream, options);
                   _log = ctx.logManager().getLog(I2PSessionImpl2.class);
                   _sendingStates = new HashSet(32);
          +        // default is BestEffort
          +        _noEffort = "none".equalsIgnoreCase(options.getProperty(I2PClient.PROP_RELIABILITY));
           
                   ctx.statManager().createRateStat("i2cp.sendBestEffortTotalTime", "how long to do the full sendBestEffort call?", "i2cp", new long[] { 10*60*1000 } );
                   //ctx.statManager().createRateStat("i2cp.sendBestEffortStage0", "first part of sendBestEffort?", "i2cp", new long[] { 10*60*1000 } );
          @@ -60,15 +64,16 @@ class I2PSessionImpl2 extends I2PSessionImpl {
                   //ctx.statManager().createRateStat("i2cp.sendBestEffortStage2", "third part of sendBestEffort?", "i2cp", new long[] { 10*60*1000 } );
                   //ctx.statManager().createRateStat("i2cp.sendBestEffortStage3", "fourth part of sendBestEffort?", "i2cp", new long[] { 10*60*1000 } );
                   //ctx.statManager().createRateStat("i2cp.sendBestEffortStage4", "fifth part of sendBestEffort?", "i2cp", new long[] { 10*60*1000 } );
          -        _context.statManager().createRateStat("i2cp.receiveStatusTime.0", "How long it took to get status=0 back", "i2cp", new long[] { 60*1000, 10*60*1000 });
          -        _context.statManager().createRateStat("i2cp.receiveStatusTime.1", "How long it took to get status=1 back", "i2cp", new long[] { 60*1000, 10*60*1000 });
          -        _context.statManager().createRateStat("i2cp.receiveStatusTime.2", "How long it took to get status=2 back", "i2cp", new long[] { 60*1000, 10*60*1000 });
          -        _context.statManager().createRateStat("i2cp.receiveStatusTime.3", "How long it took to get status=3 back", "i2cp", new long[] { 60*1000, 10*60*1000 });
          -        _context.statManager().createRateStat("i2cp.receiveStatusTime.4", "How long it took to get status=4 back", "i2cp", new long[] { 60*1000, 10*60*1000 });
          -        _context.statManager().createRateStat("i2cp.receiveStatusTime.5", "How long it took to get status=5 back", "i2cp", new long[] { 60*1000, 10*60*1000 });
          -        _context.statManager().createRateStat("i2cp.receiveStatusTime", "How long it took to get any status", "i2cp", new long[] { 60*1000, 10*60*1000 });
          -        _context.statManager().createRateStat("i2cp.tx.msgCompressed", "compressed size transferred", "i2cp", new long[] { 60*1000, 30*60*1000 });
          -        _context.statManager().createRateStat("i2cp.tx.msgExpanded", "size before compression", "i2cp", new long[] { 60*1000, 30*60*1000 });
          +        //_context.statManager().createRateStat("i2cp.receiveStatusTime.0", "How long it took to get status=0 back", "i2cp", new long[] { 60*1000, 10*60*1000 });
          +        _context.statManager().createRateStat("i2cp.receiveStatusTime.1", "How long it took to get status=1 back", "i2cp", new long[] { 10*60*1000 });
          +        // best effort codes unused
          +        //_context.statManager().createRateStat("i2cp.receiveStatusTime.2", "How long it took to get status=2 back", "i2cp", new long[] { 60*1000, 10*60*1000 });
          +        //_context.statManager().createRateStat("i2cp.receiveStatusTime.3", "How long it took to get status=3 back", "i2cp", new long[] { 60*1000, 10*60*1000 });
          +        _context.statManager().createRateStat("i2cp.receiveStatusTime.4", "How long it took to get status=4 back", "i2cp", new long[] { 10*60*1000 });
          +        _context.statManager().createRateStat("i2cp.receiveStatusTime.5", "How long it took to get status=5 back", "i2cp", new long[] { 10*60*1000 });
          +        _context.statManager().createRateStat("i2cp.receiveStatusTime", "How long it took to get any status", "i2cp", new long[] { 10*60*1000 });
          +        _context.statManager().createRateStat("i2cp.tx.msgCompressed", "compressed size transferred", "i2cp", new long[] { 30*60*1000 });
          +        _context.statManager().createRateStat("i2cp.tx.msgExpanded", "size before compression", "i2cp", new long[] { 30*60*1000 });
               }
           
               protected long getTimeout() {
          @@ -186,7 +191,10 @@ class I2PSessionImpl2 extends I2PSessionImpl {
                   }
                   _context.statManager().addRateData("i2cp.tx.msgCompressed", compressed, 0);
                   _context.statManager().addRateData("i2cp.tx.msgExpanded", size, 0);
          -        return sendBestEffort(dest, payload, keyUsed, tagsSent, expires);
          +        if (_noEffort)
          +            return sendNoEffort(dest, payload, expires);
          +        else
          +            return sendBestEffort(dest, payload, keyUsed, tagsSent, expires);
               }
           
               /**
          @@ -213,6 +221,9 @@ class I2PSessionImpl2 extends I2PSessionImpl {
               private static final int NUM_TAGS = 50;
           
               /**
          +     * TODO - Don't need to save MessageState since actuallyWait is false...
          +     * But for now just use sendNoEffort() instead.
          +     *
                * @param keyUsed unused - no end-to-end crypto
                * @param tagsSent unused - no end-to-end crypto
                */
          @@ -257,7 +268,7 @@ class I2PSessionImpl2 extends I2PSessionImpl {
                                          + "ms left, " + oldTags + " tags known and " 
                                          + (tag == null ? "no tag" : " a valid tag"));
                       }
          -        
          +
                       if (false) // rekey
                           newKey = _context.keyGenerator().generateSessionKey();
                   
          @@ -371,6 +382,37 @@ class I2PSessionImpl2 extends I2PSessionImpl {
                   return found;
               }
               
          +    /**
          +     * Same as sendBestEffort(), except we do not expect any MessageStatusMessage responses -
          +     * not for accepted, or success, or failure.
          +     * So we don't create a MessageState and save it on the _sendingStates HashSet
          +     *
          +     * @return true always
          +     * @since 0.8.1
          +     */
          +    protected boolean sendNoEffort(Destination dest, byte payload[], long expires)
          +                    throws I2PSessionException {
          +        // nonce always 0
          +        _producer.sendMessage(this, dest, 0, payload, null, null, null, null, expires);
          +        return true;
          +    }
          +    
          +    /**
          +     *  Only call this with nonzero status, i.e. for outbound messages
          +     *  whose MessageState may be queued on _sendingStates.
          +     *
          +     *  Even when using sendBestEffort(), this is a waste, because the
          +     *  MessageState is removed from _sendingStates immediately and
          +     *  so the lookup here fails.
          +     *  And iterating through the HashSet instead of having a map
          +     *  is bad too.
          +     *
          +     *  This is now pretty much avoided since streaming now sets
          +     *  i2cp.messageReliability = none, which forces sendNoEffort() instead of sendBestEffort(),
          +     *  so the router won't send us any MSM's for outbound traffic.
          +     *
          +     *  @param status != 0
          +     */
               @Override
               public void receiveStatus(int msgId, long nonce, int status) {
                   if (_log.shouldLog(Log.DEBUG)) _log.debug(getPrefix() + "Received status " + status + " for msgId " + msgId + " / " + nonce);
          @@ -413,12 +455,13 @@ class I2PSessionImpl2 extends I2PSessionImpl {
                           case 1:
                               _context.statManager().addRateData("i2cp.receiveStatusTime.1", lifetime, 0);
                               break;
          -                case 2:
          -                    _context.statManager().addRateData("i2cp.receiveStatusTime.2", lifetime, 0);
          -                    break;
          -                case 3:
          -                    _context.statManager().addRateData("i2cp.receiveStatusTime.3", lifetime, 0);
          -                    break;
          +                // best effort codes unused
          +                //case 2:
          +                //    _context.statManager().addRateData("i2cp.receiveStatusTime.2", lifetime, 0);
          +                //    break;
          +                //case 3:
          +                //    _context.statManager().addRateData("i2cp.receiveStatusTime.3", lifetime, 0);
          +                //    break;
                           case 4:
                               _context.statManager().addRateData("i2cp.receiveStatusTime.4", lifetime, 0);
                               break;
          diff --git a/router/java/src/net/i2p/router/client/ClientConnectionRunner.java b/router/java/src/net/i2p/router/client/ClientConnectionRunner.java
          index e5aa1b5ab..f363bd278 100644
          --- a/router/java/src/net/i2p/router/client/ClientConnectionRunner.java
          +++ b/router/java/src/net/i2p/router/client/ClientConnectionRunner.java
          @@ -17,6 +17,7 @@ import java.util.List;
           import java.util.Map;
           import java.util.Set;
           
          +import net.i2p.client.I2PClient;
           import net.i2p.crypto.SessionKeyManager;
           import net.i2p.crypto.TransientSessionKeyManager;
           import net.i2p.data.Destination;
          @@ -76,11 +77,13 @@ public class ClientConnectionRunner {
                * This contains the last 10 MessageIds that have had their (non-ack) status 
                * delivered to the client (so that we can be sure only to update when necessary)
                */
          -    private final List _alreadyProcessed;
          +    private final List _alreadyProcessed;
               private ClientWriterRunner _writer;
               private Hash _destHashCache;
               /** are we, uh, dead */
               private boolean _dead;
          +    /** For outbound traffic. true if i2cp.messageReliability = "none"; @since 0.8.1 */
          +    private boolean _dontSendMSM;
               
               /**
                * Create a new runner against the given socket
          @@ -91,11 +94,9 @@ public class ClientConnectionRunner {
                   _log = _context.logManager().getLog(ClientConnectionRunner.class);
                   _manager = manager;
                   _socket = socket;
          -        _config = null;
                   _messages = new ConcurrentHashMap();
                   _alreadyProcessed = new ArrayList();
                   _acceptedPending = new ConcurrentHashSet();
          -        _dead = false;
               }
               
               private static volatile int __id = 0;
          @@ -189,6 +190,9 @@ public class ClientConnectionRunner {
                   if (_log.shouldLog(Log.DEBUG))
                       _log.debug("SessionEstablished called for destination " + _destHashCache.toBase64());
                   _config = config;
          +        // This is the only option that is interpreted here, not at the tunnel manager
          +        if (config.getOptions() != null)
          +            _dontSendMSM = "none".equalsIgnoreCase(config.getOptions().getProperty(I2PClient.PROP_RELIABILITY));
                   // per-destination session key manager to prevent rather easy correlation
                   if (_sessionKeyManager == null)
                       _sessionKeyManager = new TransientSessionKeyManager(_context);
          @@ -197,10 +201,18 @@ public class ClientConnectionRunner {
                   _manager.destinationEstablished(this);
               }
               
          +    /** 
          +     * Send a notification to the client that their message (id specified) was
          +     * delivered (or failed delivery)
          +     * Note that this sends the Guaranteed status codes, even though we only support best effort.
          +     * Doesn't do anything if i2cp.messageReliability = "none"
          +     */
               void updateMessageDeliveryStatus(MessageId id, boolean delivered) {
          -        if (_dead) return;
          +        if (_dead || _dontSendMSM)
          +            return;
                   _context.jobQueue().addJob(new MessageDeliveryStatusUpdate(id, delivered));
               }
          +
               /** 
                * called after a new leaseSet is granted by the client, the NetworkDb has been
                * updated.  This takes care of all the LeaseRequestState stuff (including firing any jobs)
          @@ -254,7 +266,8 @@ public class ClientConnectionRunner {
                   long expiration = 0;
                   if (message instanceof SendMessageExpiresMessage)
                       expiration = ((SendMessageExpiresMessage) message).getExpiration().getTime();
          -        _acceptedPending.add(id);
          +        if (!_dontSendMSM)
          +            _acceptedPending.add(id);
           
                   if (_log.shouldLog(Log.DEBUG))
                       _log.debug("** Receiving message [" + id.getMessageId() + "] with payload of size [" 
          @@ -276,9 +289,11 @@ public class ClientConnectionRunner {
               /** 
                * Send a notification to the client that their message (id specified) was accepted 
                * for delivery (but not necessarily delivered)
          -     *
          +     * Doesn't do anything if i2cp.messageReliability = "none"
                */
               void ackSendMessage(MessageId id, long nonce) {
          +        if (_dontSendMSM)
          +            return;
                   SessionId sid = _sessionId;
                   if (sid == null) return;
                   if (_log.shouldLog(Log.DEBUG))
          @@ -517,12 +532,17 @@ public class ClientConnectionRunner {
                   }
           
                   public String getName() { return "Update Delivery Status"; }
          +
          +        /**
          +         * Note that this sends the Guaranteed status codes, even though we only support best effort.
          +         */
                   public void runJob() {
                       if (_dead) return;
           
                       MessageStatusMessage msg = new MessageStatusMessage();
                       msg.setMessageId(_messageId.getMessageId());
                       msg.setSessionId(_sessionId.getSessionId());
          +            // has to be >= 0, it is initialized to -1
                       msg.setNonce(2);
                       msg.setSize(0);
                       if (_success) 
          
          From 042cde2952f97e4066d2ef0e24c9847984a967f9 Mon Sep 17 00:00:00 2001
          From: zzz 
          Date: Sat, 2 Oct 2010 17:04:52 +0000
          Subject: [PATCH 72/75]     * UDP:       - Try to avoid running out of
           introducers by relaxing selection criteria         and increasing minimum
           number of potential introducers
          
          ---
           .../router/transport/udp/IntroductionManager.java | 15 ++++++++++++---
           .../i2p/router/transport/udp/UDPTransport.java    |  2 +-
           2 files changed, 13 insertions(+), 4 deletions(-)
          
          diff --git a/router/java/src/net/i2p/router/transport/udp/IntroductionManager.java b/router/java/src/net/i2p/router/transport/udp/IntroductionManager.java
          index 6a2707f60..6985164cb 100644
          --- a/router/java/src/net/i2p/router/transport/udp/IntroductionManager.java
          +++ b/router/java/src/net/i2p/router/transport/udp/IntroductionManager.java
          @@ -96,7 +96,10 @@ public class IntroductionManager {
                   int sz = peers.size();
                   start = start % sz;
                   int found = 0;
          -        long inactivityCutoff = _context.clock().now() - (UDPTransport.EXPIRE_TIMEOUT / 2);
          +        long inactivityCutoff = _context.clock().now() - (UDPTransport.EXPIRE_TIMEOUT / 2);    // 15 min
          +        // if not too many to choose from, be less picky
          +        if (sz <= howMany + 2)
          +            inactivityCutoff -= UDPTransport.EXPIRE_TIMEOUT / 4;
                   for (int i = 0; i < sz && found < howMany; i++) {
                       PeerState cur = peers.get((start + i) % sz);
                       RouterInfo ri = _context.netDb().lookupRouterInfoLocally(cur.getRemotePeer());
          @@ -119,7 +122,11 @@ public class IntroductionManager {
                           continue;
                       }
                       // Try to pick active peers...
          -            if (cur.getLastReceiveTime() < inactivityCutoff || cur.getLastSendTime() < inactivityCutoff) {
          +            // FIXME this is really strict and causes us to run out of introducers
          +            // We have much less introducers than we used to have because routers don't offer
          +            // if they are approaching max connections (see EstablishmentManager)
          +            // FIXED, was ||, is this OK now?
          +            if (cur.getLastReceiveTime() < inactivityCutoff && cur.getLastSendTime() < inactivityCutoff) {
                           if (_log.shouldLog(Log.INFO))
                               _log.info("Peer is idle too long: " + cur);
                           continue;
          @@ -135,6 +142,8 @@ public class IntroductionManager {
                       found++;
                   }
           
          +        // FIXME failsafe if found == 0, relax inactivityCutoff and try again?
          +
                   // Try to keep the connection up for two hours after we made anybody an introducer
                   long pingCutoff = _context.clock().now() - (2 * 60 * 60 * 1000);
                   inactivityCutoff = _context.clock().now() - (UDPTransport.EXPIRE_TIMEOUT / 4);
          @@ -156,7 +165,7 @@ public class IntroductionManager {
                * Not as elaborate as pickInbound() above.
                * Just a quick check to see how many volunteers we know,
                * which the Transport uses to see if we need more.
          -     * @return number of peers that have volunteerd to introduce us
          +     * @return number of peers that have volunteered to introduce us
                */
               int introducerCount() {
                       return _inbound.size();
          diff --git a/router/java/src/net/i2p/router/transport/udp/UDPTransport.java b/router/java/src/net/i2p/router/transport/udp/UDPTransport.java
          index 0617790a3..390a741f1 100644
          --- a/router/java/src/net/i2p/router/transport/udp/UDPTransport.java
          +++ b/router/java/src/net/i2p/router/transport/udp/UDPTransport.java
          @@ -1017,7 +1017,7 @@ public class UDPTransport extends TransportImpl implements TimedWeightedPriority
               /** minimum active peers to maintain IP detection, etc. */
               private static final int MIN_PEERS = 3;
               /** minimum peers volunteering to be introducers if we need that */
          -    private static final int MIN_INTRODUCER_POOL = 4;
          +    private static final int MIN_INTRODUCER_POOL = 5;
           
               public TransportBid bid(RouterInfo toAddress, long dataSize) {
                   if (dataSize > OutboundMessageState.MAX_MSG_SIZE) {
          
          From 3d9b6061ce516c63fe0eacbe8570251de3c42084 Mon Sep 17 00:00:00 2001
          From: zzz 
          Date: Sat, 2 Oct 2010 17:07:37 +0000
          Subject: [PATCH 73/75]     * NetDB:       - Expire unreachable routers
           quickly, even if they don't have introducers,         so we don't have old
           data on routers that ran out of introducers.       - Fix rare NPEs at
           shutdown
          
          ---
           .../kademlia/KademliaNetworkDatabaseFacade.java        | 10 ++++++++--
           1 file changed, 8 insertions(+), 2 deletions(-)
          
          diff --git a/router/java/src/net/i2p/router/networkdb/kademlia/KademliaNetworkDatabaseFacade.java b/router/java/src/net/i2p/router/networkdb/kademlia/KademliaNetworkDatabaseFacade.java
          index 688b8546d..acede96ed 100644
          --- a/router/java/src/net/i2p/router/networkdb/kademlia/KademliaNetworkDatabaseFacade.java
          +++ b/router/java/src/net/i2p/router/networkdb/kademlia/KademliaNetworkDatabaseFacade.java
          @@ -194,10 +194,12 @@ public class KademliaNetworkDatabaseFacade extends NetworkDatabaseFacade {
               
               public void shutdown() {
                   _initialized = false;
          -        _kb = null;
          +        // don't null out _kb, it can cause NPEs in concurrent operations
          +        //_kb = null;
                   if (_ds != null)
                       _ds.stop();
          -        _ds = null;
          +        // don't null out _ds, it can cause NPEs in concurrent operations
          +        //_ds = null;
                   _exploreKeys.clear(); // hope this doesn't cause an explosion, it shouldn't.
                   // _exploreKeys = null;
               }
          @@ -750,6 +752,10 @@ public class KademliaNetworkDatabaseFacade extends NetworkDatabaseFacade {
                   } else if (upLongEnough && !routerInfo.isCurrent(ROUTER_INFO_EXPIRATION_SHORT)) {
                       if (routerInfo.getAddresses().isEmpty())
                           return "Peer " + key.toBase64() + " published > 90m ago with no addresses";
          +            // This should cover the introducers case below too
          +            // And even better, catches the case where the router is unreachable but knows no introducers
          +            if (routerInfo.getCapabilities().indexOf(Router.CAPABILITY_UNREACHABLE) >= 0)
          +                return "Peer " + key.toBase64() + " published > 90m ago and thinks it is unreachable";
                       RouterAddress ra = routerInfo.getTargetAddress("SSU");
                       if (ra != null) {
                           // Introducers change often, introducee will ping introducer for 2 hours
          
          From 6cf7bc7985dd382728bb6061bbb5ac1827de09f6 Mon Sep 17 00:00:00 2001
          From: zzz 
          Date: Sat, 2 Oct 2010 17:20:39 +0000
          Subject: [PATCH 74/75]     * i2ptunnel:       - Add hostname DSA signature
           field, to be used for addkey forms.         Experimental, may be commented
           out later.
          
          ---
           .../src/net/i2p/i2ptunnel/web/EditBean.java   | 30 +++++++++++++++++++
           apps/i2ptunnel/jsp/editServer.jsp             | 11 ++++++-
           2 files changed, 40 insertions(+), 1 deletion(-)
          
          diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/web/EditBean.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/web/EditBean.java
          index 38bc8b4db..f6c76d7f6 100644
          --- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/web/EditBean.java
          +++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/web/EditBean.java
          @@ -13,6 +13,11 @@ import java.util.List;
           import java.util.Properties;
           import java.util.StringTokenizer;
           
          +import net.i2p.data.Base64;
          +import net.i2p.data.Destination;
          +import net.i2p.data.PrivateKeyFile;
          +import net.i2p.data.Signature;
          +import net.i2p.data.SigningPrivateKey;
           import net.i2p.i2ptunnel.TunnelController;
           import net.i2p.i2ptunnel.TunnelControllerGroup;
           
          @@ -68,6 +73,31 @@ public class EditBean extends IndexBean {
                   return "i2ptunnel" + tunnel + "-privKeys.dat";
               }
               
          +    public String getNameSignature(int tunnel) {
          +        String spoof = getSpoofedHost(tunnel);
          +        if (spoof.length() <= 0)
          +            return "";
          +        TunnelController tun = getController(tunnel);
          +        if (tun == null)
          +            return "";
          +        String keyFile = tun.getPrivKeyFile();
          +        if (keyFile != null && keyFile.trim().length() > 0) {
          +            PrivateKeyFile pkf = new PrivateKeyFile(keyFile);
          +            try {
          +                Destination d = pkf.getDestination();
          +                if (d == null)
          +                    return "";
          +                SigningPrivateKey privKey = pkf.getSigningPrivKey();
          +                if (privKey == null)
          +                    return "";
          +                //System.err.println("Signing " + spoof + " with " + Base64.encode(privKey.getData()));
          +                Signature sig = _context.dsa().sign(spoof.getBytes("UTF-8"), privKey);
          +                return Base64.encode(sig.getData());
          +            } catch (Exception e) {}
          +        }
          +        return "";
          +    }
          +    
               public boolean startAutomatically(int tunnel) {
                   TunnelController tun = getController(tunnel);
                   if (tun != null)
          diff --git a/apps/i2ptunnel/jsp/editServer.jsp b/apps/i2ptunnel/jsp/editServer.jsp
          index 939ccf520..97a0a93c9 100644
          --- a/apps/i2ptunnel/jsp/editServer.jsp
          +++ b/apps/i2ptunnel/jsp/editServer.jsp
          @@ -196,7 +196,16 @@
                       <%=intl._("Add to local addressbook")%>    
                    <% } %>
                       
          -            
          +
          +            <% if (("httpserver".equals(tunnelType)) || ("httpbidirserver".equals(tunnelType))) {
          +          %>
          + + +
          + <% } %> + From 48ccf85e977dfbc6fc584bc4f342b8c0f5261451 Mon Sep 17 00:00:00 2001 From: zzz Date: Tue, 5 Oct 2010 00:08:59 +0000 Subject: [PATCH 75/75] try again to fix the i2ptunnel nonce problem --- .../src/net/i2p/i2ptunnel/web/IndexBean.java | 68 +++++++++++-------- 1 file changed, 39 insertions(+), 29 deletions(-) diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/web/IndexBean.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/web/IndexBean.java index 2a77b9be8..d91a7900d 100644 --- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/web/IndexBean.java +++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/web/IndexBean.java @@ -9,6 +9,7 @@ package net.i2p.i2ptunnel.web; */ import java.util.concurrent.ConcurrentHashMap; +import java.util.ArrayList; import java.util.Arrays; import java.util.HashSet; import java.util.List; @@ -41,10 +42,10 @@ public class IndexBean { protected TunnelControllerGroup _group; private String _action; private int _tunnel; - private long _prevNonce; - private long _prevNonce2; - private long _curNonce; - private long _nextNonce; + //private long _prevNonce; + //private long _prevNonce2; + private String _curNonce; + //private long _nextNonce; private String _type; private String _name; @@ -85,10 +86,14 @@ public class IndexBean { /** deprecated unimplemented, now using routerconsole realm */ //public static final String PROP_TUNNEL_PASSPHRASE = "i2ptunnel.passphrase"; public static final String PROP_TUNNEL_PASSPHRASE = "consolePassword"; - static final String PROP_NONCE = IndexBean.class.getName() + ".nonce"; - static final String PROP_NONCE_OLD = PROP_NONCE + '2'; + //static final String PROP_NONCE = IndexBean.class.getName() + ".nonce"; + //static final String PROP_NONCE_OLD = PROP_NONCE + '2'; + /** 3 wasn't enough for some browsers. They are reloading the page for some reason - maybe HEAD? @since 0.8.1 */ + private static final int MAX_NONCES = 5; + /** store nonces in a static FIFO instead of in System Properties @since 0.8.1 */ + private static final List _nonces = new ArrayList(MAX_NONCES + 1); + static final String CLIENT_NICKNAME = "shared clients"; - public static final String PROP_THEME_NAME = "routerconsole.theme"; public static final String DEFAULT_THEME = "light"; public static final String PROP_CSS_DISABLED = "routerconsole.css.disabled"; @@ -98,34 +103,39 @@ public class IndexBean { _context = I2PAppContext.getGlobalContext(); _log = _context.logManager().getLog(IndexBean.class); _group = TunnelControllerGroup.getInstance(); - _action = null; _tunnel = -1; - _curNonce = -1; - _prevNonce = -1; - _prevNonce2 = -1; - try { - String nonce2 = System.getProperty(PROP_NONCE_OLD); - if (nonce2 != null) - _prevNonce2 = Long.parseLong(nonce2); - String nonce = System.getProperty(PROP_NONCE); - if (nonce != null) { - _prevNonce = Long.parseLong(nonce); - System.setProperty(PROP_NONCE_OLD, nonce); - } - } catch (NumberFormatException nfe) {} - _nextNonce = _context.random().nextLong(); - System.setProperty(PROP_NONCE, Long.toString(_nextNonce)); + _curNonce = "-1"; + addNonce(); _booleanOptions = new ConcurrentHashSet(4); _otherOptions = new ConcurrentHashMap(4); } - public long getNextNonce() { return _nextNonce; } + public static String getNextNonce() { + synchronized (_nonces) { + return _nonces.get(0); + } + } + public void setNonce(String nonce) { if ( (nonce == null) || (nonce.trim().length() <= 0) ) return; - try { - _curNonce = Long.parseLong(nonce); - } catch (NumberFormatException nfe) { - _curNonce = -1; + _curNonce = nonce; + } + + /** add a random nonce to the head of the queue @since 0.8.1 */ + private void addNonce() { + String nextNonce = Long.toString(_context.random().nextLong()); + synchronized (_nonces) { + _nonces.add(0, nextNonce); + int sz = _nonces.size(); + if (sz > MAX_NONCES) + _nonces.remove(sz - 1); + } + } + + /** do we know this nonce? @since 0.8.1 */ + private static boolean haveNonce(String nonce) { + synchronized (_nonces) { + return _nonces.contains(nonce); } } @@ -155,7 +165,7 @@ public class IndexBean { private String processAction() { if ( (_action == null) || (_action.trim().length() <= 0) || ("Cancel".equals(_action))) return ""; - if ( (_prevNonce != _curNonce) && (_prevNonce2 != _curNonce) && (!validPassphrase()) ) + if ( (!haveNonce(_curNonce)) && (!validPassphrase()) ) return "Invalid form submission, probably because you used the 'back' or 'reload' button on your browser. Please resubmit."; if ("Stop all".equals(_action)) return stopAll();
  • " + - "") + "
    ") .append(_("Version")) .append(":") @@ -185,6 +196,8 @@ public class SummaryBarRenderer { "

    ") + .append(_("Network")) + .append(": ") .append(_helper.getReachability()) .append("


    \n"); diff --git a/history.txt b/history.txt index 03c8135ca..7b7113ccf 100644 --- a/history.txt +++ b/history.txt @@ -1,13 +1,10 @@ -2010-07-06 duck - * susidns: Dutch translation (thanks to monkeybrains) +2010-07-07 duck + * RouterConsole: Add Help & FAQ link, minor label improvements. 2010-07-05 zzz * i2psnark: Fix transition to end game * I2PTunnelIRCClient: Filter PART messages like we do for QUIT -2010-07-05 duck - * I2PTunnel & I2PSnark: Dutch translation (thanks to monkeybrains) - 2010-07-04 duck * RouterConsole: Dutch translation (thanks to monkeybrains) From 2ca5802e4de48bbcf5a12c87c09f16ba7a21a3bf Mon Sep 17 00:00:00 2001 From: duck Date: Wed, 7 Jul 2010 19:49:07 +0000 Subject: [PATCH 30/75] Include logo in updater now that it is themeable. (thanks RN!) --- build.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/build.xml b/build.xml index b9b532831..9768eadd6 100644 --- a/build.xml +++ b/build.xml @@ -419,19 +419,19 @@ - + - + - + - + From 3c0d0dfeee4a340f3be64392f63a00a0514257b2 Mon Sep 17 00:00:00 2001 From: forget Date: Wed, 7 Jul 2010 20:30:05 +0000 Subject: [PATCH 31/75] Russian translation updated (help & faq link, local identity link) --- apps/routerconsole/locale/messages_ru.po | 10154 +++++++++++---------- 1 file changed, 5084 insertions(+), 5070 deletions(-) diff --git a/apps/routerconsole/locale/messages_ru.po b/apps/routerconsole/locale/messages_ru.po index 9e35993e9..ddbbc7fdb 100644 --- a/apps/routerconsole/locale/messages_ru.po +++ b/apps/routerconsole/locale/messages_ru.po @@ -1,5070 +1,5084 @@ -# I2P -# Copyright (C) 2009 The I2P Project -# This file is distributed under the same license as the routerconsole package. -# To contribute translations, see http://www.i2p2.de/newdevelopers -# foo , 2009. -# -msgid "" -msgstr "" -"Project-Id-Version: I2P routerconsole\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-06-03 03:14+0000\n" -"PO-Revision-Date: 2010-06-03 03:55+0000\n" -"Last-Translator: 4get \n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Poedit-Language: Russian\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n" -"X-Poedit-Bookmarks: 283,-1,-1,-1,-1,-1,-1,-1,-1,-1\n" - -#: ../../../router/java/src/net/i2p/router/Blocklist.java:126 -#, java-format -msgid "Banned by router hash: {0}" -msgstr "Забанен по хэшу маршрутизатора: {0}" - -#: ../../../router/java/src/net/i2p/router/Blocklist.java:128 -msgid "Banned by router hash" -msgstr "Забанен по хэшу маршрутизатора" - -#. Temporary reason, until the job finishes -#: ../../../router/java/src/net/i2p/router/Blocklist.java:673 -msgid "IP banned" -msgstr "IP заблокирован" - -#: ../../../router/java/src/net/i2p/router/Blocklist.java:743 -#, java-format -msgid "IP banned by blocklist.txt entry {0}" -msgstr "IP заблокирован по записи в blocklist.txt: {0}" - -#: ../../../router/java/src/net/i2p/router/RouterThrottleImpl.java:92 -msgid "Rejecting tunnels: Shutting down" -msgstr "Не принимаем туннели: Маршрутизатор в процессе остановки" - -#: ../../../router/java/src/net/i2p/router/RouterThrottleImpl.java:141 -msgid "Rejecting tunnels: High message delay" -msgstr "Не принимаем туннели: Слишком большая задержка сообщений" - -#. hard to do {0} from here -#. setTunnelStatus("Rejecting " + (100 - (int) probAccept*100) + "% of tunnels: High number of requests"); -#: ../../../router/java/src/net/i2p/router/RouterThrottleImpl.java:177 -msgid "Rejecting most tunnels: High number of requests" -msgstr "Не принимаем большую часть туннелей: Слишком много запросов" - -#: ../../../router/java/src/net/i2p/router/RouterThrottleImpl.java:233 -msgid "Rejecting tunnels: Limit reached" -msgstr "Не принимаем туннели: Достигнут предел количества туннелей" - -#. .067KBps -#. * also limited to 90% - see below -#. always leave at least 4KBps free when allowing -#: ../../../router/java/src/net/i2p/router/RouterThrottleImpl.java:301 -msgid "Rejecting tunnels: Bandwidth limit" -msgstr "Не принимаем туннели: Достигнут предел пропускной способности" - -#. hard to do {0} from here -#. setTunnelStatus("Rejecting " + ((int)(100.0*probReject)) + "% of tunnels: Bandwidth limit"); -#: ../../../router/java/src/net/i2p/router/RouterThrottleImpl.java:371 -msgid "Rejecting most tunnels: Bandwidth limit" -msgstr "Не принимаем большую часть туннелей: Достигнут предел пропускной способности" - -#. hard to do {0} from here -#. setTunnelStatus("Accepting " + (100-(int)(100.0*probReject)) + "% of tunnels"); -#: ../../../router/java/src/net/i2p/router/RouterThrottleImpl.java:375 -msgid "Accepting most tunnels" -msgstr "Принимаем большую часть туннелей" - -#: ../../../router/java/src/net/i2p/router/RouterThrottleImpl.java:377 -msgid "Accepting tunnels" -msgstr "Принимаем туннели" - -#. NPE, too early -#. if (_context.router().getRouterInfo().getBandwidthTier().equals("K")) -#. setTunnelStatus("Not expecting tunnel requests: Advertised bandwidth too low"); -#. else -#: ../../../router/java/src/net/i2p/router/RouterThrottleImpl.java:487 -msgid "Rejecting tunnels" -msgstr "Не принимаем туннели" - -#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:49 -msgid "Ensure that nothing blocks outbound HTTP, check logs and if nothing helps, read the FAQ about reseeding manually." -msgstr "Убедитесь, что исходящие HTTP-запросы ничем не блокируются, загляните в журналы ошибок и если ничто не помогло, прочтите в FAQ инструкцию по начальной загрузке вручную." - -#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:81 -msgid "Reseeding" -msgstr "Производится начальная загрузка" - -#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:145 -msgid "Reseeding: fetching seed URL." -msgstr "Производится начальная загрузка: загружается URL каталога маршрутизаторов." - -#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:151 -msgid "Last reseed failed fully (failed reading seed URL)." -msgstr "Предыдущая попытка начальной загрузки полностью провалилась (не удалось загрузить URL каталога маршрутизаторов)" - -#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:177 -msgid "Last reseed failed fully (no routerInfo URLs at seed URL)." -msgstr "Предыдущая попытка начальной загрузки полностью провалилась (не удалось найти список routerInfo-ссылок в загруженном каталоге)" - -#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:190 -#, java-format -msgid "Reseeding: fetching router info from seed URL ({0} successful, {1} errors)." -msgstr "Производится начальная загрузка: получение информации о маршрутизаторах ({0} удачно, {1} ошибок)." - -#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:211 -#, java-format -msgid "Last reseed failed partly ({0}% of {1})." -msgstr "Предыдущая попытка начальной загрузки частично не удалась ({0}% из {1})." - -#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:216 -#, java-format -msgid "Last reseed failed ({0}% of {1})." -msgstr "Предыдущая попытка начальной загрузки почти полностью провалилась ({0}% из {1})." - -#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:226 -msgid "Last reseed failed fully (exception caught)." -msgstr "Предыдущая попытка начальной загрузки полностью провалилась (произошла необрабатываемая ошибка)." - -#: ../../../router/java/src/net/i2p/router/transport/CommSystemFacadeImpl.java:498 -msgid "NetDb entry" -msgstr "показать описание в NetDb" - -#. This used to be "no common transports" but it is almost always no transports at all -#: ../../../router/java/src/net/i2p/router/transport/GetBidsJob.java:70 -msgid "No transports (hidden or starting up?)" -msgstr "Нет транспортных протоколов (в скрытом режиме или запущен недавно?)" - -#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:457 -msgid "Unreachable on any transport" -msgstr "Недоступен по всем транспортным протоколам" - -#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:503 -msgid "Router Transport Addresses" -msgstr "Адреса транспортов маршрутизатора" - -#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:509 -#, java-format -msgid "{0} is used for outbound connections only" -msgstr "{0} используется только для исходящих соединений" - -#: ../../../router/java/src/net/i2p/router/transport/ntcp/EstablishState.java:380 -#: ../../../router/java/src/net/i2p/router/transport/ntcp/EstablishState.java:594 -#, java-format -msgid "Excessive clock skew: {0}" -msgstr "Чрезмерное расхождение времени: {0}" - -#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:710 -msgid "NTCP connections" -msgstr "NTCP соединения" - -#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:711 -#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1881 -msgid "Limit" -msgstr "Ограничение" - -#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:712 -#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1882 -msgid "Timeout" -msgstr "Таймаут" - -#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:715 -#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1885 -#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2158 -#: ../java/src/net/i2p/router/web/ConfigPeerHandler.java:24 -#: ../java/src/net/i2p/router/web/ConfigPeerHandler.java:33 -#: ../java/src/net/i2p/router/web/ConfigPeerHandler.java:35 -#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:81 -#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:187 -#: ../java/src/net/i2p/router/web/TunnelRenderer.java:237 -msgid "Peer" -msgstr "Пир" - -#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:716 -#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1889 -#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2159 -msgid "Dir" -msgstr "Направление" - -#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:717 -#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1890 -#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2167 -msgid "Idle" -msgstr "Неактивен" - -#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:718 -#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1895 -#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2168 -#: ../java/src/net/i2p/router/web/TunnelRenderer.java:156 -msgid "In/Out" -msgstr "Приём/Передача" - -#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:719 -#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1900 -#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2169 -msgid "Up" -msgstr "Подключен" - -#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:720 -#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1902 -#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2170 -msgid "Skew" -msgstr "Сдвиг" - -#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:721 -#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1919 -#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2180 -msgid "TX" -msgstr "Передано" - -#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:722 -#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1921 -#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2181 -msgid "RX" -msgstr "Принято" - -#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:723 -msgid "Out Queue" -msgstr "Исходящая очередь" - -#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:724 -msgid "Backlogged?" -msgstr "В очереди?" - -#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:738 -#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1944 -#: ../java/src/net/i2p/router/web/ConfigTunnelsHelper.java:82 -msgid "Inbound" -msgstr "Входящие" - -#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:740 -#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1946 -#: ../java/src/net/i2p/router/web/ConfigTunnelsHelper.java:82 -msgid "Outbound" -msgstr "Исходящие" - -#. buf.append("


    InboundOutbound


    InboundOutbound