From 049ddb3717a99cab78c50f672d934197a6486474 Mon Sep 17 00:00:00 2001 From: zzz Date: Sat, 2 Nov 2024 14:43:44 -0400 Subject: [PATCH 01/36] Console: remove dark theme override of router log colors for improved legibility and consistency with light theme tweak INFO color for dark theme legibility --- .../i2p/router/web/helpers/LogsHelper.java | 2 +- .../jsp/themes/console/dark/console.css | 32 ++++--------------- 2 files changed, 7 insertions(+), 27 deletions(-) diff --git a/apps/routerconsole/java/src/net/i2p/router/web/helpers/LogsHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/LogsHelper.java index 94fe9d1581..c86168841d 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/helpers/LogsHelper.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/LogsHelper.java @@ -294,7 +294,7 @@ else if (msg.contains(_c("WARN"))) // color = "#ff00cc"; poor legibility on light backgrounds color = "#bf00df"; else if (msg.contains(_c("INFO"))) - color = "#000099"; + color = "#333399"; else color = "#006600"; buf.append(""); diff --git a/apps/routerconsole/jsp/themes/console/dark/console.css b/apps/routerconsole/jsp/themes/console/dark/console.css index 0d43740091..4e3da83703 100644 --- a/apps/routerconsole/jsp/themes/console/dark/console.css +++ b/apps/routerconsole/jsp/themes/console/dark/console.css @@ -5013,44 +5013,24 @@ table[id$="logs"] ul { vertical-align: calc(1px); } -font[color="#cc0000"] { - color: #900 !important; -} - #logs li font[color="#cc0000"]::before { - background: #900; -} - -font[color="#006600"] { - color: #ee7 !important; + background: #c00; } #logs li font[color="#006600"]::before { - background: #ee7; -} - -font[color="#ff3300"] { - color: #990 !important; + background: #060; } #logs li font[color="#ff3300"]::before { - background: #990; -} - -font[color="#bf00df"] { - color: #880 !important; + background: #f30; } #logs li font[color="#bf00df"]::before { - background: #880; -} - -font[color="#000099"] { - color: #660 !important; + background: #c0e; } -#logs li font[color="#000099"]::before { - background: #660; +#logs li font[color="#333399"]::before { + background: #339; } From 115c165bb6aa4197c66d42363bebd45275b5ba99 Mon Sep 17 00:00:00 2001 From: zzz Date: Sat, 2 Nov 2024 16:03:21 -0400 Subject: [PATCH 02/36] SSU2: Hopefully fix rare deadlock via forEachAndNot() --- .../i2p/router/transport/udp/PeerState2.java | 29 ++++++++++++++----- .../router/transport/udp/SSU2Bitfield.java | 3 ++ 2 files changed, 25 insertions(+), 7 deletions(-) diff --git a/router/java/src/net/i2p/router/transport/udp/PeerState2.java b/router/java/src/net/i2p/router/transport/udp/PeerState2.java index f32a62bcc2..6dec4a923e 100644 --- a/router/java/src/net/i2p/router/transport/udp/PeerState2.java +++ b/router/java/src/net/i2p/router/transport/udp/PeerState2.java @@ -291,6 +291,28 @@ List allocateSend(long now) { * @since 0.9.55 split out from above */ private boolean checkRetransmitSessionConfirmed(long now, boolean force) { + boolean rv = checkRetransmitSessionConfirmed2(now, force); + if (!rv) { + // pulled out from synch block below to avoid deadlock + if (_log.shouldWarn()) + _log.warn("Fail, no Sess Conf ACK rcvd on " + this); + try { + UDPPacket pkt = _transport.getBuilder2().buildSessionDestroyPacket(SSU2Util.REASON_FRAME_TIMEOUT, this); + _transport.send(pkt); + } catch (IOException ioe) {} + _transport.dropPeer(this, true, "No Sess Conf ACK rcvd"); + } + return rv; + } + + /** + * Only call for outbound, if we don't have ack 0 yet. + * + * @param force ignore timer, always send + * @return success, false if total fail + * @since 0.9.65 split out from above + */ + private boolean checkRetransmitSessionConfirmed2(long now, boolean force) { UDPPacket[] packets = null; synchronized(this) { if (_sessConfForReTX != null) { @@ -300,13 +322,6 @@ private boolean checkRetransmitSessionConfirmed(long now, boolean force) { // note: we generally won't get here, because the // first outbound message will timeout before this // and close the session in super.finishMessages() - if (_log.shouldWarn()) - _log.warn("Fail, no Sess Conf ACK rcvd on " + this); - try { - UDPPacket pkt = _transport.getBuilder2().buildSessionDestroyPacket(SSU2Util.REASON_FRAME_TIMEOUT, this); - _transport.send(pkt); - } catch (IOException ioe) {} - _transport.dropPeer(this, true, "No Sess Conf ACK rcvd"); _sessConfForReTX = null; return false; } diff --git a/router/java/src/net/i2p/router/transport/udp/SSU2Bitfield.java b/router/java/src/net/i2p/router/transport/udp/SSU2Bitfield.java index ded3cebcc1..b2ee708e82 100644 --- a/router/java/src/net/i2p/router/transport/udp/SSU2Bitfield.java +++ b/router/java/src/net/i2p/router/transport/udp/SSU2Bitfield.java @@ -12,6 +12,9 @@ * * Also contains methods to convert to/from an ACK block. * + * Locking: Most methods are synchronized here. + * Do not call methods with the PeerState2 lock held, chance of deadlock. + * * @since 0.9.54 */ class SSU2Bitfield { From 2bec64c55a0248b8d347a0c4596605352be31af6 Mon Sep 17 00:00:00 2001 From: zzz Date: Mon, 4 Nov 2024 12:06:12 -0500 Subject: [PATCH 03/36] Router: Periodically recheck family of negative cached RIs at random using a simple counter. So if a router gets fixed it will eventually get recognized. --- .../src/net/i2p/router/crypto/FamilyKeyCrypto.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/router/java/src/net/i2p/router/crypto/FamilyKeyCrypto.java b/router/java/src/net/i2p/router/crypto/FamilyKeyCrypto.java index 8a4be15892..c392ddfcac 100644 --- a/router/java/src/net/i2p/router/crypto/FamilyKeyCrypto.java +++ b/router/java/src/net/i2p/router/crypto/FamilyKeyCrypto.java @@ -15,6 +15,7 @@ import java.util.Map; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.atomic.AtomicInteger; import net.i2p.crypto.CertUtil; import net.i2p.crypto.KeyStoreUtil; @@ -51,6 +52,7 @@ public class FamilyKeyCrypto { private final String _fname; private final SigningPrivateKey _privkey; private final SigningPublicKey _pubkey; + private final AtomicInteger _failCount = new AtomicInteger(); public static final String PROP_KEYSTORE_PASSWORD = "netdb.family.keystorePassword"; public static final String PROP_FAMILY_NAME = "netdb.family.name"; @@ -280,8 +282,15 @@ private Result verify(RouterInfo ri, String name) { isKnownKey = true; } else { Result r = _negativeCache.get(h); - if (r != null) - return r; + if (r != null) { + if ((_failCount.incrementAndGet() & 0x3f) != 0) { + if (_log.shouldInfo()) + _log.info("Bad family (cached): " + r + ' ' + h.toBase64()); + return r; + } + // every once in a while, recheck in case of transient error + _negativeCache.remove(h); + } spk = _knownKeys.get(name); isKnownKey = spk != null; if (!isKnownKey) { From c9b17b8cd58d8ff687c120c21fc35a5a75cb0899 Mon Sep 17 00:00:00 2001 From: zzz Date: Mon, 4 Nov 2024 12:12:30 -0500 Subject: [PATCH 04/36] SSU2: More SSU1 code removal (Est. Mgr.) --- .../transport/udp/EstablishmentManager.java | 48 ++----------------- 1 file changed, 4 insertions(+), 44 deletions(-) diff --git a/router/java/src/net/i2p/router/transport/udp/EstablishmentManager.java b/router/java/src/net/i2p/router/transport/udp/EstablishmentManager.java index 8da826b9e8..d805f4b1b4 100644 --- a/router/java/src/net/i2p/router/transport/udp/EstablishmentManager.java +++ b/router/java/src/net/i2p/router/transport/udp/EstablishmentManager.java @@ -1027,56 +1027,16 @@ private void handleCompletelyEstablished(InboundEstablishState state) { } /** - * dont send our info immediately, just send a small data packet, and 5-10s later, - * if the peer isnt banlisted, *then* send them our info. this will help kick off - * the oldnet - * The "oldnet" was < 0.6.1.10, it is long gone. - * The delay really slows down the network. - * The peer is unbanlisted and marked reachable by addRemotePeerState() which calls markReachable() - * so the check below is fairly pointless. - * If for some strange reason an oldnet router (NETWORK_ID == 1) does show up, - * it's handled in UDPTransport.messageReceived() - * (where it will get dropped, marked unreachable and banlisted at that time). + * send our info immediately + * TODO move to / combine with sendAck0() */ private void sendInboundComplete(PeerState peer) { - // SimpleTimer.getInstance().addEvent(new PublishToNewInbound(peer), 10*1000); if (_log.shouldDebug()) _log.debug("IB confirm: " + peer); - DeliveryStatusMessage dsm; - if (peer.getVersion() == 1) { - dsm = new DeliveryStatusMessage(_context); - dsm.setArrival(_networkID); // overloaded, sure, but future versions can check this - // This causes huge values in the inNetPool.droppedDeliveryStatusDelay stat - // so it needs to be caught in InNetMessagePool. - dsm.setMessageExpiration(_context.clock().now() + DATA_MESSAGE_TIMEOUT); - dsm.setMessageId(_context.random().nextLong(I2NPMessage.MAX_ID_VALUE)); - // sent below - } else { - // SSU 2 uses an ACK of packet 0 - dsm = null; - } - - // just do this inline - //_context.simpleTimer2().addEvent(new PublishToNewInbound(peer), 0); + // SSU 2 uses an ACK of packet 0 - Hash hash = peer.getRemotePeer(); - if ((hash != null) && (!_context.banlist().isBanlisted(hash)) && (!_transport.isUnreachable(hash))) { - // ok, we are fine with them, send them our latest info - //if (_log.shouldLog(Log.INFO)) - // _log.info("Publishing to the peer after confirm plus delay (without banlist): " + peer); - // bundle the two messages together for efficiency DatabaseStoreMessage dbsm = getOurInfo(); - List msgs = new ArrayList(2); - if (dsm != null) - msgs.add(dsm); - msgs.add(dbsm); - _transport.send(msgs, peer); - } else if (dsm != null) { - _transport.send(dsm, peer); - // nuh uh. - if (_log.shouldLog(Log.WARN)) - _log.warn("NOT publishing to the peer after confirm plus delay (WITH banlist): " + (hash != null ? hash.toString() : "unknown")); - } + _transport.send(dbsm, peer); } /** From b2b86b2767d583a86f0c483ce056e5b1ba8b5f85 Mon Sep 17 00:00:00 2001 From: zzz Date: Mon, 4 Nov 2024 12:29:44 -0500 Subject: [PATCH 05/36] SSU2: Detect and drop dup relay messages as Bob More SSU1 code removal (Intro. Mgr.) --- .../transport/udp/IntroductionManager.java | 41 ++++++++++++++++--- 1 file changed, 35 insertions(+), 6 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 97f298266f..9fd8ec5da0 100644 --- a/router/java/src/net/i2p/router/transport/udp/IntroductionManager.java +++ b/router/java/src/net/i2p/router/transport/udp/IntroductionManager.java @@ -28,6 +28,7 @@ import net.i2p.router.RouterContext; import net.i2p.router.transport.TransportUtil; import net.i2p.util.Addresses; +import net.i2p.util.LHMCache; import net.i2p.util.Log; import net.i2p.util.SimpleTimer2; import net.i2p.util.VersionComparator; @@ -92,8 +93,8 @@ class IntroductionManager { private final Map _inbound; /** map of relay nonce to alice PeerState who requested it */ private final ConcurrentHashMap _nonceToAlice; - private final Set _recentHolePunches; - private long _lastHolePunchClean; + private final Map _recentRelaysAsBob; + private static final Object DUMMY = new Object(); /** * Limit since we ping to keep the conn open @@ -122,8 +123,8 @@ public IntroductionManager(RouterContext ctx, UDPTransport transport) { _builder2 = transport.getBuilder2(); _outbound = new ConcurrentHashMap(MAX_OUTBOUND); _inbound = new ConcurrentHashMap(MAX_INBOUND); - _nonceToAlice = (_builder2 != null) ? new ConcurrentHashMap(MAX_INBOUND) : null; - _recentHolePunches = new HashSet(16); + _nonceToAlice = new ConcurrentHashMap(MAX_INBOUND); + _recentRelaysAsBob = new LHMCache(8); ctx.statManager().createRateStat("udp.receiveRelayIntro", "How often we get a relayed request for us to talk to someone?", "udp", UDPTransport.RATES); ctx.statManager().createRateStat("udp.receiveRelayRequest", "How often we receive a good request to relay to someone else?", "udp", UDPTransport.RATES); ctx.statManager().createRateStat("udp.receiveRelayRequestBadTag", "Received relay requests with bad/expired tag", "udp", UDPTransport.RATES); @@ -506,6 +507,21 @@ void receiveRelayRequest(PeerState2 alice, byte[] data) { // add a code for this? rcode = SSU2Util.RELAY_REJECT_BOB_NO_TAG; } else { + Long lnonce = Long.valueOf(nonce); + boolean isDup; + synchronized(_recentRelaysAsBob) { + isDup = _recentRelaysAsBob.put(lnonce, DUMMY) != null; + } + if (isDup) { + // fairly common from i2pd + if (_log.shouldInfo()) + _log.info("Dropping dup relay request from " + alice + + " for tag " + tag + + " nonce " + nonce + + " time " + time + + " and relaying with " + charlie); + return; + } aliceRI = _context.netDb().lookupRouterInfoLocally(alice.getRemotePeer()); if (aliceRI != null) { // validate signed data @@ -513,7 +529,7 @@ void receiveRelayRequest(PeerState2 alice, byte[] data) { if (SSU2Util.validateSig(_context, SSU2Util.RELAY_REQUEST_PROLOGUE, _context.routerHash(), charlie.getRemotePeer(), data, spk)) { // save tag-to-alice mapping so we can forward the reply from charlie - PeerState2 old = _nonceToAlice.putIfAbsent(Long.valueOf(nonce), alice); + PeerState2 old = _nonceToAlice.putIfAbsent(lnonce, alice); if (old != null && !old.equals(alice)) { // dup tag rcode = SSU2Util.RELAY_REJECT_BOB_UNSPEC; @@ -541,6 +557,7 @@ void receiveRelayRequest(PeerState2 alice, byte[] data) { _log.info("Receive relay request from " + alice + " for tag " + tag + " nonce " + nonce + + " time " + time + " and relaying with " + charlie); // put alice hash in intro data @@ -865,7 +882,8 @@ void receiveRelayResponse(PeerState2 peer, int status, byte[] data) { return; } // Look up nonce to determine if we are Alice or Bob - PeerState2 alice = _nonceToAlice.remove(Long.valueOf(nonce)); + Long lnonce = Long.valueOf(nonce); + PeerState2 alice = _nonceToAlice.remove(lnonce); if (alice != null) { // We are Bob, send to Alice // Debug, check the signature, but send it along even if failed @@ -901,6 +919,17 @@ void receiveRelayResponse(PeerState2 peer, int status, byte[] data) { alice.setLastSendTime(now); } catch (IOException ioe) {} } else { + boolean isDup; + synchronized(_recentRelaysAsBob) { + isDup = _recentRelaysAsBob.get(lnonce) != null; + } + if (isDup) { + // very rare + if (_log.shouldInfo()) + _log.info("Dropping dup relay response as bob from charlie " + peer.getRemotePeer() + + " for nonce " + nonce); + return; + } // We are Alice, give to EstablishmentManager to check sig and process if (_log.shouldInfo()) _log.info("Got relay response " + status + " as alice " + " nonce " + nonce + " from " + peer); From 1e5b850a92e29f6b00fea4da8a665842b99acaaa Mon Sep 17 00:00:00 2001 From: zzz Date: Mon, 4 Nov 2024 12:52:29 -0500 Subject: [PATCH 06/36] Console: Increase interval change for larger/smaller interval buttons on /graph --- .../java/src/net/i2p/router/web/helpers/GraphHelper.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/routerconsole/java/src/net/i2p/router/web/helpers/GraphHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/GraphHelper.java index 48b1c731ea..6dfc6b3317 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/helpers/GraphHelper.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/GraphHelper.java @@ -329,13 +329,13 @@ public String getSingleStat() { _out.write("
"); if (_periodCount < MAX_C) { - _out.write(link(_stat, _showEvents, _periodCount * 2, _end, _width, _height)); + _out.write(link(_stat, _showEvents, _periodCount * 3, _end, _width, _height)); _out.write(_t("Larger interval")); _out.write(" - "); } if (_periodCount > MIN_C) { - _out.write(link(_stat, _showEvents, _periodCount / 2, _end, _width, _height)); + _out.write(link(_stat, _showEvents, _periodCount / 3, _end, _width, _height)); _out.write(_t("Smaller interval")); _out.write(""); } From 0e2a88ac160dacb1debc16fd786d0879e56918e3 Mon Sep 17 00:00:00 2001 From: zzz Date: Mon, 4 Nov 2024 12:57:57 -0500 Subject: [PATCH 07/36] blocklist update --- installer/resources/blocklist.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/installer/resources/blocklist.txt b/installer/resources/blocklist.txt index 06a623675f..06da427b0f 100644 --- a/installer/resources/blocklist.txt +++ b/installer/resources/blocklist.txt @@ -222,6 +222,7 @@ i1Viub4WK3l-6KbZHifQCY9aGwhU8JG3u5gg5fVJWlM= nA-DRzbe33yVHcvITENBWKJ~yVVie6hngoQbB~MoYH0= jDFMFtR3wmtuixX0LajCoW1Ko-fSU8sWTtkuqKM9ti8= nRTKhTmfXEmpLGe7QmpEPOZr6C3SpX0ke~sgqcX8axA= +3lgHIOIADdUIoyJjWymzE1Xikx7RojrEBfYT6P7eLzk= 3.225.127.222 3.234.89.179 5.250.198.133 From 29d131827af182ed7803d5914f9f06ca1589e558 Mon Sep 17 00:00:00 2001 From: zzz Date: Mon, 4 Nov 2024 13:07:08 -0500 Subject: [PATCH 08/36] NetDB: Use new isNewer() method for LS comparison in another spot --- .../net/i2p/router/networkdb/kademlia/RepublishLeaseSetJob.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/router/java/src/net/i2p/router/networkdb/kademlia/RepublishLeaseSetJob.java b/router/java/src/net/i2p/router/networkdb/kademlia/RepublishLeaseSetJob.java index 04879b04ad..123f552a1d 100644 --- a/router/java/src/net/i2p/router/networkdb/kademlia/RepublishLeaseSetJob.java +++ b/router/java/src/net/i2p/router/networkdb/kademlia/RepublishLeaseSetJob.java @@ -102,7 +102,7 @@ public OnRepublishFailure(LeaseSet ls) { public void runJob() { // Don't requeue if there's a newer LS, KNDF will have already done that LeaseSet ls = _facade.lookupLeaseSetLocally(_ls.getHash()); - if (ls != null && ls.getEarliestLeaseDate() == _ls.getEarliestLeaseDate()) { + if (ls != null && !KademliaNetworkDatabaseFacade.isNewer(ls, _ls)) { requeueRepublish(); } else { if (_log.shouldWarn()) From c7d15eb6d144f55b16785cab59a64a6d6647f96c Mon Sep 17 00:00:00 2001 From: zzz Date: Thu, 7 Nov 2024 11:14:01 -0500 Subject: [PATCH 09/36] Crypto: ChaChaCore microoptimizations and some indent fixes --- .../noise/crypto/chacha20/ChaChaCore.java | 47 +++++++++---------- 1 file changed, 23 insertions(+), 24 deletions(-) diff --git a/core/java/src/com/southernstorm/noise/crypto/chacha20/ChaChaCore.java b/core/java/src/com/southernstorm/noise/crypto/chacha20/ChaChaCore.java index 686380a0ec..aca2a3d9c0 100644 --- a/core/java/src/com/southernstorm/noise/crypto/chacha20/ChaChaCore.java +++ b/core/java/src/com/southernstorm/noise/crypto/chacha20/ChaChaCore.java @@ -51,22 +51,23 @@ public static void hash(int[] output, int[] input) // Perform the 20 ChaCha rounds in groups of two. for (index = 0; index < 20; index += 2) { - // Column round. - quarterRound(output, 0, 4, 8, 12); - quarterRound(output, 1, 5, 9, 13); - quarterRound(output, 2, 6, 10, 14); - quarterRound(output, 3, 7, 11, 15); - - // Diagonal round. - quarterRound(output, 0, 5, 10, 15); - quarterRound(output, 1, 6, 11, 12); - quarterRound(output, 2, 7, 8, 13); - quarterRound(output, 3, 4, 9, 14); + // Column round. + quarterRound(output, 0, 4, 8, 12); + quarterRound(output, 1, 5, 9, 13); + quarterRound(output, 2, 6, 10, 14); + quarterRound(output, 3, 7, 11, 15); + + // Diagonal round. + quarterRound(output, 0, 5, 10, 15); + quarterRound(output, 1, 6, 11, 12); + quarterRound(output, 2, 7, 8, 13); + quarterRound(output, 3, 4, 9, 14); } // Add the input block to the output. - for (index = 0; index < 16; ++index) + for (index = 0; index < 16; ++index) { output[index] += input[index]; + } } private static int char4(char c1, char c2, char c3, char c4) @@ -124,7 +125,7 @@ public static void initIV(int[] output, long iv) output[14] = (int)iv; output[15] = (int)(iv >> 32); } - + /** * Initializes the 64-bit initialization vector and counter in a ChaCha20 block. * @@ -192,23 +193,21 @@ public static void xorBlock(byte[] input, int inputOffset, byte[] output, int ou int value; while (length >= 4) { value = block[posn++]; - output[outputOffset] = (byte)(input[inputOffset] ^ value); - output[outputOffset + 1] = (byte)(input[inputOffset + 1] ^ (value >> 8)); - output[outputOffset + 2] = (byte)(input[inputOffset + 2] ^ (value >> 16)); - output[outputOffset + 3] = (byte)(input[inputOffset + 3] ^ (value >> 24)); - inputOffset += 4; - outputOffset += 4; + output[outputOffset++] = (byte)(input[inputOffset++] ^ value); + output[outputOffset++] = (byte)(input[inputOffset++] ^ (value >> 8)); + output[outputOffset++] = (byte)(input[inputOffset++] ^ (value >> 16)); + output[outputOffset++] = (byte)(input[inputOffset++] ^ (value >> 24)); length -= 4; } if (length == 3) { value = block[posn]; - output[outputOffset] = (byte)(input[inputOffset] ^ value); - output[outputOffset + 1] = (byte)(input[inputOffset + 1] ^ (value >> 8)); - output[outputOffset + 2] = (byte)(input[inputOffset + 2] ^ (value >> 16)); + output[outputOffset++] = (byte)(input[inputOffset++] ^ value); + output[outputOffset++] = (byte)(input[inputOffset++] ^ (value >> 8)); + output[outputOffset] = (byte)(input[inputOffset] ^ (value >> 16)); } else if (length == 2) { value = block[posn]; - output[outputOffset] = (byte)(input[inputOffset] ^ value); - output[outputOffset + 1] = (byte)(input[inputOffset + 1] ^ (value >> 8)); + output[outputOffset++] = (byte)(input[inputOffset++] ^ value); + output[outputOffset] = (byte)(input[inputOffset] ^ (value >> 8)); } else if (length == 1) { value = block[posn]; output[outputOffset] = (byte)(input[inputOffset] ^ value); From a2f31c5b5576078fe7d706ff4e0e05096faac641 Mon Sep 17 00:00:00 2001 From: zzz Date: Thu, 7 Nov 2024 13:18:51 -0500 Subject: [PATCH 10/36] Crypto: Add commented-out ChaCha20 JCE test JCE is not faster than Noise version for our typical data sizes, but adding the code so it may be retested or improved in the future. --- core/java/src/net/i2p/crypto/ChaCha20.java | 191 ++++++++++++++++++++- 1 file changed, 190 insertions(+), 1 deletion(-) diff --git a/core/java/src/net/i2p/crypto/ChaCha20.java b/core/java/src/net/i2p/crypto/ChaCha20.java index fc2bcd60b4..5e05d66f51 100644 --- a/core/java/src/net/i2p/crypto/ChaCha20.java +++ b/core/java/src/net/i2p/crypto/ChaCha20.java @@ -24,6 +24,16 @@ * DEALINGS IN THE SOFTWARE. */ +/* +import java.lang.reflect.Constructor; +import java.security.spec.AlgorithmParameterSpec; +import javax.crypto.spec.SecretKeySpec; +import javax.crypto.Cipher; +import freenet.support.CPUInformation.CPUID; +import freenet.support.CPUInformation.CPUInfo; +import net.i2p.util.SystemVersion; +*/ + import com.southernstorm.noise.crypto.chacha20.ChaChaCore; import net.i2p.data.DataHelper; @@ -36,6 +46,7 @@ */ public final class ChaCha20 { + private ChaCha20() {} /** @@ -60,6 +71,29 @@ public static void encrypt(byte[] key, byte[] iv, public static void encrypt(byte[] key, byte[] iv, int ivOffset, byte[] plaintext, int plaintextOffset, byte[] ciphertext, int ciphertextOffset, int length) { +/* + if (USE_SYSTEM_CHACHA && !_systemFailed && length >= MIN_LEN_FOR_SYSTEM) { + try { + if (ivOffset != 0 || iv.length != 12) { + byte[] niv = new byte[12]; + System.arraycopy(iv, ivOffset, niv, 0, 12); + iv = niv; + } + AlgorithmParameterSpec spec = (AlgorithmParameterSpec) _speccon.newInstance(iv, 1); + SecretKeySpec jkey = new SecretKeySpec(key, 0, 32, "ChaCha20"); + // TODO This is probably the slow part, maybe cache some Ciphers + Cipher c = Cipher.getInstance("ChaCha20"); + c.init(Cipher.ENCRYPT_MODE, jkey, spec); + c.doFinal(plaintext, plaintextOffset, length, ciphertext, ciphertextOffset); + return; + } catch (Exception e) { + System.out.println("System ChaCha failure"); + e.printStackTrace(); + _systemFailed = true; + } + } +*/ + int[] input = new int[16]; int[] output = new int[16]; ChaChaCore.initKey256(input, key, 0); @@ -126,8 +160,71 @@ public static void decrypt(byte[] key, byte[] iv, int ivOffset, encrypt(key, iv, ivOffset, ciphertext, ciphertextOffset, plaintext, plaintextOffset, length); } +/* + private static final boolean USE_SYSTEM_CHACHA = useSystemChaCha(); + private static final boolean USE_AVX_CHACHA = useAVXChaCha(); + private static final int MIN_LEN_FOR_SYSTEM = USE_SYSTEM_CHACHA ? (USE_AVX_CHACHA ? 1280 : 2500) : 0; + private static final Constructor _speccon; + private static boolean _systemFailed; +*/ + + /** + * Requires Java 11 and JCE support. + * @since 0.9.xx + */ +/* + private static boolean useSystemChaCha() { + if (SystemVersion.isJava11() && !SystemVersion.isAndroid() && + !SystemVersion.isApache() && !SystemVersion.isGNU()) { + try { + Cipher.getInstance("ChaCha20"); + Class.forName("javax.crypto.spec.ChaCha20ParameterSpec", false, ClassLoader.getSystemClassLoader()); + return true; + } catch (Exception e) {} + } + return false; + } +*/ + + /** + * Requires Java 20, 64 bit, x86/ARM, AVX, and JCE support. + * Ref: https://bugs.openjdk.org/browse/JDK-8247645 + * @since 0.9.xx + */ +/* + private static boolean useAVXChaCha() { + if (USE_SYSTEM_CHACHA && + SystemVersion.isX86() && SystemVersion.is64Bit() && SystemVersion.isJava(20)) { + try { + return SystemVersion.isARM() || CPUID.getInfo().hasAVX(); + } catch (Exception e) {} + } + return false; + } + + static { + Constructor con = null; + if (USE_SYSTEM_CHACHA) { + try { + Class cl = Class.forName("javax.crypto.spec.ChaCha20ParameterSpec", true, ClassLoader.getSystemClassLoader()); + con = cl.getConstructor(byte[].class, int.class); + } catch (Exception e) { + System.out.println("System ChaCha failure"); + e.printStackTrace(); + _systemFailed = true; + } + } + _speccon = con; + } +*/ + /** + * 97% of calls are 1024 bytes or less + * JCE is slower or the same for smaller sizes, even with AVX/AVX2. + * Even for larger sizes, the improvement is modest. + * AVX512 untested. + */ /**** - public static void main(String[] args) { + public static void main(String[] args) throws Exception { // vectors as in RFC 7539 byte[] plaintext = DataHelper.getASCII("Ladies and Gentlemen of the class of '99: If I could offer you only one tip for the future, sunscreen would be it."); byte[] key = new byte[32]; @@ -151,6 +248,98 @@ public static void main(String[] args) { byte[] out2 = new byte[plaintext.length]; decrypt(key, iv, out, 0, out2, 0, plaintext.length); System.out.println("Plaintext:\n" + net.i2p.util.HexDump.dump(out2)); + + if (USE_SYSTEM_CHACHA) { + // results may change in later JVMs if this is implemented: + // https://bugs.openjdk.org/browse/JDK-8302007 + boolean HAS_AVX = false; + boolean HAS_AVX2 = false; + boolean HAS_AVX512 = false; + try { + CPUInfo info = CPUID.getInfo(); + HAS_AVX = info.hasAVX(); + HAS_AVX2 = info.hasAVX2(); + HAS_AVX512 = HAS_AVX2 && info.hasAVX512(); + } catch (Exception e) {} + System.out.println("Java: " + System.getProperty("java.version")); + System.out.println("Has AVX? " + HAS_AVX); + System.out.println("Has AVX2? " + HAS_AVX2); + System.out.println("Has AVX512? " + HAS_AVX512); + Cipher c = Cipher.getInstance("ChaCha20"); + AlgorithmParameterSpec spec = (AlgorithmParameterSpec) _speccon.newInstance(iv, 1); + SecretKeySpec jkey = new SecretKeySpec(key, "ChaCha20"); + c.init(Cipher.ENCRYPT_MODE, jkey, spec); + out = c.doFinal(plaintext); + System.out.println("Ciphertext:\n" + net.i2p.util.HexDump.dump(out)); + c = Cipher.getInstance("ChaCha20"); + c.init(Cipher.DECRYPT_MODE, jkey, spec); + out2 = c.doFinal(out); + System.out.println("Plaintext:\n" + net.i2p.util.HexDump.dump(out2)); + + System.out.println("JCE w/Poly1305 version"); + c = Cipher.getInstance("ChaCha20-Poly1305"); + javax.crypto.spec.IvParameterSpec ispec = new javax.crypto.spec.IvParameterSpec(iv); + c.init(Cipher.ENCRYPT_MODE, jkey, ispec); + out = c.doFinal(plaintext); + System.out.println("Ciphertext:\n" + net.i2p.util.HexDump.dump(out)); + c = Cipher.getInstance("ChaCha20-Poly1305"); + c.init(Cipher.DECRYPT_MODE, jkey, ispec); + out2 = c.doFinal(out); + System.out.println("Plaintext:\n" + net.i2p.util.HexDump.dump(out2)); + } else { + System.out.println("JCE version not available, not testing"); + } + + System.out.println("Warmup"); + test(128, 1000); + try { Thread.sleep(1000); } catch (InterruptedException ie) {} + System.out.println("\nSpeed test"); + int runs = 10000; + // for some reason the second time through gives much faster results + for (int i = 0; i < 2; i++) { + test(128, runs); + test(1024, runs); + test(1280, runs); + test(1536, runs); + test(2048, runs); + test(2560, runs); + test(3072, runs); + test(4096, runs); + test(8192, runs); + System.out.println(); + } + } + + private static void test(int sz, int runs) throws Exception { + System.out.println("Testing " + sz + " bytes " + runs + " runs:"); + byte[] b = new byte[sz]; + net.i2p.util.RandomSource.getInstance().nextBytes(b); + byte[] key = new byte[32]; + for (int i = 0; i < 32; i++) { + key[i] = (byte) i; + } + byte[] iv = new byte[12]; + iv[7] = 0x4a; + long t = System.currentTimeMillis(); + for (int i = 0; i < runs; i++) { + encrypt(key, iv, b, 0, b, 0, sz); + } + t = System.currentTimeMillis() - t; + System.out.println("Noise took " + t); + long noise = t; + + if (USE_SYSTEM_CHACHA) { + t = System.currentTimeMillis(); + for (int i = 0; i < runs; i++) { + Cipher c = Cipher.getInstance("ChaCha20"); + AlgorithmParameterSpec spec = (AlgorithmParameterSpec) _speccon.newInstance(iv, 1); + SecretKeySpec jkey = new SecretKeySpec(key, "ChaCha20"); + c.init(javax.crypto.Cipher.ENCRYPT_MODE, jkey, spec); + b = c.doFinal(b); + } + t = System.currentTimeMillis() - t; + System.out.println("JCE took " + t); + } } private static void dumpBlock(int[] b) { From 45f81ede6d77905579f3b1181508e48a54f6af84 Mon Sep 17 00:00:00 2001 From: zzz Date: Thu, 7 Nov 2024 14:07:55 -0500 Subject: [PATCH 11/36] more notes on testing --- core/java/src/net/i2p/crypto/ChaCha20.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/core/java/src/net/i2p/crypto/ChaCha20.java b/core/java/src/net/i2p/crypto/ChaCha20.java index 5e05d66f51..bee94c93f3 100644 --- a/core/java/src/net/i2p/crypto/ChaCha20.java +++ b/core/java/src/net/i2p/crypto/ChaCha20.java @@ -72,7 +72,9 @@ public static void encrypt(byte[] key, byte[] iv, int ivOffset, byte[] plaintext, int plaintextOffset, byte[] ciphertext, int ciphertextOffset, int length) { /* - if (USE_SYSTEM_CHACHA && !_systemFailed && length >= MIN_LEN_FOR_SYSTEM) { + //if (USE_SYSTEM_CHACHA && !_systemFailed && length >= MIN_LEN_FOR_SYSTEM) { + // testing + if (USE_SYSTEM_CHACHA && !_systemFailed) { try { if (ivOffset != 0 || iv.length != 12) { byte[] niv = new byte[12]; From bc5ca787945e4a0f810d57a201b0cf72918a9850 Mon Sep 17 00:00:00 2001 From: zzz Date: Fri, 8 Nov 2024 13:03:05 +0000 Subject: [PATCH 12/36] SSU2: Don't send separate ack for relay intro, --- .../transport/udp/EstablishmentManager.java | 2 +- .../transport/udp/IntroductionManager.java | 94 +++++++------------ .../i2p/router/transport/udp/PeerState2.java | 7 +- 3 files changed, 38 insertions(+), 65 deletions(-) diff --git a/router/java/src/net/i2p/router/transport/udp/EstablishmentManager.java b/router/java/src/net/i2p/router/transport/udp/EstablishmentManager.java index 8da826b9e8..069ef4f99c 100644 --- a/router/java/src/net/i2p/router/transport/udp/EstablishmentManager.java +++ b/router/java/src/net/i2p/router/transport/udp/EstablishmentManager.java @@ -1502,7 +1502,7 @@ void receiveRelayResponse(PeerState2 bob, long nonce, int code, byte[] data) { if (charlie == null) { if (_log.shouldDebug()) _log.debug("Dup or unknown RelayResponse: " + nonce); - return; // already established + return; // already established, or we were Bob and got a dup from Charlie } if (charlie.getVersion() != 2) return; 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 97f298266f..b470dda03e 100644 --- a/router/java/src/net/i2p/router/transport/udp/IntroductionManager.java +++ b/router/java/src/net/i2p/router/transport/udp/IntroductionManager.java @@ -34,52 +34,7 @@ /** * Keep track of inbound and outbound introductions. - * - * IPv6 info: Alice-Bob communication may be via IPv4 or IPv6. - * Bob-Charlie communication must be via established IPv4 session as that's the only way - * that Bob knows Charlie's IPv4 address to give it to Alice. - * Alice-Charlie communication is via IPv4. - * If Alice-Bob is over IPv6, Alice must include her IPv4 address in - * the RelayRequest message. - * - * From udp.html on the website: - -

Indirect session establishment by means of a third party introduction -is necessary for efficient NAT traversal. Charlie, a router behind a -NAT or firewall which does not allow unsolicited inbound UDP packets, -first contacts a few peers, choosing some to serve as introducers. Each -of these peers (Bob, Bill, Betty, etc) provide Charlie with an introduction -tag - a 4 byte random number - which he then makes available to the public -as methods of contacting him. Alice, a router who has Charlie's published -contact methods, first sends a RelayRequest packet to one or more of the -introducers, asking each to introduce her to Charlie (offering the -introduction tag to identify Charlie). Bob then forwards a RelayIntro -packet to Charlie including Alice's public IP and port number, then sends -Alice back a RelayResponse packet containing Charlie's public IP and port -number. When Charlie receives the RelayIntro packet, he sends off a small -random packet to Alice's IP and port (poking a hole in his NAT/firewall), -and when Alice receives Bob's RelayResponse packet, she begins a new -full direction session establishment with the specified IP and port.

-

-Alice first connects to introducer Bob, who relays the request to Charlie. -

-
-        Alice                         Bob                  Charlie
-    RelayRequest ---------------------->
-         <-------------- RelayResponse    RelayIntro ----------->
-         <-------------------------------------------- HolePunch (data ignored)
-    SessionRequest -------------------------------------------->
-         <-------------------------------------------- SessionCreated
-    SessionConfirmed ------------------------------------------>
-         <-------------------------------------------- DeliveryStatusMessage
-         <-------------------------------------------- DatabaseStoreMessage
-    DatabaseStoreMessage -------------------------------------->
-    Data <--------------------------------------------------> Data
-
- -

-After the hole punch, the session is established between Alice and Charlie as in a direct establishment. -

+ * See http://i2p-projekt.i2p/spec/ssu2 for documentation. */ class IntroductionManager { private final RouterContext _context; @@ -115,6 +70,12 @@ class IntroductionManager { private static final String MIN_IPV6_INTRODUCER_VERSION = "0.9.50"; private static final long MAX_SKEW = 2*60*1000; + /** + * See receiveRelayIntro() + * @since 0.9.65 + */ + public enum RelayIntroResult { REPLIED, DELAYED, DROPPED } + public IntroductionManager(RouterContext ctx, UDPTransport transport) { _context = ctx; _log = ctx.logManager().getLog(IntroductionManager.class); @@ -615,10 +576,16 @@ void receiveRelayRequest(PeerState2 alice, byte[] data) { * * SSU 2 only. * + * @return DELAYED if awaiting Alice RI, DROPPED on fatal error, or REPLIED if we replied to Bob with a RelayResponse * @since 0.9.55 */ - void receiveRelayIntro(PeerState2 bob, Hash alice, byte[] data) { - receiveRelayIntro(bob, alice, data, 0); + RelayIntroResult receiveRelayIntro(PeerState2 bob, Hash alice, byte[] data) { + RelayIntroResult rv = receiveRelayIntro(bob, alice, data, 0); + if (_log.shouldInfo()) + _log.info("Receive relay intro from bob " + bob + + " for alice " + alice.toBase64() + + " result " + rv); + return rv; } /** @@ -630,10 +597,10 @@ void receiveRelayIntro(PeerState2 bob, Hash alice, byte[] data) { * * SSU 2 only. * - * @return true if RI found, false to delay and retry. + * @return DELAYED if should retry (no RI), DROPPED on fatal error, or REPLIED if we replied to Bob with a RelayResponse * @since 0.9.55 */ - private boolean receiveRelayIntro(PeerState2 bob, Hash alice, byte[] data, int retryCount) { + private RelayIntroResult receiveRelayIntro(PeerState2 bob, Hash alice, byte[] data, int retryCount) { RouterInfo aliceRI = null; if (retryCount >= 5) { // last chance @@ -645,11 +612,11 @@ private boolean receiveRelayIntro(PeerState2 bob, Hash alice, byte[] data, int r _log.info("Delay after " + retryCount + " retries, no RI for " + alice.toBase64()); if (retryCount == 0) new DelayIntro(bob, alice, data); - return false; + return RelayIntroResult.DELAYED; } } - receiveRelayIntro(bob, alice, data, aliceRI); - return true; + boolean rv = receiveRelayIntro(bob, alice, data, aliceRI); + return rv ? RelayIntroResult.REPLIED : RelayIntroResult.DROPPED; } /** @@ -672,8 +639,8 @@ public DelayIntro(PeerState2 b, Hash a, byte[] d) { } public void timeReached() { - boolean ok = receiveRelayIntro(bob, alice, data, ++count); - if (!ok) + RelayIntroResult result = receiveRelayIntro(bob, alice, data, ++count); + if (result == RelayIntroResult.DELAYED) reschedule(DELAY << count); } } @@ -705,9 +672,11 @@ public void timeReached() { * * SSU 2 only. * + * @return true if we replied with a relay response, false if we dropped it; + * this does not indicate a successful response code * @since 0.9.55 */ - private void receiveRelayIntro(PeerState2 bob, Hash alice, byte[] data, RouterInfo aliceRI) { + private boolean receiveRelayIntro(PeerState2 bob, Hash alice, byte[] data, RouterInfo aliceRI) { long nonce = DataHelper.fromLong(data, 0, 4); long tag = DataHelper.fromLong(data, 4, 4); long time = DataHelper.fromLong(data, 8, 4) * 1000; @@ -716,19 +685,19 @@ private void receiveRelayIntro(PeerState2 bob, Hash alice, byte[] data, RouterIn if (skew > MAX_SKEW || skew < 0 - MAX_SKEW) { if (_log.shouldWarn()) _log.warn("Too skewed for relay intro from " + bob); - return; + return false; } int ver = data[12] & 0xff; if (ver != 2) { if (_log.shouldWarn()) _log.warn("Bad relay intro version " + ver + " from " + bob); - return; + return false; } int iplen = data[13] & 0xff; if (iplen != 6 && iplen != 18) { if (_log.shouldWarn()) _log.warn("Bad IP length " + iplen + " from " + bob); - return; + return false; } boolean isIPv6 = iplen == 18; int testPort = (int) DataHelper.fromLong(data, 14, 2); @@ -738,7 +707,7 @@ private void receiveRelayIntro(PeerState2 bob, Hash alice, byte[] data, RouterIn try { aliceIP = InetAddress.getByAddress(testIP); } catch (UnknownHostException uhe) { - return; + return false; } SessionKey aliceIntroKey = null; @@ -811,7 +780,7 @@ private void receiveRelayIntro(PeerState2 bob, Hash alice, byte[] data, RouterIn if (data == null) { if (_log.shouldWarn()) _log.warn("sig fail"); - return; + return false; } try { UDPPacket packet = _builder2.buildRelayResponse(data, bob); @@ -822,7 +791,7 @@ private void receiveRelayIntro(PeerState2 bob, Hash alice, byte[] data, RouterIn _transport.send(packet); bob.setLastSendTime(now); } catch (IOException ioe) { - return; + return false; } if (rcode == SSU2Util.RELAY_ACCEPT) { // send hole punch with the same data we sent to Bob @@ -833,6 +802,7 @@ private void receiveRelayIntro(PeerState2 bob, Hash alice, byte[] data, RouterIn UDPPacket packet = _builder2.buildHolePunch(aliceIP, testPort, aliceIntroKey, sendId, rcvId, data); _transport.send(packet); } + return true; } /** diff --git a/router/java/src/net/i2p/router/transport/udp/PeerState2.java b/router/java/src/net/i2p/router/transport/udp/PeerState2.java index f32a62bcc2..ad3b60191c 100644 --- a/router/java/src/net/i2p/router/transport/udp/PeerState2.java +++ b/router/java/src/net/i2p/router/transport/udp/PeerState2.java @@ -719,9 +719,12 @@ public void gotRelayResponse(int status, byte[] data) { } public void gotRelayIntro(Hash aliceHash, byte[] data) { - _transport.getIntroManager().receiveRelayIntro(this, aliceHash, data); + IntroductionManager.RelayIntroResult result = _transport.getIntroManager().receiveRelayIntro(this, aliceHash, data); // Relay blocks are ACK-eliciting - messagePartiallyReceived(); + // but we will usually respond to Bob immediately with a relay response, which includes the ack, + // so only schedule an ack if we didn't respond + if (result != IntroductionManager.RelayIntroResult.REPLIED) + messagePartiallyReceived(); } public void gotPeerTest(int msg, int status, Hash h, byte[] data) { From b57afabc13bb1fe557eae5f4a68094e4e72c07f8 Mon Sep 17 00:00:00 2001 From: zzz Date: Thu, 14 Nov 2024 07:31:39 -0500 Subject: [PATCH 13/36] Router: Change cap for sym. nat, for now --- router/java/src/net/i2p/router/Router.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/router/java/src/net/i2p/router/Router.java b/router/java/src/net/i2p/router/Router.java index 0fd3d01690..0032e0c9db 100644 --- a/router/java/src/net/i2p/router/Router.java +++ b/router/java/src/net/i2p/router/Router.java @@ -1239,7 +1239,8 @@ public String getCapabilities() { char cong = 0; int maxTunnels = _context.getProperty(RouterThrottleImpl.PROP_MAX_TUNNELS, RouterThrottleImpl.DEFAULT_MAX_TUNNELS); if (forceG || maxTunnels <= 0) { - cong = CAPABILITY_NO_TUNNELS; + //cong = CAPABILITY_NO_TUNNELS; + cong = CAPABILITY_CONGESTION_SEVERE; } else if (maxTunnels <= 50 || SystemVersion.isSlow()) { cong = CAPABILITY_CONGESTION_MODERATE; } else { @@ -1261,7 +1262,8 @@ public String getCapabilities() { Math.min(_context.bandwidthLimiter().getInboundKBytesPerSecond(), _context.bandwidthLimiter().getOutboundKBytesPerSecond()); if (bwLim < 4*1024) { - cong = CAPABILITY_NO_TUNNELS; + //cong = CAPABILITY_NO_TUNNELS; + cong = CAPABILITY_CONGESTION_SEVERE; } else { RateStat rs = _context.statManager().getRate("tunnel.participatingMessageCountAvgPerTunnel"); double messagesPerTunnel = 0; From 4da55dd3ab614cc16a17e2997a09bcf5d0962395 Mon Sep 17 00:00:00 2001 From: zzz Date: Thu, 14 Nov 2024 07:39:24 -0500 Subject: [PATCH 14/36] bump -2 --- history.txt | 17 +++++++++++++++++ .../java/src/net/i2p/router/RouterVersion.java | 2 +- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/history.txt b/history.txt index 10ce93585b..4c82de21a8 100644 --- a/history.txt +++ b/history.txt @@ -1,3 +1,20 @@ +2024-11-14 zzz + * Router: Change cap for sym. nat + +2024-11-08 zzz + * SSU2: Don't send separate ack for relay intro (Gitlab MR #220) + +2024-11-04 zzz + * Console: Increase interval change for larger/smaller interval buttons on /graph + * Router: Periodically recheck family of negative cached RIs + * SSU2: + - Detect and drop dup relay messages as Bob + - More SSU1 code removal + +2024-11-02 zzz + * Console: remove dark theme override of router log colors + * SSU2: Hopefully fix rare deadlock + 2024-10-22 zzz * Console: Merge in more upstream rrd4j changes for 3.10 diff --git a/router/java/src/net/i2p/router/RouterVersion.java b/router/java/src/net/i2p/router/RouterVersion.java index f3f107529a..14ca763aef 100644 --- a/router/java/src/net/i2p/router/RouterVersion.java +++ b/router/java/src/net/i2p/router/RouterVersion.java @@ -20,7 +20,7 @@ public class RouterVersion { public final static String VERSION = CoreVersion.VERSION; /** for example: "beta", "alpha", "rc" */ public final static String QUALIFIER = ""; - public final static long BUILD = 1; + public final static long BUILD = 2; /** for example "-test" */ public final static String EXTRA = ""; public final static String FULL_VERSION = VERSION + "-" + BUILD + QUALIFIER + EXTRA; From 5c28c7f0a40af26b3bf4c44ca473433f2e2e4a46 Mon Sep 17 00:00:00 2001 From: zzz Date: Sun, 17 Nov 2024 07:11:28 -0500 Subject: [PATCH 15/36] Streaming: Reduce batch delay unless slow --- .../net/i2p/client/streaming/impl/MessageOutputStream.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/apps/streaming/java/src/net/i2p/client/streaming/impl/MessageOutputStream.java b/apps/streaming/java/src/net/i2p/client/streaming/impl/MessageOutputStream.java index 0cd02b6e05..f66a03cfbd 100644 --- a/apps/streaming/java/src/net/i2p/client/streaming/impl/MessageOutputStream.java +++ b/apps/streaming/java/src/net/i2p/client/streaming/impl/MessageOutputStream.java @@ -11,6 +11,7 @@ import net.i2p.util.ByteCache; import net.i2p.util.Log; import net.i2p.util.SimpleTimer2; +import net.i2p.util.SystemVersion; /** * A stream that we can shove data into that fires off those bytes @@ -50,9 +51,9 @@ class MessageOutputStream extends OutputStream { /** * Since this is less than i2ptunnel's i2p.streaming.connectDelay default of 1000, - * we only wait 250 at the start. Guess that's ok, 1000 is too long anyway. + * we only wait this long at the start. Guess that's ok, 1000 is too long anyway. */ - private static final int DEFAULT_PASSIVE_FLUSH_DELAY = 175; + private static final int DEFAULT_PASSIVE_FLUSH_DELAY = SystemVersion.isSlow() ? 175 : 100; /**** public MessageOutputStream(I2PAppContext ctx, DataReceiver receiver) { From 62f750062dba891bf7bccb2d618b83d94bf15d55 Mon Sep 17 00:00:00 2001 From: zzz Date: Sun, 17 Nov 2024 09:51:59 -0500 Subject: [PATCH 16/36] Profiles: Extend time to treat E routers as severely congested --- .../src/net/i2p/router/peermanager/CapacityCalculator.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/router/java/src/net/i2p/router/peermanager/CapacityCalculator.java b/router/java/src/net/i2p/router/peermanager/CapacityCalculator.java index f0e45db103..5b7cb070cc 100644 --- a/router/java/src/net/i2p/router/peermanager/CapacityCalculator.java +++ b/router/java/src/net/i2p/router/peermanager/CapacityCalculator.java @@ -152,9 +152,9 @@ public static double calc(PeerProfile profile) { capacity -= PENALTY_CAP_E; } } else { - // treat older than 15 minutes as D, as recommended in proposal 162 + // treat older than a few minutes as D, as recommended in proposal 162 long age = context.clock().now() - ri.getPublished(); - if (age < 15*60*1000) + if (age < 30*60*1000) capacity -= PENALTY_CAP_E; else capacity -= PENALTY_CAP_D; From 30a3806da812d740acf166b8353eeefc7dd510d3 Mon Sep 17 00:00:00 2001 From: zzz Date: Wed, 20 Nov 2024 08:59:27 -0500 Subject: [PATCH 17/36] i2psnark: Recognize EepTorrent client --- apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java b/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java index 3492d9d42e..f802a8fb52 100644 --- a/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java +++ b/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java @@ -2206,6 +2206,8 @@ else if ("LVhE".equals(ch)) client = "Transmission"; else if ("LUtU".equals(ch)) client = "KTorrent"; + else if ("LUVU".equals(ch)) // ET + client = "EepTorrent"; // libtorrent and downstreams // https://www.libtorrent.org/projects.html else if ("LURF".equals(ch)) // DL From a9b9a4c404b76932090da7b2161e76ee9a30752a Mon Sep 17 00:00:00 2001 From: idk Date: Tue, 26 Nov 2024 13:28:45 +0000 Subject: [PATCH 18/36] I2p.i2p.2.8.0 fix lease set display regressions --- .../java/src/net/i2p/router/web/helpers/NetDbRenderer.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/apps/routerconsole/java/src/net/i2p/router/web/helpers/NetDbRenderer.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/NetDbRenderer.java index ab281e3c33..371ab50b28 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/helpers/NetDbRenderer.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/NetDbRenderer.java @@ -775,8 +775,6 @@ public void renderLeaseSetHTML(Writer out, boolean debug, Hash client) throws IO buf.append("\n"); } buf.append("Total Known Remote Leasesets:").append(leases.size()-1).append("\n"); - buf.append("\n" + - "\n"); } else { buf.append("Leaseset Summary for Floodfill" + "[") From fed7cacdab9a99b3c93d45f64919469cc823460b Mon Sep 17 00:00:00 2001 From: zzz Date: Tue, 26 Nov 2024 09:42:36 -0500 Subject: [PATCH 19/36] Console: Move jar dump link from summary bar to debug page tab --- .../web/helpers/SummaryBarRenderer.java | 2 ++ apps/routerconsole/jsp/debug.jsp | 8 ++++++++ apps/routerconsole/jsp/jars.jsp | 19 +++++-------------- 3 files changed, 15 insertions(+), 14 deletions(-) diff --git a/apps/routerconsole/java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java index 5cc38dea1c..523c77ecd0 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java @@ -531,6 +531,7 @@ public String renderAdvancedHTML() { .append("\n"); svcs.put(tx, rbuf.toString()); +/* moved to /debug tab tx = _t("Jars"); rbuf.setLength(0); rbuf.append("\n"); svcs.put(tx, rbuf.toString()); +*/ File javadoc = new File(_context.getBaseDir(), "docs/javadoc/index.html"); if (javadoc.exists()) { diff --git a/apps/routerconsole/jsp/debug.jsp b/apps/routerconsole/jsp/debug.jsp index f6e7a52cb5..68849e8d27 100644 --- a/apps/routerconsole/jsp/debug.jsp +++ b/apps/routerconsole/jsp/debug.jsp @@ -23,6 +23,7 @@ Client Session Key Managers Router DHT Translation Status +Jars <% @@ -138,6 +139,13 @@ if (dd == null || dd.equals("0")) { if (br != null) try { br.close(); } catch (java.io.IOException ioe) {} } } +} else if (dd.equals("7")) { +%> +

Jar File Dump

+ + + +<% } %> diff --git a/apps/routerconsole/jsp/jars.jsp b/apps/routerconsole/jsp/jars.jsp index e5379bd0c2..e7b233f26f 100644 --- a/apps/routerconsole/jsp/jars.jsp +++ b/apps/routerconsole/jsp/jars.jsp @@ -1,14 +1,5 @@ -<%@page contentType="text/html"%> -<%@page pageEncoding="UTF-8"%> - - -<%@include file="css.jsi" %> -<%=intl.title("Jar File Dump")%> -<%@include file="summaryajax.jsi" %> - -<%@include file="summary.jsi" %>

Jar File Dump

-
- - - -
+<% + // moved to a debug page tab + response.setStatus(301); + response.setHeader("Location", "/debug?d=7"); +%> From ae84bf402121333a94f613fc17efadd74ec9d6a4 Mon Sep 17 00:00:00 2001 From: zzz Date: Tue, 26 Nov 2024 10:17:04 -0500 Subject: [PATCH 20/36] rrd4j: Fix javadoc warnings --- apps/jrobin/java/src/org/rrd4j/graph/RrdGraphDef.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/jrobin/java/src/org/rrd4j/graph/RrdGraphDef.java b/apps/jrobin/java/src/org/rrd4j/graph/RrdGraphDef.java index 424a3a51ed..6600946c52 100644 --- a/apps/jrobin/java/src/org/rrd4j/graph/RrdGraphDef.java +++ b/apps/jrobin/java/src/org/rrd4j/graph/RrdGraphDef.java @@ -937,7 +937,7 @@ public void setFontSet(boolean rrdtool) { * font is selected. * * @param smallFont Default font for graphing. Use only monospaced fonts. - * @deprecated Use {@link FontTag} based method instead. + * @deprecated Use {@link RrdGraphConstants.FontTag} based method instead. */ @Deprecated public void setSmallFont(final Font smallFont) { @@ -948,7 +948,7 @@ public void setSmallFont(final Font smallFont) { * Sets title font. * * @param largeFont Font to be used for graph title. - * @deprecated Use {@link FontTag} based method instead. + * @deprecated Use {@link RrdGraphConstants.FontTag} based method instead. */ @Deprecated public void setLargeFont(final Font largeFont) { From 8bfbcf1e92372da4cded9a21234a2400e6ad3d74 Mon Sep 17 00:00:00 2001 From: zzz Date: Tue, 26 Nov 2024 11:08:02 -0500 Subject: [PATCH 21/36] console: Add Kurdish as UI config option (already have some partial translations) --- .../java/src/net/i2p/router/web/helpers/ConfigUIHelper.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigUIHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigUIHelper.java index e8bb9e2309..2cc924ad92 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigUIHelper.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigUIHelper.java @@ -121,8 +121,6 @@ private Set themeSet() { // // Note: any additions, also add to: // apps/i2psnark/java/src/org/klomp/snark/standalone/ConfigUIHelper.java - // apps/routerconsole/jsp/console.jsp - // apps/routerconsole/jsp/home.jsp // .tx/config // New lang_xx flags: Add to top-level build.xml // Names must be 18 chars or less (including country if specified) @@ -148,6 +146,7 @@ private Set themeSet() { { "it", "it", "Italiano", null }, { "ja", "jp", "Japanese 日本語", null }, { "ko", "kr", "Korean 한국어", null }, + { "ku", "iq", "Kurdish", null }, { "mg", "mg", "Malagasy", null }, { "hu", "hu", "Magyar", null }, { "nl", "nl", "Nederlands", null }, From f7d28937518b841f9ec675ca3a5c3857e3fd7bbc Mon Sep 17 00:00:00 2001 From: zzz Date: Tue, 26 Nov 2024 12:15:32 -0500 Subject: [PATCH 22/36] Add complete Gan Chinese translation --- .tx/config | 15 + apps/desktopgui/locale/messages_gan.po | 102 + .../snark/standalone/ConfigUIHelper.java | 1 + apps/i2psnark/locale/messages_gan.po | 1843 ++++ apps/i2ptunnel/locale-proxy/messages_gan.po | 700 ++ apps/i2ptunnel/locale/messages_gan.po | 2330 +++++ apps/ministreaming/locale/messages_gan.po | 92 + .../router/web/helpers/ConfigUIHelper.java | 1 + apps/routerconsole/jsp/css.jsi | 2 +- .../locale-countries/messages_gan.po | 778 ++ .../routerconsole/locale-news/messages_gan.po | 67 + apps/routerconsole/locale/messages_gan.po | 8112 +++++++++++++++++ .../resources/docs/readme_gan.html | 173 + apps/susidns/locale/messages_gan.po | 1006 ++ apps/susimail/locale/messages_gan.po | 639 ++ .../gnu/getopt/MessagesBundle_gan.properties | 31 + core/locale/messages_gan.po | 129 + debian/i2p-router.manpages | 2 + debian/i2p.manpages | 1 + debian/po/gan.po | 90 + .../eepsite/docroot/help/index_gan.html | 193 + installer/resources/locale-man/man_gan.po | 453 + installer/resources/locale/po/messages_gan.po | 197 + installer/resources/man/eepget.gan.1 | 90 + .../resources/man/i2prouter-nowrapper.gan.1 | 32 + installer/resources/man/i2prouter.gan.1 | 57 + .../src/net/i2p/util/TranslationStatus.java | 2 +- router/locale/messages_gan.po | 193 + 28 files changed, 17329 insertions(+), 2 deletions(-) create mode 100644 apps/desktopgui/locale/messages_gan.po create mode 100644 apps/i2psnark/locale/messages_gan.po create mode 100644 apps/i2ptunnel/locale-proxy/messages_gan.po create mode 100644 apps/i2ptunnel/locale/messages_gan.po create mode 100644 apps/ministreaming/locale/messages_gan.po create mode 100644 apps/routerconsole/locale-countries/messages_gan.po create mode 100644 apps/routerconsole/locale-news/messages_gan.po create mode 100644 apps/routerconsole/locale/messages_gan.po create mode 100644 apps/routerconsole/resources/docs/readme_gan.html create mode 100644 apps/susidns/locale/messages_gan.po create mode 100644 apps/susimail/locale/messages_gan.po create mode 100644 core/java/src/gnu/getopt/MessagesBundle_gan.properties create mode 100644 core/locale/messages_gan.po create mode 100644 debian/po/gan.po create mode 100644 installer/resources/eepsite/docroot/help/index_gan.html create mode 100644 installer/resources/locale-man/man_gan.po create mode 100644 installer/resources/locale/po/messages_gan.po create mode 100644 installer/resources/man/eepget.gan.1 create mode 100644 installer/resources/man/i2prouter-nowrapper.gan.1 create mode 100644 installer/resources/man/i2prouter.gan.1 create mode 100644 router/locale/messages_gan.po diff --git a/.tx/config b/.tx/config index 8e6fcb900c..7495b805d7 100644 --- a/.tx/config +++ b/.tx/config @@ -18,6 +18,7 @@ trans.es_AR = apps/i2ptunnel/locale/messages_es_AR.po trans.fa = apps/i2ptunnel/locale/messages_fa.po trans.fi = apps/i2ptunnel/locale/messages_fi.po trans.fr = apps/i2ptunnel/locale/messages_fr.po +trans.gan = apps/i2ptunnel/locale/messages_gan.po trans.hu = apps/i2ptunnel/locale/messages_hu.po ;; Java converts id to in trans.id = apps/i2ptunnel/locale/messages_in.po @@ -54,6 +55,7 @@ trans.es_AR = apps/i2ptunnel/locale-proxy/messages_es_AR.po trans.fa = apps/i2ptunnel/locale-proxy/messages_fa.po trans.fi = apps/i2ptunnel/locale-proxy/messages_fi.po trans.fr = apps/i2ptunnel/locale-proxy/messages_fr.po +trans.gan = apps/i2ptunnel/locale-proxy/messages_gan.po trans.hu = apps/i2ptunnel/locale-proxy/messages_hu.po ;; Java converts id to in trans.id = apps/i2ptunnel/locale-proxy/messages_in.po @@ -92,6 +94,7 @@ trans.et_EE = core/locale/messages_et.po trans.fa = core/locale/messages_fa.po trans.fi = core/locale/messages_fi.po trans.fr = core/locale/messages_fr.po +trans.gan = core/locale/messages_gan.po trans.hu = core/locale/messages_hu.po ;; Java converts id to in trans.id = core/locale/messages_in.po @@ -132,6 +135,7 @@ trans.et_EE = router/locale/messages_et.po trans.fa = router/locale/messages_fa.po trans.fi = router/locale/messages_fi.po trans.fr = router/locale/messages_fr.po +trans.gan = router/locale/messages_gan.po trans.hu = router/locale/messages_hu.po ;; Java converts id to in trans.id = router/locale/messages_in.po @@ -171,6 +175,7 @@ trans.et_EE = apps/routerconsole/locale/messages_et.po trans.fa = apps/routerconsole/locale/messages_fa.po trans.fi = apps/routerconsole/locale/messages_fi.po trans.fr = apps/routerconsole/locale/messages_fr.po +trans.gan = apps/routerconsole/locale/messages_gan.po trans.hu = apps/routerconsole/locale/messages_hu.po ;; Java converts id to in trans.id = apps/routerconsole/locale/messages_in.po @@ -205,6 +210,7 @@ trans.es_AR = apps/routerconsole/locale-news/messages_es_AR.po trans.fa = apps/routerconsole/locale-news/messages_fa.po trans.fi = apps/routerconsole/locale-news/messages_fi.po trans.fr = apps/routerconsole/locale-news/messages_fr.po +trans.gan = apps/routerconsole/locale-news/messages_gan.po trans.gl = apps/routerconsole/locale-news/messages_gl.po ;; Java converts he to iw trans.he = apps/routerconsole/locale-news/messages_iw.po @@ -299,6 +305,7 @@ trans.es_AR = apps/i2psnark/locale/messages_es_AR.po trans.fa = apps/i2psnark/locale/messages_fa.po trans.fi = apps/i2psnark/locale/messages_fi.po trans.fr = apps/i2psnark/locale/messages_fr.po +trans.gan = apps/i2psnark/locale/messages_gan.po trans.hu = apps/i2psnark/locale/messages_hu.po ;; Java converts id to in trans.id = apps/i2psnark/locale/messages_in.po @@ -335,6 +342,7 @@ trans.es_AR = apps/susidns/locale/messages_es_AR.po trans.fa = apps/susidns/locale/messages_fa.po trans.fi = apps/susidns/locale/messages_fi.po trans.fr = apps/susidns/locale/messages_fr.po +trans.gan = apps/susidns/locale/messages_gan.po trans.gl = apps/susidns/locale/messages_gl.po trans.hu = apps/susidns/locale/messages_hu.po ;; Java converts id to in @@ -372,6 +380,7 @@ trans.es_AR = apps/desktopgui/locale/messages_es_AR.po trans.fa = apps/desktopgui/locale/messages_fa.po trans.fi = apps/desktopgui/locale/messages_fi.po trans.fr = apps/desktopgui/locale/messages_fr.po +trans.gan = apps/desktopgui/locale/messages_gan.po trans.gl = apps/desktopgui/locale/messages_gl.po trans.hu = apps/desktopgui/locale/messages_hu.po ;; Java converts id to in @@ -418,6 +427,7 @@ trans.et_EE = apps/susimail/locale/messages_et.po trans.fa = apps/susimail/locale/messages_fa.po trans.fi = apps/susimail/locale/messages_fi.po trans.fr = apps/susimail/locale/messages_fr.po +trans.gan = apps/susimail/locale/messages_gan.po trans.gl = apps/susimail/locale/messages_gl.po trans.hr = apps/susimail/locale/messages_hr.po trans.hu = apps/susimail/locale/messages_hu.po @@ -497,6 +507,7 @@ trans.es = installer/resources/locale/po/messages_es.po trans.es_AR = installer/resources/locale/po/messages_es_AR.po trans.fi = installer/resources/locale/po/messages_fi.po trans.fr = installer/resources/locale/po/messages_fr.po +trans.gan = installer/resources/locale/po/messages_gan.po trans.hu = installer/resources/locale/po/messages_hu.po trans.id = installer/resources/locale/po/messages_id.po trans.it = installer/resources/locale/po/messages_it.po @@ -584,6 +595,7 @@ trans.es_AR = apps/ministreaming/locale/messages_es_AR.po trans.fa = apps/ministreaming/locale/messages_fa.po trans.fi = apps/ministreaming/locale/messages_fi.po trans.fr = apps/ministreaming/locale/messages_fr.po +trans.gan = apps/ministreaming/locale/messages_gan.po trans.gl = apps/ministreaming/locale/messages_gl.po trans.hu = apps/ministreaming/locale/messages_hu.po ;; Java converts id to in @@ -622,6 +634,7 @@ trans.es = installer/resources/locale-man/man_es.po trans.es_AR = installer/resources/locale-man/man_es_AR.po trans.fi = installer/resources/locale-man/man_fi.po trans.fr = installer/resources/locale-man/man_fr.po +trans.gan = installer/resources/locale-man/man_gan.po trans.hu = installer/resources/locale-man/man_hu.po trans.id = installer/resources/locale-man/man_id.po trans.it = installer/resources/locale-man/man_it.po @@ -657,6 +670,7 @@ trans.el = installer/resources/eepsite/docroot/help/index_el.html trans.es = installer/resources/eepsite/docroot/help/index_es.html trans.fa = installer/resources/eepsite/docroot/help/index_fa.html trans.fr = installer/resources/eepsite/docroot/help/index_fr.html +trans.gan = installer/resources/eepsite/docroot/help/index_gan.html trans.hu = installer/resources/eepsite/docroot/help/index_hu.html ;; Java converts id to in trans.id = installer/resources/eepsite/docroot/help/index_in.html @@ -688,6 +702,7 @@ trans.ar = apps/routerconsole/resources/docs/readme_ar.html trans.cs = apps/routerconsole/resources/docs/readme_cs.html trans.de = apps/routerconsole/resources/docs/readme_de.html trans.fr = apps/routerconsole/resources/docs/readme_fr.html +trans.gan = apps/routerconsole/resources/docs/readme_gan.html trans.hu = apps/routerconsole/resources/docs/readme_hu.html ;; Java converts id to in trans.id = apps/routerconsole/resources/docs/readme_in.html diff --git a/apps/desktopgui/locale/messages_gan.po b/apps/desktopgui/locale/messages_gan.po new file mode 100644 index 0000000000..7f1822de98 --- /dev/null +++ b/apps/desktopgui/locale/messages_gan.po @@ -0,0 +1,102 @@ +# I2P +# Copyright (C) 2009 The I2P Project +# This file is distributed under the same license as the desktopgui package. +# To contribute translations, see http://www.i2p2.de/newdevelopers +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: I2P\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-03-06 14:52+0000\n" +"PO-Revision-Date: 2011-02-13 12:05+0000\n" +"Last-Translator: duck \n" +"Language-Team: Chinese (Gan) (http://app.transifex.com/otf/I2P/language/gan/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: gan\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: src/net/i2p/desktopgui/ExternalTrayManager.java:31 +msgid "Start I2P" +msgstr "啟動I2P" + +#: src/net/i2p/desktopgui/ExternalTrayManager.java:44 +#: src/net/i2p/desktopgui/InternalTrayManager.java:55 +msgid "I2P is starting!" +msgstr " I2P 正在启动!" + +#: src/net/i2p/desktopgui/ExternalTrayManager.java:44 +#: src/net/i2p/desktopgui/InternalTrayManager.java:55 +msgid "Starting" +msgstr "開始" + +#: src/net/i2p/desktopgui/InternalTrayManager.java:65 +#: src/net/i2p/desktopgui/InternalTrayManager.java:221 +msgid "Launch I2P Browser" +msgstr "启动 I2P 浏览器" + +#: src/net/i2p/desktopgui/InternalTrayManager.java:86 +#: src/net/i2p/desktopgui/InternalTrayManager.java:242 +msgid "Configure I2P System Tray" +msgstr "設定I2P系統文件夾" + +#: src/net/i2p/desktopgui/InternalTrayManager.java:88 +#: src/net/i2p/desktopgui/InternalTrayManager.java:244 +msgid "Disable system tray" +msgstr "禁用系统托盘" + +#: src/net/i2p/desktopgui/InternalTrayManager.java:104 +#: src/net/i2p/desktopgui/InternalTrayManager.java:260 +msgid "Restart I2P" +msgstr "重啟I2P" + +#: src/net/i2p/desktopgui/InternalTrayManager.java:121 +#: src/net/i2p/desktopgui/InternalTrayManager.java:277 +msgid "Stop I2P" +msgstr "停止I2P" + +#: src/net/i2p/desktopgui/InternalTrayManager.java:137 +#: src/net/i2p/desktopgui/InternalTrayManager.java:293 +msgid "Restart I2P Immediately" +msgstr "強制重啟I2P" + +#: src/net/i2p/desktopgui/InternalTrayManager.java:154 +#: src/net/i2p/desktopgui/InternalTrayManager.java:310 +msgid "Stop I2P Immediately" +msgstr "強制終止I2P" + +#: src/net/i2p/desktopgui/InternalTrayManager.java:168 +#: src/net/i2p/desktopgui/InternalTrayManager.java:324 +msgid "Cancel I2P Shutdown" +msgstr "取消停止I2P" + +#: src/net/i2p/desktopgui/InternalTrayManager.java:381 +#, java-format +msgid "Shutdown in {0}" +msgstr "關閉於 {0}" + +#: src/net/i2p/desktopgui/InternalTrayManager.java:383 +msgid "Shutdown imminent" +msgstr "強制關閉" + +#. status translations are in the console bundle +#: src/net/i2p/desktopgui/InternalTrayManager.java:388 +msgid "Network" +msgstr "网络" + +#. Windows typically has tooltips; Linux (at least Ubuntu) doesn't +#: src/net/i2p/desktopgui/TrayManager.java:75 +msgid "I2P: Right-click for menu" +msgstr "I2P:右鍵開啟選單" + +#: src/net/i2p/desktopgui/TrayManager.java:310 +#: src/net/i2p/desktopgui/TrayManager.java:347 +msgid "Enable notifications" +msgstr "启用通知" + +#: src/net/i2p/desktopgui/TrayManager.java:325 +#: src/net/i2p/desktopgui/TrayManager.java:362 +msgid "Disable notifications" +msgstr "禁用通知" diff --git a/apps/i2psnark/java/src/org/klomp/snark/standalone/ConfigUIHelper.java b/apps/i2psnark/java/src/org/klomp/snark/standalone/ConfigUIHelper.java index cd96991e9d..eb21ffe022 100644 --- a/apps/i2psnark/java/src/org/klomp/snark/standalone/ConfigUIHelper.java +++ b/apps/i2psnark/java/src/org/klomp/snark/standalone/ConfigUIHelper.java @@ -32,6 +32,7 @@ public class ConfigUIHelper { { "cs", "cz", "Čeština", null }, { "zh", "cn", "Chinese 中文", null }, { "zh_TW", "tw", "Chinese 中文", "Taiwan" }, + { "gan", "cn", "Gan Chinese 赣语", null }, { "da", "dk", "Dansk", null }, { "de", "de", "Deutsch", null }, //{ "et", "ee", "Eesti", null }, diff --git a/apps/i2psnark/locale/messages_gan.po b/apps/i2psnark/locale/messages_gan.po new file mode 100644 index 0000000000..78c34998b3 --- /dev/null +++ b/apps/i2psnark/locale/messages_gan.po @@ -0,0 +1,1843 @@ +# 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 +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: I2P\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-03-27 13:00+0000\n" +"PO-Revision-Date: 2011-02-13 12:00+0000\n" +"Last-Translator: duck \n" +"Language-Team: Chinese (Gan) (http://app.transifex.com/otf/I2P/language/gan/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: gan\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: ../java/src/org/klomp/snark/IdleChecker.java:76 +msgid "No more torrents running." +msgstr "没有更多种子正在运行。" + +#: ../java/src/org/klomp/snark/IdleChecker.java:77 +#: ../java/src/org/klomp/snark/SnarkManager.java:3313 +#: ../java/src/org/klomp/snark/SnarkManager.java:3324 +msgid "I2P tunnel closed." +msgstr "I2P隧道已关闭" + +#: ../java/src/org/klomp/snark/MagnetURI.java:50 +#: ../java/src/org/klomp/snark/MagnetURI.java:60 +#: ../java/src/org/klomp/snark/SnarkManager.java:2922 +msgid "Magnet" +msgstr "Magnet" + +#: ../java/src/org/klomp/snark/Snark.java:595 +#: ../java/src/org/klomp/snark/SnarkManager.java:380 +#: ../java/src/org/klomp/snark/SnarkManager.java:1801 +#: ../java/src/org/klomp/snark/SnarkManager.java:2667 +#: ../java/src/org/klomp/snark/SnarkManager.java:2732 +msgid "Unable to connect to I2P" +msgstr "无法连接至I2P" + +#: ../java/src/org/klomp/snark/Snark.java:597 +#: ../java/src/org/klomp/snark/SnarkManager.java:1803 +#: ../java/src/org/klomp/snark/SnarkManager.java:2669 +#: ../java/src/org/klomp/snark/SnarkManager.java:2734 +msgid "Error connecting to I2P - check your I2CP settings!" +msgstr "连接I2P时发生错误 - 请检查I2CP设置!" + +#: ../java/src/org/klomp/snark/SnarkManager.java:151 +msgid "dark" +msgstr "暗色調" + +#: ../java/src/org/klomp/snark/SnarkManager.java:151 +msgid "light" +msgstr "亮色调" + +#. Translators: Translate "ubergine" as "aubergine" or "eggplant" or "purple" +#: ../java/src/org/klomp/snark/SnarkManager.java:151 +msgid "ubergine" +msgstr "茄子" + +#: ../java/src/org/klomp/snark/SnarkManager.java:151 +msgid "vanilla" +msgstr "香草白" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1046 +#: ../java/src/org/klomp/snark/SnarkManager.java:1217 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:778 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1118 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1356 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1391 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1503 +msgid "No write permissions for data directory" +msgstr "没有对数据文件夹的写入权限。" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1049 +#: ../java/src/org/klomp/snark/SnarkManager.java:1210 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:772 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1207 +msgid "Data directory cannot be created" +msgstr "无法创建数据目录" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1111 +#, java-format +msgid "Total uploaders limit changed to {0}" +msgstr "总上传种子数限制已更新为{0}" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1113 +#, java-format +msgid "Minimum total uploaders limit is {0}" +msgstr "最低上传种子数限制为{0}" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1126 +#, java-format +msgid "Up BW limit changed to {0}KBps" +msgstr "上传带宽限制改为 {0} KB/s" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1128 +#, java-format +msgid "Minimum up bandwidth limit is {0}KBps" +msgstr "最小上传带宽限制为 {0} KB/s" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1154 +#, java-format +msgid "Startup delay changed to {0}" +msgstr "下载前的延迟已更新为{0}" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1165 +#, java-format +msgid "Refresh time changed to {0}" +msgstr "刷新时间更新为{0}" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1167 +msgid "Refresh disabled" +msgstr "刷新已禁用" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1183 +#, java-format +msgid "Page size changed to {0}" +msgstr "页面容量更新为{0}" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1193 +msgid "New files will be publicly readable" +msgstr "新文件将对公共可读" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1195 +msgid "New files will not be publicly readable" +msgstr "新文件不会对公共可读" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1203 +msgid "Stop all torrents before changing data directory" +msgstr "在更改数据目录前停止所有种子" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1205 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1203 +msgid "Data directory must be an absolute path" +msgstr "数据存放目录必须是绝对路径" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1209 +msgid "Data directory does not exist" +msgstr "数据存放目录不存在" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1212 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:774 +msgid "Not a directory" +msgstr "不是文件夹" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1214 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:776 +msgid "Unreadable" +msgstr "无法读取" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1228 +#, java-format +msgid "Data directory changed to {0}" +msgstr "数据存放目录更新至{0}" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1310 +msgid "I2CP and tunnel changes will take effect after stopping all torrents" +msgstr "I2CP与隧道设置的变化在所有种子停止后才能生效" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1314 +#, java-format +msgid "I2CP options changed to {0}" +msgstr "I2CP 选项改为 {0}" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1320 +msgid "Disconnecting old I2CP destination" +msgstr "正在断开旧的I2CP目标" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1322 +#, java-format +msgid "I2CP settings changed to {0}" +msgstr "I2CP设置改为{0}" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1329 +msgid "" +"Unable to connect with the new settings, reverting to the old I2CP settings" +msgstr "无法通过新设置连接,恢复I2CP的旧设置" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1333 +msgid "Unable to reconnect with the old settings!" +msgstr "旧设置也无法连接!" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1335 +msgid "Reconnected on the new I2CP destination" +msgstr "重新连接新I2CP目标" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1342 +#, java-format +msgid "I2CP listener restarted for \"{0}\"" +msgstr "\"{0}\"的I2CP监听端口已启动" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1355 +msgid "Enabled autostart" +msgstr "启用自动启动" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1357 +msgid "Disabled autostart" +msgstr "禁用自动启动" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1364 +msgid "Enabled smart sort" +msgstr "已启用智能排序" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1366 +msgid "Disabled smart sort" +msgstr "已禁用智能排序" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1373 +msgid "Enabled open trackers - torrent restart required to take effect." +msgstr "启用OpenTracker-重新启动种子后生效" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1375 +msgid "Disabled open trackers - torrent restart required to take effect." +msgstr "禁用OpenTracker - 重新启动种子后生效" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1382 +msgid "Enabled DHT." +msgstr "DHT 已启用" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1384 +msgid "Disabled DHT." +msgstr "DHT 已禁用" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1386 +msgid "DHT change requires tunnel shutdown and reopen" +msgstr "DHT 修改生效需要关闭或重启。" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1393 +msgid "Enabled Ratings." +msgstr "已允许评分" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1395 +msgid "Disabled Ratings." +msgstr "已禁用评分" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1402 +msgid "Enabled Comments." +msgstr "已启用评论。" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1404 +msgid "Disabled Comments." +msgstr "已禁用评论。" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1417 +#, java-format +msgid "Comments name set to {0}." +msgstr "评论名设置为{0}。" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1424 +#, java-format +msgid "{0} theme loaded." +msgstr "{0}主题已加载。" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1431 +msgid "Collapsible panels enabled." +msgstr "可折叠面板已启用。" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1433 +msgid "Collapsible panels disabled." +msgstr "可折叠面板已禁用。" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1443 +msgid "Configuration unchanged." +msgstr "设置未改变" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1475 +msgid "Open Tracker list changed - torrent restart required to take effect." +msgstr "OpenTracker列表已改变 - 重新启动种子后生效" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1485 +msgid "Private tracker list changed - affects newly created torrents only." +msgstr "PT 列表已更改 - 仅对新创建的种子有效" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1531 +#, java-format +msgid "Unable to save the config to {0}" +msgstr "无法保存设置到{0}" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1635 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1353 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1388 +#, java-format +msgid "Torrent file deleted: {0}" +msgstr "种子文件已删除:{0}" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1638 +#, java-format +msgid "Torrent file moved from {0} to {1}" +msgstr "种子文件已从 {0} 移动到 {1}" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1672 +#: ../java/src/org/klomp/snark/SnarkManager.java:2976 +#: ../java/src/org/klomp/snark/SnarkManager.java:2982 +#: ../java/src/org/klomp/snark/SnarkManager.java:2986 +#, java-format +msgid "Error: Could not add the torrent {0}" +msgstr "错误:无法添加种子{0}" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1687 +#: ../java/src/org/klomp/snark/SnarkManager.java:1775 +#: ../java/src/org/klomp/snark/SnarkManager.java:3156 +#: ../java/src/org/klomp/snark/web/FetchAndAdd.java:178 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1142 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1279 +#, java-format +msgid "Torrent already running: {0}" +msgstr "种子已启动:{0}" + +#. catch this here so we don't try do delete it below +#: ../java/src/org/klomp/snark/SnarkManager.java:1697 +#, java-format +msgid "Cannot open \"{0}\"" +msgstr "无法打开 \"{0}\"" + +#. TODO - if the existing one is a magnet, delete it and add the metainfo +#. instead? +#: ../java/src/org/klomp/snark/SnarkManager.java:1716 +#: ../java/src/org/klomp/snark/SnarkManager.java:1884 +#: ../java/src/org/klomp/snark/SnarkManager.java:1973 +#: ../java/src/org/klomp/snark/web/FetchAndAdd.java:166 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1164 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1268 +#, java-format +msgid "Torrent with this info hash is already running: {0}" +msgstr "具有相同Hash链接的种子已在下载中:{0}" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1722 +#: ../java/src/org/klomp/snark/SnarkManager.java:1979 +#, java-format +msgid "Torrent with the same data location is already running: {0}" +msgstr "具有相同数据地址的种子已在下载中:{0}" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1728 +#, java-format +msgid "ERROR - No I2P trackers in private torrent \"{0}\"" +msgstr "错误 - 私有种子\"{0}\"中缺少 I2P Tracker" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1730 +#, java-format +msgid "" +"Warning - No I2P trackers in \"{0}\", will announce to I2P open trackers and" +" DHT only." +msgstr "警告 - \"{0}\"中缺少 I2P Tracker,程序将仅通过 I2P 中的开放式 Tracker 和 DHT 下载。" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1733 +#, java-format +msgid "" +"Warning - No I2P trackers in \"{0}\", and open trackers are disabled, will " +"announce to DHT only." +msgstr "警告 - \"{0}\"中缺少 I2P Tracker,已禁用 I2P Open Tracker,程序将仅通过 DHT 下载。" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1735 +#, java-format +msgid "" +"Warning - No I2P trackers in \"{0}\", and DHT and open trackers are " +"disabled, you should enable open trackers or DHT before starting the " +"torrent." +msgstr "警告 - \"{0}\"中缺少 I2P Tracker,已禁用 I2P Open Tracker 和 DHT,下载先您需要先启用 OpenTracker 或 DHT 。" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1761 +#, java-format +msgid "Torrent in \"{0}\" is invalid" +msgstr "无效种子 \"{0}\" " + +#: ../java/src/org/klomp/snark/SnarkManager.java:1767 +#: ../java/src/org/klomp/snark/web/FetchAndAdd.java:195 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1187 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1296 +#, java-format +msgid "ERROR - Out of memory, cannot create torrent from {0}" +msgstr "错误: 内存不足,无法为 {0} 创建种子。" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1794 +#: ../java/src/org/klomp/snark/SnarkManager.java:2648 +#: ../java/src/org/klomp/snark/SnarkManager.java:2659 +msgid "Connecting to I2P" +msgstr "正在连接到I2P" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1812 +#: ../java/src/org/klomp/snark/SnarkManager.java:1814 +#, java-format +msgid "Torrent added and started: {0}" +msgstr "种子已添加并开始:{0}" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1816 +#: ../java/src/org/klomp/snark/SnarkManager.java:1818 +#, java-format +msgid "Torrent added: {0}" +msgstr "种子已添加:{0}" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1896 +#: ../java/src/org/klomp/snark/web/FetchAndAdd.java:93 +#, java-format +msgid "Fetching {0}" +msgstr "正在获取{0}" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1902 +#, java-format +msgid "" +"Open trackers are disabled and we have no DHT peers. Fetch of {0} may not " +"succeed until you start another torrent, enable open trackers, or enable " +"DHT." +msgstr "OpenTracker被禁用,程序目前没有DHT节点。{0}的下载不会成功,直到您启动另一个种子的下载、重新启用OpenTracker或DHT。" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1906 +#, java-format +msgid "Adding {0}" +msgstr "正在添加{0}" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1939 +#, java-format +msgid "Download already running: {0}" +msgstr "已经在下载中:{0}" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1989 +#: ../java/src/org/klomp/snark/SnarkManager.java:1999 +#: ../java/src/org/klomp/snark/SnarkManager.java:2025 +#: ../java/src/org/klomp/snark/SnarkManager.java:2819 +#, java-format +msgid "Failed to copy torrent file to {0}" +msgstr "无法复制种子文件到{0}" + +#: ../java/src/org/klomp/snark/SnarkManager.java:2504 +#: ../java/src/org/klomp/snark/Storage.java:294 +#, java-format +msgid "Too many files in \"{0}\" ({1})!" +msgstr "\"{0}\" ({1}) 含有太多文件!" + +#: ../java/src/org/klomp/snark/SnarkManager.java:2509 +#, java-format +msgid "Torrent file \"{0}\" cannot end in \".torrent\"!" +msgstr "种子文件 \"{0}\" 不以 \".torrent\"结尾!" + +#: ../java/src/org/klomp/snark/SnarkManager.java:2511 +#, java-format +msgid "No pieces in \"{0}\"!" +msgstr "\"{0}\" 中没有文件分片!" + +#: ../java/src/org/klomp/snark/SnarkManager.java:2513 +#, java-format +msgid "Too many pieces in \"{0}\", limit is {1}!" +msgstr "\"{0}\" 中文件分片太多,限额为{1}!" + +#: ../java/src/org/klomp/snark/SnarkManager.java:2515 +#, java-format +msgid "Pieces are too large in \"{0}\" ({1}B)!" +msgstr "\"{0}\"({1}B)中分片过大!" + +#: ../java/src/org/klomp/snark/SnarkManager.java:2516 +#, java-format +msgid "Limit is {0}B" +msgstr "限额为 {0}B" + +#: ../java/src/org/klomp/snark/SnarkManager.java:2518 +#, java-format +msgid "Torrent \"{0}\" has no data!" +msgstr "种子 \"{0}\" 中无数据!" + +#. System.out.println("torrent info: " + info.toString()); +#. List lengths = info.getLengths(); +#. if (lengths != null) +#. for (int i = 0; i < lengths.size(); i++) +#. System.out.println("File " + i + " is " + lengths.get(i) + " long."); +#: ../java/src/org/klomp/snark/SnarkManager.java:2527 +#, java-format +msgid "Torrents larger than {0}B are not supported yet \"{1}\"!" +msgstr "目前不支持大于 {0}B 的种子 \"{1}\"!" + +#: ../java/src/org/klomp/snark/SnarkManager.java:2544 +#, java-format +msgid "Error: Could not remove the torrent {0}" +msgstr "错误:无法删除种子{0}" + +#: ../java/src/org/klomp/snark/SnarkManager.java:2567 +#: ../java/src/org/klomp/snark/SnarkManager.java:2586 +#, java-format +msgid "Torrent stopped: {0}" +msgstr "种子已停止:{0}" + +#: ../java/src/org/klomp/snark/SnarkManager.java:2606 +#, java-format +msgid "Torrent removed: \"{0}\"" +msgstr "种子已删除:\"{0}\"" + +#: ../java/src/org/klomp/snark/SnarkManager.java:2622 +#, java-format +msgid "Adding torrents in {0}" +msgstr "{0} 分钟内完成添加" + +#. addMessage(_t("Metainfo received for {0}", snark.getName())); +#: ../java/src/org/klomp/snark/SnarkManager.java:2684 +#: ../java/src/org/klomp/snark/SnarkManager.java:2816 +#: ../java/src/org/klomp/snark/SnarkManager.java:3162 +#, java-format +msgid "Starting up torrent {0}" +msgstr "正在启动种子{0}" + +#: ../java/src/org/klomp/snark/SnarkManager.java:2696 +#, java-format +msgid "Down bandwidth limit is {0} KBps" +msgstr "下行带宽限制为{0}KBps" + +#: ../java/src/org/klomp/snark/SnarkManager.java:2697 +#: ../java/src/org/klomp/snark/SnarkManager.java:2722 +#, java-format +msgid "Up bandwidth limit is {0} KBps" +msgstr "上传带宽限制为 {0} KB/s" + +#: ../java/src/org/klomp/snark/SnarkManager.java:2756 +#: ../java/src/org/klomp/snark/SnarkManager.java:2758 +#, java-format +msgid "Download finished: {0}" +msgstr "下载已完成: {0}" + +#: ../java/src/org/klomp/snark/SnarkManager.java:2831 +#, java-format +msgid "Error on torrent {0}" +msgstr "种子 {0} 发生错误" + +#: ../java/src/org/klomp/snark/SnarkManager.java:2876 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:311 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:372 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2197 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3337 +msgid "I2PSnark" +msgstr "I2PSnark" + +#: ../java/src/org/klomp/snark/SnarkManager.java:3161 +#: ../java/src/org/klomp/snark/web/FetchAndAdd.java:130 +msgid "Opening the I2P tunnel" +msgstr "正在建立 I2P 隧道" + +#: ../java/src/org/klomp/snark/SnarkManager.java:3179 +msgid "Opening the I2P tunnel and starting all torrents." +msgstr "正在打开I2P隧道并启动所有种子" + +#: ../java/src/org/klomp/snark/SnarkManager.java:3255 +#: ../java/src/org/klomp/snark/SnarkManager.java:3271 +msgid "Stopping all torrents and closing the I2P tunnel." +msgstr "正在停用所有种子并关闭I2P隧道。" + +#: ../java/src/org/klomp/snark/SnarkManager.java:3298 +msgid "Closing I2P tunnel after notifying trackers." +msgstr "正在关闭 I2P 隧道,已通知 Tracker。" + +#: ../java/src/org/klomp/snark/SnarkManager.java:3368 +#, java-format +msgid "Finished recheck of torrent {0}, now {1} complete" +msgstr "已完成对种子 {0} 的重新检查,现在 {1} 已完成" + +#: ../java/src/org/klomp/snark/SnarkManager.java:3370 +#, java-format +msgid "Finished recheck of torrent {0}, unchanged" +msgstr "已完成对种子 {0} 的重新检查,未变更" + +#: ../java/src/org/klomp/snark/SnarkManager.java:3374 +#, java-format +msgid "Error checking the torrent {0}" +msgstr "检查种子 {0} 时出错" + +#: ../java/src/org/klomp/snark/TrackerClient.java:246 +#, java-format +msgid "No valid trackers for {0} - enable opentrackers or DHT?" +msgstr "{0} 中 Tracker 无效 - 要启用 opentrackers 或 DHT 吗?" + +#: ../java/src/org/klomp/snark/UpdateHandler.java:49 +#: ../java/src/org/klomp/snark/UpdateRunner.java:233 +msgid "Updating" +msgstr "更新中" + +#: ../java/src/org/klomp/snark/UpdateRunner.java:118 +#, java-format +msgid "Updating from {0}" +msgstr "正在從 {0} 獲取更新" + +#: ../java/src/org/klomp/snark/web/FetchAndAdd.java:80 +#, java-format +msgid "Download torrent file from {0}" +msgstr "正在从 {0} 处下载种子文件" + +#: ../java/src/org/klomp/snark/web/FetchAndAdd.java:103 +#, java-format +msgid "Torrent was not retrieved from {0}" +msgstr "从{0}获得种子失败" + +#: ../java/src/org/klomp/snark/web/FetchAndAdd.java:157 +#, java-format +msgid "Torrent fetched from {0}" +msgstr "从{0}获取种子成功" + +#: ../java/src/org/klomp/snark/web/FetchAndAdd.java:180 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1144 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1281 +#, java-format +msgid "Torrent already in the queue: {0}" +msgstr "种子排队中:{0}" + +#: ../java/src/org/klomp/snark/web/FetchAndAdd.java:193 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1180 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1255 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1294 +#, java-format +msgid "Torrent at {0} was not valid" +msgstr "{0}的种子中有错误" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:316 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2658 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3054 +msgid "Configuration" +msgstr "設定" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:322 +msgid "Anonymous BitTorrent Client" +msgstr "匿名的 BitTorrent 客户端" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:335 +msgid "I2PSnark has stopped" +msgstr "I2PSnark 已停止运行" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:335 +msgid "Router is down" +msgstr "路由器已關閉" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:346 +#, java-format +msgid "" +"Are you sure you want to delete the file \\''{0}\\'' (downloaded data will " +"not be deleted) ?" +msgstr "你确定你要删除文件 \\“{0} \\” (下载的数据不会被删除)?" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:347 +#, 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:365 +msgid "Torrents" +msgstr "Torrents" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:368 +msgid "Refresh page" +msgstr "刷新頁面" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:410 +msgid "Click \"Add torrent\" button to fetch torrent" +msgstr "点击 \"添加种子\" 按钮来获取种子" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:474 +msgid "clear messages" +msgstr "清除消息" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:542 +msgid "Status" +msgstr "状态" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:544 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:596 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:614 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:640 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:671 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:686 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:701 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3816 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3832 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3844 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3856 +#, java-format +msgid "Sort by {0}" +msgstr "排序按 {0}" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:564 +msgid "Hide Peers" +msgstr "隐藏用户" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:570 +msgid "Show Peers" +msgstr "显示用户" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:594 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3325 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3361 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3705 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3723 +msgid "Torrent" +msgstr "种子" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:596 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3816 +msgid "File type" +msgstr "文件类型" + +#. Translators: Please keep short or translate as " " +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:612 +msgid "ETA" +msgstr "ETA" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:614 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:615 +msgid "Estimated time remaining" +msgstr "预计剩余时间" + +#. Translators: Please keep short or translate as " " +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:638 +msgid "RX" +msgstr "接包" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:640 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:641 +msgid "Downloaded" +msgstr "Downloaded" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:640 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3579 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3830 +msgid "Size" +msgstr "大小" + +#. Translators: Please keep short or translate as " " +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:669 +msgid "TX" +msgstr "發包" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:671 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3586 +msgid "Upload ratio" +msgstr "上传率" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:671 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:672 +msgid "Uploaded" +msgstr "已经上传" + +#. Translators: Please keep short or translate as " " +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:684 +msgid "RX Rate" +msgstr "接收速度" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:686 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:687 +msgid "Down Rate" +msgstr "下载速度" + +#. Translators: Please keep short or translate as " " +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:699 +msgid "TX Rate" +msgstr "发送速度" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:701 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:702 +msgid "Up Rate" +msgstr "上传速度" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:718 +msgid "Stop all torrents and the I2P tunnel" +msgstr "停止全部种子及I2P隧道" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:720 +msgid "Stop All" +msgstr "全部停止" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:731 +msgid "Start all stopped torrents" +msgstr "启动所有已停止的种子" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:733 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:747 +msgid "Start All" +msgstr "启动全部" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:745 +msgid "Start all torrents and the I2P tunnel" +msgstr "启动全部种子及I2P隧道" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:780 +msgid "No torrents found." +msgstr "无任何种子。" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:782 +msgid "No torrents loaded." +msgstr "未载入任何种子" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:790 +msgid "Totals" +msgstr "总计" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:792 +#, java-format +msgid "1 torrent" +msgid_plural "{0} torrents" +msgstr[0] "{0}个种子" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:797 +#, java-format +msgid "1 connected peer" +msgid_plural "{0} connected peers" +msgstr[0] "{0}个已连接用户" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:804 +#, java-format +msgid "1 DHT peer" +msgid_plural "{0} DHT peers" +msgstr[0] "{0}个DHT节点" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:812 +msgid "Dest" +msgstr "目标" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:814 +msgid "Our destination (identity) for this session" +msgstr "本次会话的目标(路由器身份)" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:839 +msgid "Dht Debug" +msgstr "Dht 调试" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1026 +msgid "First" +msgstr "第一頁" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1026 +msgid "First page" +msgstr "第一页" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1036 +msgid "Prev" +msgstr "Prev" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1036 +msgid "Previous page" +msgstr "上一页" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1069 +msgid "Next" +msgstr "下一頁" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1069 +msgid "Next page" +msgstr "下一页" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1077 +msgid "Last" +msgstr "最後一頁" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1077 +msgid "Last page" +msgstr "最后一页" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1217 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1529 +#, java-format +msgid "Cannot add torrent {0} inside another torrent: {1}" +msgstr "无法添加内含另一个种子的种子 {0}:{1}" + +#. TODO +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1230 +#, java-format +msgid "Download from non-I2P location {0} is not supported" +msgstr "不支持从非 I2P 地址{0}下载" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1301 +#, java-format +msgid "Invalid URL: Must start with \"{0}\" or \"{1}\"" +msgstr "无效的 URL:必须以“{0}”或“{1}”开头。" + +#. no file or URL specified +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1307 +msgid "Enter URL or select torrent file" +msgstr "输入 URL 或选择 torrent 文件" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1344 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1379 +#, java-format +msgid "Magnet deleted: {0}" +msgstr "Magnet 已删除:{0}" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1357 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1392 +#, java-format +msgid "Torrent file could not be deleted: {0}" +msgstr "无法删除种子文件:{0}" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1377 +#, java-format +msgid "Download deleted: {0}" +msgstr "下载已删除: {0}" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1403 +#, java-format +msgid "Data file deleted: {0}" +msgstr "数据文件已删除:{0}" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1405 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1415 +#, java-format +msgid "Data file could not be deleted: {0}" +msgstr "无法删除数据文件:{0}" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1432 +#, java-format +msgid "Directory could not be deleted: {0}" +msgstr "无法删除目录:{0}" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1440 +#, java-format +msgid "Directory deleted: {0}" +msgstr "目录已经删除: {0}" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1508 +#, java-format +msgid "Cannot add a torrent ending in \".torrent\": {0}" +msgstr "无法添加一个以 \".torrent\" 结尾的种子: {0}" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1513 +#, java-format +msgid "Torrent with this name is already running: {0}" +msgstr "此名称的种子已在运行:{0}" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1519 +#, java-format +msgid "Cannot add a torrent including an I2P directory: {0}" +msgstr "无法添加包含一个 I2P 目录的种子:{0}" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1534 +#, java-format +msgid "Cannot add torrent {0} including another torrent: {1}" +msgstr "无法添加包含另一个种子的种子 {0}:{1}" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1560 +msgid "Error - Cannot include alternate trackers without a primary tracker" +msgstr "错误 - 缺少主Tracker则无法添加替换Tracker" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1573 +msgid "Error - Cannot mix private and public trackers in a torrent" +msgstr "错误 - PT和公共Tracker无法在同一种子中混用。" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1595 +#, java-format +msgid "Torrent created for \"{0}\"" +msgstr "种子创建成功\"{0}\"" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1597 +#, 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:1599 +#, java-format +msgid "Error creating a torrent for \"{0}\"" +msgstr "创建种子时发生错误 \"{0}\"" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1603 +#, java-format +msgid "Cannot create a torrent for the nonexistent data: {0}" +msgstr "无法为不存在的数据文件创建种子:{0}" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1606 +msgid "Error creating torrent - you must enter a file or directory" +msgstr "创建种子时发生错误 - 必须指定文件或文件夹" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1672 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3038 +msgid "Delete selected" +msgstr "刪除選中項目" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1672 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3040 +msgid "Save tracker configuration" +msgstr "保存 Tracker 设置" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1689 +msgid "Removed" +msgstr "已删除" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1721 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3037 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3039 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:4519 +msgid "Add tracker" +msgstr "添加 Tracker" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1744 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1747 +msgid "Enter valid tracker name and URLs" +msgstr "请输入有效的 Tracker 名称与链接" + +#. "\n" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1749 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3042 +msgid "Restore defaults" +msgstr "恢復預設值" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1752 +msgid "Restored default trackers" +msgstr "恢复默认 Tracker" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1865 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1866 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3644 +msgid "Checking" +msgstr "正在检查" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1869 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1870 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3651 +msgid "Allocating" +msgstr "正在分配空间" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1885 +msgid "Tracker Error" +msgstr "Tracker错误" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1887 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1920 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1925 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1937 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1942 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1948 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1953 +#, java-format +msgid "1 peer" +msgid_plural "{0} peers" +msgstr[0] "{0}个用户" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1897 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1898 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3649 +msgid "Starting" +msgstr "開始" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1907 +msgid "Seeding" +msgstr "做种中" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1908 +#, java-format +msgid "Seeding to {0} peer" +msgid_plural "Seeding to {0} peers" +msgstr[0] "正在与用户{0}做种" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1912 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1928 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1929 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3575 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3918 +msgid "Complete" +msgstr "完成" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1933 +#, java-format +msgid "Downloading from {0} of {1} peers in swarm" +msgstr "从{1}个对等节点中的{0}个下载" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1933 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1934 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1939 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1940 +msgid "OK" +msgstr "好" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1939 +#, java-format +msgid "Downloading from {0} peer" +msgid_plural "Downloading from {0} peers" +msgstr[0] "正在从节点{0}下载" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1944 +#, java-format +msgid "Connected to {0} peer" +msgid_plural "Connected to {0} peers" +msgstr[0] "已连接到节点{0}" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1944 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1945 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1950 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1951 +msgid "Stalled" +msgstr "等待" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1950 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1955 +#, java-format +msgid "Connected to {0} of {1} peers in swarm" +msgstr "已连接到{1}对等节点中的{0}个" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1955 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1956 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1959 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1960 +msgid "No Peers" +msgstr "没有用户" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1962 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1963 +msgid "Stopped" +msgstr "已停止" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1993 +msgid "Torrent details" +msgstr "种子详情" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2020 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:4276 +msgid "Comments" +msgstr "註釋" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2044 +msgid "View files" +msgstr "浏览文件" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2046 +msgid "Open file" +msgstr "打开文件" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2064 +msgid "complete" +msgstr "完成" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2064 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3931 +msgid "remaining" +msgstr "剩余" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2072 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3517 +msgid "Completed" +msgstr "已完成" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2110 +msgid "Stop the torrent" +msgstr "停止种子" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2112 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3656 +msgid "Stop" +msgstr "停止" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2125 +msgid "Start the torrent" +msgstr "启动种子" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2127 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3658 +msgid "Start" +msgstr "開始" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2140 +msgid "Remove the torrent from the active list, deleting the .torrent file" +msgstr "取消下载任务并删除对应种子文件。" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2144 +msgid "Remove" +msgstr "移除" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2159 +msgid "Delete the .torrent file and the associated data files" +msgstr "删除种子及所下载的文件" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2163 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:4472 +msgid "Delete" +msgstr "刪除" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2179 +msgid "Peer attached to swarm" +msgstr "附属于集群的节点" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2244 +msgid "Unknown" +msgstr "未知" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2254 +msgid "Destination (identity) of peer" +msgstr "对等节点的目的地(身份)。" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2270 +msgid "Seed" +msgstr "种子" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2296 +msgid "Uninteresting (The peer has no pieces we need)" +msgstr "无需要部分" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2298 +msgid "Choked (The peer is not allowing us to request pieces)" +msgstr "拒绝请求" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2318 +msgid "Uninterested (We have no pieces the peer needs)" +msgstr "无需要部分" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2320 +msgid "Choking (We are not allowing the peer to request pieces)" +msgstr "拒绝请求" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2436 +#, java-format +msgid "Details at {0} tracker" +msgstr "Tracker {0} 上的详细信息" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2453 +msgid "Info" +msgstr "信息" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2529 +msgid "Add Torrent" +msgstr "添加种子" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2533 +msgid "From URL" +msgstr "从URL" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2536 +msgid "" +"Enter the torrent file download URL (I2P only), magnet link, or info hash" +msgstr "输入种子文件的下载链接(仅支持 I2P ),magnet 链接,或信息散列值" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2539 +msgid "Add torrent" +msgstr "添加种子" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2542 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3371 +msgid "Torrent file" +msgstr "Torrent文件" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2546 +msgid "Data dir" +msgstr "数据目录" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2549 +#, java-format +msgid "Enter the directory to save the data in (default {0})" +msgstr "请输入保存数据的目录(默认 {0})" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2553 +#, java-format +msgid "You can also copy .torrent files to: {0}." +msgstr "您也可以将.torrent文件复制到: {0}." + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2555 +msgid "Removing a .torrent will cause it to stop." +msgstr "移除一个种子文件 (.torrent) 将导致它中止。" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2568 +msgid "Create Torrent" +msgstr "创建种子" + +#. out.write("From file:
\n"); +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2571 +msgid "Data to seed" +msgstr "做种数据" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2575 +#, java-format +msgid "File or directory to seed (full path or within the directory {0} )" +msgstr "要做种的文件或目录(完整路径或包含在 {0} 目录中)" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2578 +msgid "Create torrent" +msgstr "创建种子" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2581 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2968 +msgid "Trackers" +msgstr "Tracker" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2583 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:4471 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:4504 +msgid "Primary" +msgstr "主要的" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2585 +msgid "Alternates" +msgstr "备选 Tracker" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2587 +msgid "Tracker Type" +msgstr "Tracker 服务器类型" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2611 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2978 +msgid "Standard" +msgstr "标准" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2613 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2980 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3974 +msgid "Open" +msgstr "打开" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2615 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2982 +msgid "Private" +msgstr "私人" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2619 +msgid "none" +msgstr "无" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2662 +msgid "Data directory" +msgstr "数据文件夹" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2665 +msgid "Directory where torrents and downloaded/shared files are stored" +msgstr " 种子和下载/分享的文件存储目录" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2670 +msgid "Files readable by all" +msgstr "文件对所有人可读" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2674 +msgid "" +"Set file permissions to allow other local users to access the downloaded " +"files" +msgstr "给其他本地用户设置文件权限使其能够访问已下载文件" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2678 +msgid "Auto start torrents" +msgstr "自动开始种子" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2682 +msgid "" +"Automatically start torrents when added and restart torrents when I2PSnark " +"starts" +msgstr "当种子被添加时自动启动并且在 I2PSnark 启动时自动重启种子" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2686 +msgid "Smart torrent sorting" +msgstr "智能种子排序" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2690 +msgid "Ignore words such as 'a' and 'the' when sorting" +msgstr "排序时忽略诸如 ‘a’ 和 ‘the’ 的单词" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2694 +msgid "Collapsible panels" +msgstr "可折叠面板" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2699 +msgid "Your browser does not support this feature." +msgstr "您的浏览器不支持这个功能。" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2702 +msgid "" +"Allow the 'Add Torrent' and 'Create Torrent' panels to be collapsed, and " +"collapse by default in non-embedded mode" +msgstr "允许‘添加种子’和‘创建种子’面板被折叠,并且在非嵌入模式下默认折叠。" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2714 +msgid "Language" +msgstr "界面语言" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2725 +msgid "Theme" +msgstr "主題" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2729 +msgid "To change themes manually, disable universal theming" +msgstr "要手动更改主题,请禁用通用主题" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2733 +msgid "Universal theming is enabled." +msgstr "通用主题已开启。" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2735 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2841 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2858 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:4265 +msgid "Configure" +msgstr "設定" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2758 +msgid "Refresh time" +msgstr "刷新时间" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2761 +msgid "How frequently torrent status is updated on the main page" +msgstr "主页面上下载状态的更新频率" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2774 +msgid "Never" +msgstr "永不" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2781 +msgid "Startup delay" +msgstr "启动延迟" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2784 +msgid "How long before auto-started torrents are loaded when I2PSnark starts" +msgstr "当I2PSnark启动时,在多长时间内加载自动启动的种子?" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2786 +msgid "minutes" +msgstr "分鐘" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2791 +msgid "Page size" +msgstr "页面大小" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2794 +msgid "Maximum number of torrents to display per page" +msgstr "每页显示的最大种子数量" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2796 +msgid "torrents" +msgstr "torrents" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2820 +msgid "Total uploader limit" +msgstr "限制总上传种子数为" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2824 +msgid "Maximum number of peers for uploading" +msgstr "同时上传的对等节点数量最大值" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2826 +msgid "peers" +msgstr "节点" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2830 +msgid "Up bandwidth limit" +msgstr "上传带宽限制" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2834 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2851 +msgid "Maximum bandwidth allocated" +msgstr "已分配的最大带宽" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2836 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2853 +msgid "Half available bandwidth recommended." +msgstr "推荐设置为可用带宽的一半。" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2839 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2856 +msgid "View or change router bandwidth" +msgstr "浏览或修改路由器带宽" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2847 +msgid "Down bandwidth limit" +msgstr "下行带宽限制" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2863 +msgid "Use open trackers also" +msgstr "同时使用OpenTracker" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2867 +msgid "" +"Announce torrents to open trackers as well as trackers listed in the torrent" +" file" +msgstr "选择后在OpenTracker及种子文件中的Tracker上同时发布。" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2871 +msgid "Enable DHT" +msgstr "启用 DHT" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2875 +msgid "Use DHT to find additional peers" +msgstr "使用分布式哈希表发现其他节点" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2879 +msgid "Enable Ratings" +msgstr "启用评分" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2883 +msgid "Show ratings on torrent pages" +msgstr "在种子页面显示评级" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2887 +msgid "Enable Comments" +msgstr "启用评论" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2891 +msgid "Show comments on torrent pages" +msgstr "在种子页面显示评论" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2893 +msgid "Comment Author" +msgstr "评论作者" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2896 +msgid "Set the author name for your comments and ratings" +msgstr "为你的评论和评级设置作者名称" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2912 +msgid "Inbound Settings" +msgstr "入站设置" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2919 +msgid "Outbound Settings" +msgstr "出站设置" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2928 +msgid "I2CP host" +msgstr "I2CP 主机" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2933 +msgid "I2CP port" +msgstr "I2CP 端口" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2948 +msgid "I2CP options" +msgstr "I2CP选项" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2953 +msgid "Save configuration" +msgstr "保存设置" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2971 +msgid "Select trackers for removal from I2PSnark's known list" +msgstr "选择从I2PSnark已知列表中移除的Tracker" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2974 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3816 +msgid "Name" +msgstr "名稱" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2976 +msgid "Website URL" +msgstr "网站 URL" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2984 +msgid "Announce URL" +msgstr "通告 URL..." + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2996 +msgid "Mark tracker for deletion" +msgstr "标记Tracker为删除" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3028 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:4505 +msgid "Add" +msgstr "新增" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3075 +#, java-format +msgid "Invalid magnet URL {0}" +msgstr "磁性链接 {0} 无效" + +#. * dummies for translation +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3083 +#, java-format +msgid "1 hop" +msgid_plural "{0} hops" +msgstr[0] "{0}跳" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3084 +#, java-format +msgid "1 tunnel" +msgid_plural "{0} tunnels" +msgstr[0] "{0}隧道" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3361 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3668 +msgid "Edit Torrent" +msgstr "编辑种子" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3379 +msgid "Data location" +msgstr "数据位置" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3389 +msgid "Info hash" +msgstr "信息哈希" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3410 +msgid "Primary Tracker" +msgstr "主 Tracker" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3429 +msgid "Tracker List" +msgstr "Tracker 列表" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3455 +msgid "Web Seeds" +msgstr "网页做种" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3477 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:4533 +msgid "Comment" +msgstr "附註" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3487 +msgid "Created" +msgstr "已创建" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3498 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:4547 +msgid "Created By" +msgstr "创建者" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3508 +msgid "Added" +msgstr "加上" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3528 +msgid "Last activity" +msgstr "上次活动" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3542 +msgid "Magnet link" +msgstr "Magnet磁性链接" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3557 +msgid "Private torrent" +msgstr "私有种子" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3571 +msgid "Completion" +msgstr "完成" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3606 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3844 +msgid "Remaining" +msgstr "剩餘" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3615 +msgid "Skipped" +msgstr "已跳过" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3623 +msgid "Files" +msgstr "檔案" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3629 +msgid "Pieces" +msgstr "分块数量" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3634 +msgid "Piece size" +msgstr "分块大小" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3647 +msgid "Refresh page for results" +msgstr "刷新页面获取结果" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3659 +msgid "Force Recheck" +msgstr "强制重新检查" + +#. shouldn't happen +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3662 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3671 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:4445 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:4784 +msgid "Torrent must be stopped" +msgstr "种子必须停止" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3665 +msgid "Check integrity of the downloaded files" +msgstr "检查已下载文件的完整性" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3674 +msgid "Add or remove trackers" +msgstr "增加或移除Tracker" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3684 +msgid "Download files in order" +msgstr "按顺序下载文件" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3685 +msgid "Download pieces in order" +msgstr "按顺序下载分片" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3692 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:4287 +msgid "Save Preference" +msgstr "保存偏好" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3702 +msgid "Resource Not found" +msgstr "找不到资源" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3703 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3721 +msgid "Resource" +msgstr "资源" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3704 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3722 +msgid "Base" +msgstr "基础" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3720 +msgid "Resource Does Not Exist" +msgstr "资源不存在" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3796 +msgid "Directory" +msgstr "目录" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3842 +msgid "Download Status" +msgstr "下载状态" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3854 +msgid "Download Priority" +msgstr "下载优先级" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3866 +msgid "Up to higher level directory" +msgstr "上一层文件夹" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3877 +msgid "Audio Playlist" +msgstr "音频播放列表" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3909 +msgid "Torrent not found?" +msgstr "种子未找到" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3915 +msgid "File not found in torrent?" +msgstr "种子中没有发现文件?" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3957 +msgid "Preview" +msgstr "預覽" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:4008 +msgid "Download file at high priority" +msgstr "以高优先级下载文件" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:4013 +msgid "High" +msgstr "高" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:4016 +msgid "Download file at normal priority" +msgstr "以普通优先级下载文件" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:4021 +msgid "Normal" +msgstr "一般" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:4023 +msgid "Do not download this file" +msgstr "不要下载这个文件" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:4028 +msgid "Skip" +msgstr "跳过" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:4040 +msgid "Set all high" +msgstr "设置所有为高" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:4043 +msgid "Set all normal" +msgstr "设置所有为正常" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:4045 +msgid "Skip all" +msgstr "忽略所有" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:4046 +msgid "Save priorities" +msgstr "保存优先级" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:4260 +msgid "Ratings and Comments" +msgstr "评级和评价" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:4263 +msgid "Author name required to rate or comment" +msgstr "评级或评论要求作者名字" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:4269 +msgid "Your author name for published comments and ratings" +msgstr "您发布评论与评级时的作者名字" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:4283 +msgid "Enable viewing and posting comments for this torrent" +msgstr "为此种子启用浏览和发布评论" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:4306 +#, java-format +msgid "1 star" +msgid_plural "{0} stars" +msgstr[0] "{0}个星星" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:4308 +msgid "No rating" +msgstr "暂无评级" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:4323 +msgid "Rate and Comment" +msgstr "评级和评论" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:4325 +msgid "Rate Torrent" +msgstr "评价种子" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:4327 +msgid "Add Comment" +msgstr "添加评论" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:4339 +msgid "My Rating" +msgstr "我的评级" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:4352 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:4356 +msgid "Average Rating" +msgstr "平均评级" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:4357 +msgid "No community ratings currently available" +msgstr "暂无可用的社区评级" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:4405 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:4491 +msgid "Mark for deletion" +msgstr "標記為刪除" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:4418 +msgid "Delete Selected" +msgstr "删除所选" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:4478 +msgid "Tracker" +msgstr "Tracker" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:4513 +msgid "Add Tracker" +msgstr "增加Tracker" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:4553 +msgid "Save Changes" +msgstr "保存更改" diff --git a/apps/i2ptunnel/locale-proxy/messages_gan.po b/apps/i2ptunnel/locale-proxy/messages_gan.po new file mode 100644 index 0000000000..0846364666 --- /dev/null +++ b/apps/i2ptunnel/locale-proxy/messages_gan.po @@ -0,0 +1,700 @@ +# 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 +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: I2P\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-02-05 14:31+0000\n" +"PO-Revision-Date: 2013-07-20 14:50+0000\n" +"Last-Translator: duck \n" +"Language-Team: Chinese (Gan) (http://app.transifex.com/otf/I2P/language/gan/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: gan\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: ../java/build/Proxy.java:5 ../java/build/Proxy.java:11 +#: ../java/build/Proxy.java:40 ../java/build/Proxy.java:49 +#: ../java/build/Proxy.java:55 ../java/build/Proxy.java:91 +#: ../java/build/Proxy.java:97 ../java/build/Proxy.java:111 +msgid "Website Unreachable" +msgstr "网站不可达" + +#: ../java/build/Proxy.java:6 ../java/build/Proxy.java:17 +#: ../java/build/Proxy.java:29 ../java/build/Proxy.java:41 +#: ../java/build/Proxy.java:50 ../java/build/Proxy.java:61 +#: ../java/build/Proxy.java:70 ../java/build/Proxy.java:79 +#: ../java/build/Proxy.java:92 ../java/build/Proxy.java:101 +#: ../java/build/Proxy.java:112 ../java/build/Proxy.java:120 +#: ../java/build/Proxy.java:132 ../java/build/Proxy.java:141 +#: ../java/build/Proxy.java:151 ../java/build/Proxy.java:161 +#: ../java/build/Proxy.java:173 ../java/build/Proxy.java:186 +#: ../java/build/Proxy.java:198 ../java/build/Proxy.java:208 +#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:294 +#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:368 +#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:402 +msgid "Router Console" +msgstr "路由控制檯" + +#: ../java/build/Proxy.java:7 ../java/build/Proxy.java:18 +#: ../java/build/Proxy.java:30 ../java/build/Proxy.java:42 +#: ../java/build/Proxy.java:51 ../java/build/Proxy.java:62 +#: ../java/build/Proxy.java:71 ../java/build/Proxy.java:80 +#: ../java/build/Proxy.java:93 ../java/build/Proxy.java:102 +#: ../java/build/Proxy.java:113 ../java/build/Proxy.java:121 +#: ../java/build/Proxy.java:133 ../java/build/Proxy.java:142 +#: ../java/build/Proxy.java:152 ../java/build/Proxy.java:162 +#: ../java/build/Proxy.java:174 ../java/build/Proxy.java:187 +#: ../java/build/Proxy.java:199 ../java/build/Proxy.java:209 +msgid "I2P Router Console" +msgstr "I2P 路由控制檯" + +#: ../java/build/Proxy.java:8 ../java/build/Proxy.java:19 +#: ../java/build/Proxy.java:31 ../java/build/Proxy.java:43 +#: ../java/build/Proxy.java:52 ../java/build/Proxy.java:63 +#: ../java/build/Proxy.java:72 ../java/build/Proxy.java:81 +#: ../java/build/Proxy.java:94 ../java/build/Proxy.java:103 +#: ../java/build/Proxy.java:114 ../java/build/Proxy.java:122 +#: ../java/build/Proxy.java:134 ../java/build/Proxy.java:143 +#: ../java/build/Proxy.java:153 ../java/build/Proxy.java:163 +#: ../java/build/Proxy.java:175 ../java/build/Proxy.java:188 +#: ../java/build/Proxy.java:200 ../java/build/Proxy.java:210 +#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:297 +#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:369 +#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:403 +msgid "Configuration" +msgstr "設定" + +#: ../java/build/Proxy.java:9 ../java/build/Proxy.java:20 +#: ../java/build/Proxy.java:32 ../java/build/Proxy.java:44 +#: ../java/build/Proxy.java:53 ../java/build/Proxy.java:64 +#: ../java/build/Proxy.java:73 ../java/build/Proxy.java:82 +#: ../java/build/Proxy.java:95 ../java/build/Proxy.java:104 +#: ../java/build/Proxy.java:115 ../java/build/Proxy.java:123 +#: ../java/build/Proxy.java:135 ../java/build/Proxy.java:144 +#: ../java/build/Proxy.java:154 ../java/build/Proxy.java:164 +#: ../java/build/Proxy.java:176 ../java/build/Proxy.java:189 +#: ../java/build/Proxy.java:201 ../java/build/Proxy.java:211 +#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:298 +#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:369 +#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:403 +msgid "Help" +msgstr "Help" + +#: ../java/build/Proxy.java:10 ../java/build/Proxy.java:21 +#: ../java/build/Proxy.java:33 ../java/build/Proxy.java:45 +#: ../java/build/Proxy.java:54 ../java/build/Proxy.java:65 +#: ../java/build/Proxy.java:74 ../java/build/Proxy.java:83 +#: ../java/build/Proxy.java:96 ../java/build/Proxy.java:105 +#: ../java/build/Proxy.java:116 ../java/build/Proxy.java:124 +#: ../java/build/Proxy.java:136 ../java/build/Proxy.java:145 +#: ../java/build/Proxy.java:155 ../java/build/Proxy.java:165 +#: ../java/build/Proxy.java:177 ../java/build/Proxy.java:190 +#: ../java/build/Proxy.java:202 ../java/build/Proxy.java:212 +msgid "Addressbook" +msgstr "地址簿" + +#: ../java/build/Proxy.java:12 +msgid "The website was not reachable." +msgstr "该网站不可达。" + +#: ../java/build/Proxy.java:13 +msgid "" +"The website is offline, there is network congestion, or your router is not " +"yet well-integrated with peers." +msgstr "该网站已离线,可能由于网络拥堵,或者您的路由器未良好的与网络整合。" + +#: ../java/build/Proxy.java:14 ../java/build/Proxy.java:58 +#: ../java/build/Proxy.java:109 ../java/build/Proxy.java:129 +#, java-format +msgid "You may want to {0}retry{1}." +msgstr "您可能希望{0}重试{1}。" + +#: ../java/build/Proxy.java:15 ../java/build/Proxy.java:27 +#: ../java/build/Proxy.java:48 ../java/build/Proxy.java:59 +#: ../java/build/Proxy.java:90 ../java/build/Proxy.java:110 +#: ../java/build/Proxy.java:118 ../java/build/Proxy.java:130 +#: ../java/build/Proxy.java:171 ../java/build/Proxy.java:196 +msgid "Could not find the following destination:" +msgstr "未能找到下列目的地:" + +#: ../java/build/Proxy.java:16 ../java/build/Proxy.java:22 +#: ../java/build/Proxy.java:160 ../java/build/Proxy.java:166 +msgid "Outproxy Not Found" +msgstr "出口代理未找到" + +#: ../java/build/Proxy.java:23 +msgid "" +"The HTTP outproxy was not reachable, because its lease set was not found." +msgstr "HTTP 出口代理不可达,因为找不到其租契。" + +#: ../java/build/Proxy.java:24 +msgid "" +"The outproxy is probably down, but there could also be network congestion." +msgstr "出口代理可能已下线,但也可能是由于网络拥堵。" + +#: ../java/build/Proxy.java:25 ../java/build/Proxy.java:169 +#: ../java/build/Proxy.java:194 ../java/build/Proxy.java:215 +#, java-format +msgid "" +"You may want to {0}retry{1} as this will randomly reselect an outproxy from " +"the pool you have defined {2}here{3} (if you have more than one configured)." +msgstr "您可能想要{0}重试{1}因为这将从您在{2}此处{3}定义的出口代理列表中随机选择一个进行连接(如果您设置了多个出口代理)。" + +#: ../java/build/Proxy.java:26 ../java/build/Proxy.java:170 +#: ../java/build/Proxy.java:195 ../java/build/Proxy.java:216 +#, java-format +msgid "" +"If you continue to have trouble you may want to edit your outproxy list " +"{0}here{1}." +msgstr "如果问题持续存在,您可能需要{0}在此{1}编辑出口代理列表。" + +#: ../java/build/Proxy.java:28 +msgid "Information: New Host Name" +msgstr "信息:新站点地址" + +#: ../java/build/Proxy.java:34 +msgid "Information: New Host Name with Address Helper" +msgstr "信息:通过地址助手发现的新站点地址" + +#: ../java/build/Proxy.java:35 +msgid "" +"The address helper link you followed is for a new host name that is not in " +"your address book." +msgstr "您打开的地址助手链接指向了一个新站点,您的I2P地址簿中尚未收录。" + +#: ../java/build/Proxy.java:36 +msgid "You may save this host name to your local address book." +msgstr "您可以将此站点网址保存至您的本地地址簿中。" + +#: ../java/build/Proxy.java:37 +msgid "" +"If you save it to your address book, you will not see this message again." +msgstr "在地址簿中保存后,此提示将不在显示。" + +#: ../java/build/Proxy.java:38 +msgid "" +"If you do not save it, the host name will be forgotten after the next router" +" restart." +msgstr "如果不保存,路由重启后,此站点地址将被遗忘。" + +#: ../java/build/Proxy.java:39 +msgid "" +"If you do not wish to visit this host, click the \"back\" button on your " +"browser." +msgstr "如果您不像访问此站点,请点击浏览器的“后退”按钮。" + +#: ../java/build/Proxy.java:46 ../java/build/Proxy.java:119 +#: ../java/build/Proxy.java:125 +msgid "Warning: Invalid Destination" +msgstr "警告:无效目标" + +#: ../java/build/Proxy.java:47 +msgid "The Base32 address is invalid." +msgstr "Base32 地址无效。" + +#: ../java/build/Proxy.java:56 +msgid "The website was not reachable, because its lease set was not found." +msgstr "该网站不可达,因为找不到其租契集。" + +#: ../java/build/Proxy.java:57 +msgid "" +"The website is probably down, but there could also be network congestion." +msgstr "该网站可能已下线,但也可能是由于网络拥堵。" + +#: ../java/build/Proxy.java:60 ../java/build/Proxy.java:66 +msgid "Warning: Invalid Request URI" +msgstr "警告:请求的 URI 无效。" + +#: ../java/build/Proxy.java:67 +msgid "The request URI is invalid, and probably contains illegal characters." +msgstr "请求的 URI 无效或包含非法字符。" + +#: ../java/build/Proxy.java:68 +msgid "" +"If you clicked a link, check the end of the URI for any characters the " +"browser has mistakenly added on." +msgstr "如果您点击的是链接,请检查 URI 结尾是否有浏览器错误添加的多余字符。" + +#: ../java/build/Proxy.java:69 +msgid "Error: Request Denied" +msgstr "错误:请求被拒绝" + +#: ../java/build/Proxy.java:75 +msgid "Error: Local Access" +msgstr "错误:本地访问" + +#: ../java/build/Proxy.java:76 +msgid "Your browser is misconfigured." +msgstr "您的浏览器配置有误。" + +#: ../java/build/Proxy.java:77 +msgid "" +"Do not use the proxy to access the router console, localhost, or local LAN " +"destinations." +msgstr "请不要使用代理访问路由控制台,localhost 或局域网地址。" + +#: ../java/build/Proxy.java:78 +msgid "Website Unknown" +msgstr "网站未知" + +#: ../java/build/Proxy.java:84 +msgid "Website Not Found in Addressbook" +msgstr "未在地址簿中找到网站" + +#: ../java/build/Proxy.java:85 +msgid "The website was not found in your router's addressbook." +msgstr "未在您的地址簿中找到此网站。" + +#: ../java/build/Proxy.java:86 +msgid "Check the link or find a Base 32 or Base 64 address." +msgstr "请检查链接或找到其对应的 Base32 或 Base64 地址。" + +#: ../java/build/Proxy.java:87 +#, java-format +msgid "If you have the Base 64 address, {0}add it to your addressbook{1}." +msgstr "如果您拥有 Base64 地址,请{0}将其添加至您的地址簿{1}。" + +#: ../java/build/Proxy.java:88 +msgid "" +"Otherwise, find a Base 32 or address helper link, or use a jump service link" +" below." +msgstr "否则,请找到其对应的 Base32 地址或地址助手链接,或使用下面列出的跳转服务之一。" + +#: ../java/build/Proxy.java:89 +#, java-format +msgid "" +"Seeing this page often? See {0}the FAQ{1} for help in {2}adding some " +"subscriptions{3} to your addressbook." +msgstr "经常碰到此页面?请参见 {0}常见问题集 FAQ{1} 查看如何为您的地址簿 {2}添加订阅{3}。" + +#: ../java/build/Proxy.java:98 +msgid "" +"The website was not reachable, because it uses encryption options that are " +"not supported by your I2P or Java version." +msgstr "此网站不可达,因为您使用的 I2P 或者 Java 版本不支持它使用的加密选项。" + +#: ../java/build/Proxy.java:99 ../java/build/Proxy.java:217 +msgid "Could not connect to the following destination:" +msgstr "无法连接到以下目标:" + +#: ../java/build/Proxy.java:100 ../java/build/Proxy.java:106 +#: ../java/build/Proxy.java:185 ../java/build/Proxy.java:191 +msgid "Connection Reset" +msgstr "连接重置" + +#: ../java/build/Proxy.java:107 +msgid "The connection to the website was reset while the page was loading." +msgstr "载入页面时到该网站的连接被重置。" + +#: ../java/build/Proxy.java:108 +msgid "" +"The website could be temporarily unavailable, too busy, or it has blocked " +"your access." +msgstr "网站暂时不可用、太忙或者被屏蔽。" + +#: ../java/build/Proxy.java:117 +msgid "Warning: Authorization Required" +msgstr "警告:需要授权" + +#: ../java/build/Proxy.java:126 +msgid "" +"The website destination specified was not valid, or was otherwise " +"unreachable." +msgstr "指定的网站目标无效,或者不可达。" + +#: ../java/build/Proxy.java:127 +msgid "" +"Perhaps you pasted in the wrong Base 64 string or the link you are following" +" is bad." +msgstr "或许您粘贴的 Base64 字符串有误或您打开的链接有问题。" + +#: ../java/build/Proxy.java:128 +msgid "The I2P host could also be offline." +msgstr "也可能是 I2P 站点目前已下线。" + +#: ../java/build/Proxy.java:131 ../java/build/Proxy.java:137 +msgid "Warning: No Outproxy Configured" +msgstr "警告:没有配置出口代理" + +#: ../java/build/Proxy.java:138 +msgid "" +"Your request was for a site outside of I2P, but you have no HTTP outproxy " +"configured." +msgstr "请求的站点在 I2P 网络之外,但您没有配置 HTTP 出口代理。" + +#: ../java/build/Proxy.java:139 +msgid "Please configure an outproxy in I2PTunnel." +msgstr "请到 I2PTunnel 中配置出口代理。" + +#: ../java/build/Proxy.java:140 ../java/build/Proxy.java:146 +msgid "Warning: Destination Key Conflict" +msgstr "警告:目标密钥冲突" + +#: ../java/build/Proxy.java:147 +msgid "" +"The address helper link you followed specifies a different destination key " +"than the entry in your address book." +msgstr "您所打开的地址助手链接指定的目标密钥与您的地址簿中的记录不同。" + +#: ../java/build/Proxy.java:148 +msgid "" +"Someone could be trying to impersonate another website, or people have given" +" two websites identical names." +msgstr "有人可能在试图冒充另一个网站,或者人们给两个网站赋予了同一个名称。" + +#: ../java/build/Proxy.java:149 +msgid "" +"Resolve the conflict by deciding which key you trust, and then either ignore" +" the address helper link, or delete the host entry from your address book " +"and click the address helper link again." +msgstr "决定您信任哪个密钥以解决冲突,然后要么忽略地址助手链接,要么在您的地址簿中删除该主机项,并再次点击该地址助手链接。" + +#: ../java/build/Proxy.java:150 ../java/build/Proxy.java:156 +msgid "Warning: Bad Address Helper" +msgstr "警告:无效地址助手" + +#: ../java/build/Proxy.java:157 +#, java-format +msgid "The helper key in the URL ({0}i2paddresshelper={1}) is not resolvable." +msgstr "URL中的助手键值 ({0}i2paddresshelper={1}) 无法解析。" + +#: ../java/build/Proxy.java:158 +msgid "It seems to be garbage data, or a mistyped Base 32 address." +msgstr "它看起来可能是无效数据或输入有误的 Base32 地址。" + +#: ../java/build/Proxy.java:159 +msgid "" +"Check your URL to try and fix the helper key to be a valid Base 32 hostname " +"or Base 64 key." +msgstr "请检查您的链接尝试修复助手密钥为有效的 Base32 地址或 Base64 密钥。" + +#: ../java/build/Proxy.java:167 +msgid "The HTTP Outproxy was not found." +msgstr "未找到 HTTP 出口代理。" + +#: ../java/build/Proxy.java:168 +msgid "" +"It is offline, there is network congestion, or your router is not yet well-" +"integrated with peers." +msgstr "它已经下线,遇到网络拥堵,或您的路由尚未完全整合至 I2P 网络中。" + +#: ../java/build/Proxy.java:172 ../java/build/Proxy.java:178 +msgid "Warning: Request Denied" +msgstr "警告:请求被拒绝" + +#: ../java/build/Proxy.java:179 +msgid "You attempted to connect to a non-I2P website or location." +msgstr "您尝试连接的网站非 I2P 站点或位置。" + +#: ../java/build/Proxy.java:180 +msgid "Proxy Authorization Required" +msgstr "出口代理认证" + +#: ../java/build/Proxy.java:181 +msgid "I2P HTTP Proxy Authorization Required" +msgstr "出口代理认证" + +#: ../java/build/Proxy.java:182 +msgid "" +"This proxy is configured to require a username and password for access." +msgstr "代理配置要求提供用户名和密码才能访问。" + +#: ../java/build/Proxy.java:183 +#, java-format +msgid "" +"Please enter your username and password, or check your {0}router " +"configuration{1} or {2}I2PTunnel configuration{3}." +msgstr "请输入您的用户名和密码,否则请检查您的 {0} 路由配置 {1} 或 {2} I2PTunnel 配置 {3}。" + +#: ../java/build/Proxy.java:184 +#, java-format +msgid "" +"To disable authorization, remove the configuration " +"{0}i2ptunnel.proxy.auth=basic{1}, then stop and restart the HTTP Proxy " +"tunnel." +msgstr "要禁用身份认证,请删除配置 {0}i2ptunnel.proxy.auth=basic{1}, 然后停止并重启 HTTP Proxy 隧道。" + +#: ../java/build/Proxy.java:192 +msgid "The connection to the proxy was reset." +msgstr "到代理的连接被重置。" + +#: ../java/build/Proxy.java:193 +msgid "" +"The proxy could be temporarily unavailable, too busy, or it has blocked your" +" access." +msgstr "代理暂时不可用、太忙或者被屏蔽。" + +#: ../java/build/Proxy.java:197 ../java/build/Proxy.java:203 +msgid "Warning: Non-HTTP Protocol" +msgstr "警告:非 HTTP 协议" + +#: ../java/build/Proxy.java:204 +msgid "The request uses a bad protocol." +msgstr "请求使用了无效协议。" + +#: ../java/build/Proxy.java:205 +msgid "The I2P HTTP Proxy supports HTTP and HTTPS requests only." +msgstr "I2P HTTP 代理只支持 HTTP 和 HTTPS 请求。" + +#: ../java/build/Proxy.java:206 +msgid "Other protocols such as FTP are not allowed." +msgstr "其他协议例如FTP不被支持。" + +#: ../java/build/Proxy.java:207 ../java/build/Proxy.java:213 +msgid "Outproxy Unreachable" +msgstr "出口代理不可达" + +#: ../java/build/Proxy.java:214 +msgid "" +"The HTTP outproxy was not reachable, because it uses encryption options that" +" are not supported by your I2P or Java version." +msgstr "此 HTTP 出口代理不可达,因为您使用的 I2P 或者 Java 版本不支持它使用的加密选项。" + +#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:692 +msgid "This seems to be a bad destination:" +msgstr "目标似乎无效:" + +#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:693 +msgid "i2paddresshelper cannot help you with a destination like that!" +msgstr "i2p 地址助手对您输入的目标无能为力!" + +#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:765 +#, java-format +msgid "" +"To visit the destination in your address book, click here. To visit the conflicting addresshelper destination, " +"click here." +msgstr "要访问您的地址簿中的该目标,请点击这里。要访问冲突的地址助手目标,点击这里。" + +#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:774 +#, java-format +msgid "Destination for {0} in address book" +msgstr "地址簿中的 {0} 的目标" + +#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:777 +msgid "Conflicting address helper destination" +msgstr "确认地址助手目标" + +#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1224 +msgid "Corrupt Base32 address" +msgstr "损坏的 Base32 地址" + +#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1304 +msgid "Destination lease set not found" +msgstr "找不到目标租赁" + +#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1437 +msgid "Host" +msgstr "主機" + +#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1441 +#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1502 +msgid "Base32" +msgstr "Base32" + +#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1445 +msgid "Destination" +msgstr "目的地" + +#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1451 +#, java-format +msgid "Continue to {0} without saving" +msgstr "继续{0},而不保存" + +#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1452 +msgid "" +"You can browse to the site without saving it to the address book. The " +"address will be remembered until you restart your I2P router." +msgstr "您可以不将站点添加到地址簿而进行浏览。地址会被记录直到您重启您的I2P路由器。" + +#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1453 +msgid "Continue without saving" +msgstr "继续,而不保存" + +#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1460 +#, java-format +msgid "Save {0} to router address book and continue to website" +msgstr "保存 {0} 到路由器地址簿并继续访问网站" + +#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1461 +msgid "" +"This address will be saved to your Router address book where your " +"subscription-based addresses are stored." +msgstr "本地址会被存储在您的路由器地址簿,您基于订阅的地址所存储的地方。" + +#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1463 +msgid "" +"If you want to keep track of sites you have added manually, add to your " +"Local or Private address book instead." +msgstr "如果您希望追踪您手动添加的站点,请将其添加到本地或私有地址簿。" + +#. FIXME wasn't escaped +#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1466 +#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1548 +msgid "Save & continue" +msgstr "保存并继续" + +#. only blockfile supports multiple books +#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1473 +#, java-format +msgid "Save {0} to local address book and continue to website" +msgstr "保存 {0} 到路由器地址簿并继续访问网站" + +#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1474 +msgid "" +"This address will be saved to your Local address book. Select this option " +"for addresses you wish to keep separate from the main router address book, " +"but don't mind publishing." +msgstr "该地址会被保存到你的本地地址簿。如果您希望与主路由器地址簿分开存储,但不介意发布的话,请选择此选项。" + +#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1478 +#, java-format +msgid "Save {0} to private address book and continue to website" +msgstr "保存 {0} 到私有地址簿并继续访问网站" + +#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1479 +msgid "" +"This address will be saved to your Private address book, ensuring it is " +"never published." +msgstr "本地址会被存储到您的私有地址簿,以保证其永不被发布。" + +#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1507 +msgid "Base32 address requires lookup password" +msgstr "Base32地址需要查找密码" + +#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1509 +msgid "Base32 address requires encryption key" +msgstr "Base32地址需要加密密钥" + +#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1511 +msgid "Base32 address requires encryption key and lookup password" +msgstr "Base32 地址需要加密密钥和查找密码" + +#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1513 +msgid "Base32 address decryption failure, check encryption key" +msgstr "Base32 地址解密失败,检查加密密钥" + +#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1524 +msgid "Generate" +msgstr "生成" + +#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1525 +msgid "Encryption key" +msgstr "加密密钥" + +#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1526 +msgid "" +"You must either enter a PSK encryption key provided by the server operator, " +"or generate a DH encryption key and send that to the server operator." +msgstr "您必须输入一个服务器操作员提供的 PSK 加密密钥或生成一个 DH 加密密钥并发送到服务器操作员。" + +#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1527 +msgid "Ask the server operator for help." +msgstr "向服务器操作者寻求帮助" + +#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1530 +msgid "Enter PSK encryption key" +msgstr "输入 PSK 加密密钥" + +#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1533 +msgid "Generate new DH encryption key" +msgstr "生成新的加密密钥" + +#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1541 +msgid "Lookup password" +msgstr "查找密码" + +#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1542 +msgid "You must enter the password provided by the server operator." +msgstr "您需要输入服务器操作者提供的密码。" + +#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:196 +#, java-format +msgid "Added via address helper from {0}" +msgstr "已通过地址助手 {0} 添加" + +#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:198 +msgid "Added via address helper" +msgstr "已通过地址助手添加" + +#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:235 +msgid "Missing lookup password" +msgstr "查找密码不存在" + +#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:249 +msgid "Missing private key" +msgstr "私有密钥不存在" + +#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:254 +msgid "Invalid private key" +msgstr "私有密钥无效" + +#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:287 +#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:306 +msgid "Your new encryption key" +msgstr "您的新加密密钥" + +#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:301 +msgid "Address book" +msgstr "通讯录" + +#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:311 +msgid "Copy the key and send it to the server operator." +msgstr "复制密钥,并发送给服务器操作者" + +#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:313 +msgid "After you are granted permission, you may proceed to the website." +msgstr "被授予权限后,您才可以访问这个网站" + +#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:334 +msgid "Go back and fix the error" +msgstr "返回并修复错误" + +#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:345 +msgid "router" +msgstr "路由器" + +#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:347 +msgid "local" +msgstr "本地" + +#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:349 +msgid "private" +msgstr "私有" + +#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:362 +#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:396 +#, java-format +msgid "Redirecting to {0}" +msgstr "正在重定向至 {0}" + +#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:371 +#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:405 +msgid "Address Book" +msgstr "地址簿" + +#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:376 +#, java-format +msgid "Saved {0} to the {1} address book, redirecting now." +msgstr "目标{0}已保存至{1}地址簿中,正在重定向至此目标。" + +#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:377 +#, java-format +msgid "Failed to save {0} to the {1} address book, redirecting now." +msgstr "目标{0}在{1}地址簿中保存失败,正在重定向至此目标。" + +#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:379 +#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:411 +msgid "Click here if you are not redirected automatically." +msgstr "如果未能自动转到,请点击这里。" + +#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:409 +#, java-format +msgid "Saved the authentication for {0}, redirecting now." +msgstr "已保存 {0} 的凭据,正在重定向。" diff --git a/apps/i2ptunnel/locale/messages_gan.po b/apps/i2ptunnel/locale/messages_gan.po new file mode 100644 index 0000000000..56a47c02cc --- /dev/null +++ b/apps/i2ptunnel/locale/messages_gan.po @@ -0,0 +1,2330 @@ +# 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 +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: I2P\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-12-04 23:26+0000\n" +"PO-Revision-Date: 2011-02-13 11:46+0000\n" +"Last-Translator: duck \n" +"Language-Team: Chinese (Gan) (http://app.transifex.com/otf/I2P/language/gan/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: gan\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: ../java/src/net/i2p/i2ptunnel/web/EditBean.java:506 +#: ../java/src/net/i2p/i2ptunnel/web/EditBean.java:516 +msgid "internal" +msgstr "內置" + +#: ../java/src/net/i2p/i2ptunnel/web/EditBean.java:553 +#, java-format +msgid "{0} inbound tunnel" +msgid_plural "{0} inbound tunnels" +msgstr[0] "{0} 入站隧道" + +#: ../java/src/net/i2p/i2ptunnel/web/EditBean.java:555 +#, java-format +msgid "{0} outbound tunnel" +msgid_plural "{0} outbound tunnels" +msgstr[0] "{0} 出站隧道" + +#: ../java/src/net/i2p/i2ptunnel/web/EditBean.java:557 +#, java-format +msgid "{0} inbound, {0} outbound tunnel" +msgid_plural "{0} inbound, {0} outbound tunnels" +msgstr[0] "{0}進站,{0}出站隧道" + +#: ../java/src/net/i2p/i2ptunnel/web/EditBean.java:561 +msgid "lower bandwidth and reliability" +msgstr "較低的頻寬和穩定性" + +#: ../java/src/net/i2p/i2ptunnel/web/EditBean.java:563 +msgid "standard bandwidth and reliability" +msgstr "正常的頻寬和穩定性" + +#: ../java/src/net/i2p/i2ptunnel/web/EditBean.java:565 +msgid "higher bandwidth and reliability" +msgstr "較高的頻寬和穩定性" + +#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:103 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/register_jsp.java:615 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/ssl_jsp.java:1093 +msgid "Tunnels are not initialized yet, please reload in two minutes." +msgstr "隧道尚未初始化,請在兩分鐘內重整。" + +#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:190 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/ssl_jsp.java:314 +msgid "" +"Invalid form submission, probably because you used the 'back' or 'reload' " +"button on your browser. Please resubmit." +msgstr "表單提交無效,可能的原因是您使用了「後退」或「重新整理」按鈕。請重新提交。" + +#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:192 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/ssl_jsp.java:316 +msgid "" +"If the problem persists, verify that you have cookies enabled in your " +"browser." +msgstr "如果问题持续,请确认您的浏览器支持 Cookie。" + +#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:249 +msgid "Configuration reloaded for all tunnels" +msgstr "設定已為所有隧道重整" + +#. and give them something to look at in any case +#. FIXME name will be HTML escaped twice +#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:263 +msgid "Starting tunnel" +msgstr "隧道開啟中" + +#. and give them something to look at in any case +#. FIXME name will be HTML escaped twice +#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:277 +msgid "Stopping tunnel" +msgstr "隧道終止中" + +#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:432 +msgid "New Tunnel" +msgstr "新隧道" + +#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:452 +#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:482 +#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:568 +msgid "Port not set" +msgstr "埠口未設置" + +#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:455 +#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:570 +msgid "Invalid port" +msgstr "無效埠" + +#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:458 +msgid "Warning - ports less than 1024 are not recommended" +msgstr "警告 - 不推薦使用 1024 以下的埠" + +#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:475 +msgid "Warning - duplicate port" +msgstr "警告 - 埠口重覆" + +#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:494 +msgid "Standard client" +msgstr "標準客戶端" + +#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:495 +msgid "HTTP/HTTPS client" +msgstr "HTTP/HTTPS 客戶端" + +#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:496 +msgid "IRC client" +msgstr "IRC客戶端" + +#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:497 +msgid "Standard server" +msgstr "標準伺服器" + +#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:498 +msgid "HTTP server" +msgstr "HTTP 伺服器" + +#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:499 +msgid "SOCKS 4/4a/5 proxy" +msgstr "SOCKS 4/4a/5 的代理" + +#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:500 +msgid "SOCKS IRC proxy" +msgstr "SOCKS IRC 代理" + +#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:501 +msgid "CONNECT/SSL/HTTPS proxy" +msgstr "CONNECT/SSL/HTTPS 代理" + +#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:502 +msgid "IRC server" +msgstr "IRC 伺服器" + +#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:503 +msgid "Streamr client" +msgstr "Streamr 客户端" + +#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:504 +msgid "Streamr server" +msgstr "Streamr 服务器" + +#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:505 +msgid "HTTP bidir" +msgstr "双向 HTTP" + +#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:562 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:491 +msgid "Host not set" +msgstr "主机未设置" + +#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:564 +msgid "Invalid address" +msgstr "無效地址" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:168 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:153 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:161 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/register_jsp.java:185 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/ssl_jsp.java:178 +msgid "Hidden Services Manager" +msgstr "隱身服務管理器" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:172 +msgid "Edit Client Tunnel" +msgstr "编辑客户隧道" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:172 +msgid "Edit Hidden Service" +msgstr "编辑隐身服务" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:184 +msgid "Are you sure you want to delete?" +msgstr "您确定要删除吗?" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:208 +msgid "Edit proxy settings" +msgstr "编辑代理设置" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:219 +msgid "New proxy settings" +msgstr "新建代理设置" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:260 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1134 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:222 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:459 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:450 +msgid "Name" +msgstr "名稱" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:262 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1136 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:224 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:461 +msgid "Type" +msgstr "类型" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:264 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1138 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:452 +msgid "" +"Name of tunnel to be displayed on Tunnel Manager home page and the router " +"console sidebar" +msgstr "隧道名称,将会在隧道管理器主页和路由器控制台侧栏显示" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:270 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1144 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:394 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:650 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:456 +msgid "Description" +msgstr "描述" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:272 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1146 +msgid "Auto Start Tunnel" +msgstr "自动启动隧道" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:274 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1148 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:458 +msgid "Description of tunnel to be displayed on Tunnel Manager home page" +msgstr "管道的注释,将会在管道管理器主页显示" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:278 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1152 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:601 +msgid "" +"Enable this option to ensure this service is available when the router " +"starts" +msgstr "启用本选项将确保该服务在路由启动时已经可用" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:282 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1156 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:605 +msgid "Automatically start tunnel when router starts" +msgstr "路由器启动时自动启动此隧道" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:286 +msgid "" +"The client tunnel and all other shared client tunnels must be stopped to " +"change this setting" +msgstr "为更改此设置,必须停止客户端隧道和所有其他共享客户端隧道" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:287 +msgid "The client tunnel must be stopped to change this setting" +msgstr "为更改此设置,必须停止客户端隧道" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:301 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1175 +msgid "Target" +msgstr "目標" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:303 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1173 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1221 +msgid "Access Point" +msgstr "访问点" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:306 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1040 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1190 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1223 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2411 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:465 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:531 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:550 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:705 +msgid "Port" +msgstr "埠" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:309 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1193 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:552 +msgid "Specify the local port this service should be accessible from" +msgstr "指定该服务要绑定的本地端口" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:318 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:336 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:458 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1203 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1234 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1306 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:500 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:525 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:537 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:556 +msgid "required" +msgstr "必要" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:326 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1034 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1182 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2405 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:521 +msgid "Host" +msgstr "主機" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:332 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1184 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:523 +msgid "Hostname or IP address of the target server" +msgstr "目标服务器的主机名或 IP 地址" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:340 +msgid "Local interface (ip address) the client tunnel will be reachable from" +msgstr "客户端隧道可访问的本地接口(IP 地址)" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:344 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1242 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:565 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:709 +msgid "Reachable by" +msgstr "访问地址" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:373 +msgid "Use SSL?" +msgstr "是否使用 SSL?" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:375 +msgid "" +"If you are accessing a service on a remote I2P router, you may wish to " +"connect with SSL to avoid traffic interception. The client application " +"should be also be configured to use SSL." +msgstr "如果你在远程 I2P 路由上访问一个服务,你可能希望能够使用 SSL 建立连接以避免通信流量被拦截。同样地,客户端应用也应该被配置为使用 SSL。" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:379 +msgid "Clients use SSL to connect to tunnel" +msgstr "客户端使用 SSL 连接到隧道" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:387 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:478 +msgid "Outproxies" +msgstr "連外代理" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:401 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:428 +msgid "" +"Specify the .i2p address or destination (b32 or b64) of the outproxy here." +msgstr "在此指定出口代理的 .i2p 地址或目的地(b32 或 b64)。" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:403 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:430 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:454 +msgid "" +"For a random selection from a pool, separate with commas e.g. " +"server1.i2p,server2.i2p" +msgstr "若要从一个池中随机选择,用英文逗号分隔,如 server1.i2p,server2.i2p" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:412 +msgid "Outproxy Type" +msgstr "出口代理类型" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:426 +msgid "SSL Outproxies" +msgstr "SSL 的連外代理" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:438 +msgid "Use Outproxy Plugin" +msgstr "使用出口代理插件" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:440 +msgid "" +"If an outproxy plugin is installed (e.g. Orchid), use this instead of any " +"configured outproxies to access websites outside of I2P" +msgstr "如果安装了出口代理插件(例如 Orchid),请使用此插件,而非已配置的出口代理来访问 I2P 以外的网站" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:444 +msgid "Use plugin instead of above-listed proxies if available" +msgstr "使用插件而非上方列出的代理,如果可用" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:450 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:494 +msgid "Tunnel Destination" +msgstr "隧道目标" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:452 +msgid "" +"Specify the .i2p address or destination (b32 or b64) of the tunnel here." +msgstr "在此指定隧道的 .i2p 地址或目的地(b32 或 b64)。" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:460 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:502 +msgid "name, name:port, or destination" +msgstr "名称,名称:端口,或目标" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:466 +msgid "b32 not recommended" +msgstr "不推荐 b32 地址。" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:479 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:643 +msgid "Shared Client" +msgstr "共享带宽客户端" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:484 +msgid "" +"Traffic from all clients with this feature enabled will be routed over the " +"same set of tunnels. This will make profiling the tunnels by an adversary " +"more difficult, but will link the clients together." +msgstr "启用了此功能的所有客户端的流量都将通过同一组隧道进行路由。 这将使对手更难以对隧道进行性能分析,但会将客户端链接在一起。" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:495 +msgid "Share tunnels with other clients?" +msgstr "是否与其他客户端共享隧道?" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:513 +msgid "Enable DCC" +msgstr "启用 DCC 聊天直连(危险)" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:515 +msgid "Enables direct chat and file transfers, bypassing I2P" +msgstr "启用直接聊天和传输,绕过 I2P" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:519 +msgid "" +"Enable Direct Client-to-Client protocol. Note that this will compromise your" +" anonymity and is not recommended." +msgstr "启用客户端到客户端直接协议。注意,这将影响您的匿名性,不推荐使用。" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:525 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1412 +msgid "Advanced networking options" +msgstr "高级网络设置" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:533 +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/edit_jsp.java:539 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1414 +msgid "Tunnel Length Options" +msgstr "隧道长度选项" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:541 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1425 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1533 +msgid "Length" +msgstr "長度" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:543 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1427 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1535 +msgid "Variance" +msgstr "随机变化" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:545 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1429 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1537 +msgid "Length of each Tunnel" +msgstr "每个隧道的长度" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:553 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:558 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:563 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:568 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:576 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:580 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:584 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:588 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:595 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1436 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1441 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1446 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1451 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1459 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1463 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1467 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1471 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1478 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1544 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1548 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1552 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1556 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1560 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1564 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1568 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1572 +#, java-format +msgid "{0} hop tunnel" +msgid_plural "{0} hop tunnel" +msgstr[0] "{0} 跳隧道" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:554 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1437 +msgid "no anonymity" +msgstr "无匿名性" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:559 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1442 +msgid "low anonymity" +msgstr "低匿名性" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:564 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1447 +msgid "medium anonymity" +msgstr "中匿名性" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:569 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1452 +msgid "high anonymity" +msgstr "高匿名性" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:601 +msgid "Level of Randomization for Tunnel Length" +msgstr "隧道长度随机化等级" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:608 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1490 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1581 +msgid "0 hop variance" +msgstr "0 跳点变化幅度" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:609 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1491 +msgid "no randomization, consistent performance" +msgstr "无随机性,恒定性能" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:613 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1495 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1585 +msgid "+ 0-1 hop variance" +msgstr "+ 0-1 跳点变化幅度" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:614 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1496 +msgid "medium randomization, lower performance" +msgstr "中等随机性,更低性能" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:618 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1500 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1589 +msgid "+ 0-2 hop variance" +msgstr "+ 0-2 跳点变化幅度" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:619 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1501 +msgid "high randomization, very low performance" +msgstr "高随机性,极低性能" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:623 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1505 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1593 +msgid "+/- 0-1 hop variance" +msgstr "+/- 0-1 跳点变化幅度" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:624 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1506 +msgid "standard randomization, standard performance" +msgstr "标准随机性,标准性能" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:628 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1510 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1597 +msgid "+/- 0-2 hop variance" +msgstr "+/- 0-2 跳点变化幅度" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:629 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1511 +msgid "not recommended" +msgstr "不推荐" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:640 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1522 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1608 +msgid "hop variance" +msgstr "跳点变化幅度" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:645 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1617 +msgid "Tunnel Quantity Options" +msgstr "隧道质量选项" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:647 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1628 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1678 +msgid "Count" +msgstr "次數" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:649 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1630 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1680 +msgid "Backup Count" +msgstr "备用数量" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:651 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1632 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1682 +msgid "Number of Tunnels in Group" +msgstr "组中隧道数量" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:655 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1636 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1686 +msgid "Number of Reserve Tunnels" +msgstr "备用隧道数量" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:663 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:668 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:673 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:678 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:687 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1643 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1648 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1653 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1658 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1667 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1693 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1697 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1701 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1705 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1712 +#, java-format +msgid "{0} backup tunnel" +msgid_plural "{0} backup tunnels" +msgstr[0] "{0} 备份隧道" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:664 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1644 +msgid "no redundancy, no added resource usage" +msgstr "无冗余,不增加资源占用" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:669 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1649 +msgid "low redundancy, low resource usage" +msgstr "低冗余,低资源占用" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:674 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1654 +msgid "medium redundancy, medium resource usage" +msgstr "中等冗余,中等资源占用" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:679 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1659 +msgid "high redundancy, high resource usage" +msgstr "高冗余,高资源占用" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:693 +msgid "Tunnel Management Options" +msgstr "隧道管理选项" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:699 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2268 +msgid "Profile" +msgstr "配置" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:701 +msgid "Delay Connect" +msgstr "连接延迟断开" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:703 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2270 +msgid "Connection Profile" +msgstr "连接配置" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:710 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2277 +msgid "interactive connection" +msgstr "速度连接" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:714 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2281 +msgid "bulk connection (downloads/websites/BT)" +msgstr "大量连接(下载/网站/BT)" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:716 +msgid "Delay Connection" +msgstr "延迟连接" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:720 +msgid "for request/response connections" +msgstr "单请求/响应连接" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:732 +msgid "Delay tunnel open until required" +msgstr "延迟隧道打开,直到请求" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:734 +msgid "Conserve resources by only creating tunnels when required" +msgstr "只在需要时创建隧道以节约资源" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:738 +msgid "" +"Delay opening client tunnel until activity is detected on the configured " +"tunnel port" +msgstr "延迟打开客户端隧道,直到在配置的隧道端口上检测到活动" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:744 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2287 +msgid "Reduce tunnel quantity when idle" +msgstr "减少隧道数量在空闲时" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:746 +msgid "" +"Reduce tunnel count when idle but keep tunnel open (to ensure immediate " +"availability)" +msgstr "空闲时减少隧道数量,但保持隧道开放(以确保立即可用)" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:750 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2291 +msgid "Reduce tunnel quantity when idle to conserve resources" +msgstr "空闲时减少隧道数量以节约资源" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:752 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:754 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2293 +msgid "Reduced tunnel count" +msgstr "削减后的隧道数量" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:758 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:772 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2299 +msgid "Idle period" +msgstr "闲置时间" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:760 +msgid "Reduced Tunnel Idle Time" +msgstr "减少隧道闲置时间" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:764 +msgid "Close tunnels when idle" +msgstr "关闭隧道在闲置时" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:766 +msgid "To conserve resources, close tunnels when not in use" +msgstr "为节约资源,在不使用时关闭隧道" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:770 +msgid "Close client tunnels after specified idle period" +msgstr "指定空闲时间后关闭客户端隧道" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:774 +msgid "Close Tunnel Idle Time" +msgstr "关闭隧道的闲置时间" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:784 +msgid "Change tunnel identity (destination) when tunnels reopen" +msgstr "隧道重新打开时更改隧道身份(目的地)" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:786 +msgid "Retain tunnel identity (destination) when tunnels reopen" +msgstr "隧道重新打开时保持隧道身份(目的地)" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:792 +msgid "New Keys on Reopen" +msgstr "重新打开隧道时使用新密钥" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:798 +msgid "Enable" +msgstr "啟用" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:804 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1743 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1753 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2189 +msgid "Disable" +msgstr "停用" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:816 +msgid "Persistent private key" +msgstr "永久私有密钥" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:819 +msgid "" +"Enabling this feature will ensure your tunnel identity (destination) remains" +" static, for services offering features based on destination e.g. IRC user " +"authentication" +msgstr "启用此功能将确保您的隧道身份(目的地)保持静态,以提供基于目的地的功能的服务,如 IRC 用户认证" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:821 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1297 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2100 +msgid "Path to Private Key File" +msgstr "私钥文件的路径" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:830 +msgid "Generate key to enable persistent client tunnel identity" +msgstr "生成密钥以启用持久的客户端隧道身份" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:832 +msgid "File" +msgstr "文件" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:844 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1283 +msgid "Local destination" +msgstr "本地目标" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:846 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1292 +msgid "Read Only: Local Destination (if known)" +msgstr "只读:本地目的地(如果已知)" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:850 +msgid "Local Base32" +msgstr "本地 Base32" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:861 +msgid "Tunnel Filtering Options" +msgstr "隧道过滤选项" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:863 +msgid "HTTP Filtering" +msgstr "HTTP 过滤" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:865 +msgid "" +"When enabled, the user agent of your web browser or http client will not be " +"spoofed, potentially reducing your anonymity" +msgstr "启用时,您的网页浏览器或 HTTP 客户端的用户代理信息将不做伪装,这可能降低您的匿名性。" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:869 +msgid "Do not spoof User-Agent header" +msgstr "不伪装 User-Agent 报头" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:871 +msgid "" +"When enabled, the referer (originating page) of your web requests will not " +"be filtered, potentially reducing your anonymity" +msgstr "启用时,您的网页请求的引用页面(来源网址,referer)将不做过滤,可能降低您的匿名性" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:875 +msgid "Do not block Referer header" +msgstr "不屏蔽 Referer 头" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:877 +msgid "" +"When enabled, the accept headers (mime types support) broadcast by your web " +"browser will not be filtered, potentially reducing your anonymity" +msgstr "启用后,您的网络浏览器广播的接受标头(支持 MIME 类型)将不会被过滤,从而可能降低您的匿名性" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:881 +msgid "Do not block Accept headers" +msgstr "不屏蔽 Accept 头" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:883 +msgid "Allow SSL to I2P addresses when enabled" +msgstr "启用时允许 SSL 到 I2P 地址簿" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:887 +msgid "Allow SSL to I2P addresses" +msgstr "允许 SSL 到 I2P 地址簿" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:895 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2023 +msgid "Configuration cannot be changed after destination is created" +msgstr "一旦目标被创建后配置将不能被更改" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:900 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1728 +msgid "Tunnel Cryptography Options" +msgstr "隧道加密选项" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:904 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2032 +msgid "Signature type" +msgstr "签名类型" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:908 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2036 +msgid "Legacy option (deprecated), provided for backward compatibility" +msgstr "旧选项(已弃用),为向后兼容性提供" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:937 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2057 +msgid "This is the default, recommended option" +msgstr "这是默认和推荐的选项" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:952 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2079 +msgid "Encryption types" +msgstr "加密方式" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:966 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2093 +msgid "Both encryption types" +msgstr "两者加密类型" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:972 +msgid "Tunnel Authentication Options" +msgstr "隧道认证选项" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:974 +msgid "Local Authorization" +msgstr "本地认证" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:976 +msgid "" +"Enable to require a username and password to access this local service (for " +"example if hosting on a LAN)" +msgstr "启用此选项后,访问此本地服务时需要用户名和密码(例如托管在 LAN)" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:980 +msgid "Require local authorization for this service" +msgstr "此服务要求身份验证" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:982 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:998 +msgid "Username" +msgstr "用户名" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:984 +msgid "Set username required to access this service" +msgstr "设定访问此服务所需的用户名" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:986 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1004 +msgid "Password" +msgstr "密碼" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:988 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1863 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/ssl_jsp.java:1043 +msgid "Set password required to access this service" +msgstr "设定访问此服务所需的密码" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:990 +msgid "Outproxy Authorization" +msgstr "出口代理认证" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:992 +msgid "Enable if the outproxy a username and password to access" +msgstr "如果出口代理需要验证请启用" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:996 +msgid "Outproxy requires authorization" +msgstr "出口代理需要验证" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1000 +msgid "Enter username required by outproxy" +msgstr "出口代理用户名" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1006 +msgid "Enter password required by outproxy" +msgstr "出口代理密码" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1016 +msgid "Tunnel Address Lookup Options" +msgstr "隧道地址查询选项" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1018 +msgid "Jump URL List" +msgstr "跳转服务列表" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1020 +msgid "" +"List of helper URLs providing jump links when a host is not found in your " +"addressbook" +msgstr "当主机不在您的地址簿中时提供跳转链接的助手 URL 列表" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1032 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2403 +msgid "Router I2CP Address" +msgstr "路由器 I2CP 地址" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1036 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2407 +msgid "I2CP Hostname or IP" +msgstr "I2CP 主机名或 IP" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1042 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2413 +msgid "I2CP Port Number" +msgstr "I2CP 端口号" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1050 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2421 +msgid "Custom options" +msgstr "自定义选项" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1052 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2423 +msgid "Advanced tunnel, streaming, and I2CP options" +msgstr "高级隧道,串流和 I2CP 选项" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1056 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2427 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/register_jsp.java:599 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:738 +msgid "Cancel" +msgstr "取消" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1062 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2433 +msgid "Delete this Proxy (cannot be undone)" +msgstr "删除这个代理(无法撤销)" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1064 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2435 +msgid "Delete" +msgstr "刪除" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1070 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2441 +msgid "Save" +msgstr "保存" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1083 +msgid "Edit Server Settings" +msgstr "编辑服务设置" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1094 +msgid "New Server Settings" +msgstr "新服务设置" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1159 +msgid "The hidden service must be stopped to change this setting" +msgstr "为更改此设置,隐藏服务必须被停止" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1194 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:533 +msgid "Specify the port the server is running on" +msgstr "指定此服务运行于哪个端口" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1209 +msgid "" +"To avoid traffic sniffing if connecting to a remote server, you can enable " +"an SSL connection. Note that the target server must be configured to accept " +"SSL connections." +msgstr "要避免连接远程服务器时被流量嗅探,您可以启用 SSL 连接。注意,必须将目标服务器配置为接受 SSL 连接。" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1213 +msgid "Use SSL to connect to target" +msgstr "使用 SSL 连接目标" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1226 +msgid "" +"Port required to access service (this can be a different port to the port " +"the service is hosted on)" +msgstr "访问服务所需的端口(可以与托管服务的端口不同)" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1245 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:567 +msgid "" +"Listening interface (IP address) for client access (normally 127.0.0.1)" +msgstr "监听客户端访问的接口(IP 地址)(通常是 127.0.0.1)" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1272 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/ssl_jsp.java:659 +msgid "Website Hostname" +msgstr "网站主机名" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1274 +msgid "Website Hostname e.g. mysite.i2p" +msgstr "网站主机名,例如 mysite.i2p" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1278 +msgid "(leave blank for outproxies)" +msgstr "(連外代理部分保持空白)" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1290 +msgid "Private key file" +msgstr "私钥文件" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1348 +msgid "Generate a QR Code for this domain" +msgstr "为这个域名生成二维码" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1356 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2142 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2150 +msgid "Generate QR Code" +msgstr "生成QR码" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1363 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2157 +msgid "Add to Private addressbook" +msgstr "添加到私有地址簿" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1369 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2163 +msgid "Add to local addressbook" +msgstr "新增到本地地址簿" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1375 +msgid "Register, unregister or change details for hostname" +msgstr "注册、反注册或更改主机名的细节" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1380 +msgid "Registration Authentication" +msgstr "注册认证" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1386 +msgid "HTTPS configuration" +msgstr "HTTPS配置" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1391 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/ssl_jsp.java:215 +msgid "SSL Wizard" +msgstr "SSL向导" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1401 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2173 +msgid "" +"Note: In order to enable QR code generation or registration authentication, " +"configure the Website Hostname field (for websites) or the Name field " +"(everything else) above with an .i2p suffixed hostname e.g. mynewserver.i2p" +msgstr "注意:为了允许 QR 码生成和注册的身份验证,配置“网站主机名” / “名称”时请使用 .i2p 后缀的主机名,例如 mynewserver.i2p" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1419 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1622 +msgid "Inbound" +msgstr "传入" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1483 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1574 +msgid "Level of Randomization for Tunnel Depth" +msgstr "隧道深度随机化级别" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1531 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1676 +msgid "Outbound" +msgstr "传出" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1730 +msgid "Encrypt Leaseset" +msgstr "加密赁集" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1739 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1749 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2185 +msgid "Allow all clients to connect to this service" +msgstr "允许所有客户端连接到此服务" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1759 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1789 +msgid "Send key to all users." +msgstr "发送密钥给所有用户。" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1763 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1793 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:381 +msgid "Encrypted" +msgstr "已加密" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1773 +msgid "Prevents server discovery by floodfills" +msgstr "通过洪泛预防服务器发现" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1777 +msgid "Blinded" +msgstr "已混淆" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1783 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1808 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1821 +msgid "Send password to all users." +msgstr "发送密码给所有用户。" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1787 +msgid "Blinded with lookup password" +msgstr "使用查找密码混淆" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1795 +msgid "Send key and password to all users." +msgstr "发送密码和密钥给所有用户。" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1799 +msgid "Encrypted with lookup password" +msgstr "使用查找密码加密" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1801 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1807 +msgid "Send individual key to each user." +msgstr "单独发送密钥给每个用户。" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1805 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1818 +msgid "Encrypted with per-user key" +msgstr "用按用户密钥加密" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1812 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1825 +msgid "Encrypted with lookup password and per-user key" +msgstr "用查找密码和按用户密钥加密" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1814 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1820 +msgid "Enter key from each user." +msgstr "从每个用户输入密钥。" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1838 +msgid "Optional lookup password" +msgstr "可选查找密码" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1853 +msgid "Encryption Key" +msgstr "加密金鑰" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1881 +msgid "Encryption key required to access this service" +msgstr "需要加密密钥来访问这个服务器" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1895 +msgid "Revoke" +msgstr "撤销" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1897 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1934 +msgid "Client Name" +msgstr "客户端名称" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1899 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1942 +msgid "Client Key" +msgstr "客户端密钥" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1916 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1948 +msgid "Client" +msgstr "客户端" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:1932 +msgid "Add" +msgstr "新增" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2064 +msgid "Recommended for blinded and encrypted destinations" +msgstr "推荐匿名和加密的目标" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2106 +msgid "Alternate private key file" +msgstr "备用私钥文件" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2120 +msgid "Alternate local destination" +msgstr "备用本地目的地" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2122 +msgid "Read Only: Alternate Local Destination" +msgstr "只读:可选的本地目标" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2181 +msgid "Tunnel Access Control Options" +msgstr "隧道地址控制选项" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2183 +msgid "Restricted Access List" +msgstr "限制访问列表" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2191 +msgid "Prevent listed clients from connecting to this service" +msgstr "阻止列出的客户端连接到此服务" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2195 +msgid "Deny List" +msgstr "拒绝列表" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2197 +msgid "Only allow listed clients to connect to this service" +msgstr "仅允许列出的客户端连接到此服务" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2201 +msgid "Allow List" +msgstr "允许列表" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2203 +msgid "Access List Description" +msgstr "访问列表描述" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2205 +msgid "Specify clients, 1 per line" +msgstr "指定客户端,每行一个" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2207 +msgid "Control access to this service" +msgstr "控制访问此服务的权限" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2211 +msgid "Filter Definition File" +msgstr "过滤器定义文件" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2213 +msgid "You can define an advanced filter for this tunnel." +msgstr "您可以为此隧道定义高级过滤器。" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2215 +msgid "Format Specification" +msgstr "格式规范" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2217 +msgid "Absolute path to file containing filter definition" +msgstr "包含过滤目标的文件绝对地址" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2221 +msgid "Server Access Options" +msgstr "服务器访问选项" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2227 +msgid "Prevent clients from accessing this service via an inproxy" +msgstr "通过一个传入代理避免客户端访问此服务" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2231 +msgid "Block Access via Inproxies" +msgstr "以代理阻止访问" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2235 +msgid "Block Accesses containing Referers" +msgstr "阻止包含 Referers 的访问" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2237 +msgid "Deny User-Agents matching these strings (probably from inproxies)" +msgstr "User-Agents (可能出自 inproxies)匹配这些字符串时拒绝访问" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2241 +msgid "Block these User-Agents" +msgstr "阻止这些 User-Agent" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2243 +msgid "comma separated, e.g. Mozilla,Opera (case-sensitive)" +msgstr "以逗号分隔,例:Mozilla,Opera(大小写敏感)" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2250 +msgid "" +"Use unique IP addresses for each connecting client (local non-SSL servers " +"only)" +msgstr "为每个连接的客户端使用单独的IP地址(仅本地非SSL服务器)" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2254 +msgid "Unique Local Address per Client" +msgstr "每个客户端的唯一本地地址" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2256 +msgid "Only enable if you are hosting this service on multiple routers" +msgstr "仅当你在多个路由上运行此服务时启用。" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2260 +msgid "Optimize for Multihoming" +msgstr "为多宿主优化" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2262 +msgid "Tunnel Performance Options" +msgstr "隧道性能选项" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2295 +msgid "Number of tunnels to keep open to maintain availability of service" +msgstr "许多隧道保持开放来保持服务的有效性" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2301 +msgid "Period of inactivity before tunnel number is reduced" +msgstr "隧道数量减少前的非活动期" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2305 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2375 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2387 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2395 +msgid "minutes" +msgstr "分鐘" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2307 +msgid "Server Throttling" +msgstr "服务器节流" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2309 +msgid "Inbound connection limits" +msgstr "入站连接限制" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2311 +msgid "Per Minute" +msgstr "每分钟" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2313 +msgid "Per Hour" +msgstr "每小时" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2315 +msgid "Per Day" +msgstr "每天" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2317 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2365 +msgid "Per Client" +msgstr "每个客户端" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2320 +msgid "unlimited" +msgstr "无限制" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2323 +msgid "" +"Maximum number of web page requests per minute for a unique client before " +"access to the server is blocked" +msgstr "在对服务器的访问被阻挡之前,每分钟用于唯一客户端的最大网页请求数" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2327 +msgid "" +"Maximum number of web page requests per hour for a unique client before " +"access to the server is blocked" +msgstr "在对服务器的访问被阻挡之前,每小时用于唯一客户端的最大网页请求数" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2331 +msgid "" +"Maximum number of web page requests per day for a unique client before " +"access to the server is blocked" +msgstr "在对服务器的访问被阻挡之前,每天用于唯一客户端的最大网页请求数" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2335 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2377 +msgid "Total" +msgstr "總計" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2337 +msgid "" +"Total number of web page requests per minute before access to the server is " +"blocked" +msgstr "在对服务器的访问被阻挡之前,每分钟用于唯一客户端的总网页请求数" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2341 +msgid "" +"Total number of web page requests per hour before access to the server is " +"blocked" +msgstr "在对服务器的访问被阻挡之前,每小时用于唯一客户端的总网页请求数" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2345 +msgid "" +"Total number of web page requests per day before access to the server is " +"blocked" +msgstr "在对服务器的访问被阻挡之前,每天用于唯一客户端的总网页请求数" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2349 +msgid "Max concurrent connections" +msgstr "最大并发连接数" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2351 +msgid "Maximum number of simultaneous client connections" +msgstr "同时连接客户端的最大数量" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2359 +msgid "POST limits" +msgstr "POST 限制" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2361 +msgid "Per Period" +msgstr "每个周期" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2363 +msgid "Ban Duration" +msgstr "封禁持续" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2367 +msgid "" +"Maximum number of post requests permitted for a unique client for the " +"configured time span" +msgstr "配置的时间跨度中用于唯一客户端的最大网页请求数" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2371 +msgid "" +"If a client exceeds the maximum number of post requests per allocated " +"period, enforce a ban for this number of minutes" +msgstr "如果一个客户端提交的 POST 请求数量超过了每分配时段的最大 POST 请求数量,那么服务端将会强制执行该数量的分钟数的封禁" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2379 +msgid "Total number of post requests permitted for the configured time span" +msgstr "配置的时间跨度中被允许的总 POST 请求数" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2383 +msgid "" +"If the maximum number of post requests per allocated period is exceeded, " +"enforce a global access ban for this number of minutes" +msgstr "如果提交的 POST 请求数量超过了每分配时段的最大 POST 请求数量,那么服务端将会强制执行该数量的分钟数的全局封禁" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2389 +msgid "POST limit period" +msgstr "POST 限制时长" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2391 +msgid "" +"Time span for the maximum number of post requests to be reached before a ban" +" is triggered" +msgstr "在实施封禁之前达到的最大 POST 请求数的时间跨度" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/edit_jsp.java:2451 +msgid "Tunnels not initialized yet; please retry in a few moments." +msgstr "隧道尚未初始化;请稍后重试。" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:163 +msgid "These are the local services provided by your router." +msgstr "这些是您的路由提供的本地服务。" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:165 +msgid "" +"By default, most of your client services (email, HTTP proxy, IRC) will share" +" the same set of tunnels and be listed as \"Shared Clients\"." +msgstr "默认情况下,您的大多数客户端服务(电子邮件,HTTP 代理,IRC)会共享同一组隧道并列为“共享客户端”。" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:177 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/ssl_jsp.java:638 +msgid "Status Messages" +msgstr "状态信息" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:181 +msgid "Refresh" +msgstr "更新" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:192 +msgid "Clear" +msgstr "Clear" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:203 +msgid "Global Tunnel Control" +msgstr "全局隧道控制" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:205 +msgid "Tunnel Wizard" +msgstr "隧道向导" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:209 +msgid "Stop All" +msgstr "全部停止" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:213 +msgid "Start All" +msgstr "启动全部" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:217 +msgid "Restart All" +msgstr "全部重启" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:220 +msgid "I2P Hidden Services" +msgstr "I2P 隐身服务" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:226 +msgid "Points at" +msgstr "指向" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:228 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:288 +msgid "Preview" +msgstr "預覽" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:230 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:467 +msgid "Status" +msgstr "状态" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:232 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:469 +msgid "Control" +msgstr "Control" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:240 +msgid "Edit Server Tunnel Settings for" +msgstr "编辑服务器隧道设置 - " + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:255 +msgid "Test HTTPS server, bypassing I2P" +msgstr "测试 HTTPS 服务器,绕过 I2P" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:263 +msgid "Test HTTP server, bypassing I2P" +msgstr "测试 HTTP 服务器,绕过 I2P" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:284 +msgid "Test HTTP server through I2P" +msgstr "测试 HTTP 服务器,通过 I2P" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:293 +msgid "No Preview" +msgstr "无预览" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:303 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:306 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:510 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:513 +msgid "Starting..." +msgstr "正在启动..." + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:308 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:327 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:515 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:534 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:553 +msgid "Stop this Tunnel" +msgstr "停止这个隧道" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:315 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:334 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:522 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:541 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:560 +msgid "Stop" +msgstr "停止" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:322 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:325 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:548 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:551 +msgid "Running" +msgstr "正在运行" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:341 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:344 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:567 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:570 +msgid "Stopped" +msgstr "已停止" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:346 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:572 +msgid "Start this Tunnel" +msgstr "启动这个隧道" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:353 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:579 +msgid "Start" +msgstr "開始" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:365 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:597 +msgid "Destination" +msgstr "目的地" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:370 +msgid "Hostname" +msgstr "主機名稱" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:411 +msgid "Share your site using the hostname" +msgstr "通过主机名来分享您的站点" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:432 +msgid "Copy the hostname to the clipboard" +msgstr "将该主机名复制到剪贴板上" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:435 +msgid "Copy Hostname" +msgstr "复制主机名称" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:451 +msgid "New hidden service" +msgstr "新建隐身服务" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:453 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:677 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:367 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:401 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:425 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:431 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:647 +msgid "Standard" +msgstr "标准" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:455 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:679 +msgid "Create" +msgstr "建立" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:457 +msgid "I2P Client Tunnels" +msgstr "I2P 客户端隧道" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:463 +msgid "Interface" +msgstr "界面" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:477 +msgid "Edit Tunnel Settings for" +msgstr "编辑隧道设置 - " + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:529 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:532 +msgid "Standby" +msgstr "等待" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:591 +msgid "Outproxy" +msgstr "出口代理" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:604 +msgid "internal plugin" +msgstr "内部插件" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:623 +msgid "none" +msgstr "无" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:675 +msgid "New client tunnel" +msgstr "新建客户隧道" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/register_jsp.java:189 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/register_jsp.java:210 +msgid "Registration Helper" +msgstr "注册助手" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/register_jsp.java:240 +msgid "" +"This service uses encrypted leasesets. Registration is not recommended. " +"Registration authentication is disabled." +msgstr "这个服务使用了加密的租契集。我们不推荐您注册,因为注册认证已被关闭。" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/register_jsp.java:246 +msgid "" +"Please be sure to select, copy, and paste the entire contents of the " +"appropriate authentication data into the form of your favorite registration " +"site" +msgstr "请务必选择、复制和粘贴相应身份验证数据的整个内容到您喜欢的注册网站的表单" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/register_jsp.java:248 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:663 +msgid "Tunnel name" +msgstr "隧道名称" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/register_jsp.java:256 +msgid "Website name" +msgstr "网站名称" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/register_jsp.java:264 +msgid "Local Destination" +msgstr "本地目标" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/register_jsp.java:272 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/ssl_jsp.java:668 +msgid "Local destination is not available. Start the tunnel." +msgstr "本地目标不可用。启动隧道。" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/register_jsp.java:279 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/ssl_jsp.java:675 +msgid "" +"To enable registration verification, edit tunnel and set name (or website " +"name) to a valid hostname ending in '.i2p'" +msgstr "为注册验证,编辑隧道并设置名称(或网站名称)为一个有效的以 '.i2p' 结尾的主机名" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/register_jsp.java:285 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/ssl_jsp.java:681 +msgid "" +"To enable registration verification, edit tunnel and set name to a valid " +"hostname ending in '.i2p'" +msgstr "要启用注册验证,请编辑隧道并设置一个名称为以 '.i2p' 结尾的有效主机名" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/register_jsp.java:294 +msgid "Destination signing key is not available. Start the tunnel." +msgstr "目标签名密钥不可用。开始隧道。" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/register_jsp.java:300 +msgid "" +"Destination signing key is offline. Use CLI tools on the offline machine." +msgstr "目标签名密钥已离线。请在离线机器上使用 CLI 工具。" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/register_jsp.java:310 +#, java-format +msgid "Authentication for adding host {0}" +msgstr "添加主机{0}认证" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/register_jsp.java:312 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/register_jsp.java:327 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/register_jsp.java:365 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/register_jsp.java:398 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/register_jsp.java:433 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/register_jsp.java:468 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/register_jsp.java:502 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/register_jsp.java:541 +msgid "Copy and paste this to the registration site" +msgstr "将此复制并粘贴到注册页" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/register_jsp.java:317 +msgid "Advanced authentication strings" +msgstr "高级认证字符串" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/register_jsp.java:325 +#, java-format +msgid "Authentication for removing host {0}" +msgstr "移除主机{0}认证" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/register_jsp.java:356 +msgid "Authentication for changing name" +msgstr "更改名称认证" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/register_jsp.java:370 +#, java-format +msgid "This will change the name from {0} to {1}, using the same destination" +msgstr "这将更改名称 {0} 至 {1},使用同一个目标" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/register_jsp.java:376 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/register_jsp.java:409 +msgid "This tunnel must be configured with the new hostname." +msgstr "此隧道必须使用新的主机名称配置。" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/register_jsp.java:378 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/register_jsp.java:411 +msgid "Enter old hostname below." +msgstr "在下面输入旧主机名。" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/register_jsp.java:389 +msgid "Authentication for adding alias" +msgstr "添加别名认证" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/register_jsp.java:403 +#, java-format +msgid "This will add an alias {0} for {1}, using the same destination" +msgstr "这将为 {1} 添加别名 {0},使用同一个目标" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/register_jsp.java:423 +msgid "Authentication for changing destination" +msgstr "更改目标认证" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/register_jsp.java:438 +#, java-format +msgid "This will change the destination for {0}" +msgstr "这将更改 {0} 的目标" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/register_jsp.java:444 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/register_jsp.java:513 +msgid "This tunnel must be configured with the new destination." +msgstr "此隧道必须使用新的目标配置。" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/register_jsp.java:446 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/register_jsp.java:515 +msgid "Enter old destination below." +msgstr "在下面输入旧目标。" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/register_jsp.java:458 +msgid "Authentication for adding alternate destination" +msgstr "添加备用目标的认证" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/register_jsp.java:473 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/register_jsp.java:507 +#, java-format +msgid "This will add an alternate destination for {0}" +msgstr "这将为 {0} 的添加一个备用目标" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/register_jsp.java:530 +msgid "Authentication for adding subdomain" +msgstr "添加子域认证" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/register_jsp.java:546 +#, java-format +msgid "This will add a subdomain {0} of {1}, with a different destination" +msgstr "这将为 {1} 添加子域 {0},使用不同目标" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/register_jsp.java:552 +msgid "This tunnel must be configured with the new subdomain and destination." +msgstr "此隧道必须使用新的子域和目标配置。" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/register_jsp.java:554 +msgid "Enter higher-level domain and destination below." +msgstr "在下面输入上层域名和目标。" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/register_jsp.java:571 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/ssl_jsp.java:1083 +msgid "Go back and edit the tunnel" +msgstr "返回并编辑隧道" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/register_jsp.java:582 +msgid "Specify old name and destination" +msgstr "指定旧名称和目标" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/register_jsp.java:584 +msgid "This is only required for advanced authentication." +msgstr "这只在高级认证时需要。" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/register_jsp.java:586 +msgid "See above for required items." +msgstr "请看上方的必填项目。" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/register_jsp.java:593 +msgid "Old hostname" +msgstr "旧主机名" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/register_jsp.java:597 +msgid "Private Key File for old Destination" +msgstr "旧目标的私钥文件" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/register_jsp.java:601 +msgid "Generate Authentication" +msgstr "生成身份验证" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/register_jsp.java:604 +msgid "Generate" +msgstr "生成" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/ssl_jsp.java:182 +msgid "SSL Helper" +msgstr "SSL 助手" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/ssl_jsp.java:653 +msgid "Experts only!" +msgstr "仅供专家!" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/ssl_jsp.java:689 +msgid "Base32" +msgstr "Base32" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/ssl_jsp.java:697 +msgid "Alt Base32" +msgstr "其他Base32地址" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/ssl_jsp.java:706 +msgid "Incoming I2P Port Routing" +msgstr "传入 I2P 端口路由" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/ssl_jsp.java:708 +msgid "I2P Port" +msgstr "I2P端口" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/ssl_jsp.java:710 +msgid "Virtual Host" +msgstr "虚拟主机" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/ssl_jsp.java:712 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/ssl_jsp.java:790 +msgid "SSL" +msgstr "SSL" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/ssl_jsp.java:714 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/ssl_jsp.java:784 +msgid "Server" +msgstr "服务器" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/ssl_jsp.java:720 +msgid "Default" +msgstr "默認" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/ssl_jsp.java:782 +msgid "Jetty Server" +msgstr "Jetty服务器" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/ssl_jsp.java:786 +msgid "Configuration Files" +msgstr "配置文件" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/ssl_jsp.java:788 +msgid "Enabled" +msgstr "啟用" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/ssl_jsp.java:843 +msgid "I2P webserver (eepsite)" +msgstr "I2P 网络服务(匿名网站)" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/ssl_jsp.java:1025 +msgid "SSL is enabled" +msgstr "SSL已启用" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/ssl_jsp.java:1027 +msgid "Disable SSL" +msgstr "禁用SSL" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/ssl_jsp.java:1033 +msgid "SSL is disabled" +msgstr "SSL已禁用" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/ssl_jsp.java:1035 +msgid "Enable SSL" +msgstr "启用SSL" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/ssl_jsp.java:1041 +msgid "New Certificate Password" +msgstr "新证书密码" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/ssl_jsp.java:1049 +msgid "Generate new SSL certificate" +msgstr "生成新SSL证书" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/ssl_jsp.java:1055 +msgid "Generate SSL certificate and enable" +msgstr "生成SSL证书并启用" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:190 +msgid "I2P Tunnel Manager - Tunnel Creation Wizard" +msgstr "I2P 隧道管理器 - 隧道创建向导" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:202 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:638 +msgid "Server or client tunnel?" +msgstr "服务器或客户端隧道?" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:208 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:642 +msgid "Tunnel type" +msgstr "隧道類型" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:214 +msgid "Tunnel name and description" +msgstr "隧道名称和描述" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:220 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:674 +msgid "Tunnel destination" +msgstr "隧道描述" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:226 +msgid "Binding address and port" +msgstr "隧道绑定的地址和端口" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:232 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:716 +msgid "Tunnel auto-start" +msgstr "隧道自动启用" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:238 +msgid "Wizard completed" +msgstr "向导完成" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:339 +msgid "" +"This wizard will take you through the various options available for creating" +" tunnels in I2P." +msgstr "本向导将帮助您配置I2P隧道创建中的各种选项。" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:341 +msgid "" +"The first thing to decide is whether you want to create a server or a client" +" tunnel." +msgstr "首先您需要确定,创建的是服务端还是客户端隧道。" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:343 +msgid "" +"If you need to connect to a remote service, such as an IRC server inside I2P" +" or a code repository, then you will require a CLIENT tunnel." +msgstr "如果您想通过隧道访问远程的服务,例如I2P的IRC聊天服务器或代码库,那么请选择*客户隧道*。" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:345 +msgid "" +"On the other hand, if you wish to host a service for others to connect to " +"you'll need to create a SERVER tunnel." +msgstr "相反,如果您希望提供自己的服务,来让别人访问,您需要创建*服务端隧道*。" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:347 +msgid "Server Tunnel" +msgstr "服务端隧道" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:349 +msgid "Client Tunnel" +msgstr "客户端隧道" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:361 +msgid "There are several types of tunnels to choose from:" +msgstr "其中有几种隧道类型可选:" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:369 +msgid "Basic tunnel for connecting to a single service inside I2P." +msgstr "基本隧道供连接至I2P中的单个服务。" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:371 +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:405 +msgid "" +"Try this if none of the tunnel types below fit your requirements, or you " +"don't know what type of tunnel you need." +msgstr "请尝试此项,如果后面的类型没有适合您的,或您不清楚需要何种类型的隧道。" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:373 +msgid "Tunnel that acts as an HTTP proxy for reaching I2P Sites inside I2P." +msgstr "访问HTTP代理的隧道,用来访问I2P中的站点。" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:375 +msgid "" +"Set your browser to use this tunnel as an http proxy, or set your " +"\"http_proxy\" environment variable for command-line applications in " +"GNU/Linux." +msgstr "设置您的浏览器将此隧道作为 HTTP 代理,在 GNU/Linux 的命令行环境中请使用 \"http_proxy\" 环境变量。" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:377 +msgid "" +"Websites outside I2P can also be reached if an HTTP proxy within I2P is " +"known." +msgstr "如果您知道I2P中的HTTP代理节点,也可以通过其访问I2P以为的网站。" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:379 +msgid "Customized client tunnel specific for IRC connections." +msgstr "自定义客户端隧道,专为 IRC 连接设置。" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:381 +msgid "" +"With this tunnel type, your IRC client will be able to connect to an IRC " +"network inside I2P." +msgstr "使用此隧道类型,您的IRC客户端可以连接至I2P内的IRC网络。" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:383 +msgid "" +"Each IRC network in I2P that you wish to connect to will require its own " +"tunnel. (See Also, SOCKS IRC)" +msgstr "I2P中的每个IRC网络,都需要自己独立的隧道。(参见,SOCKS IRC)" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:385 +msgid "A tunnel that implements the SOCKS protocol." +msgstr "实现 SOCKS 协议的隧道。" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:387 +msgid "" +"This enables both TCP and UDP connections to be made through a SOCKS " +"outproxy within I2P." +msgstr "此隧道可以通过 I2P 中 SOCKS 出口代理进行的 TCP 和 UDP 连接。" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:389 +msgid "" +"A client tunnel implementing the SOCKS protocol, which is customized for " +"connecting to IRC networks." +msgstr "实现SOCKS协议的客户端隧道,专门为连接IRC网络而调整。" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:391 +msgid "" +"With this tunnel type, IRC networks in I2P can be reached by typing the I2P " +"address into your IRC client, and configuring the IRC client to use this " +"SOCKS tunnel." +msgstr "使用此隧道类型时,可以在IRC客户端中设置使用此Socks隧道,通过I2P地址访问I2P中的IRC网络。" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:393 +msgid "" +"This means that only one I2P tunnel is required rather than a separate " +"tunnel per IRC network." +msgstr "即一个I2P隧道可以连接多个IRC网络。" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:395 +msgid "" +"IRC networks outside I2P can also be reached if a SOCKS outproxy within I2P " +"is known, though it depends on whether or not the outproxy has been blocked " +"by the IRC network." +msgstr "如果设置SOCKS出口代理,I2P之外的IRC网络也可以访问,尽管这取决于IRC网络是否允许您的出口代理连接。" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:403 +msgid "A basic server tunnel for hosting a generic service inside I2P." +msgstr "基本服务隧道,适合I2P中的普通服务。" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:407 +msgid "A server tunnel that is customized for HTTP connections." +msgstr "为HTTP连接而调整的服务隧道。" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:409 +msgid "Use this tunnel type if you want to host an I2P Site." +msgstr "如果您想要创建一个 I2P 网站请使用此隧道类型。" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:411 +msgid "A customized server tunnel for hosting IRC networks inside I2P." +msgstr "一个为在 I2P 内部主持 IRC 网络而设立的自定义服务器隧道" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:413 +msgid "" +"Usually, a separate tunnel needs to be created for each IRC server that is " +"to be accessible inside I2P." +msgstr "通常每个IRC服务器需要单独占用一条隧道。" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:419 +msgid "Select tunnel type" +msgstr "选择隧道类型" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:446 +msgid "Choose a name and description for your tunnel." +msgstr "为您的隧道选择一个名称和描述。" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:448 +msgid "" +"These can be anything you want - they are just for ease of identifying the " +"tunnel in the routerconsole." +msgstr "您可以随意设置 - 它们只是为了您在路由控制台中能较容易的识别这些隧道。" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:474 +msgid "" +"If you know of any outproxies for this type of tunnel (either HTTP or " +"SOCKS), fill them in below." +msgstr "如果您直到此种隧道类型(HTTP或SOCKS)的出口代理,请将它们填入下表。" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:476 +msgid "Separate multiple proxies with commas." +msgstr "使用空格分隔多个代理。" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:480 +msgid "" +"List of I2P outproxy destinations, separated with commas (e.g. " +"proxy1.i2p,proxy2.i2p)" +msgstr "I2P出口代理地址列表,以逗号分开(如proxy1.i2p,proxy2.i2p)" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:490 +msgid "" +"Type in the I2P destination of the service that this client tunnel should " +"connect to." +msgstr "请输入该客户端隧道应连接的 I2P 服务目标。" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:492 +msgid "" +"This could be the full Base64 destination key, or an I2P URL from your " +"address book." +msgstr "这可能是一个完整的 Base64 编码的目标密钥或您地址簿中的一个 I2P URL。" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:496 +msgid "Enter a b64 or .i2p address here" +msgstr "在这里输入一个b64或者.i2p地址" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:517 +msgid "" +"This is the IP that your service is running on, this is usually on the same " +"machine so 127.0.0.1 is autofilled." +msgstr "这是您正在运行服务的所在 IP,这通常是在同一台机器上,所以 127.0.0.1 会被自动填写。" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:529 +msgid "This is the port that the service is accepting connections on." +msgstr "这是这项服务接受连接的端口。" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:548 +msgid "This is the port that the client tunnel will be accessed from locally." +msgstr "这是客户隧道将使用的本地端口。" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:558 +msgid "" +"How do you want this tunnel to be accessed? By just this machine, your " +"entire subnet, or external internet?" +msgstr "您希望谁可以访问此端口?仅本机,您的整个子网,还是公共外网?" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:560 +msgid "You will most likely want to just allow 127.0.0.1" +msgstr "通常用户只允许127.0.0.1" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:597 +msgid "" +"The I2P router can automatically start this tunnel for you when the router " +"is started." +msgstr "I2P 路由可以在启动时自动为您启动此隧道。" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:599 +msgid "" +"This can be useful for frequently-used tunnels (especially server tunnels), " +"but for tunnels that are only used occasionally it would mean that the I2P " +"router is creating and maintaining unnecessary tunnels." +msgstr "这适用于经常使用的隧道(尤其是服务端隧道),但如果隧道仅偶尔使用,会不必要地占用I2P的资源。" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:617 +msgid "The wizard has now collected enough information to create your tunnel." +msgstr "向导已收集到最够的信息来完成隧道的创建。" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:619 +msgid "" +"Upon clicking the Save button below, the wizard will set up the tunnel, and " +"take you back to the main I2PTunnel page." +msgstr "点击下面的保存按钮,向导将完成隧道设置,带您返回 I2PTunnel 的主页面。" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:624 +msgid "" +"Because you chose to automatically start the tunnel when the router starts, " +"you don't have to do anything further." +msgstr "因为您选择了路由启动时自动启动隧道,您无需再做其他设置。" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:626 +msgid "The router will start the tunnel once it has been set up." +msgstr "路由将在设置好后自动启动隧道。" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:630 +msgid "" +"Because you chose not to automatically start the tunnel, you will have to " +"manually start it." +msgstr "由于您选择了不自动启用隧道,您需要手动启动它。" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:632 +msgid "" +"You can do this by clicking the Start button on the main page which " +"corresponds to the new tunnel." +msgstr "您只需在主页面中对应的新隧道上点击启动按钮。" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:636 +msgid "Below is a summary of the options you chose:" +msgstr "下面列出了您选择的选项。" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:667 +msgid "Tunnel description" +msgstr "隧道描述" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:693 +msgid "Binding address" +msgstr "监听地址" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:697 +msgid "Tunnel port" +msgstr "隧道端口" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:727 +msgid "" +"Alongside these basic settings, there are a number of advanced options for " +"tunnel configuration." +msgstr "除了这些基本的设置,隧道配置还有多个高级选项可以设置。" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:729 +msgid "" +"The wizard will set reasonably sensible default values for these, but you " +"can view and/or edit these by clicking on the tunnel's name in the main " +"I2PTunnel page." +msgstr "向导会设置合理的默认值,不过您仍可通过在I2PTunnel主页中点击隧道名称来查看/编辑它们。" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:736 +msgid "Cancel the wizard and return to Tunnel Manager home page" +msgstr "取消向导并返回隧道管理首页" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:743 +msgid "Return to previous page" +msgstr "返回上一頁面" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:745 +msgid "Previous" +msgstr "前一" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:753 +msgid "Save tunnel configuration" +msgstr "保存隧道设置" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:756 +msgid "Save Tunnel" +msgstr "保存隧道" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:762 +msgid "Finish Wizard and review tunnel settings" +msgstr "完成向导并预览隧道设置" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:765 +msgid "Finish" +msgstr "完成" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:771 +msgid "Advance to next page" +msgstr "前进到下一页" + +#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:774 +msgid "Next" +msgstr "下一頁" diff --git a/apps/ministreaming/locale/messages_gan.po b/apps/ministreaming/locale/messages_gan.po new file mode 100644 index 0000000000..1d63e1a683 --- /dev/null +++ b/apps/ministreaming/locale/messages_gan.po @@ -0,0 +1,92 @@ +# I2P +# Copyright (C) 2014 The I2P Project +# This file is distributed under the same license as the streaming package. +# To contribute translations, see http://www.i2p2.de/newdevelopers +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: I2P\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-03-29 14:30+0000\n" +"PO-Revision-Date: 2014-06-24 22:17+0000\n" +"Language-Team: Chinese (Gan) (http://app.transifex.com/otf/I2P/language/gan/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: gan\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: ../java/src/net/i2p/client/streaming/I2PSocketException.java:69 +msgid "Message timeout" +msgstr "消息超时" + +#: ../java/src/net/i2p/client/streaming/I2PSocketException.java:72 +msgid "Failed delivery to local destination" +msgstr "传送到本地目标失败" + +#: ../java/src/net/i2p/client/streaming/I2PSocketException.java:75 +#: ../java/src/net/i2p/client/streaming/I2PSocketException.java:108 +msgid "Local router failure" +msgstr "本地路由故障" + +#: ../java/src/net/i2p/client/streaming/I2PSocketException.java:78 +msgid "Local network failure" +msgstr "本地网络故障" + +#: ../java/src/net/i2p/client/streaming/I2PSocketException.java:81 +msgid "Session closed" +msgstr "会话已关闭" + +#: ../java/src/net/i2p/client/streaming/I2PSocketException.java:84 +msgid "Invalid message" +msgstr "无效消息" + +#: ../java/src/net/i2p/client/streaming/I2PSocketException.java:87 +msgid "Invalid message options" +msgstr "无效消息选项" + +#: ../java/src/net/i2p/client/streaming/I2PSocketException.java:90 +msgid "Buffer overflow" +msgstr "缓冲区溢出" + +#: ../java/src/net/i2p/client/streaming/I2PSocketException.java:93 +msgid "Message expired" +msgstr "消息已过期" + +#: ../java/src/net/i2p/client/streaming/I2PSocketException.java:96 +msgid "Local lease set invalid" +msgstr "本地租赁无效" + +#: ../java/src/net/i2p/client/streaming/I2PSocketException.java:99 +msgid "No local tunnels" +msgstr "没有本地隧道" + +#: ../java/src/net/i2p/client/streaming/I2PSocketException.java:102 +msgid "Unsupported encryption options" +msgstr "不支持的加密选项" + +#: ../java/src/net/i2p/client/streaming/I2PSocketException.java:105 +msgid "Invalid destination" +msgstr "目的地址无效" + +#: ../java/src/net/i2p/client/streaming/I2PSocketException.java:111 +msgid "Destination lease set expired" +msgstr "目标租赁已过期" + +#: ../java/src/net/i2p/client/streaming/I2PSocketException.java:114 +msgid "Destination lease set not found" +msgstr "找不到目标租赁" + +#: ../java/src/net/i2p/client/streaming/I2PSocketException.java:117 +msgid "Local destination shutdown" +msgstr "本地目标关机" + +#: ../java/src/net/i2p/client/streaming/I2PSocketException.java:120 +msgid "Connection was reset" +msgstr "连接被重置" + +#. Translate this one here, can't do it later +#: ../java/src/net/i2p/client/streaming/I2PSocketException.java:127 +msgid "Failure code" +msgstr "失败代码" diff --git a/apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigUIHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigUIHelper.java index 2cc924ad92..ef742dc8e7 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigUIHelper.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigUIHelper.java @@ -133,6 +133,7 @@ private Set themeSet() { { "cs", "cz", "Čeština", null }, { "zh", "cn", "Chinese 中文", null }, { "zh_TW", "tw", "Chinese 中文", "Taiwan" }, + { "gan", "cn", "Gan Chinese 赣语", null }, { "da", "dk", "Dansk", null }, { "de", "de", "Deutsch", null }, { "et", "ee", "Eesti", null }, diff --git a/apps/routerconsole/jsp/css.jsi b/apps/routerconsole/jsp/css.jsi index 88dbedad29..075974332b 100644 --- a/apps/routerconsole/jsp/css.jsi +++ b/apps/routerconsole/jsp/css.jsi @@ -65,7 +65,7 @@ <% String curlang = intl.getLang(); - if (curlang.equals("zh")) { + if (curlang.equals("zh") || curlang.equals("gan")) { // make the fonts bigger for chinese %> <% diff --git a/apps/routerconsole/locale-countries/messages_gan.po b/apps/routerconsole/locale-countries/messages_gan.po new file mode 100644 index 0000000000..21385d2270 --- /dev/null +++ b/apps/routerconsole/locale-countries/messages_gan.po @@ -0,0 +1,778 @@ +# 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 +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: I2P\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-08-12 13:39+0000\n" +"PO-Revision-Date: 2013-10-14 15:34+0000\n" +"Last-Translator: duck \n" +"Language-Team: Chinese (Gan) (http://app.transifex.com/otf/I2P/language/gan/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: gan\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +msgid "Anonymous Proxy" +msgstr "匿名代理" + +msgid "Satellite Provider" +msgstr "卫星供应商" + +msgid "Andorra" +msgstr "安道爾" + +msgid "United Arab Emirates" +msgstr "阿拉伯聯合大公國" + +msgid "Afghanistan" +msgstr "阿富汗" + +msgid "Antigua and Barbuda" +msgstr "安提瓜与巴布达" + +msgid "Anguilla" +msgstr "安格拉" + +msgid "Albania" +msgstr "阿尔巴尼亚" + +msgid "Armenia" +msgstr "亞美尼亞" + +msgid "Netherlands Antilles" +msgstr "荷屬安地列斯" + +msgid "Angola" +msgstr "安哥拉" + +msgid "Asia/Pacific Region" +msgstr "亞太地區" + +msgid "Antarctica" +msgstr "南極洲" + +msgid "Argentina" +msgstr "阿根廷" + +msgid "American Samoa" +msgstr "美屬薩摩亞" + +msgid "Austria" +msgstr "奧地利" + +msgid "Australia" +msgstr "澳洲" + +msgid "Aruba" +msgstr "阿鲁巴" + +msgid "Åland Islands" +msgstr "奧蘭" + +msgid "Azerbaijan" +msgstr "阿塞拜疆" + +msgid "Bosnia and Herzegovina" +msgstr "波黑" + +msgid "Barbados" +msgstr "巴巴多斯" + +msgid "Bangladesh" +msgstr "孟加拉" + +msgid "Belgium" +msgstr "比利时" + +msgid "Burkina Faso" +msgstr "布基纳法索" + +msgid "Bulgaria" +msgstr "保加利亚" + +msgid "Bahrain" +msgstr "巴林" + +msgid "Burundi" +msgstr "布隆迪" + +msgid "Benin" +msgstr "贝宁" + +msgid "Saint Barthélemy" +msgstr "聖巴瑟米" + +msgid "Bermuda" +msgstr "百慕達" + +msgid "Brunei Darussalam" +msgstr "汶萊" + +msgid "Bolivia" +msgstr "玻利維亞" + +msgid "Bonaire" +msgstr "波奈" + +msgid "Brazil" +msgstr "巴西" + +msgid "Bahamas" +msgstr "巴哈馬群島" + +msgid "Bhutan" +msgstr "不丹" + +msgid "Bouvet Island" +msgstr "布威島" + +msgid "Botswana" +msgstr "博茨瓦納" + +msgid "Belarus" +msgstr "白俄罗斯" + +msgid "Belize" +msgstr "貝里斯" + +msgid "Canada" +msgstr "加拿大" + +msgid "Cocos (Keeling) Islands" +msgstr "科科斯(基林)群岛" + +msgid "Congo" +msgstr "剛果" + +msgid "Central African Republic" +msgstr "中非共和国" + +msgid "Switzerland" +msgstr "瑞士" + +msgid "Cote D'Ivoire" +msgstr "象牙海岸共和國" + +msgid "Cook Islands" +msgstr "库克群岛" + +msgid "Chile" +msgstr "智利" + +msgid "Cameroon" +msgstr "喀麦隆" + +msgid "China" +msgstr "中國" + +msgid "Colombia" +msgstr "哥倫比亞" + +msgid "Costa Rica" +msgstr "哥斯大黎加" + +msgid "Serbia and Montenegro" +msgstr "塞爾維亞與蒙特內哥羅" + +msgid "Cuba" +msgstr "古巴" + +msgid "Cape Verde" +msgstr "維德角共和國" + +msgid "Curaçao" +msgstr "古拉索" + +msgid "Christmas Island" +msgstr "聖誕島" + +msgid "Cyprus" +msgstr "塞浦路斯" + +msgid "Czech Republic" +msgstr "捷克共和国" + +msgid "Germany" +msgstr "德國" + +msgid "Djibouti" +msgstr "吉布提" + +msgid "Denmark" +msgstr "丹麦" + +msgid "Dominica" +msgstr "多米尼克" + +msgid "Dominican Republic" +msgstr "多明尼加共和國" + +msgid "Algeria" +msgstr "阿尔及利亚" + +msgid "Ecuador" +msgstr "厄瓜多尔" + +msgid "Estonia" +msgstr "爱沙尼亚" + +msgid "Egypt" +msgstr "埃及" + +msgid "Western Sahara" +msgstr "西撒哈拉" + +msgid "Eritrea" +msgstr "厄立特里亚" + +msgid "Spain" +msgstr "西班牙" + +msgid "Ethiopia" +msgstr "埃塞俄比亚" + +msgid "European Union" +msgstr "歐盟" + +msgid "Finland" +msgstr "芬兰" + +msgid "Fiji" +msgstr "斐济" + +msgid "Falkland Islands (Malvinas)" +msgstr "福克蘭群島" + +msgid "Micronesia" +msgstr "密克羅西尼亞" + +msgid "Faroe Islands" +msgstr "法羅群島" + +msgid "France" +msgstr "法國" + +msgid "Gabon" +msgstr "加彭" + +msgid "United Kingdom" +msgstr "英國" + +msgid "Grenada" +msgstr "格林納達" + +msgid "Georgia" +msgstr "格鲁吉亚" + +msgid "French Guiana" +msgstr "法属圭亚那" + +msgid "Guernsey" +msgstr "格恩西島" + +msgid "Ghana" +msgstr "加纳" + +msgid "Gibraltar" +msgstr "直布罗陀" + +msgid "Greenland" +msgstr "格陵蘭" + +msgid "Gambia" +msgstr "冈比亚" + +msgid "Guinea" +msgstr "幾內亞" + +msgid "Guadeloupe" +msgstr "瓜德罗普岛" + +msgid "Equatorial Guinea" +msgstr "赤道几内亚" + +msgid "Greece" +msgstr "希腊" + +msgid "South Georgia and the South Sandwich Islands" +msgstr "南喬治亞和南三明治群島" + +msgid "Guatemala" +msgstr "危地马拉" + +msgid "Guam" +msgstr "关岛" + +msgid "Guinea-Bissau" +msgstr "幾內亞比索" + +msgid "Guyana" +msgstr "圭亚那" + +msgid "Hong Kong" +msgstr "中国香港" + +msgid "Honduras" +msgstr "洪都拉斯" + +msgid "Croatia" +msgstr "克罗地亚" + +msgid "Haiti" +msgstr "海地" + +msgid "Hungary" +msgstr "匈牙利" + +msgid "Indonesia" +msgstr "印度尼西亚" + +msgid "Ireland" +msgstr "爱尔兰" + +msgid "Israel" +msgstr "以色列" + +msgid "Isle of Man" +msgstr "曼恩岛" + +msgid "India" +msgstr "義大利" + +msgid "British Indian Ocean Territory" +msgstr "英属印度洋地区" + +msgid "Iraq" +msgstr "伊拉克" + +msgid "Iran" +msgstr "伊朗" + +msgid "Iceland" +msgstr "冰島" + +msgid "Italy" +msgstr "義大利" + +msgid "Jersey" +msgstr "泽西岛" + +msgid "Jamaica" +msgstr "牙买加" + +msgid "Jordan" +msgstr "约旦" + +msgid "Japan" +msgstr "日本" + +msgid "Kenya" +msgstr "肯尼亚" + +msgid "Kyrgyzstan" +msgstr "吉尔吉斯斯坦" + +msgid "Cambodia" +msgstr "柬埔寨" + +msgid "Kiribati" +msgstr "吉里巴斯" + +msgid "Comoros" +msgstr "科摩羅" + +msgid "Saint Kitts and Nevis" +msgstr "聖克里斯多福及尼維斯聯邦" + +msgid "North Korea" +msgstr "北韓" + +msgid "Republic of Korea" +msgstr "南韓" + +msgid "Kuwait" +msgstr "科威特" + +msgid "Cayman Islands" +msgstr "開曼群島" + +msgid "Kazakhstan" +msgstr "哈薩克" + +msgid "Lao People's Democratic Republic" +msgstr "老挝" + +msgid "Lebanon" +msgstr "黎巴嫩" + +msgid "Saint Lucia" +msgstr "聖露西亞" + +msgid "Liechtenstein" +msgstr "列支敦士登" + +msgid "Sri Lanka" +msgstr "斯里蘭卡" + +msgid "Liberia" +msgstr "利比亞" + +msgid "Lesotho" +msgstr "莱索托" + +msgid "Lithuania" +msgstr "立陶宛" + +msgid "Luxembourg" +msgstr "卢森堡" + +msgid "Latvia" +msgstr "拉托維亞" + +msgid "Libya" +msgstr "利比亞" + +msgid "Morocco" +msgstr "摩洛哥" + +msgid "Monaco" +msgstr "摩納哥" + +msgid "Moldova" +msgstr "摩爾多瓦" + +msgid "Montenegro" +msgstr "蒙特內哥羅" + +msgid "Saint Martin" +msgstr "聖馬丁島" + +msgid "Madagascar" +msgstr "馬達加斯加" + +msgid "Marshall Islands" +msgstr "馬紹爾群島" + +msgid "Macedonia" +msgstr "北马其顿" + +msgid "Mali" +msgstr "馬里" + +msgid "Myanmar" +msgstr "緬甸" + +msgid "Mongolia" +msgstr "蒙古" + +msgid "Macau" +msgstr "澳門" + +msgid "Northern Mariana Islands" +msgstr "北马里亚纳群岛" + +msgid "Martinique" +msgstr "馬丁尼克" + +msgid "Mauritania" +msgstr "毛利塔尼亞" + +msgid "Montserrat" +msgstr "蒙特塞拉特" + +msgid "Malta" +msgstr "马耳他" + +msgid "Mauritius" +msgstr "毛里求斯" + +msgid "Maldives" +msgstr "馬爾代夫" + +msgid "Malawi" +msgstr "马拉维" + +msgid "Mexico" +msgstr "墨西哥" + +msgid "Malaysia" +msgstr "马来西亚" + +msgid "Mozambique" +msgstr "莫桑比克" + +msgid "Namibia" +msgstr "纳米比亚" + +msgid "New Caledonia" +msgstr "新喀里多尼亚" + +msgid "Niger" +msgstr "尼日" + +msgid "Norfolk Island" +msgstr "諾福克島" + +msgid "Nigeria" +msgstr "尼日利亚" + +msgid "Nicaragua" +msgstr "尼加拉瓜" + +msgid "Netherlands" +msgstr "荷蘭" + +msgid "Norway" +msgstr "挪威" + +msgid "Nepal" +msgstr "尼泊尔" + +msgid "Nauru" +msgstr "瑙鲁" + +msgid "Niue" +msgstr "紐埃" + +msgid "New Zealand" +msgstr "紐西蘭" + +msgid "Oman" +msgstr "阿曼" + +msgid "Panama" +msgstr "巴拿马" + +msgid "Peru" +msgstr "秘鲁" + +msgid "French Polynesia" +msgstr "法属玻利尼西亚" + +msgid "Papua New Guinea" +msgstr "巴布亚新几内亚" + +msgid "Philippines" +msgstr "菲律宾" + +msgid "Pakistan" +msgstr "巴基斯坦" + +msgid "Poland" +msgstr "波蘭" + +msgid "Saint Pierre and Miquelon" +msgstr "圣皮埃尔岛和密克隆" + +msgid "Pitcairn Islands" +msgstr "皮特凯恩群岛" + +msgid "Puerto Rico" +msgstr "波多黎各" + +msgid "Palestinian Territory" +msgstr "巴勒斯坦" + +msgid "Portugal" +msgstr "葡萄牙" + +msgid "Palau" +msgstr "帕劳" + +msgid "Paraguay" +msgstr "巴拉圭" + +msgid "Qatar" +msgstr "卡達" + +msgid "Réunion" +msgstr "留尼汪岛" + +msgid "Romania" +msgstr "罗马尼亚" + +msgid "Serbia" +msgstr "塞尔维亚" + +msgid "Russian Federation" +msgstr "蘇聯" + +msgid "Rwanda" +msgstr "卢旺达" + +msgid "Saudi Arabia" +msgstr "沙烏地阿拉伯" + +msgid "Solomon Islands" +msgstr "所罗门群岛" + +msgid "Seychelles" +msgstr "塞舌爾群島" + +msgid "Sudan" +msgstr "苏丹" + +msgid "Sweden" +msgstr "瑞典" + +msgid "Singapore" +msgstr "新加坡" + +msgid "Saint Helena" +msgstr "圣赫勒拿岛" + +msgid "Slovenia" +msgstr "斯洛維尼亞" + +msgid "Svalbard and Jan Mayen" +msgstr "斯瓦尔巴群岛和扬马延岛" + +msgid "Slovakia" +msgstr "斯洛伐克" + +msgid "Sierra Leone" +msgstr "塞拉利昂" + +msgid "San Marino" +msgstr "聖瑪利諾" + +msgid "Senegal" +msgstr "塞內加爾" + +msgid "Somalia" +msgstr "索马里" + +msgid "Suriname" +msgstr "蘇里南" + +msgid "South Sudan" +msgstr "南蘇丹" + +msgid "Sao Tome and Principe" +msgstr "圣多美与普林西比共和国" + +msgid "El Salvador" +msgstr "萨尔瓦多" + +msgid "Sint Maarten" +msgstr "圣马丁岛" + +msgid "Syria" +msgstr "敘利亞" + +msgid "Swaziland" +msgstr "史瓦濟蘭" + +msgid "Turks and Caicos Islands" +msgstr "特克斯和凯科斯群岛" + +msgid "Chad" +msgstr "乍得" + +msgid "French Southern Territories" +msgstr "法属南半球领地" + +msgid "Togo" +msgstr "多哥" + +msgid "Thailand" +msgstr "泰國" + +msgid "Tajikistan" +msgstr "塔吉克斯坦" + +msgid "Tokelau" +msgstr "托克劳群岛" + +msgid "Timor-Leste" +msgstr "东帝汶" + +msgid "Turkmenistan" +msgstr "土庫曼斯坦" + +msgid "Tunisia" +msgstr "突尼斯" + +msgid "Tonga" +msgstr "汤加" + +msgid "Turkey" +msgstr "土耳其" + +msgid "Trinidad and Tobago" +msgstr "特立尼达和多巴哥" + +msgid "Tuvalu" +msgstr "图瓦卢" + +msgid "Taiwan" +msgstr "中国台湾" + +msgid "Tanzania" +msgstr "坦尚尼亞" + +msgid "Ukraine" +msgstr "乌克兰" + +msgid "Uganda" +msgstr "烏干達" + +msgid "United States Minor Outlying Islands" +msgstr "美国本土外小岛屿" + +msgid "United States" +msgstr "美国" + +msgid "Uruguay" +msgstr "乌拉圭" + +msgid "Uzbekistan" +msgstr "乌兹别克斯坦" + +msgid "Vatican" +msgstr "梵蒂岡" + +msgid "Saint Vincent and the Grenadines" +msgstr "圣文森特和格林纳丁斯" + +msgid "Venezuela" +msgstr "委內瑞拉" + +msgid "Virgin Islands" +msgstr "维京群岛" + +msgid "Vietnam" +msgstr "越南" + +msgid "Vanuatu" +msgstr "瓦努阿图" + +msgid "Wallis and Futuna" +msgstr "瓦利斯群岛和富图纳群岛" + +msgid "Samoa" +msgstr "薩摩亞群島" + +msgid "Kosovo" +msgstr "科索沃" + +msgid "Yemen" +msgstr "葉門" + +msgid "Mayotte" +msgstr "马约特" + +msgid "South Africa" +msgstr "南非" + +msgid "Zambia" +msgstr "赞比亚" + +msgid "Zimbabwe" +msgstr "辛巴威" diff --git a/apps/routerconsole/locale-news/messages_gan.po b/apps/routerconsole/locale-news/messages_gan.po new file mode 100644 index 0000000000..622a410b1e --- /dev/null +++ b/apps/routerconsole/locale-news/messages_gan.po @@ -0,0 +1,67 @@ +# 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 +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: I2P\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-05-05 15:14+0000\n" +"PO-Revision-Date: 2013-07-20 14:49+0000\n" +"Last-Translator: duck \n" +"Language-Team: Chinese (Gan) (http://app.transifex.com/otf/I2P/language/gan/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: gan\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +msgid "Congratulations on getting I2P installed!" +msgstr "恭喜您成功安装 I2P !" + +msgid "Welcome to I2P!" +msgstr "欢迎来到 I2P!" + +#, java-format +msgid "Please {0}have patience{1} as I2P boots up and finds peers." +msgstr "在 I2P 启动和搜索对等节点时,请{0}保持耐心{1}。" + +#, java-format +msgid "" +"While you are waiting, please {0}adjust your bandwidth settings{1} on the " +"{2}configuration page{3}." +msgstr "在您等候的同時,煩請在{2}設定頁面{3}裡{0}調整您的頻寬設定{1}。" + +msgid "" +"Also you can setup your browser to use the I2P proxy to reach eepsites." +msgstr "同时您也可以设置您的浏览器使用 I2P 代理访问匿名网站。" + +msgid "" +"Just enter 127.0.0.1 (or localhost) port 4444 as a http proxy into your " +"browser settings." +msgstr "只需在您的浏览器设置中输入 127.0.0.1(或 localhost)端口 4444 作为 HTTP 代理即可。" + +msgid "Do not use SOCKS for this." +msgstr "请不要作为 SOCKS 代理使用。" + +#, java-format +msgid "" +"More information can be found on the {0}I2P browser proxy setup page{1}." +msgstr "详情请参见 {0}I2P 浏览器代理设置页面{1}。" + +#, java-format +msgid "" +"Once you have a \"shared clients\" destination listed on the left, please " +"{0}check out{1} our {2}FAQ{3}." +msgstr "当页面左侧出现 \"共享客户端\" 目标后,请{0}看看{1}我们的{2}常见问题集 FAQ{3} 。" + +#, java-format +msgid "" +"Point your IRC client to {0}localhost:6668{1} and say hi to us on " +"{2}#i2p{3}." +msgstr "将您的 IRC 客户端指向 {0}localhost:6668{1} 并在 {2}#i2p{3} 上和我们打招呼。" + +msgid "I2P Development Team" +msgstr "I2P 开发团队" diff --git a/apps/routerconsole/locale/messages_gan.po b/apps/routerconsole/locale/messages_gan.po new file mode 100644 index 0000000000..d51baf75a3 --- /dev/null +++ b/apps/routerconsole/locale/messages_gan.po @@ -0,0 +1,8112 @@ +# 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 +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: I2P\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-07-29 20:06+0000\n" +"PO-Revision-Date: 2011-02-13 12:00+0000\n" +"Last-Translator: duck \n" +"Language-Team: Chinese (Gan) (http://app.transifex.com/otf/I2P/language/gan/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: gan\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: ../../../router/java/src/net/i2p/router/Blocklist.java:290 +#, java-format +msgid "Banned by router hash: {0}" +msgstr "按路由散列值封禁:{0}" + +#: ../../../router/java/src/net/i2p/router/Blocklist.java:292 +msgid "Banned by router hash" +msgstr "已按路由散列值封禁" + +#. Temporary reason, until the job finishes +#: ../../../router/java/src/net/i2p/router/Blocklist.java:1147 +#: ../../../router/java/src/net/i2p/router/Blocklist.java:1242 +#, java-format +msgid "IP banned by blocklist.txt entry {0}" +msgstr "已按 blocklist.txt 项 {0} 封禁 IP" + +#: ../../../router/java/src/net/i2p/router/Router.java:1531 +#: ../java/src/net/i2p/router/web/helpers/ConfigRestartBean.java:69 +msgid "Restart imminent" +msgstr "立刻重啟" + +#: ../../../router/java/src/net/i2p/router/Router.java:1533 +#: ../java/src/net/i2p/router/web/helpers/ConfigRestartBean.java:71 +msgid "Shutdown imminent" +msgstr "強制關閉" + +#: ../../../router/java/src/net/i2p/router/Router.java:2035 +#: ../../../router/java/src/net/i2p/router/sybil/Analysis.java:1090 +#: ../java/src/net/i2p/router/web/helpers/NetDbRenderer.java:1235 +#: ../java/src/net/i2p/router/web/helpers/NetDbRenderer.java:1240 +#: ../java/src/net/i2p/router/web/helpers/SybilRenderer.java:982 +#: ../java/src/net/i2p/router/web/helpers/SybilRenderer.java:989 +#: ../java/src/net/i2p/router/web/helpers/SybilRenderer.java:996 +#: ../java/src/net/i2p/router/web/helpers/SybilRenderer.java:1005 +#: ../java/src/net/i2p/router/web/helpers/SybilRenderer.java:1012 +#: ../java/src/net/i2p/router/web/helpers/SybilRenderer.java:1019 +#: ../java/src/net/i2p/router/web/helpers/SybilRenderer.java:1026 +#: ../java/src/net/i2p/router/web/helpers/SybilRenderer.java:1037 +#: ../java/src/net/i2p/router/web/helpers/SybilRenderer.java:1039 +#, java-format +msgid "{0} ago" +msgstr "{0} 前" + +#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:241 +#, java-format +msgid "Reseeding: got router info from file ({0} successful, {1} errors)." +msgstr "补种:从文件获得路由信息({0} 个成功,{1} 个错误)。" + +#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:347 +#: ../java/src/net/i2p/router/web/helpers/ConfigNavHelper.java:34 +msgid "Reseeding" +msgstr "网络引导(播种)" + +#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:369 +#, java-format +msgid "Reseed successful, fetched {0} router info" +msgid_plural "Reseed successful, fetched {0} router infos" +msgstr[0] "补种成功, 取得了 {0} 条路由信息" + +#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:375 +#, java-format +msgid "Reseed fetched only 1 router." +msgid_plural "Reseed fetched only {0} routers." +msgstr[0] "补种只获取了 {0} 个路由。" + +#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:399 +msgid "Reseed failed." +msgstr "补种失败。" + +#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:400 +#, java-format +msgid "See {0} for help." +msgstr "参见 {0}以获取更多帮助。" + +#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:401 +msgid "reseed configuration page" +msgstr "补种配置页面" + +#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:657 +#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:791 +msgid "Reseeding: fetching seed URL." +msgstr "正在补种:从 URL 获取种子。" + +#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:716 +#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:835 +#, java-format +msgid "" +"Reseeding: fetching router info from seed URL ({0} successful, {1} errors)." +msgstr "正在补种:从种子 URL 获取路由信息({0} 个成功,{1} 个失败)。" + +#. NOTE TO TRANSLATORS - each of these phrases is a description for a +#. statistic +#. to be displayed on /stats.jsp and in the graphs on /graphs.jsp. +#. Please keep relatively short so it will fit on the graphs. +#: ../../../router/java/src/net/i2p/router/tasks/CoalesceStatsEvent.java:36 +msgid "Message receive rate (bytes/sec)" +msgstr "消息接收速率(字节/秒)" + +#: ../../../router/java/src/net/i2p/router/tasks/CoalesceStatsEvent.java:37 +msgid "Message send rate (bytes/sec)" +msgstr "消息发送速率(字节/秒)" + +#: ../../../router/java/src/net/i2p/router/tasks/CoalesceStatsEvent.java:38 +msgid "Low-level send rate (bytes/sec)" +msgstr "低级别发送速率(字节/秒)" + +#: ../../../router/java/src/net/i2p/router/tasks/CoalesceStatsEvent.java:39 +msgid "Low-level receive rate (bytes/sec)" +msgstr "低级别接收速率(字节/秒)" + +#: ../../../router/java/src/net/i2p/router/tasks/CoalesceStatsEvent.java:40 +msgid "How many peers we are actively talking with" +msgstr "正在通訊的活動節點數" + +#: ../../../router/java/src/net/i2p/router/tasks/CoalesceStatsEvent.java:43 +msgid "Known fast peers" +msgstr "已知快速对等节点" + +#: ../../../router/java/src/net/i2p/router/tasks/CoalesceStatsEvent.java:46 +msgid "Size of tunnel acceptor backlog" +msgstr "隧道接受器積壓大小" + +#: ../../../router/java/src/net/i2p/router/transport/CommSystemFacadeImpl.java:698 +#: ../java/src/net/i2p/router/web/helpers/ConfigNetHelper.java:68 +msgid "unknown" +msgstr "未知" + +#: ../../../router/java/src/net/i2p/router/transport/CommSystemFacadeImpl.java:700 +msgid "NetDb entry" +msgstr "网络数据库条目" + +#. 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:79 +msgid "No transports (hidden or starting up?)" +msgstr "無資料傳輸(隱身或正在啟動?)" + +#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:917 +msgid "Unsupported signature type" +msgstr "不支援的簽名類型" + +#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:935 +msgid "No support for our signature type" +msgstr "不支援我們的簽名類型" + +#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:939 +msgid "Unreachable on any transport" +msgstr "各傳輸方式均不可達" + +#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:1044 +#: ../../../router/java/src/net/i2p/router/transport/UPnPManager.java:395 +msgid "UPnP is not enabled" +msgstr "UPnP 未啟用" + +#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:1083 +#: ../java/src/net/i2p/router/web/helpers/ConfigNavHelper.java:31 +msgid "Service" +msgstr "服務" + +#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:1088 +msgid "WAN Common Interface Configuration" +msgstr "WAN 通用介面設定" + +#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:1089 +#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:1110 +#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:1128 +#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:1147 +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:42 +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:115 +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:413 +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:588 +#: ../java/src/net/i2p/router/web/helpers/ProfileOrganizerRenderer.java:101 +msgid "Status" +msgstr "状态" + +#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:1091 +#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:1114 +#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:1135 +#: ../java/src/net/i2p/router/web/helpers/ConfigKeyringHelper.java:66 +#: ../java/src/net/i2p/router/web/helpers/NetDbRenderer.java:509 +#: ../java/src/net/i2p/router/web/helpers/NetDbRenderer.java:511 +#: ../java/src/net/i2p/router/web/helpers/NetDbRenderer.java:836 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:584 +msgid "Type" +msgstr "类型" + +#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:1093 +#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:1116 +msgid "Upstream" +msgstr "上行" + +#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:1095 +#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:1118 +msgid "Downstream" +msgstr "下載" + +#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:1109 +msgid "WAN PPP Connection" +msgstr "WAN PPP連線" + +#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:1112 +#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:1130 +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:630 +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:656 +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:690 +msgid "Uptime" +msgstr "執行時間" + +#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:1120 +#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:1137 +msgid "External IP" +msgstr "外部 IP" + +#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:1123 +msgid "Layer 3 Forwarding" +msgstr "第 3 层转发" + +#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:1124 +msgid "Default Connection Service" +msgstr "預設連線服務" + +#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:1127 +msgid "WAN IP Connection" +msgstr "WAN IP 連線" + +#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:1146 +msgid "WAN Ethernet Link Configuration" +msgstr "WAN 以太网连接设置" + +#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:1166 +msgid "Found Device" +msgstr "發現裝置" + +#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:1168 +msgid "Subdevice" +msgstr "子裝置" + +#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:1178 +#, java-format +msgid "To disable this device, add {0} to advanced configuration and restart." +msgstr "欲禁用此设备,在高级设置添加{0}并重启。" + +#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:1199 +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:47 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confignet_jsp.java:584 +msgid "UPnP Status" +msgstr "UPnP 状态" + +#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:1207 +msgid "Disabled UPnP Devices" +msgstr "禁用 UPnP 设备" + +#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:1241 +msgid "UPnP has not found any UPnP-aware, compatible device on your LAN." +msgstr "UPnP 未在您的 LAN 中发现支持 UPnP 的设备。" + +#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:1252 +#, java-format +msgid "The current external IP address reported by UPnP is {0}" +msgstr "UPnP 报告的当前外部 IP 为 {0}" + +#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:1254 +msgid "The current external IP address is not available." +msgstr "无法获取当前的外部 IP 地址。" + +#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:1258 +#, java-format +msgid "UPnP reports the maximum downstream bit rate is {0}bits/sec" +msgstr "UPnP 报告的最大下行比特率为 {0} 字节/秒" + +#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:1260 +#, java-format +msgid "UPnP reports the maximum upstream bit rate is {0}bits/sec" +msgstr "UPnP 报告的最大上行比特率为 {0} 字节/秒" + +#. {0} is TCP or UDP +#. {1,number,#####} prevents 12345 from being output as 12,345 in the English +#. locale. +#. If you want the digit separator in your locale, translate as {1}. +#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:1276 +#, java-format +msgid "{0} port {1,number,#####} was successfully forwarded by UPnP." +msgstr "{0} 埠 {1,number,#####} 已由 UPnP 成功轉發。" + +#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:1278 +#, java-format +msgid "{0} port {1,number,#####} was not forwarded by UPnP." +msgstr "{0} 埠 {1,number,#####} 通過 UPnP 轉發失敗。" + +#: ../java/src/net/i2p/router/update/ConsoleUpdateManager.java:905 +#: ../java/src/net/i2p/router/web/DeadlockDetector.java:109 +#: ../java/src/net/i2p/router/web/helpers/NetDbRenderer.java:150 +#: ../java/src/net/i2p/router/web/helpers/NetDbRenderer.java:485 +#: ../java/src/net/i2p/router/web/helpers/NetDbRenderer.java:1215 +#: ../java/src/net/i2p/router/web/helpers/SybilRenderer.java:562 +#: ../java/src/net/i2p/router/web/helpers/SybilRenderer.java:929 +#: ../java/src/net/i2p/router/web/helpers/TunnelRenderer.java:210 +#: ../java/strings/Strings.java:53 +msgid "Router" +msgstr "路由" + +#: ../java/src/net/i2p/router/update/ConsoleUpdateManager.java:906 +#: ../java/src/net/i2p/router/web/helpers/SummaryHelper.java:885 +#: ../java/src/net/i2p/router/web/helpers/SummaryHelper.java:897 +#: ../java/src/net/i2p/router/web/helpers/SummaryHelper.java:909 +msgid "Update available" +msgstr "有可用更新" + +#: ../java/src/net/i2p/router/update/ConsoleUpdateManager.java:906 +#: ../java/src/net/i2p/router/web/helpers/SummaryHelper.java:869 +#: ../java/src/net/i2p/router/web/helpers/SummaryHelper.java:886 +#: ../java/src/net/i2p/router/web/helpers/SummaryHelper.java:898 +#: ../java/src/net/i2p/router/web/helpers/SummaryHelper.java:910 +#, java-format +msgid "Version {0}" +msgstr "版本 {0}" + +#: ../java/src/net/i2p/router/update/ConsoleUpdateManager.java:937 +#, java-format +msgid "New plugin version {0} is available" +msgstr "新外掛版本 {0} 可用" + +#: ../java/src/net/i2p/router/update/ConsoleUpdateManager.java:1017 +#, java-format +msgid "Update check failed for plugin {0}" +msgstr "{0} 外掛更新檢查失敗" + +#: ../java/src/net/i2p/router/update/ConsoleUpdateManager.java:1021 +#, java-format +msgid "No new version is available for plugin {0}" +msgstr "外掛 {0} 沒有更新可用" + +#: ../java/src/net/i2p/router/update/ConsoleUpdateManager.java:1033 +#: ../java/src/net/i2p/router/update/DevSU3UpdateChecker.java:49 +#: ../java/src/net/i2p/router/update/DevSU3UpdateRunner.java:40 +#: ../java/src/net/i2p/router/update/PluginUpdateChecker.java:55 +#: ../java/src/net/i2p/router/update/PluginUpdateRunner.java:134 +#: ../java/src/net/i2p/router/update/UnsignedUpdateChecker.java:66 +#: ../java/src/net/i2p/router/update/UnsignedUpdateRunner.java:41 +#: ../java/src/net/i2p/router/update/UpdateRunner.java:155 +#: ../java/src/net/i2p/router/web/ConfigUpdateHandler.java:166 +#: ../java/src/net/i2p/router/web/PluginStarter.java:208 +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHandler.java:617 +msgid "HTTP client proxy tunnel must be running" +msgstr "HTTP 客戶端代理隧道必須執行" + +#: ../java/src/net/i2p/router/update/ConsoleUpdateManager.java:1113 +#, java-format +msgid "Install failed from {0}" +msgstr "從 {0} 安裝失敗" + +#: ../java/src/net/i2p/router/update/ConsoleUpdateManager.java:1115 +#: ../java/src/net/i2p/router/update/UpdateRunner.java:298 +#, java-format +msgid "Transfer failed from {0}" +msgstr "傳輸 {0} 的資料失敗" + +#: ../java/src/net/i2p/router/update/ConsoleUpdateManager.java:1370 +#: ../java/src/net/i2p/router/update/ConsoleUpdateManager.java:1452 +#: ../java/src/net/i2p/router/update/ConsoleUpdateManager.java:1476 +#: ../java/src/net/i2p/router/web/helpers/SummaryHelper.java:864 +msgid "Update downloaded" +msgstr "更新已下載" + +#: ../java/src/net/i2p/router/update/ConsoleUpdateManager.java:1430 +#: ../java/src/net/i2p/router/update/ConsoleUpdateManager.java:1476 +msgid "Restarting" +msgstr "重新启动" + +#: ../java/src/net/i2p/router/update/ConsoleUpdateManager.java:1430 +msgid "Update verified" +msgstr "更新已驗證" + +#: ../java/src/net/i2p/router/update/ConsoleUpdateManager.java:1439 +#: ../java/src/net/i2p/router/update/PluginUpdateRunner.java:226 +#: ../java/src/net/i2p/router/update/PluginUpdateRunner.java:343 +#, java-format +msgid "from {0}" +msgstr "自 {0}" + +#: ../java/src/net/i2p/router/update/ConsoleUpdateManager.java:1456 +#, java-format +msgid "Unsigned update file from {0} is corrupt" +msgstr "來自 {0} 的未簽名更新包已損壞" + +#: ../java/src/net/i2p/router/update/ConsoleUpdateManager.java:1485 +#, java-format +msgid "Failed copy to {0}" +msgstr "無法複製到 {0}" + +#: ../java/src/net/i2p/router/update/DevSU3UpdateChecker.java:83 +#: ../java/src/net/i2p/router/update/NewsFetcher.java:336 +#: ../java/src/net/i2p/router/update/UnsignedUpdateChecker.java:90 +#, java-format +msgid "Requires Java version {0} but installed Java version is {1}" +msgstr "需要版本為 {0} 的 Java,但你安裝的版本是 {1}" + +#. set status before thread to ensure UI feedback +#: ../java/src/net/i2p/router/update/DevSU3UpdateHandler.java:91 +#: ../java/src/net/i2p/router/update/PluginUpdateHandler.java:90 +#: ../java/src/net/i2p/router/update/UnsignedUpdateHandler.java:91 +msgid "Updating" +msgstr "更新中" + +#: ../java/src/net/i2p/router/update/NewsFetcher.java:298 +msgid "In-network updates disabled. Check package manager." +msgstr "网络更新被禁用。请检查软件包管理器。" + +#: ../java/src/net/i2p/router/update/NewsFetcher.java:304 +msgid "No write permission for I2P install directory." +msgstr "没有对 I2P 安装文件夹的写入权限。" + +#: ../java/src/net/i2p/router/update/NewsFetcher.java:318 +msgid "No update certificates installed." +msgstr "無已安裝的更新憑證。" + +#: ../java/src/net/i2p/router/update/NewsFetcher.java:326 +#, java-format +msgid "You must first update to version {0}" +msgstr "你必须先更新到版本 {0}" + +#: ../java/src/net/i2p/router/update/PluginUpdateChecker.java:62 +#, java-format +msgid "Checking for update of plugin {0}" +msgstr "正在為外掛 {0} 檢查更新" + +#: ../java/src/net/i2p/router/update/PluginUpdateRunner.java:113 +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHandler.java:559 +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHandler.java:564 +#: ../java/src/net/i2p/router/web/helpers/ConfigReseedHandler.java:50 +#: ../java/src/net/i2p/router/web/helpers/ConfigReseedHandler.java:75 +#, java-format +msgid "Bad URL {0}" +msgstr "不正確的 URL {0}" + +#: ../java/src/net/i2p/router/update/PluginUpdateRunner.java:118 +#, java-format +msgid "Attempting to install from file {0}" +msgstr "正在嘗試從檔案 {0} 中安裝" + +#: ../java/src/net/i2p/router/update/PluginUpdateRunner.java:121 +#, java-format +msgid "Failed to install from file {0}, copy failed." +msgstr "從檔案 {0} 中安裝失敗,複製失敗。" + +#: ../java/src/net/i2p/router/update/PluginUpdateRunner.java:141 +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHandler.java:574 +#, java-format +msgid "Downloading plugin from {0}" +msgstr "正在從 {0} 下載外掛" + +#: ../java/src/net/i2p/router/update/PluginUpdateRunner.java:169 +msgid "Downloading plugin" +msgstr "正在下载插件" + +#: ../java/src/net/i2p/router/update/PluginUpdateRunner.java:176 +msgid "Plugin downloaded" +msgstr "外掛下載完成" + +#: ../java/src/net/i2p/router/update/PluginUpdateRunner.java:181 +#: ../java/src/net/i2p/router/update/PluginUpdateRunner.java:562 +#, java-format +msgid "Cannot create plugin directory {0}" +msgstr "无法创建插件文件夹 {0}" + +#. updateStatus("" + "Plugin contains an invalid key" + ' ' + pubkey + ' ' +#. + signer + ""); +#: ../java/src/net/i2p/router/update/PluginUpdateRunner.java:242 +#: ../java/src/net/i2p/router/update/PluginUpdateRunner.java:251 +#: ../java/src/net/i2p/router/update/PluginUpdateRunner.java:355 +#, java-format +msgid "Plugin from {0} contains an invalid key" +msgstr "由 {0} 獲取的外掛簽名金鑰無效" + +#: ../java/src/net/i2p/router/update/PluginUpdateRunner.java:284 +#: ../java/src/net/i2p/router/update/PluginUpdateRunner.java:294 +#: ../java/src/net/i2p/router/update/PluginUpdateRunner.java:308 +#: ../java/src/net/i2p/router/update/PluginUpdateRunner.java:366 +#, java-format +msgid "Plugin signature verification of {0} failed" +msgstr "外掛 {0} 的簽名驗證失敗" + +#. don't display signer, we're really checking the key not the signer name +#: ../java/src/net/i2p/router/update/PluginUpdateRunner.java:317 +msgid "Plugin not installed - signer is untrusted" +msgstr "外掛未被安裝 - 簽名者不可信" + +#: ../java/src/net/i2p/router/update/PluginUpdateRunner.java:382 +#, java-format +msgid "Plugin from {0} is corrupt" +msgstr "由 {0} 獲取的外掛已損壞。" + +#: ../java/src/net/i2p/router/update/PluginUpdateRunner.java:396 +#, java-format +msgid "Plugin from {0} does not contain the required configuration file" +msgstr "由 {0} 獲取的外掛缺少必要的配置檔案" + +#: ../java/src/net/i2p/router/update/PluginUpdateRunner.java:418 +#, java-format +msgid "Plugin from {0} has invalid name or version" +msgstr "從 {0} 獲取的外掛缺少有效的名稱或版本" + +#: ../java/src/net/i2p/router/update/PluginUpdateRunner.java:423 +#, java-format +msgid "Plugin {0} has mismatched versions" +msgstr "外掛 {0} 的內部版本不符" + +#: ../java/src/net/i2p/router/update/PluginUpdateRunner.java:434 +#: ../java/src/net/i2p/router/web/PluginStarter.java:359 +#, java-format +msgid "This plugin requires I2P version {0} or higher" +msgstr "插件需要 I2P {0} 或更高版本" + +#: ../java/src/net/i2p/router/update/PluginUpdateRunner.java:441 +#: ../java/src/net/i2p/router/web/PluginStarter.java:368 +#, java-format +msgid "This plugin requires Java version {0} or higher" +msgstr "外掛需要 Java {0} 或更高版本" + +#: ../java/src/net/i2p/router/update/PluginUpdateRunner.java:450 +msgid "" +"Downloaded plugin is for new installs only, but the plugin is already " +"installed" +msgstr "下载的插件仅用于全新安装,但您已经安装过该插件" + +#: ../java/src/net/i2p/router/update/PluginUpdateRunner.java:460 +msgid "Installed plugin does not contain the required configuration file" +msgstr "已安裝外掛缺少所需的配置檔案" + +#: ../java/src/net/i2p/router/update/PluginUpdateRunner.java:468 +msgid "Signature of downloaded plugin does not match installed plugin" +msgstr "下载的插件签名与已安装插件签名不符" + +#: ../java/src/net/i2p/router/update/PluginUpdateRunner.java:475 +#, java-format +msgid "Downloaded plugin version {0} is not newer than installed plugin" +msgstr "下载的插件版本 {0} 没有已安装插件的版本新" + +#: ../java/src/net/i2p/router/update/PluginUpdateRunner.java:482 +#, java-format +msgid "Plugin update requires installed plugin version {0} or higher" +msgstr "插件更新需要安装插件为 {0} 或更高版本" + +#: ../java/src/net/i2p/router/update/PluginUpdateRunner.java:489 +#, java-format +msgid "Plugin update requires installed plugin version {0} or lower" +msgstr "外掛更新包需要安裝外掛的版本不高於 {0}" + +#: ../java/src/net/i2p/router/update/PluginUpdateRunner.java:497 +#: ../java/src/net/i2p/router/web/PluginStarter.java:379 +#, java-format +msgid "Plugin requires Jetty version {0} or higher" +msgstr "插件需要 Jetty {0} 或更高版本" + +#: ../java/src/net/i2p/router/update/PluginUpdateRunner.java:504 +#: ../java/src/net/i2p/router/update/PluginUpdateRunner.java:520 +#: ../java/src/net/i2p/router/web/PluginStarter.java:390 +#: ../java/src/net/i2p/router/web/PluginStarter.java:412 +#, java-format +msgid "Plugin requires Jetty version {0} or lower" +msgstr "插件需要 Jetty {0} 或更低版本" + +#: ../java/src/net/i2p/router/update/PluginUpdateRunner.java:512 +#: ../java/src/net/i2p/router/web/PluginStarter.java:401 +#, java-format +msgid "Plugin requires Java version {0} or lower" +msgstr "插件要求 Java {0} 或更低版本" + +#: ../java/src/net/i2p/router/update/PluginUpdateRunner.java:529 +#, java-format +msgid "Cannot copy plugin to directory {0}" +msgstr "无法复制插件至文件夹 {0}" + +#: ../java/src/net/i2p/router/update/PluginUpdateRunner.java:539 +msgid "Plugin will be installed on next restart." +msgstr "外掛將在下次重啟時安裝。" + +#: ../java/src/net/i2p/router/update/PluginUpdateRunner.java:557 +msgid "Plugin is for upgrades only, but the plugin is not installed" +msgstr "插件仅用于升级,但此插件未安装" + +#: ../java/src/net/i2p/router/update/PluginUpdateRunner.java:570 +#, java-format +msgid "Failed to install plugin in {0}" +msgstr "无法将插件安装至 {0}" + +#: ../java/src/net/i2p/router/update/PluginUpdateRunner.java:577 +#: ../java/src/net/i2p/router/update/PluginUpdateRunner.java:605 +#, java-format +msgid "Plugin {0} installed" +msgstr "外掛 {0} 已安裝" + +#: ../java/src/net/i2p/router/update/PluginUpdateRunner.java:596 +#, java-format +msgid "Plugin {0} installed and started" +msgstr "外掛 {0} 已安裝並啟動" + +#: ../java/src/net/i2p/router/update/PluginUpdateRunner.java:599 +#, java-format +msgid "Plugin {0} installed but failed to start, check logs" +msgstr "外掛 {0} 已安裝但啟動失敗,請檢查日誌。" + +#: ../java/src/net/i2p/router/update/PluginUpdateRunner.java:601 +#, java-format +msgid "Plugin {0} installed but failed to start" +msgstr "外掛 {0} 已安裝但啟動失敗" + +#: ../java/src/net/i2p/router/update/PluginUpdateRunner.java:613 +#, java-format +msgid "Failed to download plugin from {0}" +msgstr "重 {0} 下載外掛失敗" + +#. set status before thread to ensure UI feedback +#: ../java/src/net/i2p/router/update/UpdateHandler.java:52 +#: ../java/src/net/i2p/router/update/UpdateRunner.java:262 +msgid "Updating I2P" +msgstr "正在更新 I2P" + +#: ../java/src/net/i2p/router/update/UpdateRunner.java:202 +#, java-format +msgid "Updating from {0}" +msgstr "正在從 {0} 獲取更新" + +#: ../java/src/net/i2p/router/update/UpdateRunner.java:275 +#, java-format +msgid "No new version found at {0}" +msgstr " {0} 上未發現新版本" + +#: ../java/src/net/i2p/router/web/CSSHelper.java:185 +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHelper.java:241 +#: ../java/src/net/i2p/router/web/helpers/HomeHelper.java:142 +#: ../java/strings/Strings.java:28 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/certs_jsp.java:317 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/certs_jsp.java:319 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:329 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:331 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configadvanced_jsp.java:329 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configadvanced_jsp.java:331 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:335 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:337 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configfamily_jsp.java:329 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configfamily_jsp.java:331 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confighome_jsp.java:329 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confighome_jsp.java:331 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configi2cp_jsp.java:329 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configi2cp_jsp.java:331 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:329 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:331 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:327 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:329 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confignet_jsp.java:329 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confignet_jsp.java:331 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:329 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:331 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configplugins_jsp.java:335 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configplugins_jsp.java:337 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configreseed_jsp.java:329 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configreseed_jsp.java:331 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:329 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:331 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configsidebar_jsp.java:340 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configsidebar_jsp.java:342 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:322 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:324 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configtunnels_jsp.java:329 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configtunnels_jsp.java:331 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configui_jsp.java:331 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configui_jsp.java:333 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:329 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:331 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configwebapps_jsp.java:329 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configwebapps_jsp.java:331 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/console_jsp.java:320 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/console_jsp.java:322 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/console_jsp.java:417 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/debug_jsp.java:322 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/debug_jsp.java:324 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/dns_jsp.java:349 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/dns_jsp.java:351 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/error500_jsp.java:261 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/error_jsp.java:340 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/error_jsp.java:342 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/events_jsp.java:331 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/events_jsp.java:333 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/graph_jsp.java:348 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/graph_jsp.java:350 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/graphs_jsp.java:345 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/graphs_jsp.java:347 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:331 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:333 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/home_jsp.java:300 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/home_jsp.java:302 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/home_jsp.java:381 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/i2ptunnelmgr_jsp.java:350 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/i2ptunnelmgr_jsp.java:352 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/jars_jsp.java:327 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/jars_jsp.java:329 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/jobs_jsp.java:317 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/jobs_jsp.java:319 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/logs_jsp.java:327 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/logs_jsp.java:329 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/netdb_jsp.java:318 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/netdb_jsp.java:320 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/news_jsp.java:327 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/news_jsp.java:329 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/nowebapp_jsp.java:331 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/nowebapp_jsp.java:333 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/oldconsole_jsp.java:322 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/oldconsole_jsp.java:324 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/peers_jsp.java:317 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/peers_jsp.java:319 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/profiles_jsp.java:317 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/profiles_jsp.java:319 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/stats_jsp.java:319 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/stats_jsp.java:321 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/summaryframe_jsp.java:311 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/summaryframe_jsp.java:313 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/torrents_jsp.java:350 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/torrents_jsp.java:352 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/tunnels_jsp.java:327 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/tunnels_jsp.java:329 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/viewprofile_jsp.java:317 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/viewprofile_jsp.java:319 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/webmail_jsp.java:350 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/webmail_jsp.java:352 +msgid "I2P Router Console" +msgstr "I2P 路由控制檯" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:235 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:553 +msgid "Shutdown gracefully" +msgstr "平滑關閉" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:239 +msgid "Graceful shutdown initiated" +msgstr "已開始平滑關閉" + +#. Normal browsers send value, IE sends button label +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:240 +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:244 +#: ../java/src/net/i2p/router/web/helpers/ConfigRestartBean.java:38 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:555 +msgid "Shutdown immediately" +msgstr "立刻關閉" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:245 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:559 +msgid "Cancel graceful shutdown" +msgstr "取消平滑關閉" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:247 +msgid "Graceful shutdown cancelled" +msgstr "平滑關閉已取消" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:248 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:575 +msgid "Graceful restart" +msgstr "平滑重啟" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:253 +msgid "Graceful restart requested" +msgstr "已請求平滑重啟" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:254 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:577 +msgid "Hard restart" +msgstr "硬重啟" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:259 +msgid "Hard restart requested" +msgstr "已請求硬重啟" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:260 +msgid "Rekey and Restart" +msgstr "更換金鑰並重啟" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:261 +msgid "Rekeying after graceful restart" +msgstr "平滑重啟後更換金鑰" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:264 +msgid "Rekey and Shutdown" +msgstr "更換金鑰並關閉" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:265 +msgid "Rekeying after graceful shutdown" +msgstr "平滑關閉後更換金鑰" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:268 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:619 +msgid "Run I2P on startup" +msgstr "系統啟動時執行 I2P" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:270 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:615 +msgid "Don't run I2P on startup" +msgstr "系統啟動時不執行 I2P" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:272 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:652 +msgid "Dump threads" +msgstr "執行緒轉儲" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:279 +#, java-format +msgid "Threads dumped to {0}" +msgstr "執行緒已轉儲至 {0}" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:283 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:664 +msgid "View console on startup" +msgstr "程式啟動時顯示控制檯" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:285 +msgid "Console is to be shown on startup" +msgstr "啟動後顯示控制檯" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:286 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:666 +msgid "Do not view console on startup" +msgstr "启动后不显示控制台" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:288 +msgid "Console is not to be shown on startup" +msgstr "啟動後不顯示控制檯" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:289 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:648 +msgid "Force GC" +msgstr "强制 GC" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:291 +msgid "Full garbage collection requested" +msgstr "已請求執行徹底的記憶體垃圾回收" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:292 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:590 +msgid "Show systray icon" +msgstr "显示系统托盘图标" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:294 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:594 +msgid "Hide systray icon" +msgstr "隐藏系统托盘图标" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:335 +msgid "Service installed" +msgstr "服務已安裝" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:337 +msgid "Warning: unable to install the service" +msgstr "警告:無法安裝服務" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:344 +msgid "Service removed" +msgstr "服務已解除安裝" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:346 +msgid "Warning: unable to remove the service" +msgstr "警告:無法解除安裝服務" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:375 +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:424 +#: ../java/src/net/i2p/router/web/helpers/ConfigAdvancedHandler.java:93 +#: ../java/src/net/i2p/router/web/helpers/ConfigAdvancedHandler.java:115 +#: ../java/src/net/i2p/router/web/helpers/ConfigNetHandler.java:421 +#: ../java/src/net/i2p/router/web/helpers/WizardHandler.java:77 +msgid "Configuration saved successfully" +msgstr "設定儲存成功" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:377 +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:426 +#: ../java/src/net/i2p/router/web/helpers/ConfigAdvancedHandler.java:95 +#: ../java/src/net/i2p/router/web/helpers/ConfigAdvancedHandler.java:117 +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHandler.java:254 +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHandler.java:385 +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHandler.java:677 +#: ../java/src/net/i2p/router/web/helpers/ConfigFamilyHandler.java:58 +#: ../java/src/net/i2p/router/web/helpers/ConfigFamilyHandler.java:114 +#: ../java/src/net/i2p/router/web/helpers/ConfigFamilyHandler.java:133 +#: ../java/src/net/i2p/router/web/helpers/ConfigNetHandler.java:423 +#: ../java/src/net/i2p/router/web/helpers/ConfigReseedHandler.java:133 +#: ../java/src/net/i2p/router/web/helpers/ConfigReseedHandler.java:187 +#: ../java/src/net/i2p/router/web/helpers/WizardHandler.java:79 +msgid "" +"Error saving the configuration (applied but not saved) - please see the " +"error logs" +msgstr "配置儲存出錯(已應用但未儲存) - 請檢視錯誤日誌" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:396 +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:411 +msgid "Enabled system tray" +msgstr "啟用系統通知區" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:401 +msgid "Disabled system tray" +msgstr "禁用系統通知區" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:407 +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHandler.java:675 +#: ../java/src/net/i2p/router/web/helpers/ConfigFamilyHandler.java:56 +#: ../java/src/net/i2p/router/web/helpers/ConfigFamilyHandler.java:112 +#: ../java/src/net/i2p/router/web/helpers/ConfigFamilyHandler.java:131 +#: ../java/src/net/i2p/router/web/helpers/ConfigNetHandler.java:433 +#: ../java/src/net/i2p/router/web/helpers/ConfigStatsHandler.java:125 +#: ../java/src/net/i2p/router/web/helpers/ConfigUIHandler.java:121 +#: ../java/src/net/i2p/router/web/helpers/ConfigUIHandler.java:145 +#: ../java/src/net/i2p/router/web/helpers/GraphHelper.java:517 +msgid "Restart required to take effect" +msgstr "重啟後生效" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:416 +msgid "Failed to start systray" +msgstr "無法正常啟動系統控制台" + +#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:418 +msgid "Failed to stop systray" +msgstr "無法正常停止系統控制台" + +#: ../java/src/net/i2p/router/web/ConfigUpdateHandler.java:149 +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHelper.java:411 +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHelper.java:412 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:564 +msgid "Check for updates" +msgstr "檢查更新" + +#: ../java/src/net/i2p/router/web/ConfigUpdateHandler.java:156 +msgid "Update or check already in progress" +msgstr "更新或檢查已在進行" + +#: ../java/src/net/i2p/router/web/ConfigUpdateHandler.java:179 +msgid "Update available, attempting to download now" +msgstr "有更新可用,正在嘗試下載" + +#: ../java/src/net/i2p/router/web/ConfigUpdateHandler.java:181 +msgid "Update available, click button on left to download" +msgstr "有更新可用,点击左侧按钮下载" + +#: ../java/src/net/i2p/router/web/ConfigUpdateHandler.java:187 +msgid "No update available" +msgstr "無更新可用" + +#: ../java/src/net/i2p/router/web/ConfigUpdateHandler.java:191 +#: ../java/src/net/i2p/router/web/helpers/ConfigHomeHandler.java:25 +#: ../java/src/net/i2p/router/web/helpers/ConfigSummaryHandler.java:29 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confighome_jsp.java:562 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configsidebar_jsp.java:585 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:646 +msgid "Save" +msgstr "保存" + +#: ../java/src/net/i2p/router/web/ConfigUpdateHandler.java:205 +#, java-format +msgid "Updating news URL to {0}" +msgstr "正在更新新闻 URL 至 {0}" + +#: ../java/src/net/i2p/router/web/ConfigUpdateHandler.java:212 +#: ../java/src/net/i2p/router/web/ConfigUpdateHandler.java:220 +#: ../java/src/net/i2p/router/web/ConfigUpdateHelper.java:54 +#: ../java/src/net/i2p/router/web/ConfigUpdateHelper.java:60 +msgid "internal" +msgstr "內置" + +#: ../java/src/net/i2p/router/web/ConfigUpdateHandler.java:216 +#, java-format +msgid "Updating proxy host to {0}" +msgstr "正在更新代理主机至 {0}" + +#: ../java/src/net/i2p/router/web/ConfigUpdateHandler.java:224 +#, java-format +msgid "Updating proxy port to {0}" +msgstr "正在更新代理端口至 {0}" + +#: ../java/src/net/i2p/router/web/ConfigUpdateHandler.java:242 +#, java-format +msgid "Updating refresh frequency to {0}" +msgstr "正在更新刷新频率至 {0}" + +#: ../java/src/net/i2p/router/web/ConfigUpdateHandler.java:243 +#: ../java/src/net/i2p/router/web/ConfigUpdateHelper.java:126 +#: ../java/src/net/i2p/router/web/helpers/GraphHelper.java:422 +#: ../java/src/net/i2p/router/web/helpers/SybilRenderer.java:322 +#: ../java/src/net/i2p/router/web/helpers/SybilRenderer.java:353 +msgid "Never" +msgstr "永不" + +#: ../java/src/net/i2p/router/web/ConfigUpdateHandler.java:250 +#, java-format +msgid "Updating update policy to {0}" +msgstr "正在更新更新策略至 {0}" + +#: ../java/src/net/i2p/router/web/ConfigUpdateHandler.java:259 +msgid "Updating update URLs." +msgstr "正在更新更新 URL。" + +#: ../java/src/net/i2p/router/web/ConfigUpdateHandler.java:271 +msgid "Updating trusted keys." +msgstr "正在更新可信公鑰。" + +#: ../java/src/net/i2p/router/web/ConfigUpdateHandler.java:283 +#, java-format +msgid "Updating unsigned update URL to {0}" +msgstr "正在更新未签名更新 URL 至{0}" + +#: ../java/src/net/i2p/router/web/ConfigUpdateHandler.java:295 +#, java-format +msgid "Updating signed development build URL to {0}" +msgstr "正在更新已签名开发构建 URL 至 {0}" + +#: ../java/src/net/i2p/router/web/ConfigUpdateHelper.java:128 +msgid "Every" +msgstr "每" + +#: ../java/src/net/i2p/router/web/ConfigUpdateHelper.java:146 +msgid "Notify only" +msgstr "仅提示" + +#: ../java/src/net/i2p/router/web/ConfigUpdateHelper.java:153 +msgid "Download and verify only" +msgstr "僅下載和驗證" + +#: ../java/src/net/i2p/router/web/ConfigUpdateHelper.java:161 +msgid "Download, verify, and restart" +msgstr "僅下載、驗證並重啟" + +#: ../java/src/net/i2p/router/web/DeadlockDetector.java:84 +#: ../java/src/net/i2p/router/web/helpers/EventLogHelper.java:39 +#: ../java/src/net/i2p/router/web/helpers/SummaryHelper.java:982 +msgid "Deadlock detected" +msgstr "检测到死锁" + +#: ../java/src/net/i2p/router/web/DeadlockDetector.java:84 +#: ../java/src/net/i2p/router/web/helpers/SummaryHelper.java:984 +msgid "Please report" +msgstr "请报告" + +#: ../java/src/net/i2p/router/web/DeadlockDetector.java:99 +#: ../java/src/net/i2p/router/web/helpers/SummaryHelper.java:985 +msgid "After reporting, please restart your router" +msgstr "报告后请重启您的路由" + +#: ../java/src/net/i2p/router/web/FormHandler.java:264 +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/FormHandler.java:266 +msgid "" +"If the problem persists, verify that you have cookies enabled in your " +"browser." +msgstr "如果问题持续,请确认您的浏览器支持 Cookie。" + +#: ../java/src/net/i2p/router/web/NewsHelper.java:306 +#, java-format +msgid "News last updated {0} ago." +msgstr "新聞更新於 {0}前。" + +#: ../java/src/net/i2p/router/web/NewsHelper.java:312 +#, java-format +msgid "News last checked {0} ago." +msgstr "最近一次查收新聞在 {0}前。" + +#: ../java/src/net/i2p/router/web/NewsHelper.java:321 +msgid "Hide news" +msgstr "隱藏新聞" + +#: ../java/src/net/i2p/router/web/NewsHelper.java:324 +msgid "Show news" +msgstr "顯示新聞" + +#: ../java/src/net/i2p/router/web/NewsHelper.java:328 +msgid "Show all news" +msgstr "顯示所有新聞" + +#: ../java/src/net/i2p/router/web/PluginStarter.java:191 +msgid "Checking for plugin updates" +msgstr "正在檢查外掛更新" + +#: ../java/src/net/i2p/router/web/PluginStarter.java:206 +#: ../java/src/net/i2p/router/web/PluginStarter.java:212 +msgid "Plugin update check failed" +msgstr "檢查外掛更新失敗" + +#: ../java/src/net/i2p/router/web/PluginStarter.java:250 +#, java-format +msgid "{0} plugin updated" +msgid_plural "{0} plugins updated" +msgstr[0] "{0} 插件已更新" + +#: ../java/src/net/i2p/router/web/PluginStarter.java:252 +msgid "Plugin update check complete" +msgstr "外掛的更新檢查已完成" + +#: ../java/src/net/i2p/router/web/StatSummarizer.java:435 +#: ../java/src/net/i2p/router/web/helpers/GraphHelper.java:263 +msgid "Bandwidth usage" +msgstr "頻寬佔用" + +#: ../java/src/net/i2p/router/web/SummaryRenderer.java:220 +#, java-format +msgid "events in {0}" +msgstr "事件/{0}" + +#: ../java/src/net/i2p/router/web/SummaryRenderer.java:222 +#, java-format +msgid "averaged for {0}" +msgstr "{0} 平均值" + +#: ../java/src/net/i2p/router/web/SummaryRenderer.java:233 +msgid "Events per period" +msgstr "事件/週期" + +#: ../java/src/net/i2p/router/web/SummaryRenderer.java:261 +#: ../java/src/net/i2p/router/web/SummaryRenderer.java:263 +#: ../java/src/net/i2p/router/web/SummaryRenderer.java:292 +#: ../java/src/net/i2p/router/web/SummaryRenderer.java:294 +#: ../java/src/net/i2p/router/web/helpers/JobQueueHelper.java:156 +#: ../java/src/net/i2p/router/web/helpers/JobQueueHelper.java:158 +msgid "Avg" +msgstr "平均" + +#: ../java/src/net/i2p/router/web/SummaryRenderer.java:267 +#: ../java/src/net/i2p/router/web/SummaryRenderer.java:269 +#: ../java/src/net/i2p/router/web/SummaryRenderer.java:298 +#: ../java/src/net/i2p/router/web/SummaryRenderer.java:300 +#: ../java/src/net/i2p/router/web/helpers/JobQueueHelper.java:157 +#: ../java/src/net/i2p/router/web/helpers/JobQueueHelper.java:159 +msgid "Max" +msgstr "最大" + +#: ../java/src/net/i2p/router/web/SummaryRenderer.java:273 +#: ../java/src/net/i2p/router/web/SummaryRenderer.java:275 +#: ../java/src/net/i2p/router/web/SummaryRenderer.java:304 +#: ../java/src/net/i2p/router/web/SummaryRenderer.java:306 +msgid "Now" +msgstr "現在" + +#. RTL languages +#. ctx.router().shutdown(Router.EXIT_HARD_RESTART); // never returns +#. give the UI time to respond +#: ../java/src/net/i2p/router/web/SummaryRenderer.java:322 +#: ../java/src/net/i2p/router/web/SummaryRenderer.java:324 +#: ../java/src/net/i2p/router/web/SummaryRenderer.java:338 +#: ../java/src/net/i2p/router/web/SummaryRenderer.java:340 +#: ../java/src/net/i2p/router/web/helpers/ConfigRestartBean.java:51 +msgid "Restart" +msgstr "重启" + +#: ../java/src/net/i2p/router/web/helpers/BanlistRenderer.java:49 +msgid "Banned Peers" +msgstr "已封禁对等节点" + +#: ../java/src/net/i2p/router/web/helpers/BanlistRenderer.java:51 +#: ../java/src/net/i2p/router/web/helpers/CertHelper.java:94 +#: ../java/src/net/i2p/router/web/helpers/CertHelper.java:124 +#: ../java/src/net/i2p/router/web/helpers/ConfigKeyringHelper.java:170 +#: ../java/src/net/i2p/router/web/helpers/ConfigPeerHelper.java:75 +#: ../java/src/net/i2p/router/web/helpers/ConfigPeerHelper.java:131 +#: ../java/src/net/i2p/router/web/helpers/NetDbRenderer.java:1267 +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:138 +#: ../java/src/net/i2p/router/web/helpers/SummaryHelper.java:652 +#: ../java/src/net/i2p/router/web/helpers/TunnelRenderer.java:185 +#: ../java/src/net/i2p/router/web/helpers/TunnelRenderer.java:226 +#: ../java/src/net/i2p/router/web/helpers/TunnelRenderer.java:455 +msgid "none" +msgstr "无" + +#: ../java/src/net/i2p/router/web/helpers/BanlistRenderer.java:60 +msgid "unban now" +msgstr "立即解封" + +#: ../java/src/net/i2p/router/web/helpers/BanlistRenderer.java:71 +msgid "Permanently banned" +msgstr "已永久封禁" + +#: ../java/src/net/i2p/router/web/helpers/BanlistRenderer.java:73 +#, java-format +msgid "Temporary ban expiring in {0}" +msgstr "临时封锁, {0}后解除" + +#: ../java/src/net/i2p/router/web/helpers/BanlistRenderer.java:75 +#, java-format +msgid "Banned until restart or in {0}" +msgstr "封锁直到重启或 {0}后" + +#: ../java/src/net/i2p/router/web/helpers/CertHelper.java:31 +msgid "Local SSL Certificates" +msgstr "本地 SSL 證書" + +#. console +#: ../java/src/net/i2p/router/web/helpers/CertHelper.java:34 +#: ../java/src/net/i2p/router/web/helpers/HomeHelper.java:142 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/error500_jsp.java:259 +msgid "Router Console" +msgstr "路由控制檯" + +#. I2CP +#: ../java/src/net/i2p/router/web/helpers/CertHelper.java:36 +#: ../java/src/net/i2p/router/web/helpers/ConfigNavHelper.java:33 +#: ../java/src/net/i2p/router/web/helpers/StatsGenerator.java:40 +msgid "I2CP" +msgstr "I2CP" + +#: ../java/src/net/i2p/router/web/helpers/CertHelper.java:47 +#: ../java/src/net/i2p/router/web/helpers/CertHelper.java:52 +msgid "I2PTunnel" +msgstr "I2P 隧道" + +#: ../java/src/net/i2p/router/web/helpers/CertHelper.java:61 +#: ../java/src/net/i2p/router/web/helpers/CertHelper.java:66 +msgid "SAM" +msgstr "SAM" + +#: ../java/src/net/i2p/router/web/helpers/CertHelper.java:76 +#: ../java/src/net/i2p/router/web/helpers/CertHelper.java:81 +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHelper.java:341 +msgid "Website" +msgstr "網站" + +#: ../java/src/net/i2p/router/web/helpers/CertHelper.java:85 +msgid "Local Router Family Certificate" +msgstr "本地路由家族憑證" + +#: ../java/src/net/i2p/router/web/helpers/CertHelper.java:91 +#: ../java/src/net/i2p/router/web/helpers/NetDbRenderer.java:493 +#: ../java/src/net/i2p/router/web/helpers/NetDbRenderer.java:1310 +#: ../java/src/net/i2p/router/web/helpers/SybilRenderer.java:973 +msgid "Family" +msgstr "家族" + +#: ../java/src/net/i2p/router/web/helpers/ConfigAdvancedHandler.java:73 +msgid "Error updating the configuration - please see the error logs" +msgstr "更新配置出錯 - 請檢視錯誤日誌" + +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHandler.java:58 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:604 +msgid "Save Client Configuration" +msgstr "儲存客戶端設定" + +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHandler.java:62 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configi2cp_jsp.java:636 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configi2cp_jsp.java:640 +msgid "Save Interface Configuration" +msgstr "儲存介面介面配置" + +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHandler.java:66 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configwebapps_jsp.java:570 +msgid "Save WebApp Configuration" +msgstr "儲存 WebApp 設定" + +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHandler.java:71 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configplugins_jsp.java:579 +msgid "Save Plugin Configuration" +msgstr "儲存外掛配置" + +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHandler.java:78 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configplugins_jsp.java:604 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configplugins_jsp.java:608 +msgid "Install Plugin" +msgstr "安裝外掛" + +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHandler.java:87 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configplugins_jsp.java:631 +msgid "Install Plugin from File" +msgstr "從檔案安裝外掛" + +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHandler.java:96 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configplugins_jsp.java:642 +msgid "Update All Installed Plugins" +msgstr "更新全部已安裝的外掛" + +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHandler.java:148 +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHandler.java:185 +#, java-format +msgid "Error stopping plugin {0}" +msgstr "停用外掛 {0} 時發生錯誤" + +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHandler.java:153 +#, java-format +msgid "Deleted plugin {0}" +msgstr "已刪除外掛 {0}" + +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHandler.java:155 +#, java-format +msgid "Error deleting plugin {0}" +msgstr "刪除外掛 {0} 時發生錯誤" + +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHandler.java:180 +#, java-format +msgid "Stopped plugin {0}" +msgstr "外掛 {0} 已停用" + +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHandler.java:190 +#, java-format +msgid "Stopped webapp {0}" +msgstr "停止 webapp {0}" + +#. label (IE) +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHandler.java:219 +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHelper.java:401 +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHelper.java:402 +msgid "Start" +msgstr "開始" + +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHandler.java:252 +msgid "Client configuration saved successfully" +msgstr "客戶端設定儲存成功" + +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHandler.java:315 +msgid "New client added" +msgstr "新客戶端新增完畢" + +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHandler.java:336 +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHandler.java:362 +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHandler.java:377 +msgid "Bad client index." +msgstr "客戶端索引錯誤。" + +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHandler.java:345 +#, java-format +msgid "Client {0} stopped" +msgstr "客戶端 {0} 已停止" + +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHandler.java:367 +#, java-format +msgid "Client {0} started" +msgstr "客戶端 {0} 已啟動" + +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHandler.java:383 +#, java-format +msgid "Client {0} deleted" +msgstr "客戶端 {0} 已刪除" + +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHandler.java:402 +msgid "WebApp configuration saved." +msgstr "WebApp 設定已儲存。" + +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHandler.java:416 +msgid "Plugin configuration saved." +msgstr "外掛配置已儲存。" + +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHandler.java:431 +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHelper.java:227 +msgid "WebApp" +msgstr "WebApp" + +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHandler.java:431 +msgid "started" +msgstr "已啟動" + +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHandler.java:433 +msgid "Failed to start" +msgstr "啟動失敗" + +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHandler.java:438 +msgid "Failed to find server." +msgstr "伺服器查詢失敗。" + +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHandler.java:444 +msgid "No plugin URL specified." +msgstr "未指定插件 URL。" + +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHandler.java:465 +#: ../java/src/net/i2p/router/web/helpers/ConfigFamilyHandler.java:67 +#: ../java/src/net/i2p/router/web/helpers/ConfigReseedHandler.java:83 +msgid "You must enter a file" +msgstr "您必须输入一个文件" + +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHandler.java:504 +msgid "Install from file failed" +msgstr "從檔案安裝失敗" + +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHandler.java:519 +#, java-format +msgid "No update URL specified for {0}" +msgstr "未指定 {0} 的更新連結" + +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHandler.java:528 +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHandler.java:552 +msgid "Plugin or update download already in progress." +msgstr "正在下載外掛或更新包。" + +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHandler.java:533 +msgid "Updating all plugins" +msgstr "正在更新全部外掛" + +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHandler.java:572 +#, java-format +msgid "Installing plugin from {0}" +msgstr "正在從 {0} 安裝外掛" + +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHandler.java:593 +#, java-format +msgid "Checking plugin {0} for updates" +msgstr "正在檢查外掛 {0} 是否存在更新" + +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHandler.java:632 +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHandler.java:634 +#, java-format +msgid "Started plugin {0}" +msgstr "外掛 {0} 已啟動" + +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHandler.java:637 +#, java-format +msgid "Error starting plugin {0}" +msgstr "啟動外掛 {0} 出錯" + +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHandler.java:659 +#: ../java/src/net/i2p/router/web/helpers/ConfigUIHandler.java:118 +#, java-format +msgid "Added user {0}" +msgstr "已新增使用者 {0}" + +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHandler.java:674 +msgid "Interface configuration saved" +msgstr "介面配置儲存成功" + +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHelper.java:114 +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHelper.java:408 +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHelper.java:409 +msgid "Edit" +msgstr "编辑" + +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHelper.java:123 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:600 +msgid "Add Client" +msgstr "新增客戶端" + +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHelper.java:132 +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:1038 +#: ../java/src/net/i2p/router/web/helpers/SummaryHelper.java:626 +msgid "Client" +msgstr "客户端" + +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHelper.java:133 +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHelper.java:228 +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHelper.java:275 +msgid "Run at Startup?" +msgstr "啟動時執行?" + +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHelper.java:134 +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHelper.java:229 +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHelper.java:276 +msgid "Control" +msgstr "Control" + +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHelper.java:135 +msgid "Class and arguments" +msgstr "類與參數" + +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHelper.java:230 +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHelper.java:277 +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHelper.java:331 +msgid "Description" +msgstr "描述" + +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHelper.java:243 +#: ../java/src/net/i2p/router/web/helpers/HomeHelper.java:127 +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:247 +msgid "Torrents" +msgstr "Torrents" + +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHelper.java:245 +#: ../java/src/net/i2p/router/web/helpers/HomeHelper.java:126 +#: ../java/src/net/i2p/router/web/helpers/StatsGenerator.java:41 +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:358 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/i2ptunnelmgr_jsp.java:262 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/i2ptunnelmgr_jsp.java:447 +msgid "Hidden Services Manager" +msgstr "隱身服務管理器" + +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHelper.java:247 +msgid "Identification Image Generator" +msgstr "身份图像生成器" + +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHelper.java:249 +#: ../java/src/net/i2p/router/web/helpers/HomeHelper.java:129 +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:348 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/dns_jsp.java:262 +msgid "Address Book" +msgstr "地址簿" + +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHelper.java:251 +#: ../java/src/net/i2p/router/web/helpers/HomeHelper.java:125 +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:224 +msgid "Email" +msgstr "电子邮件" + +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHelper.java:274 +msgid "Plugin" +msgstr "外掛" + +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHelper.java:292 +#: ../java/src/net/i2p/router/web/helpers/NetDbRenderer.java:489 +#: ../java/src/net/i2p/router/web/helpers/NetDbRenderer.java:1030 +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:421 +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:598 +#: ../java/src/net/i2p/router/web/helpers/ProfileOrganizerRenderer.java:97 +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:620 +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:646 +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:680 +#: ../java/src/net/i2p/router/web/helpers/SybilRenderer.java:956 +msgid "Version" +msgstr "版本" + +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHelper.java:294 +msgid "Signed by" +msgstr "签名者:" + +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHelper.java:311 +msgid "Date" +msgstr "日期" + +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHelper.java:320 +msgid "Author" +msgstr "作者" + +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHelper.java:336 +msgid "License" +msgstr "授權" + +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHelper.java:349 +msgid "Update link" +msgstr "更新連結" + +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHelper.java:405 +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHelper.java:406 +msgid "Stop" +msgstr "停止" + +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHelper.java:413 +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHelper.java:414 +#: ../java/src/net/i2p/router/web/helpers/ConfigNavHelper.java:31 +msgid "Update" +msgstr "更新" + +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHelper.java:417 +#: ../java/src/net/i2p/router/web/helpers/ConfigClientsHelper.java:419 +#: ../java/src/net/i2p/router/web/helpers/ConfigKeyringHelper.java:62 +msgid "Delete" +msgstr "刪除" + +#: ../java/src/net/i2p/router/web/helpers/ConfigFamilyHandler.java:29 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configfamily_jsp.java:583 +msgid "Create Family" +msgstr "創建家族" + +#: ../java/src/net/i2p/router/web/helpers/ConfigFamilyHandler.java:33 +msgid "You must enter a family name" +msgstr "您需要輸入家族名稱" + +#: ../java/src/net/i2p/router/web/helpers/ConfigFamilyHandler.java:55 +#: ../java/src/net/i2p/router/web/helpers/ConfigFamilyHandler.java:130 +#: ../java/src/net/i2p/router/web/helpers/ConfigReseedHandler.java:185 +#: ../java/src/net/i2p/router/web/helpers/NetDbHelper.java:302 +msgid "Configuration saved successfully." +msgstr "設定儲存成功。" + +#: ../java/src/net/i2p/router/web/helpers/ConfigFamilyHandler.java:62 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configfamily_jsp.java:575 +msgid "Join Family" +msgstr "加入某一家族" + +#: ../java/src/net/i2p/router/web/helpers/ConfigFamilyHandler.java:117 +#: ../java/src/net/i2p/router/web/helpers/ConfigFamilyHandler.java:119 +msgid "Load from file failed" +msgstr "無法從資料夾載入" + +#: ../java/src/net/i2p/router/web/helpers/ConfigFamilyHandler.java:124 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configfamily_jsp.java:621 +msgid "Leave Family" +msgstr "離開這個家族" + +#: ../java/src/net/i2p/router/web/helpers/ConfigHomeHandler.java:22 +#: ../java/src/net/i2p/router/web/helpers/ConfigSummaryHandler.java:25 +#: ../java/src/net/i2p/router/web/helpers/ConfigUIHandler.java:27 +#: ../java/src/net/i2p/router/web/helpers/SummaryHelper.java:1182 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confighome_jsp.java:576 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confighome_jsp.java:596 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confighome_jsp.java:612 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confighome_jsp.java:628 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confighome_jsp.java:644 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configui_jsp.java:610 +msgid "Delete selected" +msgstr "刪除選中項目" + +#: ../java/src/net/i2p/router/web/helpers/ConfigHomeHandler.java:23 +#: ../java/src/net/i2p/router/web/helpers/ConfigSummaryHandler.java:26 +#: ../java/src/net/i2p/router/web/helpers/SummaryHelper.java:1202 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confighome_jsp.java:574 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confighome_jsp.java:582 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confighome_jsp.java:594 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confighome_jsp.java:602 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confighome_jsp.java:610 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confighome_jsp.java:618 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confighome_jsp.java:626 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confighome_jsp.java:634 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confighome_jsp.java:642 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confighome_jsp.java:650 +msgid "Add item" +msgstr "新增項目" + +#: ../java/src/net/i2p/router/web/helpers/ConfigHomeHandler.java:24 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confighome_jsp.java:580 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confighome_jsp.java:600 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confighome_jsp.java:616 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confighome_jsp.java:632 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confighome_jsp.java:648 +msgid "Restore defaults" +msgstr "恢復預設值" + +#: ../java/src/net/i2p/router/web/helpers/ConfigHomeHandler.java:30 +msgid "Home page changed" +msgstr "主页已更改" + +#: ../java/src/net/i2p/router/web/helpers/ConfigHomeHandler.java:58 +msgid "Restored default settings" +msgstr "預設設定已恢復" + +#: ../java/src/net/i2p/router/web/helpers/ConfigHomeHandler.java:70 +msgid "No name entered" +msgstr "沒有輸入檔名" + +#: ../java/src/net/i2p/router/web/helpers/ConfigHomeHandler.java:75 +msgid "No URL entered" +msgstr "未输入 URL" + +#: ../java/src/net/i2p/router/web/helpers/ConfigHomeHandler.java:95 +#: ../java/src/net/i2p/router/web/helpers/ConfigSummaryHandler.java:95 +msgid "Added" +msgstr "加上" + +#: ../java/src/net/i2p/router/web/helpers/ConfigHomeHandler.java:112 +#: ../java/src/net/i2p/router/web/helpers/ConfigSummaryHandler.java:122 +msgid "Removed" +msgstr "已删除" + +#: ../java/src/net/i2p/router/web/helpers/ConfigKeyringHandler.java:31 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:634 +msgid "Add key" +msgstr "新增金鑰" + +#: ../java/src/net/i2p/router/web/helpers/ConfigKeyringHandler.java:33 +msgid "You must enter a destination" +msgstr "您必须输入一个目的地址" + +#: ../java/src/net/i2p/router/web/helpers/ConfigKeyringHandler.java:45 +msgid "You must enter a key" +msgstr "您必須輸入一個金鑰" + +#: ../java/src/net/i2p/router/web/helpers/ConfigKeyringHandler.java:50 +msgid "Invalid key" +msgstr "無效的密鑰" + +#: ../java/src/net/i2p/router/web/helpers/ConfigKeyringHandler.java:57 +#: ../java/src/net/i2p/router/web/helpers/ConfigKeyringHandler.java:167 +#: ../java/src/net/i2p/router/web/helpers/ConfigKeyringHandler.java:194 +msgid "Invalid destination" +msgstr "目的地址无效" + +#: ../java/src/net/i2p/router/web/helpers/ConfigKeyringHandler.java:64 +#: ../java/src/net/i2p/router/web/helpers/ConfigKeyringHandler.java:162 +#, java-format +msgid "Key for {0} added to keyring" +msgstr "{0} 的密钥已添加到密钥环" + +#: ../java/src/net/i2p/router/web/helpers/ConfigKeyringHandler.java:68 +msgid "Lookup password required" +msgstr "要求查找密码" + +#: ../java/src/net/i2p/router/web/helpers/ConfigKeyringHandler.java:89 +msgid "Requires hostname, destination, or blinded Base32" +msgstr "请求主机名,目的地址,或已混淆的 Base32" + +#: ../java/src/net/i2p/router/web/helpers/ConfigKeyringHandler.java:132 +msgid "Destination requires lookup password" +msgstr "目的地址要求查找密码" + +#: ../java/src/net/i2p/router/web/helpers/ConfigKeyringHandler.java:136 +msgid "Destination does not require lookup password" +msgstr "目的地址不要求查找密码" + +#: ../java/src/net/i2p/router/web/helpers/ConfigKeyringHandler.java:140 +msgid "Destination requires encryption key" +msgstr "目的地址要求加密密钥" + +#: ../java/src/net/i2p/router/web/helpers/ConfigKeyringHandler.java:144 +msgid "Destination does not require encryption key" +msgstr "目的地址不要求加密密钥" + +#: ../java/src/net/i2p/router/web/helpers/ConfigKeyringHandler.java:164 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:608 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:616 +msgid "Send key to server operator." +msgstr "向服务器操作者发送密钥" + +#: ../java/src/net/i2p/router/web/helpers/ConfigKeyringHandler.java:170 +#: ../java/src/net/i2p/router/web/helpers/ConfigKeyringHelper.java:46 +msgid "Delete key" +msgstr "刪除金鑰" + +#: ../java/src/net/i2p/router/web/helpers/ConfigKeyringHandler.java:197 +#, java-format +msgid "Key for {0} removed from keyring" +msgstr "{0} 的密钥已从密钥环移除" + +#: ../java/src/net/i2p/router/web/helpers/ConfigKeyringHandler.java:199 +#, java-format +msgid "Key for {0} not found in keyring" +msgstr "{0} 的密钥在钥匙环未找到" + +#: ../java/src/net/i2p/router/web/helpers/ConfigKeyringHelper.java:39 +msgid "Local encrypted destinations" +msgstr "本地加密目的地址" + +#: ../java/src/net/i2p/router/web/helpers/ConfigKeyringHelper.java:41 +msgid "Remote encrypted destinations" +msgstr "远程加密目的地址" + +#: ../java/src/net/i2p/router/web/helpers/ConfigKeyringHelper.java:45 +#: ../java/src/net/i2p/router/web/helpers/NetDbHelper.java:483 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:614 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configadvanced_jsp.java:638 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:596 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confighome_jsp.java:578 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confighome_jsp.java:598 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confighome_jsp.java:614 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confighome_jsp.java:630 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confighome_jsp.java:646 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configi2cp_jsp.java:638 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:632 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:584 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confignet_jsp.java:730 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configplugins_jsp.java:577 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configplugins_jsp.java:606 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configreseed_jsp.java:775 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:664 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configtunnels_jsp.java:590 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configui_jsp.java:582 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configui_jsp.java:598 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configui_jsp.java:612 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:644 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configwebapps_jsp.java:568 +msgid "Cancel" +msgstr "取消" + +#: ../java/src/net/i2p/router/web/helpers/ConfigKeyringHelper.java:63 +#: ../java/src/net/i2p/router/web/helpers/NetDbRenderer.java:761 +#: ../java/src/net/i2p/router/web/helpers/NetDbRenderer.java:791 +msgid "Destination" +msgstr "目的地" + +#: ../java/src/net/i2p/router/web/helpers/ConfigKeyringHelper.java:64 +#: ../java/src/net/i2p/router/web/helpers/HomeHelper.java:455 +#: ../java/src/net/i2p/router/web/helpers/SummaryHelper.java:1111 +msgid "Name" +msgstr "名稱" + +#: ../java/src/net/i2p/router/web/helpers/ConfigKeyringHelper.java:67 +#: ../java/src/net/i2p/router/web/helpers/NetDbRenderer.java:1251 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:620 +msgid "Encryption Key" +msgstr "加密金鑰" + +#: ../java/src/net/i2p/router/web/helpers/ConfigKeyringHelper.java:69 +msgid "Lookup Password" +msgstr "查找密码" + +#: ../java/src/net/i2p/router/web/helpers/ConfigKeyringHelper.java:70 +msgid "Created" +msgstr "已创建" + +#: ../java/src/net/i2p/router/web/helpers/ConfigKeyringHelper.java:71 +msgid "Expires" +msgstr "有效期至" + +#: ../java/src/net/i2p/router/web/helpers/ConfigKeyringHelper.java:97 +#: ../java/src/net/i2p/router/web/helpers/ConfigKeyringHelper.java:132 +#: ../java/src/net/i2p/router/web/helpers/ConfigKeyringHelper.java:137 +#: ../java/src/net/i2p/router/web/helpers/NetDbRenderer.java:754 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:588 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:600 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:610 +msgid "Encrypted" +msgstr "已加密" + +#: ../java/src/net/i2p/router/web/helpers/ConfigKeyringHelper.java:130 +#: ../java/src/net/i2p/router/web/helpers/ConfigKeyringHelper.java:135 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:604 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:618 +msgid "Encrypted with lookup password" +msgstr "使用查找密码加密" + +#: ../java/src/net/i2p/router/web/helpers/ConfigKeyringHelper.java:140 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:596 +msgid "Blinded with lookup password" +msgstr "使用查找密码混淆" + +#: ../java/src/net/i2p/router/web/helpers/ConfigKeyringHelper.java:142 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:592 +msgid "Blinded" +msgstr "已混淆" + +#: ../java/src/net/i2p/router/web/helpers/ConfigLoggingHandler.java:94 +msgid "Log overrides updated" +msgstr "日誌參數已更新" + +#: ../java/src/net/i2p/router/web/helpers/ConfigLoggingHandler.java:183 +msgid "Log configuration saved" +msgstr "日誌設定已儲存" + +#: ../java/src/net/i2p/router/web/helpers/ConfigLoggingHelper.java:62 +#, java-format +msgid "Add additional logging statements above (e.g. {0})." +msgstr "在上面添加額外的日誌記錄(例如 {0})。" + +#: ../java/src/net/i2p/router/web/helpers/ConfigLoggingHelper.java:64 +#, java-format +msgid "Valid log levels are {0}." +msgstr "有效的日志级别:{0}。" + +#: ../java/src/net/i2p/router/web/helpers/ConfigLoggingHelper.java:144 +msgid "Select a class to add" +msgstr "選擇要新增的類" + +#: ../java/src/net/i2p/router/web/helpers/ConfigLoggingHelper.java:156 +#, java-format +msgid "All classes in {0}" +msgstr "{0}中的所有类" + +#. stat groups for stats.jsp +#. See StatsGenerator for groups mapped to a display name +#: ../java/src/net/i2p/router/web/helpers/ConfigNavHelper.java:30 +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:57 +#: ../java/strings/Strings.java:50 +msgid "Bandwidth" +msgstr "带宽" + +#: ../java/src/net/i2p/router/web/helpers/ConfigNavHelper.java:30 +msgid "Home Page" +msgstr "主頁" + +#: ../java/src/net/i2p/router/web/helpers/ConfigNavHelper.java:30 +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:184 +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:758 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:441 +msgid "Network" +msgstr "网络" + +#: ../java/src/net/i2p/router/web/helpers/ConfigNavHelper.java:30 +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:193 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/certs_jsp.java:384 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:405 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configadvanced_jsp.java:405 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:411 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configfamily_jsp.java:405 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confighome_jsp.java:405 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configi2cp_jsp.java:405 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:405 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:394 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confignet_jsp.java:405 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:405 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configplugins_jsp.java:411 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configreseed_jsp.java:405 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:405 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configsidebar_jsp.java:416 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:389 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configtunnels_jsp.java:405 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configui_jsp.java:407 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:396 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configwebapps_jsp.java:405 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/console_jsp.java:387 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/debug_jsp.java:389 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/dns_jsp.java:416 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/error_jsp.java:407 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/events_jsp.java:398 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/graph_jsp.java:424 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/graphs_jsp.java:412 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:407 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:439 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/home_jsp.java:308 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/i2ptunnelmgr_jsp.java:417 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/jars_jsp.java:403 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/jobs_jsp.java:384 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/logs_jsp.java:403 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/netdb_jsp.java:385 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/news_jsp.java:403 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/nowebapp_jsp.java:407 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/oldconsole_jsp.java:389 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/peers_jsp.java:384 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/profiles_jsp.java:384 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/stats_jsp.java:386 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/torrents_jsp.java:417 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/tunnels_jsp.java:403 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/viewprofile_jsp.java:384 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/webmail_jsp.java:417 +msgid "Sidebar" +msgstr "侧栏" + +#: ../java/src/net/i2p/router/web/helpers/ConfigNavHelper.java:30 +msgid "UI" +msgstr "用户界面" + +#: ../java/src/net/i2p/router/web/helpers/ConfigNavHelper.java:31 +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:59 +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:468 +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:1021 +#: ../java/src/net/i2p/router/web/helpers/TunnelRenderer.java:210 +#: ../java/strings/Strings.java:56 +msgid "Tunnels" +msgstr "隧道" + +#: ../java/src/net/i2p/router/web/helpers/ConfigNavHelper.java:32 +msgid "Clients" +msgstr "客戶端" + +#: ../java/src/net/i2p/router/web/helpers/ConfigNavHelper.java:32 +msgid "Keyring" +msgstr "密钥环" + +#: ../java/src/net/i2p/router/web/helpers/ConfigNavHelper.java:32 +msgid "Logging" +msgstr "日志" + +#: ../java/src/net/i2p/router/web/helpers/ConfigNavHelper.java:32 +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:54 +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:450 +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:807 +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:871 +#: ../java/strings/Strings.java:52 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:483 +msgid "Peers" +msgstr "節點" + +#: ../java/src/net/i2p/router/web/helpers/ConfigNavHelper.java:32 +#: ../java/src/net/i2p/router/web/helpers/NetDbRenderer.java:1297 +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:580 +msgid "Stats" +msgstr "數據" + +#: ../java/src/net/i2p/router/web/helpers/ConfigNavHelper.java:33 +#: ../java/src/net/i2p/router/web/helpers/HomeHelper.java:233 +msgid "Plugins" +msgstr "外掛程式" + +#: ../java/src/net/i2p/router/web/helpers/ConfigNavHelper.java:33 +msgid "Web Apps" +msgstr "Web Apps" + +#: ../java/src/net/i2p/router/web/helpers/ConfigNavHelper.java:34 +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:490 +msgid "Advanced" +msgstr "高级" + +#: ../java/src/net/i2p/router/web/helpers/ConfigNavHelper.java:34 +#: ../java/src/net/i2p/router/web/helpers/NetDbHelper.java:454 +msgid "Router Family" +msgstr "路由器家族" + +#: ../java/src/net/i2p/router/web/helpers/ConfigNetHandler.java:62 +#: ../java/src/net/i2p/router/web/helpers/ConfigReseedHandler.java:103 +#: ../java/src/net/i2p/router/web/helpers/ConfigTunnelsHandler.java:32 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:616 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configadvanced_jsp.java:603 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configadvanced_jsp.java:640 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:586 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confignet_jsp.java:732 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configreseed_jsp.java:779 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:666 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configtunnels_jsp.java:592 +msgid "Save changes" +msgstr "儲存變更" + +#: ../java/src/net/i2p/router/web/helpers/ConfigNetHandler.java:229 +msgid "Updating IP address" +msgstr "正在更新 IP 地址" + +#: ../java/src/net/i2p/router/web/helpers/ConfigNetHandler.java:251 +msgid "Updating IPv6 setting" +msgstr "正在更新 IPv6 設定" + +#: ../java/src/net/i2p/router/web/helpers/ConfigNetHandler.java:269 +msgid "Disabling TCP completely" +msgstr "正在彻底禁用 TCP" + +#: ../java/src/net/i2p/router/web/helpers/ConfigNetHandler.java:274 +#, java-format +msgid "Updating TCP address to {0}" +msgstr "正在更新 TCP 地址为 {0}" + +#: ../java/src/net/i2p/router/web/helpers/ConfigNetHandler.java:281 +msgid "Disabling inbound TCP" +msgstr "正在禁用入站 TCP" + +#: ../java/src/net/i2p/router/web/helpers/ConfigNetHandler.java:283 +msgid "Updating inbound TCP address to auto" +msgstr "正在更新入站 TCP 地址为自动" + +#: ../java/src/net/i2p/router/web/helpers/ConfigNetHandler.java:299 +#, java-format +msgid "Updating TCP port to {0}" +msgstr "正在更新 TCP 端口为 {0}" + +#: ../java/src/net/i2p/router/web/helpers/ConfigNetHandler.java:301 +#: ../java/src/net/i2p/router/web/helpers/ConfigNetHandler.java:326 +msgid "Warning - ports less than 1024 are not recommended" +msgstr "警告 - 不推薦使用 1024 以下的埠" + +#: ../java/src/net/i2p/router/web/helpers/ConfigNetHandler.java:305 +#: ../java/src/net/i2p/router/web/helpers/ConfigNetHandler.java:332 +msgid "Invalid port" +msgstr "無效埠" + +#: ../java/src/net/i2p/router/web/helpers/ConfigNetHandler.java:310 +msgid "Updating inbound TCP port to auto" +msgstr "正在更新入站 TCP 端口为自动" + +#: ../java/src/net/i2p/router/web/helpers/ConfigNetHandler.java:324 +#, java-format +msgid "Updating UDP port to {0}" +msgstr "正在更新 UDP 端口至{0}" + +#: ../java/src/net/i2p/router/web/helpers/ConfigNetHandler.java:349 +msgid "Gracefully restarting into Hidden Router Mode" +msgstr "正在平滑重啟進入隱身路由模式" + +#: ../java/src/net/i2p/router/web/helpers/ConfigNetHandler.java:351 +msgid "Gracefully restarting to exit Hidden Router Mode" +msgstr "正在平滑重啟退出隱身路由模式" + +#: ../java/src/net/i2p/router/web/helpers/ConfigNetHandler.java:361 +msgid "Enabling UPnP" +msgstr "正在启用 UPnP" + +#: ../java/src/net/i2p/router/web/helpers/ConfigNetHandler.java:363 +msgid "Disabling UPnP" +msgstr "正在禁用 UPnP" + +#: ../java/src/net/i2p/router/web/helpers/ConfigNetHandler.java:372 +msgid "Enabling laptop mode" +msgstr "正在啟用筆記本模式" + +#: ../java/src/net/i2p/router/web/helpers/ConfigNetHandler.java:374 +msgid "Disabling laptop mode" +msgstr "正在禁用筆記本模式" + +#: ../java/src/net/i2p/router/web/helpers/ConfigNetHandler.java:381 +msgid "Disabling inbound IPv4" +msgstr "正在禁用入站 IPv4" + +#: ../java/src/net/i2p/router/web/helpers/ConfigNetHandler.java:383 +msgid "Enabling inbound IPv4" +msgstr "正在启用入站 IPv4" + +#: ../java/src/net/i2p/router/web/helpers/ConfigNetHandler.java:391 +msgid "Disabling inbound IPv6" +msgstr "正在禁用 IPv6 入站 " + +#: ../java/src/net/i2p/router/web/helpers/ConfigNetHandler.java:393 +msgid "Enabling inbound IPv6" +msgstr "正在启用 IPv6 入站 " + +#: ../java/src/net/i2p/router/web/helpers/ConfigNetHandler.java:401 +msgid "Disabling UDP" +msgstr "正在禁用 UDP" + +#: ../java/src/net/i2p/router/web/helpers/ConfigNetHandler.java:403 +msgid "Enabling UDP" +msgstr "正在启用 UDP" + +#: ../java/src/net/i2p/router/web/helpers/ConfigNetHandler.java:410 +msgid "Requiring SSU introducers" +msgstr "需要 SSU 中介" + +#: ../java/src/net/i2p/router/web/helpers/ConfigNetHandler.java:470 +msgid "Invalid address" +msgstr "無效地址" + +#: ../java/src/net/i2p/router/web/helpers/ConfigNetHandler.java:476 +#, java-format +msgid "The address {0} is not publicly routable" +msgstr "地址 {0} 公网路由不可达" + +#: ../java/src/net/i2p/router/web/helpers/ConfigNetHandler.java:501 +#: ../java/src/net/i2p/router/web/helpers/WizardHandler.java:102 +msgid "Updating bandwidth share percentage" +msgstr "正在更新共享頻寬比例" + +#: ../java/src/net/i2p/router/web/helpers/ConfigNetHandler.java:521 +#: ../java/src/net/i2p/router/web/helpers/ConfigNetHandler.java:536 +#: ../java/src/net/i2p/router/web/helpers/WizardHandler.java:118 +#: ../java/src/net/i2p/router/web/helpers/WizardHandler.java:133 +msgid "Invalid bandwidth" +msgstr "无效的带宽" + +#: ../java/src/net/i2p/router/web/helpers/ConfigNetHandler.java:541 +#: ../java/src/net/i2p/router/web/helpers/WizardHandler.java:137 +msgid "Updated bandwidth limits" +msgstr "頻寬限制更新完畢" + +#: ../java/src/net/i2p/router/web/helpers/ConfigNetHelper.java:259 +msgid "Add hostname or IP" +msgstr "添加主机名或 IP" + +#: ../java/src/net/i2p/router/web/helpers/ConfigNetHelper.java:293 +#: ../java/src/net/i2p/router/web/helpers/WizardHelper.java:243 +msgid "bits per second" +msgstr "比特每秒" + +#: ../java/src/net/i2p/router/web/helpers/ConfigNetHelper.java:295 +#: ../java/src/net/i2p/router/web/helpers/WizardHelper.java:245 +#, java-format +msgid "{0}Bytes per month maximum" +msgstr "每月最多 {0} 字节" + +#: ../java/src/net/i2p/router/web/helpers/ConfigPeerHandler.java:21 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:593 +msgid "Ban peer until restart" +msgstr "封禁对等节点直到重启" + +#: ../java/src/net/i2p/router/web/helpers/ConfigPeerHandler.java:24 +#, java-format +msgid "Manually banned via {0}" +msgstr "通过 {0} 手动封禁" + +#: ../java/src/net/i2p/router/web/helpers/ConfigPeerHandler.java:26 +#: ../java/src/net/i2p/router/web/helpers/ConfigPeerHandler.java:35 +#: ../java/src/net/i2p/router/web/helpers/ConfigPeerHandler.java:37 +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:356 +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:417 +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:592 +#: ../java/src/net/i2p/router/web/helpers/ProfileOrganizerRenderer.java:94 +#: ../java/src/net/i2p/router/web/helpers/ProfileOrganizerRenderer.java:223 +msgid "Peer" +msgstr "对等节点" + +#: ../java/src/net/i2p/router/web/helpers/ConfigPeerHandler.java:26 +msgid "banned until restart" +msgstr "已封禁直到重启" + +#: ../java/src/net/i2p/router/web/helpers/ConfigPeerHandler.java:29 +#: ../java/src/net/i2p/router/web/helpers/ConfigPeerHandler.java:40 +#: ../java/src/net/i2p/router/web/helpers/ConfigPeerHandler.java:61 +msgid "Invalid peer" +msgstr "无效对等节点" + +#: ../java/src/net/i2p/router/web/helpers/ConfigPeerHandler.java:30 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:600 +msgid "Unban peer" +msgstr "解封对等节点" + +#: ../java/src/net/i2p/router/web/helpers/ConfigPeerHandler.java:35 +msgid "unbanned" +msgstr "已解封" + +#: ../java/src/net/i2p/router/web/helpers/ConfigPeerHandler.java:37 +msgid "is not currently banned" +msgstr "目前未被封禁" + +#: ../java/src/net/i2p/router/web/helpers/ConfigPeerHandler.java:41 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:626 +msgid "Adjust peer bonuses" +msgstr "调整对等节点评分" + +#: ../java/src/net/i2p/router/web/helpers/ConfigPeerHandler.java:49 +msgid "Bad speed value" +msgstr "速度值無效" + +#: ../java/src/net/i2p/router/web/helpers/ConfigPeerHandler.java:54 +msgid "Bad capacity value" +msgstr "容量值無效" + +#: ../java/src/net/i2p/router/web/helpers/ConfigPeerHandler.java:63 +#: ../java/src/net/i2p/router/web/helpers/WizardHandler.java:83 +msgid "Unsupported" +msgstr "不支援" + +#: ../java/src/net/i2p/router/web/helpers/ConfigPeerHelper.java:23 +msgid "IPs Banned Until Restart" +msgstr "IP 已封禁直到重启" + +#: ../java/src/net/i2p/router/web/helpers/ConfigPeerHelper.java:34 +msgid "IPv4 Addresses" +msgstr "IPv4 地址" + +#: ../java/src/net/i2p/router/web/helpers/ConfigPeerHelper.java:64 +msgid "IPv6 Addresses" +msgstr "IPv6 地址" + +#: ../java/src/net/i2p/router/web/helpers/ConfigPeerHelper.java:81 +msgid "IPs Permanently Banned" +msgstr "IP 永久封禁" + +#: ../java/src/net/i2p/router/web/helpers/ConfigPeerHelper.java:86 +#: ../java/src/net/i2p/router/web/helpers/TunnelRenderer.java:113 +msgid "From" +msgstr "从" + +#: ../java/src/net/i2p/router/web/helpers/ConfigPeerHelper.java:88 +#: ../java/src/net/i2p/router/web/helpers/TunnelRenderer.java:114 +msgid "To" +msgstr "至" + +#: ../java/src/net/i2p/router/web/helpers/ConfigReseedHandler.java:28 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configreseed_jsp.java:572 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configreseed_jsp.java:777 +msgid "Save changes and reseed now" +msgstr "保存修改并立即开始补种" + +#: ../java/src/net/i2p/router/web/helpers/ConfigReseedHandler.java:31 +#: ../java/src/net/i2p/router/web/helpers/ConfigReseedHandler.java:55 +msgid "Reseeding is already in progress" +msgstr "正在进行补种" + +#. skip the nonce checking in ReseedHandler +#: ../java/src/net/i2p/router/web/helpers/ConfigReseedHandler.java:35 +msgid "Starting reseed process" +msgstr "正在开始补种过程" + +#: ../java/src/net/i2p/router/web/helpers/ConfigReseedHandler.java:37 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configreseed_jsp.java:592 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configreseed_jsp.java:604 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configreseed_jsp.java:615 +msgid "Reseed from URL" +msgstr "從 URL 補種" + +#: ../java/src/net/i2p/router/web/helpers/ConfigReseedHandler.java:43 +msgid "You must enter a URL" +msgstr "您必須輸入一個 URL" + +#: ../java/src/net/i2p/router/web/helpers/ConfigReseedHandler.java:68 +msgid "Reseed in progress, check sidebar for status" +msgstr "正在进行补种,在侧栏查看状态" + +#: ../java/src/net/i2p/router/web/helpers/ConfigReseedHandler.java:70 +msgid "Reseed complete, check sidebar for status" +msgstr "补种完成,在侧栏查看状态" + +#: ../java/src/net/i2p/router/web/helpers/ConfigReseedHandler.java:77 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configreseed_jsp.java:584 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configreseed_jsp.java:640 +msgid "Reseed from file" +msgstr "從檔案補種" + +#: ../java/src/net/i2p/router/web/helpers/ConfigReseedHandler.java:88 +#: ../java/src/net/i2p/router/web/helpers/ConfigReseedHandler.java:96 +msgid "Reseed from file failed" +msgstr "從檔案補種失敗" + +#: ../java/src/net/i2p/router/web/helpers/ConfigReseedHandler.java:91 +#, java-format +msgid "Reseed successful, loaded {0} router info from file" +msgid_plural "Reseed successful, loaded {0} router infos from file" +msgstr[0] "補種成功,從檔案載入了 {0} 個路由資訊" + +#: ../java/src/net/i2p/router/web/helpers/ConfigReseedHandler.java:105 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configreseed_jsp.java:686 +msgid "Reset URL list" +msgstr "重置 URL 列表" + +#: ../java/src/net/i2p/router/web/helpers/ConfigReseedHandler.java:131 +msgid "URL list reset successfully" +msgstr "URL 列表重置成功" + +#. ctx.router().shutdown(Router.EXIT_HARD); // never returns +#. give the UI time to respond +#: ../java/src/net/i2p/router/web/helpers/ConfigRestartBean.java:43 +msgid "Cancel shutdown" +msgstr "取消關閉" + +#: ../java/src/net/i2p/router/web/helpers/ConfigRestartBean.java:44 +msgid "Cancel restart" +msgstr "取消重啟" + +#: ../java/src/net/i2p/router/web/helpers/ConfigRestartBean.java:46 +msgid "Restart immediately" +msgstr "立刻重啟" + +#: ../java/src/net/i2p/router/web/helpers/ConfigRestartBean.java:55 +msgid "Shutdown" +msgstr "关闭" + +#: ../java/src/net/i2p/router/web/helpers/ConfigRestartBean.java:75 +#, java-format +msgid "Shutdown in {0}" +msgstr "關閉於 {0}" + +#: ../java/src/net/i2p/router/web/helpers/ConfigRestartBean.java:78 +#: ../java/src/net/i2p/router/web/helpers/ConfigRestartBean.java:89 +#, java-format +msgid "Please wait for routing commitment to expire for {0} tunnel" +msgid_plural "Please wait for routing commitments to expire for {0} tunnels" +msgstr[0] "請等待 {0} 個路由隧道過期" + +#: ../java/src/net/i2p/router/web/helpers/ConfigRestartBean.java:86 +#, java-format +msgid "Restart in {0}" +msgstr "{0} 後重啟" + +#: ../java/src/net/i2p/router/web/helpers/ConfigStatsHandler.java:119 +msgid "Stat filter and location updated successfully to" +msgstr "統計資料過濾器及位置成功更新至" + +#: ../java/src/net/i2p/router/web/helpers/ConfigStatsHandler.java:122 +msgid "Full statistics enabled" +msgstr "統計已全部啟用" + +#: ../java/src/net/i2p/router/web/helpers/ConfigStatsHandler.java:124 +msgid "Full statistics disabled" +msgstr "統計已全部禁用" + +#: ../java/src/net/i2p/router/web/helpers/ConfigStatsHandler.java:128 +#, java-format +msgid "" +"Graph list updated, may take up to 60s to be reflected on the {0}Graphs " +"Page{1}" +msgstr "图形列表已更新,可能需要长达 60 秒才能反应在{0}图形页{1}上" + +#: ../java/src/net/i2p/router/web/helpers/ConfigSummaryHandler.java:27 +msgid "Save order" +msgstr "儲存順序" + +#: ../java/src/net/i2p/router/web/helpers/ConfigSummaryHandler.java:41 +msgid "Refresh disabled" +msgstr "刷新已禁用" + +#: ../java/src/net/i2p/router/web/helpers/ConfigSummaryHandler.java:46 +msgid "Refresh interval changed" +msgstr "重新整理間隔已改變" + +#: ../java/src/net/i2p/router/web/helpers/ConfigSummaryHandler.java:49 +msgid "Refresh interval must be a number" +msgstr "重新整理間隔必須為數字" + +#: ../java/src/net/i2p/router/web/helpers/ConfigSummaryHandler.java:52 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configsidebar_jsp.java:593 +msgid "Restore full default" +msgstr "恢复完整默认值" + +#: ../java/src/net/i2p/router/web/helpers/ConfigSummaryHandler.java:54 +msgid "Full sidebar default restored." +msgstr "恢复完整侧栏默认值。" + +#: ../java/src/net/i2p/router/web/helpers/ConfigSummaryHandler.java:55 +#: ../java/src/net/i2p/router/web/helpers/ConfigSummaryHandler.java:59 +#: ../java/src/net/i2p/router/web/helpers/ConfigSummaryHandler.java:152 +msgid "Sidebar will refresh shortly." +msgstr "侧栏即将刷新" + +#: ../java/src/net/i2p/router/web/helpers/ConfigSummaryHandler.java:56 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configsidebar_jsp.java:595 +msgid "Restore minimal default" +msgstr "恢复迷你默认值" + +#: ../java/src/net/i2p/router/web/helpers/ConfigSummaryHandler.java:58 +msgid "Minimal sidebar default restored." +msgstr "迷你侧栏默认值已恢复" + +#: ../java/src/net/i2p/router/web/helpers/ConfigSummaryHandler.java:75 +#: ../java/src/net/i2p/router/web/helpers/ConfigSummaryHandler.java:97 +#: ../java/src/net/i2p/router/web/helpers/ConfigSummaryHandler.java:146 +msgid "Order must be an integer" +msgstr "順序必須是整數" + +#: ../java/src/net/i2p/router/web/helpers/ConfigSummaryHandler.java:82 +msgid "No section selected" +msgstr "未選中任何部分" + +#: ../java/src/net/i2p/router/web/helpers/ConfigSummaryHandler.java:87 +msgid "No order entered" +msgstr "沒有輸入順序" + +#: ../java/src/net/i2p/router/web/helpers/ConfigSummaryHandler.java:144 +msgid "Moved" +msgstr "已移動" + +#: ../java/src/net/i2p/router/web/helpers/ConfigSummaryHandler.java:151 +msgid "Saved order of sections." +msgstr "已保存的各部分顺序。" + +#. 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/helpers/ConfigTunnelsHandler.java:131 +msgid "Updated settings for all pools." +msgstr "所有隧道池設定更新完畢。" + +#: ../java/src/net/i2p/router/web/helpers/ConfigTunnelsHandler.java:136 +msgid "Exploratory tunnel configuration saved successfully." +msgstr "探索隧道設定儲存成功。" + +#: ../java/src/net/i2p/router/web/helpers/ConfigTunnelsHandler.java:138 +#: ../java/src/net/i2p/router/web/helpers/ConfigUIHandler.java:88 +#: ../java/src/net/i2p/router/web/helpers/ConfigUIHandler.java:123 +#: ../java/src/net/i2p/router/web/helpers/ConfigUIHandler.java:141 +msgid "" +"Error saving the configuration (applied but not saved) - please see the " +"error logs." +msgstr "配置儲存出錯(已應用但未儲存) - 參見錯誤日誌" + +#. * dummies for translation +#: ../java/src/net/i2p/router/web/helpers/ConfigTunnelsHelper.java:22 +#, java-format +msgid "{0} hop" +msgid_plural "{0} hops" +msgstr[0] "{0} 跳点" + +#: ../java/src/net/i2p/router/web/helpers/ConfigTunnelsHelper.java:23 +#, java-format +msgid "{0} tunnel" +msgid_plural "{0} tunnels" +msgstr[0] "{0} 隧道" + +#: ../java/src/net/i2p/router/web/helpers/ConfigTunnelsHelper.java:51 +#: ../java/src/net/i2p/router/web/helpers/TunnelRenderer.java:47 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/tunnels_jsp.java:451 +msgid "Exploratory tunnels" +msgstr "探測隧道" + +#: ../java/src/net/i2p/router/web/helpers/ConfigTunnelsHelper.java:65 +#: ../java/src/net/i2p/router/web/helpers/TunnelRenderer.java:73 +#: ../java/src/net/i2p/router/web/helpers/TunnelRenderer.java:94 +#, java-format +msgid "Client tunnels for {0}" +msgstr "{0} 的客户端隧道" + +#: ../java/src/net/i2p/router/web/helpers/ConfigTunnelsHelper.java:124 +msgid "ANONYMITY WARNING - Settings include 0-hop tunnels." +msgstr "匿名性警告 - 设置中包括 0 跳点 隧道。" + +#: ../java/src/net/i2p/router/web/helpers/ConfigTunnelsHelper.java:138 +msgid "ANONYMITY WARNING - Settings include 1-hop tunnels." +msgstr "匿名性警告 - 设置中包括 1 跳点 隧道。" + +#: ../java/src/net/i2p/router/web/helpers/ConfigTunnelsHelper.java:142 +msgid "PERFORMANCE WARNING - Settings include very long tunnels." +msgstr "效能警告 - 設定中包括長隧道。" + +#: ../java/src/net/i2p/router/web/helpers/ConfigTunnelsHelper.java:145 +msgid "PERFORMANCE WARNING - Settings include high tunnel quantities." +msgstr "效能警告 - 設定中包括大量隧道。" + +#: ../java/src/net/i2p/router/web/helpers/ConfigTunnelsHelper.java:147 +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:211 +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:216 +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:443 +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:655 +#: ../java/src/net/i2p/router/web/helpers/TunnelRenderer.java:381 +msgid "Inbound" +msgstr "传入" + +#: ../java/src/net/i2p/router/web/helpers/ConfigTunnelsHelper.java:147 +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:212 +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:217 +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:447 +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:659 +#: ../java/src/net/i2p/router/web/helpers/TunnelRenderer.java:382 +msgid "Outbound" +msgstr "传出" + +#: ../java/src/net/i2p/router/web/helpers/ConfigTunnelsHelper.java:153 +msgid "Length" +msgstr "長度" + +#. tunnel depth variance +#: ../java/src/net/i2p/router/web/helpers/ConfigTunnelsHelper.java:170 +msgid "Randomization" +msgstr "隨機" + +#: ../java/src/net/i2p/router/web/helpers/ConfigTunnelsHelper.java:195 +msgid "Quantity" +msgstr "數量" + +#: ../java/src/net/i2p/router/web/helpers/ConfigTunnelsHelper.java:213 +msgid "Backup quantity" +msgstr "備用數量" + +#: ../java/src/net/i2p/router/web/helpers/ConfigTunnelsHelper.java:235 +msgid "Inbound options" +msgstr "入站選項" + +#: ../java/src/net/i2p/router/web/helpers/ConfigTunnelsHelper.java:247 +msgid "Outbound options" +msgstr "出站選項" + +#: ../java/src/net/i2p/router/web/helpers/ConfigUIHandler.java:29 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configui_jsp.java:608 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configui_jsp.java:614 +msgid "Add user" +msgstr "新增使用者" + +#: ../java/src/net/i2p/router/web/helpers/ConfigUIHandler.java:81 +msgid "Theme change saved." +msgstr "主題設定已儲存。" + +#: ../java/src/net/i2p/router/web/helpers/ConfigUIHandler.java:83 +msgid "Mobile console option saved." +msgstr "移動控制檯選項已儲存。" + +#: ../java/src/net/i2p/router/web/helpers/ConfigUIHandler.java:85 +msgid "Refresh the page to view." +msgstr "重新整理頁面後檢視。" + +#: ../java/src/net/i2p/router/web/helpers/ConfigUIHandler.java:95 +msgid "No user name entered" +msgstr "未輸入使用者名稱" + +#: ../java/src/net/i2p/router/web/helpers/ConfigUIHandler.java:107 +msgid "" +"Warning: User names outside the ISO-8859-1 character set are not " +"recommended. Support is not standardized and varies by browser." +msgstr " 注意:您的使用者名稱不在 ISO-8859-1 的西歐字符裡面,我們并不建議您使用這個名稱。本系統不支持這種非標準和變異的字元。" + +#: ../java/src/net/i2p/router/web/helpers/ConfigUIHandler.java:110 +msgid "No password entered" +msgstr "未輸入密碼" + +#: ../java/src/net/i2p/router/web/helpers/ConfigUIHandler.java:119 +#, java-format +msgid "" +"To recover from a forgotten or non-working password, stop I2P, edit the file" +" {0}, delete the line {1}, and restart I2P." +msgstr "如果遺忘密碼或密碼不能用了,須要重新建立密碼,請停止I2P,編輯檔案 {0},刪除行 {1},然後重新啟動 I2P。" + +#: ../java/src/net/i2p/router/web/helpers/ConfigUIHandler.java:138 +#, java-format +msgid "Removed user {0}" +msgstr "使用者 {0} 已刪除" + +#: ../java/src/net/i2p/router/web/helpers/ConfigUIHelper.java:60 +msgid "Set theme universally across all apps" +msgstr "設定影響所有應用的全局主題" + +#: ../java/src/net/i2p/router/web/helpers/ConfigUIHelper.java:67 +msgid "Force the mobile console to be used" +msgstr "強制使用移動控制檯" + +#: ../java/src/net/i2p/router/web/helpers/ConfigUIHelper.java:71 +msgid "" +"Enabling the Universal Theming option is recommended when embedding these " +"applications" +msgstr "当嵌入这些应用时推荐启用通用主题选项" + +#: ../java/src/net/i2p/router/web/helpers/ConfigUIHelper.java:76 +msgid "Embed Email and Torrent applications in the console" +msgstr "在控制台中嵌入电子邮件和 Torrent 应用" + +#: ../java/src/net/i2p/router/web/helpers/ConfigUIHelper.java:234 +msgid "Add a user and password to enable." +msgstr "新增使用者和密碼後可啟用。" + +#: ../java/src/net/i2p/router/web/helpers/ConfigUIHelper.java:238 +#: ../java/src/net/i2p/router/web/helpers/HomeHelper.java:451 +msgid "Mark for deletion" +msgstr "標記為刪除" + +#: ../java/src/net/i2p/router/web/helpers/ConfigUIHelper.java:240 +#: ../java/src/net/i2p/router/web/helpers/HomeHelper.java:453 +#: ../java/src/net/i2p/router/web/helpers/SummaryHelper.java:1109 +msgid "Remove" +msgstr "移除" + +#: ../java/src/net/i2p/router/web/helpers/ConfigUIHelper.java:242 +#: ../java/src/net/i2p/router/web/helpers/ConfigUIHelper.java:257 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configi2cp_jsp.java:628 +msgid "Username" +msgstr "用户名" + +#: ../java/src/net/i2p/router/web/helpers/ConfigUIHelper.java:259 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configi2cp_jsp.java:630 +msgid "Password" +msgstr "密碼" + +#: ../java/src/net/i2p/router/web/helpers/EventLogHelper.java:32 +msgid "Aborted startup" +msgstr "已中止啟動" + +#: ../java/src/net/i2p/router/web/helpers/EventLogHelper.java:33 +msgid "Enabled floodfill" +msgstr "已啟用種子" + +#: ../java/src/net/i2p/router/web/helpers/EventLogHelper.java:34 +msgid "Changed IP" +msgstr "已更改 IP" + +#: ../java/src/net/i2p/router/web/helpers/EventLogHelper.java:35 +msgid "Changed port" +msgstr "已更改埠" + +#: ../java/src/net/i2p/router/web/helpers/EventLogHelper.java:36 +msgid "Clock shifted" +msgstr "時鐘已改變" + +#: ../java/src/net/i2p/router/web/helpers/EventLogHelper.java:37 +msgid "Crashed" +msgstr "已崩潰" + +#: ../java/src/net/i2p/router/web/helpers/EventLogHelper.java:38 +msgid "Critical error" +msgstr "關鍵錯誤" + +#: ../java/src/net/i2p/router/web/helpers/EventLogHelper.java:40 +msgid "Installed new version" +msgstr "已安裝新版本" + +#: ../java/src/net/i2p/router/web/helpers/EventLogHelper.java:41 +msgid "Install failed" +msgstr "安裝失敗" + +#: ../java/src/net/i2p/router/web/helpers/EventLogHelper.java:42 +msgid "Network error" +msgstr "網路錯誤" + +#: ../java/src/net/i2p/router/web/helpers/EventLogHelper.java:43 +#: ../java/src/net/i2p/router/web/helpers/EventLogHelper.java:47 +msgid "New router identity" +msgstr "新的路由身份" + +#: ../java/src/net/i2p/router/web/helpers/EventLogHelper.java:44 +msgid "Disabled floodfill" +msgstr "已禁用種子" + +#: ../java/src/net/i2p/router/web/helpers/EventLogHelper.java:45 +msgid "Out of memory error" +msgstr "記憶體不足錯誤" + +#: ../java/src/net/i2p/router/web/helpers/EventLogHelper.java:46 +msgid "Reachability change" +msgstr "可達性變化" + +#: ../java/src/net/i2p/router/web/helpers/EventLogHelper.java:48 +msgid "Reseeded router" +msgstr "重新引導路由" + +#: ../java/src/net/i2p/router/web/helpers/EventLogHelper.java:49 +msgid "Soft restart" +msgstr "軟重啟" + +#: ../java/src/net/i2p/router/web/helpers/EventLogHelper.java:50 +msgid "Started router" +msgstr "已啟動路由" + +#: ../java/src/net/i2p/router/web/helpers/EventLogHelper.java:51 +msgid "Stopped router" +msgstr "已停止路由" + +#: ../java/src/net/i2p/router/web/helpers/EventLogHelper.java:52 +msgid "Updated router" +msgstr "已更新路由" + +#: ../java/src/net/i2p/router/web/helpers/EventLogHelper.java:53 +msgid "Watchdog warning" +msgstr "監察器警告" + +#: ../java/src/net/i2p/router/web/helpers/EventLogHelper.java:102 +msgid "Display Events" +msgstr "顯示事件" + +#: ../java/src/net/i2p/router/web/helpers/EventLogHelper.java:106 +msgid "Events since" +msgstr "事件開始" + +#: ../java/src/net/i2p/router/web/helpers/EventLogHelper.java:111 +msgid "Event type" +msgstr "事件類型" + +#: ../java/src/net/i2p/router/web/helpers/EventLogHelper.java:117 +#: ../java/src/net/i2p/router/web/helpers/EventLogHelper.java:151 +msgid "All events" +msgstr "所有事件" + +#: ../java/src/net/i2p/router/web/helpers/EventLogHelper.java:122 +msgid "Filter events" +msgstr "過濾事件" + +#: ../java/src/net/i2p/router/web/helpers/EventLogHelper.java:173 +msgid "No events found" +msgstr "沒有找到事件" + +#: ../java/src/net/i2p/router/web/helpers/EventLogHelper.java:174 +#, java-format +msgid "No events found in previous {0}" +msgstr "沒有找到在 {0} 前的事件" + +#: ../java/src/net/i2p/router/web/helpers/EventLogHelper.java:177 +#, java-format +msgid "No \"{0}\" events found" +msgstr "沒有找到「{0}」的事件" + +#: ../java/src/net/i2p/router/web/helpers/EventLogHelper.java:178 +#, java-format +msgid "No \"{0}\" events found in previous {1}" +msgstr "沒有找到在 {1} 前的「{0}」的事件" + +#: ../java/src/net/i2p/router/web/helpers/EventLogHelper.java:182 +#: ../java/src/net/i2p/router/web/helpers/JobQueueHelper.java:156 +msgid "Time" +msgstr "時間" + +#: ../java/src/net/i2p/router/web/helpers/EventLogHelper.java:185 +msgid "Event" +msgstr "事件" + +#: ../java/src/net/i2p/router/web/helpers/EventLogHelper.java:187 +msgid "Details" +msgstr "詳情" + +#: ../java/src/net/i2p/router/web/helpers/GraphHelper.java:188 +msgid "Combined bandwidth graph" +msgstr "複合頻寬圖" + +#. e.g. "statname for 60m" +#: ../java/src/net/i2p/router/web/helpers/GraphHelper.java:210 +#: ../java/src/net/i2p/router/web/helpers/GraphHelper.java:276 +#, java-format +msgid "{0} for {1}" +msgstr "過去 {1} 統計 {0}" + +#: ../java/src/net/i2p/router/web/helpers/GraphHelper.java:278 +#, java-format +msgid "ending {0} ago" +msgstr "{0} 前結束" + +#: ../java/src/net/i2p/router/web/helpers/GraphHelper.java:281 +msgid "Return to main graphs page" +msgstr "返回主要圖表頁面" + +#: ../java/src/net/i2p/router/web/helpers/GraphHelper.java:296 +msgid "Larger" +msgstr "更大" + +#: ../java/src/net/i2p/router/web/helpers/GraphHelper.java:302 +msgid "Smaller" +msgstr "更小" + +#: ../java/src/net/i2p/router/web/helpers/GraphHelper.java:308 +msgid "Taller" +msgstr "更高" + +#: ../java/src/net/i2p/router/web/helpers/GraphHelper.java:314 +msgid "Shorter" +msgstr "更矮" + +#: ../java/src/net/i2p/router/web/helpers/GraphHelper.java:320 +msgid "Wider" +msgstr "更寬" + +#: ../java/src/net/i2p/router/web/helpers/GraphHelper.java:326 +msgid "Narrower" +msgstr "更窄" + +#: ../java/src/net/i2p/router/web/helpers/GraphHelper.java:333 +msgid "Larger interval" +msgstr "增大間隔" + +#: ../java/src/net/i2p/router/web/helpers/GraphHelper.java:339 +msgid "Smaller interval" +msgstr "減小間隔" + +#: ../java/src/net/i2p/router/web/helpers/GraphHelper.java:346 +msgid "Previous interval" +msgstr "上個週期" + +#: ../java/src/net/i2p/router/web/helpers/GraphHelper.java:357 +msgid "Next interval" +msgstr "下個週期" + +#: ../java/src/net/i2p/router/web/helpers/GraphHelper.java:364 +msgid "Plot averages" +msgstr "事件均值" + +#: ../java/src/net/i2p/router/web/helpers/GraphHelper.java:364 +msgid "plot events" +msgstr "事件數量" + +#: ../java/src/net/i2p/router/web/helpers/GraphHelper.java:398 +#: ../java/src/net/i2p/router/web/helpers/TunnelRenderer.java:324 +msgid "Configure Graph Display" +msgstr "圖表顯示設定" + +#: ../java/src/net/i2p/router/web/helpers/GraphHelper.java:398 +msgid "Select Stats" +msgstr "選擇統計項" + +#: ../java/src/net/i2p/router/web/helpers/GraphHelper.java:403 +msgid "" +"Note: Dimensions are for graph only (excludes title, labels and legend)." +msgstr "注意:尺寸僅用於圖表(不包括標題,標籤和圖例)。" + +#: ../java/src/net/i2p/router/web/helpers/GraphHelper.java:404 +msgid "Graph size" +msgstr "图表大小" + +#: ../java/src/net/i2p/router/web/helpers/GraphHelper.java:405 +msgid "pixels wide" +msgstr "像素宽度" + +#: ../java/src/net/i2p/router/web/helpers/GraphHelper.java:406 +msgid "pixels high" +msgstr "像素高度" + +#: ../java/src/net/i2p/router/web/helpers/GraphHelper.java:408 +msgid "Display period" +msgstr "週期,顯示相關" + +#: ../java/src/net/i2p/router/web/helpers/GraphHelper.java:408 +msgid "minutes" +msgstr "分鐘" + +#: ../java/src/net/i2p/router/web/helpers/GraphHelper.java:411 +msgid "Refresh delay" +msgstr "重新整理延遲" + +#: ../java/src/net/i2p/router/web/helpers/GraphHelper.java:427 +msgid "Plot type" +msgstr "繪圖類型" + +#: ../java/src/net/i2p/router/web/helpers/GraphHelper.java:428 +msgid "Averages" +msgstr "平均" + +#. 7 days +#: ../java/src/net/i2p/router/web/helpers/GraphHelper.java:429 +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:525 +msgid "Events" +msgstr "事件" + +#: ../java/src/net/i2p/router/web/helpers/GraphHelper.java:430 +msgid "Hide legend" +msgstr "隐藏长度" + +#: ../java/src/net/i2p/router/web/helpers/GraphHelper.java:435 +msgid "Do not show legend on graphs" +msgstr "不在图表中显示长度" + +#: ../java/src/net/i2p/router/web/helpers/GraphHelper.java:436 +msgid "UTC" +msgstr "UTC" + +#: ../java/src/net/i2p/router/web/helpers/GraphHelper.java:441 +msgid "Use UTC time on graphs" +msgstr "在图象上采用UTC时间" + +#: ../java/src/net/i2p/router/web/helpers/GraphHelper.java:442 +msgid "Persistence" +msgstr "保持連接" + +#: ../java/src/net/i2p/router/web/helpers/GraphHelper.java:447 +msgid "Store graph data on disk" +msgstr "將圖像資料儲存到磁碟裡面" + +#: ../java/src/net/i2p/router/web/helpers/GraphHelper.java:448 +msgid "Save settings and redraw graphs" +msgstr "儲存設定並重繪圖表" + +#: ../java/src/net/i2p/router/web/helpers/GraphHelper.java:515 +msgid "Graph settings saved" +msgstr "圖表設定已儲存" + +#: ../java/src/net/i2p/router/web/helpers/HomeHelper.java:125 +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:227 +msgid "Anonymous webmail client" +msgstr "匿名 Web 邮件客户端" + +#: ../java/src/net/i2p/router/web/helpers/HomeHelper.java:126 +msgid "Control your client and server tunnels" +msgstr "控制您的客户端和服务器隧道" + +#: ../java/src/net/i2p/router/web/helpers/HomeHelper.java:127 +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:251 +msgid "Built-in anonymous BitTorrent Client" +msgstr "内置匿名 BitTorrent 客户端" + +#: ../java/src/net/i2p/router/web/helpers/HomeHelper.java:128 +msgid "Local web server for hosting your own content on I2P" +msgstr "在 I2P 上托管您自己的内容的本地网络服务器" + +#: ../java/src/net/i2p/router/web/helpers/HomeHelper.java:128 +#: ../java/src/net/i2p/router/web/helpers/HomeHelper.java:387 +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:260 +msgid "Web Server" +msgstr "网络服务器" + +#: ../java/src/net/i2p/router/web/helpers/HomeHelper.java:129 +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:350 +msgid "Manage your I2P hosts file here (I2P domain name resolution)" +msgstr "管理您的 I2P hosts 文件(I2P 域名解析表)" + +#. _x("Configure Homepage") + S + _x("Configure the contents of this page") + +#. S + "/confighome" + S + I + "info/home.png" + S + +#: ../java/src/net/i2p/router/web/helpers/HomeHelper.java:135 +msgid "Configure Bandwidth" +msgstr "配置頻寬" + +#: ../java/src/net/i2p/router/web/helpers/HomeHelper.java:135 +msgid "I2P Bandwidth Configuration" +msgstr "I2P 頻寬設定" + +#. FIXME wasn't escaped +#. _x("Configure UI") + S + _x("Select console theme & language & set optional +#. console password").replace("&", "&") + S + "/configui" + S + I + +#. "info/ui.png" + S + +#. _x("Customize Home Page") + S + _x("I2P Home Page Configuration") + S + +#. "/confighome" + S + I + "home_page.png" + S + +#. _x("Customize Sidebar") + S + _x("Customize the sidebar by adding or +#. removing or repositioning elements") + S + "/configsidebar" + S + I + +#. "info/sidebar.png" + S + +#: ../java/src/net/i2p/router/web/helpers/HomeHelper.java:140 +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:368 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/error500_jsp.java:265 +msgid "Help" +msgstr "Help" + +#: ../java/src/net/i2p/router/web/helpers/HomeHelper.java:140 +msgid "I2P Router Help" +msgstr "I2P路由幫助" + +#: ../java/src/net/i2p/router/web/helpers/HomeHelper.java:141 +msgid "Install and configure I2P plugins" +msgstr "安装和配置 I2P 插件" + +#: ../java/src/net/i2p/router/web/helpers/HomeHelper.java:141 +msgid "Manage Plugins" +msgstr "管理插件" + +#: ../java/src/net/i2p/router/web/helpers/HomeHelper.java:154 +msgid "Frequently Asked Questions" +msgstr "常見問題(聯網)" + +#. "anoncoin.i2p" + S + _x("The Anoncoin project") + S + +#. "http://anoncoin.i2p/" + S + I + "anoncoin_32.png" + S + +#. "colombo-bt.i2p" + S + _x("The Italian Bittorrent Resource") + S + +#. "http://colombo-bt.i2p/" + S + I + "colomboicon.png" + S + +#. _x("Dev Builds") + S + _x("Development builds of I2P") + S + +#. "http://bobthebuilder.i2p/" + S + I + "script_gear.png" + S + +#. _x("Dev Forum") + S + _x("Development forum") + S + "http://zzz.i2p/" + S + +#. I + "group_gear.png" + S + +#. _x("diftracker") + S + _x("Bittorrent tracker") + S + +#. "http://diftracker.i2p/" + S + I + "i2psnark.png" + S + +#. "echelon.i2p" + S + _x("I2P Applications") + S + "http://echelon.i2p/" + S +#. + I + "echelon.png" + S + +#. "exchanged.i2p" + S + _x("Anonymous cryptocurrency exchange") + S + +#. "http://exchanged.i2p/" + S + I + "exchanged.png" + S + +#: ../java/src/net/i2p/router/web/helpers/HomeHelper.java:154 +msgid "I2P FAQ" +msgstr "I2P 常見問題解答" + +#: ../java/src/net/i2p/router/web/helpers/HomeHelper.java:155 +msgid "Community forum" +msgstr "社区论坛" + +#: ../java/src/net/i2p/router/web/helpers/HomeHelper.java:155 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:459 +msgid "I2P Forum" +msgstr "I2P 论坛" + +#: ../java/src/net/i2p/router/web/helpers/HomeHelper.java:156 +msgid "Community git project hosting" +msgstr "社区 git 项目托管" + +#: ../java/src/net/i2p/router/web/helpers/HomeHelper.java:156 +msgid "Git Project Hosting" +msgstr "Git 项目托管" + +#: ../java/src/net/i2p/router/web/helpers/HomeHelper.java:157 +msgid "I2P Pastebin" +msgstr "I2P Pastebin" + +#: ../java/src/net/i2p/router/web/helpers/HomeHelper.java:157 +msgid "Pastebin for I2P users" +msgstr "面向 I2P 用户的 Pastebin" + +#: ../java/src/net/i2p/router/web/helpers/HomeHelper.java:169 +msgid "I2P News" +msgstr "I2P 新聞" + +#. "git.repo.i2p" + S + _x("A public anonymous Git hosting site - supports +#. pulling via Git and HTTP and pushing via SSH") + S + "http://git.repo.i2p/" +#. + S + I + "git-logo.png" + S + +#. "hiddengate [ru]" + S + _x("Russian I2P-related wiki") + S + +#. "http://hiddengate.i2p/" + S + I + "hglogo32.png" + S + +#. _x("I2P Wiki") + S + _x("Anonymous wiki - share the knowledge") + S + +#. "http://i2pwiki.i2p/" + S + I + "i2pwiki_logo.png" + S + +#. "Ident " + _x("Microblog") + S + _x("Your premier microblogging service on +#. I2P") + S + "http://id3nt.i2p/" + S + I + "ident_icon_blue.png" + S + +#. _x("Javadocs") + S + _x("Technical documentation") + S + +#. "http://i2p-javadocs.i2p/" + S + I + "education.png" + S + +#. "jisko.i2p" + S + _x("Simple and fast microblogging website") + S + +#. "http://jisko.i2p/" + S + I + "jisko_console_icon.png" + S + +#. _x("Key Server") + S + _x("OpenPGP Keyserver") + S + "http://keys.i2p/" + S +#. + I + "education.png" + S + +#. "killyourtv.i2p" + S + _x("Debian and Tahoe-LAFS repositories") + S + +#. "http://killyourtv.i2p/" + S + I + "television_delete.png" + S + +#. _x("MuWire") + S + _x("Easy anonymous file sharing") + S + +#. "http://muwire.i2p/" + S + I + "muwire.png" + S + +#. _x("Open4You") + S + _x("Free I2P Site hosting with PHP and MySQL") + S + +#. "http://open4you.i2p/" + S + I + "open4you-logo.png" + S + +#. _x("Pastebin") + S + _x("Encrypted I2P Pastebin") + S + +#. "http://zerobin.i2p/" + S + I + "paste_plain.png" + S + +#: ../java/src/net/i2p/router/web/helpers/HomeHelper.java:169 +msgid "Planet I2P" +msgstr "Planet I2P" + +#: ../java/src/net/i2p/router/web/helpers/HomeHelper.java:173 +msgid "I2P home page" +msgstr "I2P 主頁" + +#. _x("I2P Plugins") + S + _x("Add-on directory") + S + +#. "http://i2pwiki.i2p/index.php?title=Plugins" + S + I + +#. "info/plugin_link.png" + S + +#. _x("Postman's Tracker") + S + _x("Bittorrent tracker") + S + +#. "http://tracker2.postman.i2p/" + S + I + "magnet.png" + S + +#. _x("PrivateBin") + S + _x("Encrypted I2P Pastebin") + S + +#. "http://paste.crypthost.i2p/" + S + I + "paste_plain.png" + S + +#: ../java/src/net/i2p/router/web/helpers/HomeHelper.java:173 +msgid "Project Website" +msgstr "項目網站" + +#. _x("lenta news [ru]") + S + _x("Russian News Feed") + S + +#. "http://lenta.i2p/" + S + I + "lenta_main_logo.png" + S + +#. "Salt" + S + "salt.i2p" + S + "http://salt.i2p/" + S + I + +#. "salt_console.png" + S + +#. _x("The Tin Hat") + S + _x("Privacy guides and tutorials") + S + +#. "http://secure.thetinhat.i2p/" + S + I + "thetinhat.png" + S + +#. _x("Ugha's Wiki") + S + S + "http://ugha.i2p/" + S + I + +#. "billiard_marker.png" + S + +#. "sponge.i2p" + S + _x("Seedless and the Robert BitTorrent applications") + +#. S + "http://sponge.i2p/" + S + I + "user_astronaut.png" + S + +#: ../java/src/net/i2p/router/web/helpers/HomeHelper.java:179 +msgid "Not Bob's Address Services" +msgstr "非 Bob 的地址服务" + +#: ../java/src/net/i2p/router/web/helpers/HomeHelper.java:180 +msgid "Ramble user-moderated forum aggregator" +msgstr "" + +#: ../java/src/net/i2p/router/web/helpers/HomeHelper.java:181 +msgid "StormyCloud Outproxy Services" +msgstr "StormyCloud 出口路由服务" + +#: ../java/src/net/i2p/router/web/helpers/HomeHelper.java:187 +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:432 +msgid "Logs" +msgstr "活動記錄" + +#: ../java/src/net/i2p/router/web/helpers/HomeHelper.java:187 +msgid "View the logs" +msgstr "查看日志" + +#: ../java/src/net/i2p/router/web/helpers/HomeHelper.java:188 +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:422 +msgid "Graphs" +msgstr "圖表" + +#: ../java/src/net/i2p/router/web/helpers/HomeHelper.java:188 +msgid "Visualize information about the router" +msgstr "关于路由的可视化信息" + +#: ../java/src/net/i2p/router/web/helpers/HomeHelper.java:189 +msgid "I2P Technical Docs" +msgstr "I2P 技術資料" + +#: ../java/src/net/i2p/router/web/helpers/HomeHelper.java:189 +msgid "Technical documentation" +msgstr "技術文件" + +#: ../java/src/net/i2p/router/web/helpers/HomeHelper.java:190 +msgid "I2P Wiki" +msgstr "I2P Wiki" + +#: ../java/src/net/i2p/router/web/helpers/HomeHelper.java:191 +msgid "Bug tracker" +msgstr "错误跟踪器" + +#: ../java/src/net/i2p/router/web/helpers/HomeHelper.java:191 +msgid "I2P Bug Reports" +msgstr "I2P 错误报告" + +#: ../java/src/net/i2p/router/web/helpers/HomeHelper.java:192 +msgid "I2P Network Statistics" +msgstr "I2P 网络统计" + +#: ../java/src/net/i2p/router/web/helpers/HomeHelper.java:219 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confighome_jsp.java:588 +msgid "Applications" +msgstr "应用程序" + +#: ../java/src/net/i2p/router/web/helpers/HomeHelper.java:246 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confighome_jsp.java:620 +msgid "Configuration and Help" +msgstr "配置和帮助" + +#: ../java/src/net/i2p/router/web/helpers/HomeHelper.java:259 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confighome_jsp.java:636 +msgid "Network and Developer Information" +msgstr "网络和开发者信息" + +#: ../java/src/net/i2p/router/web/helpers/HomeHelper.java:271 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confighome_jsp.java:604 +msgid "I2P Community Sites" +msgstr "I2P 社区站点" + +#: ../java/src/net/i2p/router/web/helpers/HomeHelper.java:311 +msgid "The HTTP proxy is not up" +msgstr "HTTP 代理未启动" + +#: ../java/src/net/i2p/router/web/helpers/HomeHelper.java:313 +#, java-format +msgid "Your browser is not properly configured to use the HTTP proxy at {0}" +msgstr "您的浏览器尚未配置使用 HTTP 代理 {0}" + +#: ../java/src/net/i2p/router/web/helpers/HomeHelper.java:457 +msgid "URL" +msgstr "網址" + +#: ../java/src/net/i2p/router/web/helpers/HomeHelper.java:484 +msgid "Add" +msgstr "新增" + +#: ../java/src/net/i2p/router/web/helpers/JobQueueHelper.java:54 +msgid "Job runners" +msgstr "作業任務" + +#: ../java/src/net/i2p/router/web/helpers/JobQueueHelper.java:60 +msgid "Active jobs" +msgstr "活躍任務" + +#: ../java/src/net/i2p/router/web/helpers/JobQueueHelper.java:64 +#, java-format +msgid "started {0} ago" +msgstr "{0}前開始" + +#: ../java/src/net/i2p/router/web/helpers/JobQueueHelper.java:70 +msgid "Just finished jobs" +msgstr "剛剛完成的任務" + +#: ../java/src/net/i2p/router/web/helpers/JobQueueHelper.java:74 +#, java-format +msgid "finished {0} ago" +msgstr "{0}前完成" + +#: ../java/src/net/i2p/router/web/helpers/JobQueueHelper.java:80 +msgid "Ready/waiting jobs" +msgstr "已就緒/等待中的任務" + +#: ../java/src/net/i2p/router/web/helpers/JobQueueHelper.java:99 +msgid "Scheduled jobs" +msgstr "计划作业" + +#. translators: {0} is a job name, {1} is a time, e.g. 6 min +#: ../java/src/net/i2p/router/web/helpers/JobQueueHelper.java:110 +#, java-format +msgid "{0} will start in {1}" +msgstr "{0} 將在 {1} 啟動" + +#: ../java/src/net/i2p/router/web/helpers/JobQueueHelper.java:125 +msgid "Total Job Statistics" +msgstr "總的任務統計" + +#: ../java/src/net/i2p/router/web/helpers/JobQueueHelper.java:137 +#: ../java/src/net/i2p/router/web/helpers/JobQueueHelper.java:154 +msgid "Job" +msgstr "任務" + +#: ../java/src/net/i2p/router/web/helpers/JobQueueHelper.java:137 +msgid "Queued" +msgstr "排隊" + +#: ../java/src/net/i2p/router/web/helpers/JobQueueHelper.java:154 +msgid "Runs" +msgstr "執行" + +#: ../java/src/net/i2p/router/web/helpers/JobQueueHelper.java:155 +msgid "Dropped" +msgstr "忽略" + +#: ../java/src/net/i2p/router/web/helpers/JobQueueHelper.java:157 +#: ../java/src/net/i2p/router/web/helpers/JobQueueHelper.java:159 +msgid "Min" +msgstr "最小" + +#: ../java/src/net/i2p/router/web/helpers/JobQueueHelper.java:158 +msgid "Pending" +msgstr "掛起" + +#: ../java/src/net/i2p/router/web/helpers/JobQueueHelper.java:210 +#: ../java/src/net/i2p/router/web/helpers/NetDbHelper.java:46 +msgid "Summary" +msgstr "概要" + +#: ../java/src/net/i2p/router/web/helpers/LogsHelper.java:83 +#: ../java/src/net/i2p/router/web/helpers/LogsHelper.java:197 +msgid "File location" +msgstr "文件位置" + +#: ../java/src/net/i2p/router/web/helpers/LogsHelper.java:194 +msgid "File not found" +msgstr "檔案未找到" + +#: ../java/src/net/i2p/router/web/helpers/LogsHelper.java:203 +#: ../java/src/net/i2p/router/web/helpers/LogsHelper.java:257 +msgid "No log messages" +msgstr "無日誌訊息" + +#. 0 +#: ../java/src/net/i2p/router/web/helpers/NetDbHelper.java:47 +msgid "Local Router" +msgstr "本地路由" + +#. 1 +#: ../java/src/net/i2p/router/web/helpers/NetDbHelper.java:48 +msgid "Router Lookup" +msgstr "路由查詢" + +#. 2 +#. advanced below here +#: ../java/src/net/i2p/router/web/helpers/NetDbHelper.java:50 +msgid "All Routers" +msgstr "全部路由" + +#. 3 +#: ../java/src/net/i2p/router/web/helpers/NetDbHelper.java:51 +msgid "All Routers with Full Stats" +msgstr "全部路由及完整統計" + +#. 4 +#: ../java/src/net/i2p/router/web/helpers/NetDbHelper.java:52 +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:562 +#: ../java/src/net/i2p/router/web/helpers/SybilRenderer.java:967 +msgid "LeaseSets" +msgstr "租约集" + +#: ../java/src/net/i2p/router/web/helpers/NetDbHelper.java:439 +#: ../java/src/net/i2p/router/web/helpers/NetDbRenderer.java:491 +#: ../java/src/net/i2p/router/web/helpers/NetDbRenderer.java:1082 +msgid "Country" +msgstr "國家" + +#: ../java/src/net/i2p/router/web/helpers/NetDbHelper.java:456 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:582 +msgid "Full destination, name, Base32, or hash" +msgstr "完整目标,名称,Base32,或散列值" + +#: ../java/src/net/i2p/router/web/helpers/NetDbHelper.java:460 +#: ../java/src/net/i2p/router/web/helpers/NetDbRenderer.java:505 +msgid "MTU" +msgstr "MTU" + +#: ../java/src/net/i2p/router/web/helpers/NetDbHelper.java:461 +#: ../java/src/net/i2p/router/web/helpers/NetDbRenderer.java:499 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:743 +msgid "Port" +msgstr "埠" + +#: ../java/src/net/i2p/router/web/helpers/NetDbRenderer.java:123 +msgid "" +"Never reveal your router identity to anyone, as it is uniquely linked to " +"your IP address in the network database." +msgstr "绝对不要向任何人泄露您的路由身份,因为它在网络数据库中独一无二的联系到您的 IP 地址。" + +#: ../java/src/net/i2p/router/web/helpers/NetDbRenderer.java:152 +#: ../java/src/net/i2p/router/web/helpers/NetDbRenderer.java:520 +#: ../java/src/net/i2p/router/web/helpers/NetDbRenderer.java:736 +msgid "not found in network database" +msgstr "在網路資料庫中未找到" + +#: ../java/src/net/i2p/router/web/helpers/NetDbRenderer.java:204 +#: ../java/src/net/i2p/router/web/helpers/NetDbRenderer.java:527 +#: ../java/src/net/i2p/router/web/helpers/NetDbRenderer.java:943 +#: ../java/src/net/i2p/router/web/helpers/NetDbRenderer.java:999 +msgid "Previous Page" +msgstr "上一页" + +#: ../java/src/net/i2p/router/web/helpers/NetDbRenderer.java:206 +#: ../java/src/net/i2p/router/web/helpers/NetDbRenderer.java:530 +#: ../java/src/net/i2p/router/web/helpers/NetDbRenderer.java:946 +#: ../java/src/net/i2p/router/web/helpers/NetDbRenderer.java:1002 +msgid "Page" +msgstr "页面" + +#: ../java/src/net/i2p/router/web/helpers/NetDbRenderer.java:517 +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:207 +#: ../java/strings/Strings.java:55 +msgid "Transport" +msgstr "傳輸" + +#: ../java/src/net/i2p/router/web/helpers/NetDbRenderer.java:534 +#: ../java/src/net/i2p/router/web/helpers/NetDbRenderer.java:950 +#: ../java/src/net/i2p/router/web/helpers/NetDbRenderer.java:1005 +msgid "Next Page" +msgstr "下一页" + +#: ../java/src/net/i2p/router/web/helpers/NetDbRenderer.java:620 +msgid "Manually Configure Floodfill Participation" +msgstr "手動設置 Floodfill 參與度" + +#: ../java/src/net/i2p/router/web/helpers/NetDbRenderer.java:621 +msgid "Configure Floodfill Participation" +msgstr "設定 Floodfill 參與度" + +#: ../java/src/net/i2p/router/web/helpers/NetDbRenderer.java:734 +#: ../java/src/net/i2p/router/web/helpers/NetDbRenderer.java:751 +msgid "LeaseSet" +msgstr "赁集" + +#: ../java/src/net/i2p/router/web/helpers/NetDbRenderer.java:757 +#: ../java/src/net/i2p/router/web/helpers/TunnelRenderer.java:413 +msgid "Local" +msgstr "本地" + +#: ../java/src/net/i2p/router/web/helpers/NetDbRenderer.java:760 +msgid "Unpublished" +msgstr "未釋出" + +#: ../java/src/net/i2p/router/web/helpers/NetDbRenderer.java:785 +#: ../java/src/net/i2p/router/web/helpers/NetDbRenderer.java:808 +msgid "Add to address book" +msgstr "添加至地址簿" + +#: ../java/src/net/i2p/router/web/helpers/NetDbRenderer.java:787 +#: ../java/src/net/i2p/router/web/helpers/NetDbRenderer.java:810 +msgid "Add to local address book" +msgstr "添加至本地地址簿" + +#: ../java/src/net/i2p/router/web/helpers/NetDbRenderer.java:821 +#, java-format +msgid "Published {0} ago" +msgstr "发布于 {0} 前" + +#: ../java/src/net/i2p/router/web/helpers/NetDbRenderer.java:827 +#: ../java/src/net/i2p/router/web/helpers/NetDbRenderer.java:849 +#: ../java/src/net/i2p/router/web/helpers/NetDbRenderer.java:902 +#, java-format +msgid "Expires in {0}" +msgstr "{0} 後過期" + +#: ../java/src/net/i2p/router/web/helpers/NetDbRenderer.java:829 +#: ../java/src/net/i2p/router/web/helpers/NetDbRenderer.java:851 +#: ../java/src/net/i2p/router/web/helpers/NetDbRenderer.java:904 +#, java-format +msgid "Expired {0} ago" +msgstr "{0} 前過期" + +#: ../java/src/net/i2p/router/web/helpers/NetDbRenderer.java:891 +msgid "Lease" +msgstr "租賃" + +#: ../java/src/net/i2p/router/web/helpers/NetDbRenderer.java:895 +msgid "Tunnel" +msgstr "隧道" + +#: ../java/src/net/i2p/router/web/helpers/NetDbRenderer.java:920 +msgid "Not initialized" +msgstr "未初始化" + +#: ../java/src/net/i2p/router/web/helpers/NetDbRenderer.java:1023 +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:444 +msgid "Network Database Router Statistics" +msgstr "網路資料庫路由統計" + +#: ../java/src/net/i2p/router/web/helpers/NetDbRenderer.java:1030 +#: ../java/src/net/i2p/router/web/helpers/NetDbRenderer.java:1052 +#: ../java/src/net/i2p/router/web/helpers/NetDbRenderer.java:1088 +msgid "Count" +msgstr "次數" + +#: ../java/src/net/i2p/router/web/helpers/NetDbRenderer.java:1052 +msgid "Transports" +msgstr "传输" + +#: ../java/src/net/i2p/router/web/helpers/NetDbRenderer.java:1081 +msgid "Sort by country" +msgstr "按国家排序" + +#: ../java/src/net/i2p/router/web/helpers/NetDbRenderer.java:1087 +msgid "Sort by count" +msgstr "按计数排序" + +#: ../java/src/net/i2p/router/web/helpers/NetDbRenderer.java:1212 +msgid "Our Router Identity" +msgstr "我方路由身份" + +#: ../java/src/net/i2p/router/web/helpers/NetDbRenderer.java:1225 +#: ../java/src/net/i2p/router/web/helpers/SybilRenderer.java:940 +msgid "View extended router info" +msgstr "查看路由器的延伸資訊" + +#: ../java/src/net/i2p/router/web/helpers/NetDbRenderer.java:1227 +#: ../java/src/net/i2p/router/web/helpers/SybilRenderer.java:941 +msgid "Full entry" +msgstr "完整項" + +#: ../java/src/net/i2p/router/web/helpers/NetDbRenderer.java:1233 +#: ../java/src/net/i2p/router/web/helpers/SummaryHelper.java:242 +#: ../java/src/net/i2p/router/web/helpers/SybilRenderer.java:1036 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:561 +msgid "Hidden" +msgstr "隐身模式" + +#: ../java/src/net/i2p/router/web/helpers/NetDbRenderer.java:1233 +#: ../java/src/net/i2p/router/web/helpers/SybilRenderer.java:1036 +msgid "Updated" +msgstr "已更新" + +#. published slightly in the future +#: ../java/src/net/i2p/router/web/helpers/NetDbRenderer.java:1238 +#: ../java/src/net/i2p/router/web/helpers/NetDbRenderer.java:1244 +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:1177 +#: ../java/src/net/i2p/router/web/helpers/SybilRenderer.java:1039 +msgid "Published" +msgstr "釋出" + +#: ../java/src/net/i2p/router/web/helpers/NetDbRenderer.java:1249 +#: ../java/src/net/i2p/router/web/helpers/SybilRenderer.java:1041 +msgid "Signing Key" +msgstr "簽名金鑰" + +#: ../java/src/net/i2p/router/web/helpers/NetDbRenderer.java:1264 +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:43 +#: ../java/src/net/i2p/router/web/helpers/SybilRenderer.java:1044 +msgid "Addresses" +msgstr "地址" + +#: ../java/src/net/i2p/router/web/helpers/NetDbRenderer.java:1282 +msgid "cost" +msgstr "開銷" + +#: ../java/src/net/i2p/router/web/helpers/NetDbRenderer.java:1328 +msgid "Hidden or starting up" +msgstr "隐身模式或正在启动" + +#: ../java/src/net/i2p/router/web/helpers/NetDbRenderer.java:1328 +msgid "SSU" +msgstr "SSU" + +#: ../java/src/net/i2p/router/web/helpers/NetDbRenderer.java:1328 +msgid "SSU with introducers" +msgstr "使用中介的 SSU 连接" + +#: ../java/src/net/i2p/router/web/helpers/NetDbRenderer.java:1329 +#: ../java/src/net/i2p/router/web/helpers/StatsGenerator.java:45 +msgid "NTCP" +msgstr "NTCP" + +#: ../java/src/net/i2p/router/web/helpers/NetDbRenderer.java:1329 +msgid "NTCP and SSU" +msgstr "NTCP 與 SSU" + +#: ../java/src/net/i2p/router/web/helpers/NetDbRenderer.java:1329 +msgid "NTCP and SSU with introducers" +msgstr "使用中介的 NTCP 和 SSU" + +#: ../java/src/net/i2p/router/web/helpers/NetDbRenderer.java:1330 +msgid "IPv6 Only SSU, introducers" +msgstr "IPv6 僅 SSU, 中介" + +#: ../java/src/net/i2p/router/web/helpers/NetDbRenderer.java:1330 +msgid "IPv6 SSU" +msgstr "IPv6 SSU" + +#: ../java/src/net/i2p/router/web/helpers/NetDbRenderer.java:1330 +msgid "IPv6 SSU, introducers" +msgstr "IPv6 SSU, 中介" + +#: ../java/src/net/i2p/router/web/helpers/NetDbRenderer.java:1331 +msgid "IPv6 NTCP" +msgstr "IPv6 NTCP" + +#: ../java/src/net/i2p/router/web/helpers/NetDbRenderer.java:1331 +msgid "IPv6 NTCP, SSU" +msgstr "IPv6 NTCP, SSU" + +#: ../java/src/net/i2p/router/web/helpers/NetDbRenderer.java:1331 +msgid "IPv6 NTCP, SSU, introducers" +msgstr "IPv6 NTCP, SSU, 中介" + +#: ../java/src/net/i2p/router/web/helpers/NetDbRenderer.java:1331 +msgid "IPv6 Only NTCP, SSU, introducers" +msgstr "IPv6 僅 NTCP, SSU, 中介" + +#. 1 +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:46 +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:685 +#: ../java/src/net/i2p/router/web/helpers/ProfileOrganizerRenderer.java:182 +#: ../java/src/net/i2p/router/web/helpers/ProfilesHelper.java:15 +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:928 +msgid "Banned" +msgstr "已封禁" + +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:124 +msgid "Router Transport Addresses" +msgstr "路由傳輸地址" + +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:133 +#, java-format +msgid "{0} is used for outbound connections only" +msgstr "{0} 僅被用作出站連線" + +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:145 +msgid "UPnP Overview" +msgstr "UPnP 概况" + +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:147 +msgid "" +"UPnP is used to communicate with Internet Gateway Devices (IGDs) to detect " +"the external IP address and forward ports." +msgstr "UPnP 与公网网关设备 (IGD) 通讯可以检测外部 IP 和映射端口。" + +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:149 +msgid "If UPnP is not working, it may be for one of the following reasons:" +msgstr "如果 UPnP 未工作,可能由于以下原因:" + +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:150 +msgid "No UPnP-compatible device present" +msgstr "未发现 UPnP 兼容设备" + +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:151 +msgid "UPnP disabled on the device" +msgstr "设备上的 UPnP 支持已禁用" + +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:152 +msgid "Software firewall interference with UPnP" +msgstr "软件防火墙阻止 UPnP" + +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:153 +msgid "Bugs in the device's UPnP implementation" +msgstr "设备的 UPnP 支持存在缺陷" + +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:154 +msgid "Multiple firewall/routers in the internet connection path" +msgstr "公網連線路徑中存在多個防火牆/路由器" + +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:155 +msgid "UPnP device change, reset, or address change" +msgstr "UPnP 设备变化、重置或地址变更" + +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:157 +msgid "" +"UPnP may be enabled or disabled on the Network Configuration page, but a " +"change requires a router restart to take effect." +msgstr "可以在网络配置页面上启用或禁用 UPnP,但更改需要重启路由才能生效。" + +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:206 +msgid "Peer Connections" +msgstr "对等节点连接" + +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:208 +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:265 +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:969 +msgid "Total" +msgstr "總計" + +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:211 +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:212 +msgid "IPv4" +msgstr "IPv4" + +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:216 +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:217 +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:420 +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:597 +msgid "IPv6" +msgstr "IPv6" + +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:350 +msgid "" +"Your transport connection limits are automatically set based on your " +"configured bandwidth." +msgstr "您的傳輸連線數限制會根據您的頻寬設定自動調整。" + +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:352 +msgid "" +"To override these limits, add the settings i2np.ntcp.maxConnections=nnn and " +"i2np.udp.maxConnections=nnn on the advanced configuration page." +msgstr "要自定義連線數限制,您可以在高階配置頁面中新增參數 i2np.ntcp.maxConnections=nnn 及 i2np.udp.maxConnections=nnn 。" + +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:354 +#: ../java/src/net/i2p/router/web/helpers/ProfileOrganizerRenderer.java:297 +msgid "Definitions" +msgstr "定義" + +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:356 +msgid "The remote peer, identified by router hash" +msgstr "远程对等节点,以路由散列值区分" + +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:357 +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:419 +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:596 +msgid "Dir" +msgstr "類別" + +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:357 +msgid "Inbound connection" +msgstr "入站連線" + +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:358 +msgid "Outbound connection" +msgstr "出站連線" + +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:359 +msgid "They offered to introduce us (help other peers traverse our firewall)" +msgstr "對方向我提供(幫助其他節點穿越防火牆)" + +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:360 +msgid "" +"We offered to introduce them (help other peers traverse their firewall)" +msgstr "我方向它提供(幫助其他節點穿越防火牆)" + +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:361 +msgid "How long since a packet has been received / sent" +msgstr "最近一次資料傳輸距現在的時間" + +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:361 +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:422 +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:599 +msgid "Idle" +msgstr "閒置中" + +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:362 +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:423 +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:604 +#: ../java/src/net/i2p/router/web/helpers/TunnelRenderer.java:368 +msgid "In/Out" +msgstr "入/出" + +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:362 +msgid "The smoothed inbound / outbound transfer rate (KBytes per second)" +msgstr "進/出站平滑傳輸率(KByte/s)" + +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:363 +msgid "How long ago this connection was established" +msgstr "此連線已建立多久" + +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:363 +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:424 +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:609 +#: ../java/src/net/i2p/router/web/helpers/SummaryHelper.java:1147 +msgid "Up" +msgstr "上" + +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:364 +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:425 +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:611 +msgid "Skew" +msgstr "時滯" + +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:364 +msgid "The difference between the peer's clock and your own" +msgstr "該節點的時鐘與本地時鐘間的差異" + +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:366 +msgid "" +"The congestion window, which is how many bytes can be sent without an " +"acknowledgment" +msgstr "拥塞窗口,即每次确认前可发送的字节量" + +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:367 +msgid "The number of sent messages awaiting acknowledgment" +msgstr "等待 ACK 确认的已发送数据包数量" + +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:368 +msgid "The maximum number of concurrent messages to send" +msgstr "併發訊息的最大發送量" + +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:369 +msgid "The number of pending sends which exceed congestion window" +msgstr "超過擁塞視窗的待發送數量" + +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:370 +msgid "The slow start threshold" +msgstr "慢啟動門檻" + +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:371 +msgid "The round trip time in milliseconds" +msgstr "往返時間(毫秒)" + +#. .append("").append(_t("Dev")).append("").append(_t("The +#. standard deviation of the round trip time in +#. milliseconds")).append("\n") +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:373 +msgid "The retransmit timeout in milliseconds" +msgstr "重傳輸超時值(毫秒)" + +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:374 +msgid "Maximum receive / send packet size (bytes)" +msgstr "最大接收/发送数据包大小(字节)" + +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:376 +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:426 +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:631 +msgid "RX" +msgstr "接包" + +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:376 +msgid "The total number of messages received from the peer" +msgstr "從節點接收到資料總量" + +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:377 +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:427 +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:633 +msgid "TX" +msgstr "發包" + +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:377 +msgid "The total number of messages sent to the peer" +msgstr "向節點發送的資料總量" + +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:378 +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:636 +msgid "Dup RX" +msgstr "重接包" + +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:378 +msgid "The total number of duplicate packets received from the peer" +msgstr "從節點接收到的重複資料包總量" + +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:379 +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:638 +msgid "Dup TX" +msgstr "重發包" + +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:379 +msgid "The total number of packets retransmitted to the peer" +msgstr "向節點重發送的資料包總量" + +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:409 +msgid "NTCP connections" +msgstr "NTCP 连接" + +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:410 +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:584 +msgid "Limit" +msgstr "限制" + +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:418 +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:596 +msgid "Direction/Introduction" +msgstr "按方向" + +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:428 +msgid "Out Queue" +msgstr "出隊" + +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:429 +msgid "Backlogged?" +msgstr "積壓?" + +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:429 +msgid "Is peer backlogged?" +msgstr "目前对等节点积压?" + +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:507 +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:836 +#, java-format +msgid "{0} peer" +msgid_plural "{0} peers" +msgstr[0] "{0} 個節點" + +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:583 +msgid "UDP connections" +msgstr "UDP 连接" + +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:594 +msgid "Sort by peer hash" +msgstr "按对等节点散列值" + +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:600 +msgid "Sort by idle inbound" +msgstr "按出站空閒" + +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:602 +msgid "Sort by idle outbound" +msgstr "按入站空閒" + +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:605 +msgid "Sort by inbound rate" +msgstr "按入站速度" + +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:607 +msgid "Sort by outbound rate" +msgstr "按出站速度" + +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:610 +msgid "Sort by connection uptime" +msgstr "按連線時間" + +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:612 +msgid "Sort by clock skew" +msgstr "按時滯" + +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:616 +msgid "Sort by congestion window" +msgstr "按擁塞視窗" + +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:618 +msgid "Sort by slow start threshold" +msgstr "按慢啟動門檻" + +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:621 +msgid "Sort by round trip time" +msgstr "按往返時間" + +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:625 +msgid "Sort by retransmission timeout" +msgstr "按重傳輸超時時間" + +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:628 +msgid "Sort by outbound maximum transmit unit" +msgstr "按出站最大傳輸單元" + +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:632 +msgid "Sort by packets received" +msgstr "按已接收資料包" + +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:634 +msgid "Sort by packets sent" +msgstr "按已傳送資料包" + +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:637 +msgid "Sort by packets received more than once" +msgstr "按重複資料包" + +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:639 +msgid "Sort by packets retransmitted" +msgstr "按重傳資料包" + +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:665 +msgid "We offered to introduce them" +msgstr "我們提供給它們" + +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:667 +msgid "They offered to introduce us" +msgstr "它們提供給我們" + +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:679 +#, java-format +msgid "{0} fail" +msgid_plural "{0} fails" +msgstr[0] "失败 {0} 次" + +#: ../java/src/net/i2p/router/web/helpers/PeerHelper.java:752 +msgid "backlogged" +msgstr "積壓" + +#: ../java/src/net/i2p/router/web/helpers/ProfileOrganizerRenderer.java:86 +#, java-format +msgid "Showing {0} recent profile." +msgid_plural "Showing {0} recent profiles." +msgstr[0] "显示 {0} 最近配置。" + +#: ../java/src/net/i2p/router/web/helpers/ProfileOrganizerRenderer.java:88 +#, java-format +msgid "Hiding {0} older profile." +msgid_plural "Hiding {0} older profiles." +msgstr[0] "隐藏 {0} 较旧配置。" + +#: ../java/src/net/i2p/router/web/helpers/ProfileOrganizerRenderer.java:90 +#, java-format +msgid "Hiding {0} standard profile." +msgid_plural "Hiding {0} standard profiles." +msgstr[0] "隐藏 {0} 标准配置。" + +#: ../java/src/net/i2p/router/web/helpers/ProfileOrganizerRenderer.java:95 +#: ../java/src/net/i2p/router/web/helpers/ProfileOrganizerRenderer.java:300 +msgid "Groups" +msgstr "群組" + +#: ../java/src/net/i2p/router/web/helpers/ProfileOrganizerRenderer.java:98 +#: ../java/src/net/i2p/router/web/helpers/ProfileOrganizerRenderer.java:285 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:618 +msgid "Speed" +msgstr "速度" + +#: ../java/src/net/i2p/router/web/helpers/ProfileOrganizerRenderer.java:99 +#: ../java/src/net/i2p/router/web/helpers/ProfileOrganizerRenderer.java:287 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:622 +msgid "Capacity" +msgstr "容量" + +#: ../java/src/net/i2p/router/web/helpers/ProfileOrganizerRenderer.java:100 +#: ../java/src/net/i2p/router/web/helpers/ProfileOrganizerRenderer.java:289 +msgid "Integration" +msgstr "整合" + +#: ../java/src/net/i2p/router/web/helpers/ProfileOrganizerRenderer.java:102 +msgid "View/Edit" +msgstr "查看/編輯" + +#: ../java/src/net/i2p/router/web/helpers/ProfileOrganizerRenderer.java:138 +msgid "Fast, High Capacity" +msgstr "快速,高容量" + +#: ../java/src/net/i2p/router/web/helpers/ProfileOrganizerRenderer.java:139 +#: ../java/src/net/i2p/router/web/helpers/ProfilesHelper.java:13 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:501 +msgid "High Capacity" +msgstr "高容量" + +#. buf.append(_t("Standard")); +#: ../java/src/net/i2p/router/web/helpers/ProfileOrganizerRenderer.java:141 +msgid "Failing" +msgstr "失敗" + +#: ../java/src/net/i2p/router/web/helpers/ProfileOrganizerRenderer.java:146 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:509 +msgid "Integrated" +msgstr "已整合" + +#: ../java/src/net/i2p/router/web/helpers/ProfileOrganizerRenderer.java:186 +#: ../java/src/net/i2p/router/web/helpers/ProfileOrganizerRenderer.java:328 +msgid "Unreachable" +msgstr "不可达" + +#: ../java/src/net/i2p/router/web/helpers/ProfileOrganizerRenderer.java:193 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:537 +msgid "OK" +msgstr "好" + +#. hide if < 10% +#: ../java/src/net/i2p/router/web/helpers/ProfileOrganizerRenderer.java:198 +msgid "Test Fails" +msgstr "測試失敗" + +#: ../java/src/net/i2p/router/web/helpers/ProfileOrganizerRenderer.java:205 +#: ../java/src/net/i2p/router/web/helpers/SybilRenderer.java:943 +msgid "profile" +msgstr "摘要" + +#: ../java/src/net/i2p/router/web/helpers/ProfileOrganizerRenderer.java:206 +#: ../java/src/net/i2p/router/web/helpers/SybilRenderer.java:944 +msgid "Configure peer" +msgstr "配置对等节点" + +#: ../java/src/net/i2p/router/web/helpers/ProfileOrganizerRenderer.java:225 +msgid "Integ. Value" +msgstr "整合值" + +#: ../java/src/net/i2p/router/web/helpers/ProfileOrganizerRenderer.java:226 +#: ../java/src/net/i2p/router/web/helpers/SybilRenderer.java:989 +#: ../java/src/net/i2p/router/web/helpers/SybilRenderer.java:991 +msgid "Last Heard About" +msgstr "上次得知" + +#: ../java/src/net/i2p/router/web/helpers/ProfileOrganizerRenderer.java:227 +#: ../java/src/net/i2p/router/web/helpers/SybilRenderer.java:996 +#: ../java/src/net/i2p/router/web/helpers/SybilRenderer.java:998 +msgid "Last Heard From" +msgstr "上次連線" + +#: ../java/src/net/i2p/router/web/helpers/ProfileOrganizerRenderer.java:228 +msgid "Last Good Send" +msgstr "上次傳送成功" + +#: ../java/src/net/i2p/router/web/helpers/ProfileOrganizerRenderer.java:229 +msgid "Last Bad Send" +msgstr "上次傳送失敗" + +#: ../java/src/net/i2p/router/web/helpers/ProfileOrganizerRenderer.java:230 +msgid "10m Resp. Time" +msgstr "10 分钟响应时间" + +#: ../java/src/net/i2p/router/web/helpers/ProfileOrganizerRenderer.java:231 +msgid "1h Resp. Time" +msgstr "1 小时响应时间" + +#: ../java/src/net/i2p/router/web/helpers/ProfileOrganizerRenderer.java:232 +msgid "1d Resp. Time" +msgstr "1 天响应时间" + +#: ../java/src/net/i2p/router/web/helpers/ProfileOrganizerRenderer.java:233 +#: ../java/src/net/i2p/router/web/helpers/SybilRenderer.java:1005 +msgid "Last Good Lookup" +msgstr "上次查詢成功" + +#: ../java/src/net/i2p/router/web/helpers/ProfileOrganizerRenderer.java:234 +#: ../java/src/net/i2p/router/web/helpers/SybilRenderer.java:1012 +msgid "Last Bad Lookup" +msgstr "上次查詢失敗" + +#: ../java/src/net/i2p/router/web/helpers/ProfileOrganizerRenderer.java:235 +#: ../java/src/net/i2p/router/web/helpers/SybilRenderer.java:1019 +msgid "Last Good Store" +msgstr "上次儲存成功" + +#: ../java/src/net/i2p/router/web/helpers/ProfileOrganizerRenderer.java:236 +#: ../java/src/net/i2p/router/web/helpers/SybilRenderer.java:1026 +msgid "Last Bad Store" +msgstr "上次儲存失敗" + +#: ../java/src/net/i2p/router/web/helpers/ProfileOrganizerRenderer.java:237 +msgid "1h Fail Rate" +msgstr "1 小时失败率" + +#: ../java/src/net/i2p/router/web/helpers/ProfileOrganizerRenderer.java:238 +msgid "1d Fail Rate" +msgstr "1 天失败率" + +#: ../java/src/net/i2p/router/web/helpers/ProfileOrganizerRenderer.java:282 +msgid "Thresholds" +msgstr "臨界值" + +#: ../java/src/net/i2p/router/web/helpers/ProfileOrganizerRenderer.java:291 +#, java-format +msgid "{0} fast peer" +msgid_plural "{0} fast peers" +msgstr[0] "{0} 快速对等节点" + +#: ../java/src/net/i2p/router/web/helpers/ProfileOrganizerRenderer.java:293 +#, java-format +msgid "{0} high capacity peer" +msgid_plural "{0} high capacity peers" +msgstr[0] "{0} 高容量对等节点" + +#: ../java/src/net/i2p/router/web/helpers/ProfileOrganizerRenderer.java:295 +#, java-format +msgid "{0} integrated peer" +msgid_plural "{0} integrated peers" +msgstr[0] "{0} 已整合对等节点" + +#: ../java/src/net/i2p/router/web/helpers/ProfileOrganizerRenderer.java:300 +msgid "as determined by the profile organizer" +msgstr "由配置文件管理器决定" + +#: ../java/src/net/i2p/router/web/helpers/ProfileOrganizerRenderer.java:303 +msgid "capabilities in the netDb, not used to determine profiles" +msgstr "網路庫中的容量與描述資訊無關" + +#: ../java/src/net/i2p/router/web/helpers/ProfileOrganizerRenderer.java:307 +msgid "Congested" +msgstr "拥堵中" + +#: ../java/src/net/i2p/router/web/helpers/ProfileOrganizerRenderer.java:308 +msgid "Severely congested" +msgstr "严重拥堵" + +#. 0 +#: ../java/src/net/i2p/router/web/helpers/ProfileOrganizerRenderer.java:311 +#: ../java/src/net/i2p/router/web/helpers/ProfilesHelper.java:14 +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:846 +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:910 +msgid "Floodfill" +msgstr "Floodfill" + +#: ../java/src/net/i2p/router/web/helpers/ProfileOrganizerRenderer.java:312 +msgid "Not accepting tunnels" +msgstr "不接受隧道" + +#: ../java/src/net/i2p/router/web/helpers/ProfileOrganizerRenderer.java:315 +#, java-format +msgid "Under {0} shared bandwidth" +msgstr "低於 {0} 個共享頻寬" + +#: ../java/src/net/i2p/router/web/helpers/ProfileOrganizerRenderer.java:316 +#: ../java/src/net/i2p/router/web/helpers/ProfileOrganizerRenderer.java:319 +#: ../java/src/net/i2p/router/web/helpers/ProfileOrganizerRenderer.java:320 +#: ../java/src/net/i2p/router/web/helpers/ProfileOrganizerRenderer.java:323 +#: ../java/src/net/i2p/router/web/helpers/ProfileOrganizerRenderer.java:324 +#: ../java/src/net/i2p/router/web/helpers/TunnelRenderer.java:239 +#: ../java/src/net/i2p/router/web/helpers/TunnelRenderer.java:240 +#: ../java/src/net/i2p/router/web/helpers/TunnelRenderer.java:243 +#: ../java/src/net/i2p/router/web/helpers/TunnelRenderer.java:244 +#: ../java/src/net/i2p/router/web/helpers/TunnelRenderer.java:247 +#, java-format +msgid "{0} shared bandwidth" +msgstr "{0} 個共享頻寬" + +#: ../java/src/net/i2p/router/web/helpers/ProfileOrganizerRenderer.java:327 +msgid "Reachable" +msgstr "可連通" + +#: ../java/src/net/i2p/router/web/helpers/ProfileOrganizerRenderer.java:331 +#: ../java/src/net/i2p/router/web/helpers/TunnelRenderer.java:248 +#, java-format +msgid "Over {0} shared bandwidth" +msgstr "超過 {0} 個共享頻寬" + +#: ../java/src/net/i2p/router/web/helpers/ProfileOrganizerRenderer.java:335 +msgid "speed" +msgstr "速度" + +#: ../java/src/net/i2p/router/web/helpers/ProfileOrganizerRenderer.java:337 +msgid "" +"peak throughput (bytes per second) over a 1 minute period that the peer has " +"sustained in a single tunnel" +msgstr "該節點一分鐘內從單個隧道通過的資料量峰值(位元組/秒)。" + +#: ../java/src/net/i2p/router/web/helpers/ProfileOrganizerRenderer.java:340 +msgid "capacity" +msgstr "容量" + +#: ../java/src/net/i2p/router/web/helpers/ProfileOrganizerRenderer.java:342 +msgid "how many tunnels can we ask them to join in an hour?" +msgstr "一小時內路由可以邀請加入的隧道總量" + +#: ../java/src/net/i2p/router/web/helpers/ProfileOrganizerRenderer.java:345 +msgid "integration" +msgstr "整合" + +#: ../java/src/net/i2p/router/web/helpers/ProfileOrganizerRenderer.java:347 +msgid "how many new peers have they told us about lately?" +msgstr "最近獲知了多少新節點?" + +#: ../java/src/net/i2p/router/web/helpers/ProfileOrganizerRenderer.java:350 +msgid "status" +msgstr "狀態" + +#: ../java/src/net/i2p/router/web/helpers/ProfileOrganizerRenderer.java:352 +msgid "is the peer banned, or unreachable, or failing tunnel tests?" +msgstr "是否節點被封禁,不可達,或在隧道測試中失敗?" + +#. 2 +#: ../java/src/net/i2p/router/web/helpers/ProfilesHelper.java:16 +msgid "All" +msgstr "全部" + +#: ../java/src/net/i2p/router/web/helpers/SearchHelper.java:77 +msgid "Select search engine" +msgstr "選擇搜尋引擎" + +#: ../java/src/net/i2p/router/web/helpers/StatsGenerator.java:38 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:557 +msgid "Bandwidth Limiter" +msgstr "頻寬限制" + +#: ../java/src/net/i2p/router/web/helpers/StatsGenerator.java:39 +msgid "Client Messages" +msgstr "客户端消息" + +#: ../java/src/net/i2p/router/web/helpers/StatsGenerator.java:42 +msgid "Inbound Messages" +msgstr "入站消息" + +#: ../java/src/net/i2p/router/web/helpers/StatsGenerator.java:43 +msgid "Job Queue" +msgstr "工作队列" + +#: ../java/src/net/i2p/router/web/helpers/StatsGenerator.java:44 +msgid "Network Database" +msgstr "网络数据库" + +#: ../java/src/net/i2p/router/web/helpers/StatsGenerator.java:46 +msgid "Router Limiter" +msgstr "路由限制器" + +#: ../java/src/net/i2p/router/web/helpers/StatsGenerator.java:47 +msgid "UDP" +msgstr "UDP" + +#: ../java/src/net/i2p/router/web/helpers/StatsGenerator.java:64 +msgid "Statistics gathered during this router's uptime" +msgstr "路由執行時收集的統計資料" + +#: ../java/src/net/i2p/router/web/helpers/StatsGenerator.java:67 +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/helpers/StatsGenerator.java:68 +msgid "These statistics are primarily used for development and debugging." +msgstr "统计主要用于 I2P 的开发和调试。" + +#: ../java/src/net/i2p/router/web/helpers/StatsGenerator.java:72 +msgid "Jump to section" +msgstr "跳到下一部分" + +#. TODO this is broken for non-js +#: ../java/src/net/i2p/router/web/helpers/StatsGenerator.java:96 +msgid "GO" +msgstr "執行" + +#: ../java/src/net/i2p/router/web/helpers/StatsGenerator.java:138 +#: ../java/src/net/i2p/router/web/helpers/StatsGenerator.java:189 +msgid "No lifetime events" +msgstr "全程無事件" + +#: ../java/src/net/i2p/router/web/helpers/StatsGenerator.java:149 +msgid "frequency" +msgstr "更新頻率" + +#: ../java/src/net/i2p/router/web/helpers/StatsGenerator.java:153 +msgid "Rolling average events per period" +msgstr "每週期事件滾動均值" + +#: ../java/src/net/i2p/router/web/helpers/StatsGenerator.java:157 +msgid "Highest events per period" +msgstr "每週期事件峰值" + +#. if (showAll && (curFreq.getMaxAverageEventsPerPeriod() > 0) && +#. (curFreq.getAverageEventsPerPeriod() > 0) ) { +#. buf.append("(current is "); +#. buf.append(pct(curFreq.getAverageEventsPerPeriod()/curFreq.getMaxAverageEventsPerPeriod())); +#. buf.append(" of max)"); +#. } +#. buf.append(" avg interval between updates: +#. (").append(num(curFreq.getAverageInterval())).append("ms, min "); +#. buf.append(num(curFreq.getMinAverageInterval())).append("ms)"); +#: ../java/src/net/i2p/router/web/helpers/StatsGenerator.java:168 +msgid "Lifetime average events per period" +msgstr "全程每週期事件均值" + +#. Display the strict average +#: ../java/src/net/i2p/router/web/helpers/StatsGenerator.java:173 +msgid "Lifetime average frequency" +msgstr "全程平均頻率" + +#: ../java/src/net/i2p/router/web/helpers/StatsGenerator.java:176 +#: ../java/src/net/i2p/router/web/helpers/StatsGenerator.java:269 +#, java-format +msgid "{0} event" +msgid_plural "{0} events" +msgstr[0] "{0} 事件" + +#: ../java/src/net/i2p/router/web/helpers/StatsGenerator.java:201 +msgid "rate" +msgstr "速度" + +#: ../java/src/net/i2p/router/web/helpers/StatsGenerator.java:203 +msgid "Average" +msgstr "平均" + +#: ../java/src/net/i2p/router/web/helpers/StatsGenerator.java:206 +msgid "Highest average" +msgstr "最高均值" + +#: ../java/src/net/i2p/router/web/helpers/StatsGenerator.java:234 +#, java-format +msgid "There was {0} event in this period." +msgid_plural "There were {0} events in this period." +msgstr[0] "此周期内有 {0} 个事件。" + +#: ../java/src/net/i2p/router/web/helpers/StatsGenerator.java:236 +#, java-format +msgid "The period ended {0} ago." +msgstr "该周期结束于 {0} 前。" + +#: ../java/src/net/i2p/router/web/helpers/StatsGenerator.java:239 +msgid "No events" +msgstr "無事件" + +#: ../java/src/net/i2p/router/web/helpers/StatsGenerator.java:244 +msgid "Average event count" +msgstr "平均事件計數" + +#: ../java/src/net/i2p/router/web/helpers/StatsGenerator.java:246 +msgid "Events in peak period" +msgstr "事件峰值" + +#: ../java/src/net/i2p/router/web/helpers/StatsGenerator.java:254 +#: ../java/src/net/i2p/router/web/helpers/TunnelRenderer.java:323 +msgid "Graph Data" +msgstr "圖表資料" + +#: ../java/src/net/i2p/router/web/helpers/StatsGenerator.java:257 +msgid "Graph Event Count" +msgstr "圖表事件計數" + +#. Display the strict average +#: ../java/src/net/i2p/router/web/helpers/StatsGenerator.java:266 +msgid "Lifetime average value" +msgstr "全程均值" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:43 +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:150 +msgid "Help & FAQ" +msgstr "幫助與常見問答" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:44 +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:289 +msgid "I2P Services" +msgstr "I2P 服務" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:45 +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:338 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:445 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configadvanced_jsp.java:445 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:454 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configfamily_jsp.java:445 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confighome_jsp.java:435 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configi2cp_jsp.java:448 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:435 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:424 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confignet_jsp.java:445 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:435 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configplugins_jsp.java:454 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configreseed_jsp.java:445 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:435 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configsidebar_jsp.java:446 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:419 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configtunnels_jsp.java:445 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configui_jsp.java:447 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:426 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configwebapps_jsp.java:448 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/error500_jsp.java:263 +msgid "Configuration" +msgstr "設定" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:46 +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:412 +msgid "Diagnostics" +msgstr "诊断信息" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:47 +msgid "Router Information" +msgstr "路由信息" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:48 +msgid "Router Information (brief)" +msgstr "路由信息(简要)" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:49 +msgid "Router Information (advanced)" +msgstr "路由信息(高级)" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:50 +msgid "Memory Usage Bar" +msgstr "内存使用栏" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:51 +msgid "Network Reachability" +msgstr "网络可达性" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:52 +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:790 +msgid "Update Status" +msgstr "更新状态" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:53 +msgid "Restart Status" +msgstr "重启状态" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:55 +msgid "Peers (advanced)" +msgstr "对等节点(高级)" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:56 +msgid "Firewall & Reseed Status" +msgstr "防火墙 & 补种状态" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:58 +msgid "Bandwidth Graph" +msgstr "流量圖" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:60 +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:1071 +msgid "Congestion" +msgstr "擁堵" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:61 +msgid "Tunnel Status" +msgstr "隧道状态" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:62 +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:361 +#: ../java/src/net/i2p/router/web/helpers/SummaryHelper.java:609 +msgid "Local Tunnels" +msgstr "本地隧道" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:63 +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:1169 +msgid "News & Updates" +msgstr "新聞和更新" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:64 +msgid "Advanced Links" +msgstr "高级连接" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:148 +msgid "I2P Router Help & FAQ" +msgstr "I2P 使用幫助與常見問答" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:158 +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:506 +msgid "Changelog" +msgstr "更改日志" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:160 +msgid "Recent development changes to the router" +msgstr "路由最近开发变更" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:166 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:443 +msgid "FAQ" +msgstr "常見問答" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:169 +msgid "A shortened version of the official Frequently Asked Questions" +msgstr "简要版官方常见问题" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:175 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:445 +msgid "Licenses" +msgstr "许可协议" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:178 +msgid "Information regarding software and licenses used by I2P" +msgstr "I2P 使用的软件和许可证信息" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:187 +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:756 +msgid "Information about the network status" +msgstr "关于网络状态的信息" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:196 +msgid "An introduction to the router sidebar" +msgstr "路由侧栏介绍" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:202 +msgid "Troubleshoot" +msgstr "故障排除" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:205 +msgid "Troubleshooting & Further Assistance" +msgstr "故障排除 & 更多帮助" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:235 +msgid "I2PControl" +msgstr "I2P 控制" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:239 +msgid "RPC Service" +msgstr "RPC 服务" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:261 +msgid "Local web Server" +msgstr "本地网络服务器" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:287 +msgid "" +"Configure startup of clients and webapps (services); manually start dormant " +"services" +msgstr "设置客户端及 Web 应用(服务)的启动;手动启动重要服务" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:336 +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:380 +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:410 +msgid "Configure I2P Router" +msgstr "设置 I2P 路由" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:371 +msgid "Router Help and FAQ" +msgstr "路由帮助和常见问题" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:377 +msgid "Settings" +msgstr "設定" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:386 +msgid "Setup" +msgstr "設定" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:389 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/welcome_jsp.java:319 +msgid "New Install Wizard" +msgstr "新安装向导" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:425 +msgid "Graph router performance" +msgstr "路由效能統計圖" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:435 +msgid "Health Report" +msgstr "健康报告" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:441 +msgid "NetDB" +msgstr "网络数据库" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:453 +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:805 +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:869 +msgid "Show all current peer connections" +msgstr "显示所有当前对等节点连接" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:459 +msgid "Profiles" +msgstr "摘要" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:462 +msgid "Show recent peer performance profiles" +msgstr "显示当前对等节点的性能记录" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:471 +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:1019 +msgid "View existing tunnels and tunnel build status" +msgstr "檢視現存隧道及隧道的建立狀態" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:488 +msgid "Advanced Configuration" +msgstr "進階設定" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:498 +msgid "Certs" +msgstr "證書" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:500 +msgid "Review active encryption certificates used in console" +msgstr "查看控制台裡面正在使用已經激活的數位憑證" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:509 +msgid "View full changelog" +msgstr "查看全部的更新日誌" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:515 +msgid "Debug" +msgstr "除錯" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:518 +msgid "View router debug information" +msgstr "查看路由器除錯記錄" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:528 +msgid "View historical log of router events" +msgstr "查看路由事件的历史日志" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:534 +msgid "Jars" +msgstr "jar 檔案" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:537 +msgid "Review extended info about installed .jar and .war files" +msgstr "查看已安裝的 .jar 和 .war 檔案的延伸資訊" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:548 +msgid "Documentation for the I2P API" +msgstr "I2P API 文档" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:553 +msgid "Jobs" +msgstr "任務" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:556 +msgid "Show the router's workload, and how it's performing" +msgstr "显示路由工作负载及性能" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:565 +msgid "View active leasesets (debug mode)" +msgstr "查看活动租契集(调试模式)" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:571 +msgid "NetDB Search" +msgstr "搜索 NetDB" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:574 +msgid "Network database search tool" +msgstr "網路資料庫搜索工具" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:583 +msgid "Textual router performance statistics" +msgstr "路由效能文字統計" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:589 +msgid "Sybils" +msgstr "女巫攻擊" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:592 +msgid "Review possible sybils in network database" +msgstr "在網路資料庫中檢閱可能發生的女巫攻擊" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:609 +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:669 +#, java-format +msgid "" +"Your Local Identity [{0}] is your unique I2P router identity, similar to an " +"IP address but tailored to I2P. " +msgstr "您的本地身份 [{0}] 是您的独一无二的 I2P 路由身份,类似于 IP 地址但特定于 I2P。" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:610 +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:670 +msgid "Never disclose this to anyone, as it can reveal your real world IP." +msgstr "绝对不要将它泄露给任何人,因为它能揭露您的真实世界 IP。" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:612 +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:672 +msgid "Router Info" +msgstr "路由信息" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:617 +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:643 +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:677 +msgid "The version of the I2P software we are running" +msgstr "当前运行的 I2P 软件版本" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:627 +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:653 +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:687 +msgid "How long we've been running for this session" +msgstr "本次路由執行時間" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:697 +msgid "Difference between network-synced time and local time" +msgstr "网络同步时间和本地时间的差" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:700 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:637 +msgid "Clock Skew" +msgstr "时钟偏差" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:707 +msgid "" +"How much RAM I2P is using / total RAM available to I2P (excludes RAM " +"allocated to the JVM)" +msgstr "I2P 使用的内存 / I2P 可用的总内存(排除分配给 JVM 的内存)" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:710 +msgid "Memory" +msgstr "記憶體" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:767 +msgid "See more information on the wiki" +msgstr "在 wiki 檢視更多資訊" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:769 +msgid "Warning: ECDSA is not available. Update your Java or OS" +msgstr "警告:ECDSA 不可用。請更新您的 Java 或作業系統" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:774 +#, java-format +msgid "Warning: Java version {0} is no longer supported by I2P." +msgstr "警告:Java 版本 {0} 不再受到 I2P 支援。" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:776 +#, java-format +msgid "Update Java to version {0} or higher to receive I2P updates." +msgstr "更新 Java 到 {0} 或更高版本以接收 I2P 更新。" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:788 +msgid "Configure I2P Updates" +msgstr "设置 I2P 更新" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:813 +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:877 +msgid "Peers we've been talking to in the last few minutes/last hour" +msgstr "路由连接过的对等节点数量 过去数分钟/过去一小时" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:816 +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:880 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:485 +msgid "Active" +msgstr "活跃中的" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:825 +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:889 +msgid "The number of peers available for building client tunnels" +msgstr "可用来建立客户端隧道的对等节点数量" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:828 +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:892 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:495 +msgid "Fast" +msgstr "快速" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:834 +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:898 +msgid "The number of peers available for building exploratory tunnels" +msgstr "可用来建立探测隧道的对等节点数量" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:837 +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:901 +msgid "High capacity" +msgstr "高容量" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:843 +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:907 +msgid "The number of peers available for network database inquiries" +msgstr "可用来查询网络数据库的对等节点" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:852 +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:916 +msgid "The total number of peers in our network database" +msgstr "我方网络数据库中记录的对等节点总数量" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:855 +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:919 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:517 +msgid "Known" +msgstr "已知節點" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:925 +msgid "The number of banned peers" +msgstr "已封禁对等节点数量" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:947 +msgid "Configure router bandwidth allocation" +msgstr "設定路由的頻寬配額" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:949 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:470 +msgid "Bandwidth in/out" +msgstr "带宽进/出" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:976 +msgid "Used" +msgstr "已用" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:1008 +msgid "Our inbound & outbound traffic for the last 20 minutes" +msgstr "过去 20 分钟我方入站 & 出站流量" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:1026 +msgid "" +"Used for building and testing tunnels, and communicating with floodfill " +"peers" +msgstr "用来建立或测试隧道,与洪泛对等节点通信" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:1029 +msgid "Exploratory" +msgstr "探測" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:1035 +msgid "Tunnels we are using to provide or access services on the network" +msgstr "用來提供服務或訪問他人服務的隧道。" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:1044 +msgid "" +"Tunnels we are participating in, directly contributing bandwidth to the " +"network" +msgstr "我方參與的隧道,直接為網路貢獻頻寬" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:1047 +msgid "Participating" +msgstr "参与" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:1053 +msgid "" +"The ratio of tunnel hops we provide to tunnel hops we use - a value greater " +"than 1.00 indicates a positive contribution to the network" +msgstr "我方提供與使用的隧道比例 - 大於 1.00 表示對網路作出了積極貢獻" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:1056 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/tunnels_jsp.java:469 +msgid "Share ratio" +msgstr "共享比率" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:1069 +msgid "What's in the router's job queue?" +msgstr "檢視路由的作業佇列" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:1076 +msgid "Indicates router performance" +msgstr "表示路由性能" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:1079 +msgid "Job lag" +msgstr "作業延遲" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:1085 +msgid "Indicates how quickly outbound messages to other I2P routers are sent" +msgstr "表示出站訊息發往其他I2P路由的速度" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:1088 +msgid "Message delay" +msgstr "訊息延遲" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:1095 +msgid "Round trip time for a tunnel test" +msgstr "隧道測試的往返時間" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:1098 +msgid "Tunnel lag" +msgstr "隧道延遲" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:1105 +msgid "Queued requests from other routers to participate in tunnels" +msgstr "請求佇列中來自其他路由的加入隧道請求" + +#: ../java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java:1108 +msgid "Backlog" +msgstr "積壓" + +#: ../java/src/net/i2p/router/web/helpers/SummaryHelper.java:240 +#, java-format +msgid "ERR-Clock Skew of {0}" +msgstr "錯誤-系統時滯 {0}" + +#: ../java/src/net/i2p/router/web/helpers/SummaryHelper.java:245 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:557 +msgid "Testing" +msgstr "测试中" + +#: ../java/src/net/i2p/router/web/helpers/SummaryHelper.java:275 +msgid "ERR-Private TCP Address" +msgstr "错误-私有 TCP 地址" + +#: ../java/src/net/i2p/router/web/helpers/SummaryHelper.java:279 +msgid "ERR-SymmetricNAT" +msgstr "错误-对称 NAT" + +#: ../java/src/net/i2p/router/web/helpers/SummaryHelper.java:285 +msgid "WARN-Firewalled with Inbound TCP Enabled" +msgstr "警告-入站 TCP 已启用但防火墙限制" + +#: ../java/src/net/i2p/router/web/helpers/SummaryHelper.java:290 +msgid "WARN-Firewalled and Floodfill" +msgstr "警告-防火墙限制及洪泛" + +#: ../java/src/net/i2p/router/web/helpers/SummaryHelper.java:296 +msgid "Disconnected - check network connection" +msgstr "已断开 - 请检查网络连接" + +#: ../java/src/net/i2p/router/web/helpers/SummaryHelper.java:299 +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/helpers/SummaryHelper.java:309 +msgid "ERR-No Active Peers, Check Network Connection and Firewall" +msgstr "錯誤-無活動節點,請檢查網路連線及防火牆" + +#: ../java/src/net/i2p/router/web/helpers/SummaryHelper.java:312 +msgid "ERR-UDP Disabled and Inbound TCP host/port not set" +msgstr "错误-UDP 已禁用且 TCP 入站主机与端口未设置" + +#: ../java/src/net/i2p/router/web/helpers/SummaryHelper.java:314 +msgid "WARN-Firewalled with UDP Disabled" +msgstr "警告-防火墙限制且 UDP 已禁用" + +#: ../java/src/net/i2p/router/web/helpers/SummaryHelper.java:606 +msgid "Add/remove/edit & control your client and server tunnels" +msgstr "新增、刪除、編輯或控制客戶端隧道和伺服器隧道" + +#: ../java/src/net/i2p/router/web/helpers/SummaryHelper.java:624 +msgid "Hidden Service" +msgstr "隱身服務" + +#: ../java/src/net/i2p/router/web/helpers/SummaryHelper.java:628 +msgid "Show tunnels" +msgstr "顯示隧道" + +#: ../java/src/net/i2p/router/web/helpers/SummaryHelper.java:639 +msgid "Leases expired" +msgstr "租契已过期" + +#. yellow light +#: ../java/src/net/i2p/router/web/helpers/SummaryHelper.java:639 +#: ../java/src/net/i2p/router/web/helpers/SummaryHelper.java:640 +msgid "Rebuilding" +msgstr "正在重建" + +#. green light +#: ../java/src/net/i2p/router/web/helpers/SummaryHelper.java:643 +msgid "Ready" +msgstr "准备就绪" + +#. yellow light +#: ../java/src/net/i2p/router/web/helpers/SummaryHelper.java:647 +msgid "Building" +msgstr "建立中" + +#: ../java/src/net/i2p/router/web/helpers/SummaryHelper.java:647 +msgid "Building tunnels" +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/helpers/SummaryHelper.java:662 +#: ../java/strings/Strings.java:35 +msgid "shared clients" +msgstr "共享客戶端" + +#: ../java/src/net/i2p/router/web/helpers/SummaryHelper.java:866 +msgid "Click Restart to install" +msgstr "点击重启完成安装" + +#: ../java/src/net/i2p/router/web/helpers/SummaryHelper.java:868 +msgid "Click Shutdown and restart to install" +msgstr "点击关闭并重新启动I2P即可完成安装。" + +#. Note to translators: parameter is a version, e.g. "0.8.4" +#: ../java/src/net/i2p/router/web/helpers/SummaryHelper.java:934 +#, java-format +msgid "Download {0} Update" +msgstr "下載 {0} 更新" + +#. Note to translators: parameter is a router version, e.g. "0.9.19-16" +#.
is optional, to help the browser make the lines even in the button +#. If the translation is shorter than the English, you should probably not +#. include
+#: ../java/src/net/i2p/router/web/helpers/SummaryHelper.java:942 +#, java-format +msgid "Download Signed
Development Update
{0}" +msgstr "下載已簽名的
開發版更新
{0}" + +#. Note to translators: parameter is a date and time, e.g. "02-Mar 20:34 UTC" +#.
is optional, to help the browser make the lines even in the button +#. If the translation is shorter than the English, you should probably not +#. include
+#: ../java/src/net/i2p/router/web/helpers/SummaryHelper.java:950 +#, java-format +msgid "Download Unsigned
Update {0}" +msgstr "下載未簽名
更新{0}" + +#: ../java/src/net/i2p/router/web/helpers/SummaryHelper.java:974 +msgid "Help with firewall configuration" +msgstr "如何配置防火牆" + +#: ../java/src/net/i2p/router/web/helpers/SummaryHelper.java:976 +msgid "Check network connection and NAT/firewall" +msgstr "检查网络连接和 NAT/防火墙" + +#: ../java/src/net/i2p/router/web/helpers/SummaryHelper.java:1012 +msgid "" +"Attempt to download router reference files (if automatic reseed has failed)" +msgstr "尝试下载路由引用文件(如果自动补种失败)" + +#: ../java/src/net/i2p/router/web/helpers/SummaryHelper.java:1013 +msgid "Reseed" +msgstr "補種" + +#: ../java/src/net/i2p/router/web/helpers/SummaryHelper.java:1113 +msgid "Order" +msgstr "排序" + +#: ../java/src/net/i2p/router/web/helpers/SummaryHelper.java:1137 +msgid "Top" +msgstr "頂部" + +#: ../java/src/net/i2p/router/web/helpers/SummaryHelper.java:1142 +msgid "Move to top" +msgstr "移動到頂部" + +#: ../java/src/net/i2p/router/web/helpers/SummaryHelper.java:1152 +msgid "Move up" +msgstr "往上移" + +#: ../java/src/net/i2p/router/web/helpers/SummaryHelper.java:1160 +msgid "Down" +msgstr "向下" + +#: ../java/src/net/i2p/router/web/helpers/SummaryHelper.java:1165 +msgid "Move down" +msgstr "往下移" + +#: ../java/src/net/i2p/router/web/helpers/SummaryHelper.java:1170 +msgid "Bottom" +msgstr "底部" + +#: ../java/src/net/i2p/router/web/helpers/SummaryHelper.java:1175 +msgid "Move to bottom" +msgstr "移動到底部" + +#: ../java/src/net/i2p/router/web/helpers/SummaryHelper.java:1186 +msgid "Select a section to add" +msgstr "選擇要新增的部分" + +#: ../java/src/net/i2p/router/web/helpers/SybilRenderer.java:926 +msgid "Our info" +msgstr "我方資訊" + +#: ../java/src/net/i2p/router/web/helpers/SybilRenderer.java:984 +#: ../java/src/net/i2p/router/web/helpers/SybilRenderer.java:991 +#: ../java/src/net/i2p/router/web/helpers/SybilRenderer.java:998 +msgid "n/a" +msgstr "n/a" + +#. links are set to float:right in CSS so they will be displayed in reverse +#. order +#: ../java/src/net/i2p/router/web/helpers/TunnelRenderer.java:49 +msgid "Configure tunnels" +msgstr "設定網路 tunnel" + +#: ../java/src/net/i2p/router/web/helpers/TunnelRenderer.java:49 +#: ../java/src/net/i2p/router/web/helpers/TunnelRenderer.java:76 +#: ../java/src/net/i2p/router/web/helpers/TunnelRenderer.java:96 +msgid "configure" +msgstr "設定" + +#. links are set to float:right in CSS so they will be displayed in reverse +#. order +#: ../java/src/net/i2p/router/web/helpers/TunnelRenderer.java:76 +#: ../java/src/net/i2p/router/web/helpers/TunnelRenderer.java:96 +msgid "Configure tunnels for session" +msgstr "在 session 下,設定 tunnel" + +#: ../java/src/net/i2p/router/web/helpers/TunnelRenderer.java:80 +#: ../java/src/net/i2p/router/web/helpers/TunnelRenderer.java:98 +msgid "dead" +msgstr "失效" + +#: ../java/src/net/i2p/router/web/helpers/TunnelRenderer.java:107 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/tunnels_jsp.java:459 +msgid "Participating tunnels" +msgstr "参与隧道" + +#: ../java/src/net/i2p/router/web/helpers/TunnelRenderer.java:113 +msgid "Receive on" +msgstr "接收" + +#: ../java/src/net/i2p/router/web/helpers/TunnelRenderer.java:114 +#: ../java/src/net/i2p/router/web/helpers/TunnelRenderer.java:369 +msgid "Expiration" +msgstr "到期" + +#: ../java/src/net/i2p/router/web/helpers/TunnelRenderer.java:114 +msgid "Send on" +msgstr "傳送" + +#: ../java/src/net/i2p/router/web/helpers/TunnelRenderer.java:115 +msgid "Rate" +msgstr "速度" + +#: ../java/src/net/i2p/router/web/helpers/TunnelRenderer.java:115 +msgid "Role" +msgstr "身份" + +#: ../java/src/net/i2p/router/web/helpers/TunnelRenderer.java:115 +#: ../java/src/net/i2p/router/web/helpers/TunnelRenderer.java:211 +#: ../java/src/net/i2p/router/web/helpers/TunnelRenderer.java:369 +msgid "Usage" +msgstr "使用量" + +#: ../java/src/net/i2p/router/web/helpers/TunnelRenderer.java:138 +#: ../java/src/net/i2p/router/web/helpers/TunnelRenderer.java:149 +#: ../java/src/net/i2p/router/web/helpers/TunnelRenderer.java:414 +#: ../java/src/net/i2p/router/web/helpers/TunnelRenderer.java:419 +msgid "Tunnel identity" +msgstr "隧道身份" + +#: ../java/src/net/i2p/router/web/helpers/TunnelRenderer.java:161 +msgid "grace period" +msgstr "過渡期" + +#: ../java/src/net/i2p/router/web/helpers/TunnelRenderer.java:171 +msgid "Outbound Endpoint" +msgstr "出站终端" + +#: ../java/src/net/i2p/router/web/helpers/TunnelRenderer.java:173 +msgid "Inbound Gateway" +msgstr "入站网关" + +#: ../java/src/net/i2p/router/web/helpers/TunnelRenderer.java:175 +#: ../java/src/net/i2p/router/web/helpers/TunnelRenderer.java:375 +msgid "Participant" +msgstr "参与节点" + +#: ../java/src/net/i2p/router/web/helpers/TunnelRenderer.java:181 +#, java-format +msgid "Limited display to the {0} tunnels with the highest usage" +msgstr "已限制为显示使用最多的 {0} 个隧道" + +#: ../java/src/net/i2p/router/web/helpers/TunnelRenderer.java:183 +msgid "Inactive participating tunnels" +msgstr "不活躍的共享隧道" + +#: ../java/src/net/i2p/router/web/helpers/TunnelRenderer.java:186 +#: ../java/src/net/i2p/router/web/helpers/TunnelRenderer.java:456 +msgid "Lifetime bandwidth usage" +msgstr "本次執行頻寬使用量" + +#. bwShare > 12 +#: ../java/src/net/i2p/router/web/helpers/TunnelRenderer.java:231 +msgid "Not enough shared bandwidth to build participating tunnels." +msgstr "没有足够的共享带宽以建立参与隧道" + +#: ../java/src/net/i2p/router/web/helpers/TunnelRenderer.java:232 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/logs_jsp.java:605 +msgid "Configure" +msgstr "設定" + +#. renderPeers(out); +#: ../java/src/net/i2p/router/web/helpers/TunnelRenderer.java:236 +msgid "Bandwidth Tiers" +msgstr "带宽等级" + +#: ../java/src/net/i2p/router/web/helpers/TunnelRenderer.java:368 +msgid "Inbound or outbound?" +msgstr "是 Inbound 或是 Outbound ?" + +#: ../java/src/net/i2p/router/web/helpers/TunnelRenderer.java:369 +msgid "Gateway" +msgstr "閘道器" + +#: ../java/src/net/i2p/router/web/helpers/TunnelRenderer.java:372 +msgid "Participants" +msgstr "參與節點" + +#: ../java/src/net/i2p/router/web/helpers/TunnelRenderer.java:378 +msgid "Endpoint" +msgstr "終端" + +#: ../java/src/net/i2p/router/web/helpers/TunnelRenderer.java:413 +msgid "Locally hosted tunnel" +msgstr "本地托管隧道" + +#: ../java/src/net/i2p/router/web/helpers/TunnelRenderer.java:415 +#: ../java/src/net/i2p/router/web/helpers/TunnelRenderer.java:420 +msgid "Bandwidth tier" +msgstr "带宽等级" + +#: ../java/src/net/i2p/router/web/helpers/TunnelRenderer.java:442 +#: ../java/src/net/i2p/router/web/helpers/TunnelRenderer.java:450 +msgid "Build in progress" +msgstr "建立中" + +#: ../java/src/net/i2p/router/web/helpers/TunnelRenderer.java:457 +msgid "in" +msgstr "入" + +#: ../java/src/net/i2p/router/web/helpers/TunnelRenderer.java:458 +msgid "out" +msgstr "出" + +#. Saved in CSSHelper, assume success +#: ../java/src/net/i2p/router/web/helpers/WizardHandler.java:52 +msgid "Console language saved." +msgstr "控制台语言已保存." + +#: ../java/src/net/i2p/router/web/helpers/WizardHandler.java:59 +msgid "Bandwidth test completed successfully" +msgstr "成功完成带宽测试" + +#: ../java/src/net/i2p/router/web/helpers/WizardHandler.java:61 +msgid "Bandwidth test failed" +msgstr "带宽测试失败" + +#. didn't run at all? +#: ../java/src/net/i2p/router/web/helpers/WizardHandler.java:63 +#: ../java/src/net/i2p/router/web/helpers/WizardHandler.java:66 +msgid "Bandwidth test did not complete" +msgstr "带宽测试未完成" + +#: ../java/src/net/i2p/router/web/helpers/WizardHandler.java:148 +msgid "Bandwidth test started" +msgstr "带宽测试已开始" + +#: ../java/src/net/i2p/router/web/helpers/WizardHandler.java:150 +msgid "Bandwidth test is already running" +msgstr "带宽测试已经在运行了" + +#: ../java/src/net/i2p/router/web/helpers/WizardHandler.java:159 +msgid "Bandwidth test cancelled" +msgstr "带宽测试已取消" + +#: ../java/src/net/i2p/router/web/helpers/WizardHandler.java:161 +msgid "Bandwidth test was not running" +msgstr "带宽测试未运行" + +#. wars for ConfigClientsHelper +#: ../java/strings/Strings.java:12 +msgid "addressbook" +msgstr "地址簿" + +#: ../java/strings/Strings.java:13 +msgid "i2psnark" +msgstr "i2psnark" + +#: ../java/strings/Strings.java:14 +msgid "i2ptunnel" +msgstr "I2P 隧道" + +#: ../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 "路由控制檯" + +#. 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 I2P Site web server" +msgstr "我的 I2P 网站网络服务器" + +#: ../java/strings/Strings.java:26 +msgid "I2P webserver (I2P Site)" +msgstr "I2P 网络服务(I2P 网站)" + +#: ../java/strings/Strings.java:27 +msgid "Browser launch at startup" +msgstr "路由器啟動時啟動瀏覽器" + +#: ../java/strings/Strings.java:29 +msgid "Open Router Console in web browser at startup" +msgstr "路由啟動時開啟網頁版路由控制檯" + +#: ../java/strings/Strings.java:36 +msgid "IRC proxy" +msgstr "IRC 代理" + +#: ../java/strings/Strings.java:37 +msgid "I2P Site" +msgstr "I2P 网页" + +#: ../java/strings/Strings.java:38 +msgid "I2P webserver" +msgstr "I2P 网络服务器" + +#: ../java/strings/Strings.java:39 +msgid "HTTP Proxy" +msgstr "HTTP 代理" + +#. hardcoded in i2psnark +#: ../java/strings/Strings.java:41 +msgid "I2PSnark" +msgstr "I2PSnark" + +#. standard themes for ConfigUIHelper +#: ../java/strings/Strings.java:45 +msgid "dark" +msgstr "暗色調" + +#: ../java/strings/Strings.java:46 +msgid "light" +msgstr "亮色调" + +#: ../java/strings/Strings.java:51 +msgid "Encryption" +msgstr "加密" + +#: ../java/strings/Strings.java:54 +msgid "Stream" +msgstr "流" + +#. parameters in transport addresses (netdb.jsp) +#. may or may not be worth translating +#: ../java/strings/Strings.java:60 +msgid "host" +msgstr "主機" + +#: ../java/strings/Strings.java:61 +msgid "key" +msgstr "金鑰" + +#: ../java/strings/Strings.java:62 +msgid "port" +msgstr "埠" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/certs_jsp.java:237 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/certs_jsp.java:414 +msgid "Certificates" +msgstr "證書" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/certs_jsp.java:246 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:252 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configadvanced_jsp.java:252 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:252 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configfamily_jsp.java:252 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confighome_jsp.java:252 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configi2cp_jsp.java:252 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:252 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:248 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confignet_jsp.java:252 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:252 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configplugins_jsp.java:252 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configreseed_jsp.java:252 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:252 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configsidebar_jsp.java:252 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:249 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configtunnels_jsp.java:252 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configui_jsp.java:252 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:248 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configwebapps_jsp.java:252 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/console_jsp.java:246 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/debug_jsp.java:251 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/dns_jsp.java:276 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/error_jsp.java:269 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/events_jsp.java:260 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/graph_jsp.java:271 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/graphs_jsp.java:274 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:254 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/home_jsp.java:248 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/i2ptunnelmgr_jsp.java:276 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/jars_jsp.java:250 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/jobs_jsp.java:246 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/logs_jsp.java:250 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/netdb_jsp.java:247 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/news_jsp.java:250 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/nowebapp_jsp.java:254 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/oldconsole_jsp.java:251 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/peers_jsp.java:246 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/profiles_jsp.java:246 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/stats_jsp.java:246 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/torrents_jsp.java:277 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/tunnels_jsp.java:250 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/viewprofile_jsp.java:246 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/webmail_jsp.java:277 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/welcome_jsp.java:330 +msgid "Router is down" +msgstr "路由器已關閉" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:242 +msgid "configure bandwidth" +msgstr "配置頻寬" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:559 +msgid "Advanced Network Configuration" +msgstr "進階網路設定" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:561 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/welcome_jsp.java:579 +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:563 +msgid "All sidebar values are in bytes per second, not bits per second." +msgstr "所有侧栏值单位为字节每秒,不是比特每秒" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:565 +msgid "You may change your bandwidth limits here." +msgstr "您可以在此更改您的带宽限制" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:567 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:479 +msgid "" +"The more bandwidth you make available, the more you help the network and " +"improve your own anonymity, so please take the time to review the settings." +msgstr "您可用的带宽越多,您对网络的帮助越多,对您的匿名性提升越多,因此请花时间查看设置。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:569 +msgid "" +"If you are unsure of your network's speed, use the Bandwidth Test." +msgstr "如果您不确定您的网络速度,使用带宽测试。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:571 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:481 +msgid "" +"Your upstream share amount (KBps Out) will determine your overall " +"contribution to the network." +msgstr "您的上行共享总量(KBps 出站)将决定您对网络的总体贡献。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:576 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/welcome_jsp.java:583 +msgid "KBps In" +msgstr "KB/s 入站" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:584 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/welcome_jsp.java:590 +msgid "KBps Out" +msgstr "KB/s 出站" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:591 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/welcome_jsp.java:596 +msgid "Share" +msgstr "分享" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:598 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configadvanced_jsp.java:620 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/welcome_jsp.java:603 +msgid "NOTE" +msgstr "注意" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:600 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/welcome_jsp.java:605 +#, java-format +msgid "You have configured I2P to share only {0} KBps." +msgstr "您已設定 I2P 僅共享 {0} KB/s。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:603 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/welcome_jsp.java:608 +msgid "I2P requires at least 12KBps to enable sharing. " +msgstr "I2P 需要至少 12KB/s 才能進行共享。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:604 +msgid "" +"Please enable sharing (participating in tunnels) by configuring more " +"bandwidth. " +msgstr "請設定更多的頻寬以便啟用共享功能(參與到其他節點的隧道建立中)。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:605 +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:607 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/welcome_jsp.java:613 +#, java-format +msgid "You have configured I2P to share {0} KBps." +msgstr "您已設定 I2P 共享 {0} KB/s。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:610 +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/configadvanced_jsp.java:242 +msgid "config advanced" +msgstr "高階設定" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configadvanced_jsp.java:555 +msgid "" +"Most of the router configuration options listed below are not available in " +"the user interface, because they are rarely used or provide access to " +"advanced settings that most users will not need." +msgstr "下方列出的大部分路由配置选项在用户界面不可用,因为它们极少用到或提供大部分用户不需要的高级设置。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configadvanced_jsp.java:557 +msgid "" +"You must edit your router.config file to add options, or, if " +"you have added routerconsole.advanced=true to the router.config" +" file, you may edit settings within the console on this page." +msgstr "您必须编辑您的 router.config 文件以添加选项,或者,如果您已经添加 routerconsole.advanced=true 到 router.config 文件,您可以在此页面控制台内编辑设置。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configadvanced_jsp.java:559 +msgid "Floodfill Configuration" +msgstr "播種配置" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configadvanced_jsp.java:561 +msgid "" +"Floodfill participation helps the network, but may use more of your " +"computer's resources." +msgstr "參與路由器的 Floodfill 運算,將會幫助整個網路,但會多消耗一些您電腦的資源" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configadvanced_jsp.java:568 +msgid "This router is currently a floodfill participant." +msgstr "這個路由器目前參與播種。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configadvanced_jsp.java:575 +msgid "This router is not currently a floodfill participant." +msgstr "這個路由器目前不參與播種。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configadvanced_jsp.java:583 +msgid "Enrollment" +msgstr "註冊" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configadvanced_jsp.java:589 +msgid "Automatic" +msgstr "自動" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configadvanced_jsp.java:595 +msgid "Force On" +msgstr "強制開啟" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configadvanced_jsp.java:601 +msgid "Disable" +msgstr "停用" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configadvanced_jsp.java:605 +msgid "Advanced I2P Configuration" +msgstr "I2P 高階設定" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configadvanced_jsp.java:622 +msgid "Some changes may require a restart to take effect." +msgstr "某些設定需要程式重啟後生效。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configadvanced_jsp.java:626 +#, java-format +msgid "To make changes, edit the file: {0}" +msgstr "如果需要修改,請編輯檔案:{0}" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configadvanced_jsp.java:648 +msgid "Advanced Configuration Help" +msgstr "高级配置帮助" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configadvanced_jsp.java:650 +msgid "Only set this to true if you know what you are doing!" +msgstr "仅在您知道您在做什么时将其设置为 true。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configadvanced_jsp.java:652 +msgid "" +"When set to true, additional functionality will be enabled in the console " +"and the user will be able to edit settings directly on this page" +msgstr "当设置为 true,将在控制台启用附加功能,用户将可以在此页面直接编辑设置。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configadvanced_jsp.java:656 +msgid "" +"Extra display options are provided in the Network " +"Database section." +msgstr "额外显示选项在网络数据库章节提供。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configadvanced_jsp.java:659 +msgid "This will also enable the installation of unsigned updates." +msgstr "这将启用未签名安装。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configadvanced_jsp.java:661 +msgid "" +"You may also wish to enable the advanced sidebar section on the Sidebar Configuration page." +msgstr "您或许也希望在侧栏配置页面启用高级侧栏部分。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configadvanced_jsp.java:663 +msgid "" +"This setting allows the manual selection of the browser which I2P will " +"launch on startup." +msgstr "此设置允许手动选择 I2P 启动时启动的浏览器。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configadvanced_jsp.java:665 +msgid "" +"When set to true, a configurable search bar will appear on the console home page" +msgstr "当设置为 true,可配置的搜索栏将出现在控制台主页上" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configadvanced_jsp.java:669 +msgid "" +"Additional searches may then be added on the home " +"configuration page." +msgstr "附加搜索可以之后在主配置页面添加。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configadvanced_jsp.java:671 +msgid "" +"Determines the maximum number of participating tunnels the router will " +"accept." +msgstr "决定路由将接受的参与隧道的最大数量。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configadvanced_jsp.java:673 +msgid "To disable participation completely, set to 0." +msgstr "设为 0 以完全禁用参与。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:242 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configi2cp_jsp.java:242 +msgid "config clients" +msgstr "设置客户端" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:267 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configplugins_jsp.java:267 +#, java-format +msgid "Are you sure you want to delete {0}?" +msgstr "您確定要刪除 {0} 嗎?" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:564 +msgid "Client Configuration" +msgstr "客戶端設定" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:566 +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:574 +#, java-format +msgid "To change client options, edit the files in the directory {0}." +msgstr "要更改客户端选项,请编辑文件夹 {0} 中的文件。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:580 +#, java-format +msgid "To change client options, edit the file {0}." +msgstr "要更改客户端选项,请编辑文件 {0}。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:588 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configi2cp_jsp.java:568 +msgid "All changes require restart to take effect." +msgstr "所有更改均需要程式重啟才能生效。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:590 +msgid "" +"Be careful changing any settings here. The 'router console' and 'application" +" tunnels' are required for most uses of I2P. Only advanced users should " +"change these." +msgstr "請謹慎更改這裡的任何設定。路由器控制檯和應用程式隧道是 I2P 的主要用途。僅供專家使用者更改這些。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configfamily_jsp.java:242 +msgid "config router family" +msgstr "配置路由器家族" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configfamily_jsp.java:554 +msgid "Routers in the same family share a family key." +msgstr "在同一家族的路由器共用一把家族金鑰。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configfamily_jsp.java:563 +msgid "" +"To join an existing family, import the private key you exported from a " +"router in the family." +msgstr "輸入由家族路由產生的密鑰以便加入該家族。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configfamily_jsp.java:565 +msgid "To start a new family, enter a family name." +msgstr "輸入家族名稱以開始新家族。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configfamily_jsp.java:569 +msgid "Join Existing Router Family" +msgstr "加入現有的路由家族" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configfamily_jsp.java:571 +msgid "" +"Import the secret family key that you exported from an existing router in " +"the family." +msgstr "輸入由現有路由家族產生的家族密鑰" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configfamily_jsp.java:573 +msgid "Select secret key file" +msgstr "選擇密鑰資料夾" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configfamily_jsp.java:579 +msgid "Create New Router Family" +msgstr "建立新路由家族" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configfamily_jsp.java:581 +msgid "Family Name" +msgstr "家族名稱" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configfamily_jsp.java:594 +#, java-format +msgid "The current router family is {0}." +msgstr "当前路由器家族为 {0}" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configfamily_jsp.java:596 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configfamily_jsp.java:600 +msgid "Export Family Key" +msgstr "輸出家族金鑰" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configfamily_jsp.java:598 +msgid "" +"Export the secret family key to be imported into other routers you control." +msgstr "產生家族密鑰,以便輸入至您控管的其他路由。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configfamily_jsp.java:607 +#, java-format +msgid "Restart required to activate family {0}." +msgstr "產生家族需要先重啓 {0}。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configfamily_jsp.java:609 +msgid "After restarting, you may export the family key." +msgstr "重啟後,您便可輸出家族金鑰。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configfamily_jsp.java:617 +msgid "Leave Router Family" +msgstr "離開路由器家族" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configfamily_jsp.java:619 +#, java-format +msgid "No longer be a member of the family {0}." +msgstr "不再是家族成員{0}。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confighome_jsp.java:242 +msgid "config home" +msgstr "配置主頁" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confighome_jsp.java:554 +msgid "Default Home Page" +msgstr "預設主頁" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confighome_jsp.java:560 +msgid "Use old home page" +msgstr "使用舊版主頁" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confighome_jsp.java:568 +msgid "Search Engines" +msgstr "搜尋引擎" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configi2cp_jsp.java:558 +msgid "Advanced Client Interface Configuration" +msgstr "高级客户端接口设置" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configi2cp_jsp.java:562 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confignet_jsp.java:559 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configreseed_jsp.java:574 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configreseed_jsp.java:654 +msgid "The default settings will work for most people." +msgstr "預設設定適於大多數人。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configi2cp_jsp.java:564 +msgid "Any changes made here must also be configured in the external client." +msgstr "對於此處的做出的任何更改,外部客戶端程式中也必須做出相應設定。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configi2cp_jsp.java:566 +msgid "Many clients do not support SSL or authorization." +msgstr "很多客户端程序还不支持 SSL 或认证。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configi2cp_jsp.java:570 +msgid "External I2CP (I2P Client Protocol) Interface Configuration" +msgstr "外部 I2CP(I2P 客户端协议)接口设置" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configi2cp_jsp.java:576 +msgid "Enabled without SSL" +msgstr "啟用無需 SSL" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configi2cp_jsp.java:582 +msgid "Enabled with SSL required" +msgstr "啟用強制 SSL" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configi2cp_jsp.java:594 +msgid "Disabled - Clients outside this Java process may not connect" +msgstr "禁用 - 這個 Java 程序之外的客戶端可能無法連線" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configi2cp_jsp.java:600 +msgid "I2CP Interface" +msgstr "I2CP 介面" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configi2cp_jsp.java:616 +msgid "I2CP Port" +msgstr "I2CP 埠" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configi2cp_jsp.java:620 +msgid "Authorization" +msgstr "授權" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configi2cp_jsp.java:626 +msgid "Require username and password" +msgstr "需要使用者名稱和密碼登入" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:242 +msgid "config keyring" +msgstr "设置密钥环" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:557 +msgid "The router keyring is used to decrypt encrypted leaseSets." +msgstr "路由密钥环用于解密加密租赁集。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:560 +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:566 +msgid "Manual Keyring Addition" +msgstr "手动添加密钥环" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:568 +msgid "Enter keys for encrypted remote destinations here." +msgstr "在此處新增遠端加密目標的金鑰。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:576 +msgid "Keys for local destinations must be entered on the" +msgstr "輸入本地目標的金鑰請到" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:578 +msgid "I2PTunnel page" +msgstr "I2P 隧道頁面" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:586 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:598 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:622 +msgid "Enter key provided by server operator." +msgstr "输入服务器操作者的密钥" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:590 +msgid "Prevents server discovery by floodfills" +msgstr "通过洪泛预防服务器发现" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:594 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:612 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:630 +msgid "Enter password provided by server operator." +msgstr "输入服务器操作者的密码" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:602 +msgid "Enter key and password provided by server operator." +msgstr "输入服务器操作者的密钥和密码" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:606 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:614 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:626 +msgid "Key will be generated." +msgstr "密钥将被生成" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:624 +msgid "Leave blank for DH option." +msgstr "为 DH 选项留出空白" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:628 +msgid "Optional lookup password" +msgstr "可选查找密码" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:239 +msgid "config logging" +msgstr "日誌設定" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:528 +msgid "Configure I2P Logging Options" +msgstr "設定 I2P 記錄選項" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:530 +msgid "View Router Logs" +msgstr "查看路由日誌" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:532 +msgid "View Logs" +msgstr "查看日誌" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:534 +msgid "Log file" +msgstr "日誌檔名稱" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:536 +#, java-format +msgid "Edit {0} to change" +msgstr "編輯 {0} 以更改" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:540 +msgid "(the symbol '@' will be replaced during log rotation)" +msgstr "(日志轮转时符号'@'将被替换)" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:542 +msgid "Log record format" +msgstr "日誌記錄格式" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:546 +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:548 +msgid "Log date format" +msgstr "日誌日期格式" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:552 +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:554 +msgid "Max log file size" +msgstr "日誌最大體積" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:562 +msgid "Compress logs?" +msgstr "压缩日志?" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:570 +msgid "Default log level" +msgstr "預設日誌等級" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:574 +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:576 +msgid "Log level overrides" +msgstr "覆蓋日誌等級" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:580 +msgid "New override" +msgstr "新建參數" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confignet_jsp.java:242 +msgid "config networking" +msgstr "網路設定" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confignet_jsp.java:557 +msgid "IP and Transport Configuration" +msgstr "IP 與傳輸設定" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confignet_jsp.java:562 +msgid "Changing these settings will restart your router." +msgstr "更改這個設定將會重啟您的路由器" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confignet_jsp.java:564 +msgid "" +"Do not reveal your port numbers to anyone, as they can be used to discover " +"your IP address." +msgstr "不要向任何人透露您的網路端口號碼,因為它們可以用來查找您的 IP 位址。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confignet_jsp.java:566 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:531 +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/confignet_jsp.java:568 +msgid "" +"If you can, please poke a hole in your firewall to allow unsolicited UDP and" +" TCP packets to reach you." +msgstr "如果可能,请在防火墙中添加端口并允许入站 UDP 和 TCP 数据包通过。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confignet_jsp.java:570 +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(通用即插即用)或借助“SSU 中介”进行 UDP 端口穿透,通过它们也可以中继流量。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confignet_jsp.java:572 +msgid "" +"Most of the options on the Network Configuration page are for special " +"situations, for example where UPnP does not work correctly, or a firewall " +"not under your control is doing harm." +msgstr "网络配置页面上的大多数选项适用于特殊情况,例如 UPnP 无法正常工作,或者您无法控制的防火墙造成损害。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confignet_jsp.java:574 +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/confignet_jsp.java:576 +msgid "" +"Also, do not enter a private IP address like 127.0.0.1 or " +"192.168.1.1." +msgstr "此外,请勿输入私有地址如 127.0.0.1 或 192.168.1.1 等。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confignet_jsp.java:578 +msgid "" +"If you specify the wrong IP address, or do not properly configure your NAT " +"or firewall, your network performance will degrade substantially." +msgstr "如果你指定了错误的 IP 地址或主机名称,或者 NAT 或防火墙配置不当,你的网络性能将受到明显影响。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confignet_jsp.java:580 +msgid "When in doubt, leave the settings at the defaults." +msgstr "如果對設定有疑問,請保留預設設定。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confignet_jsp.java:582 +msgid "UPnP Configuration" +msgstr "UPnP 設定" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confignet_jsp.java:588 +msgid "Enable UPnP to open firewall ports" +msgstr "启用 UPnP 以打开防火墙端口" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confignet_jsp.java:590 +msgid "IP Configuration" +msgstr "IP 設定" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confignet_jsp.java:592 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confignet_jsp.java:698 +msgid "Externally reachable IP address" +msgstr "外网可访的 IP 地址" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confignet_jsp.java:596 +msgid "Use all auto-detect methods" +msgstr "使用全部自動探測方法" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confignet_jsp.java:600 +msgid "Disable UPnP IP address detection" +msgstr "禁用 UPnP IP 地址探測" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confignet_jsp.java:604 +msgid "Ignore local interface IP address" +msgstr "忽略本地介面的 IP 地址" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confignet_jsp.java:608 +msgid "Use SSU IP address detection only" +msgstr "僅使用 SSU IP 地址探測" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confignet_jsp.java:612 +msgid "Hidden mode - do not publish IP" +msgstr "隱身模式 - 不釋出 IP" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confignet_jsp.java:614 +msgid "(prevents participating traffic)" +msgstr "(避免共享流量)" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confignet_jsp.java:618 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confignet_jsp.java:726 +msgid "Specify hostname or IP" +msgstr "指定主機名或 IP" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confignet_jsp.java:622 +msgid "IPv4 Configuration" +msgstr "IPv4 配置" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confignet_jsp.java:626 +msgid "" +"Disable inbound (Firewalled by home network, ISP, DS-Lite, or carrier-grade " +"NAT)" +msgstr "禁用入站(受到家庭网络、网络服务提供商、DS-Lite 或机构级 NAT 防火墙限制)" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confignet_jsp.java:628 +msgid "IPv6 Configuration" +msgstr "IPv6 設定" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confignet_jsp.java:632 +msgid "Prefer IPv4 over IPv6" +msgstr "IPv4 優先於 IPv6" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confignet_jsp.java:636 +msgid "Prefer IPv6 over IPv4" +msgstr "IPv6 優先於 IPv4" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confignet_jsp.java:640 +msgid "Enable IPv6" +msgstr "啟用 IPv6" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confignet_jsp.java:644 +msgid "Disable IPv6" +msgstr "禁用 IPv6" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confignet_jsp.java:648 +msgid "Use IPv6 only (disable IPv4)" +msgstr "只使用 IPv6 (禁用 IPv4)" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confignet_jsp.java:650 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confignet_jsp.java:662 +msgid "Experimental" +msgstr "試驗性" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confignet_jsp.java:654 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confignet_jsp.java:716 +msgid "Disable inbound (Firewalled)" +msgstr "禁用入站连接(受到防火墙限制)" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confignet_jsp.java:656 +msgid "Action when IP changes" +msgstr "IP 改变后动作" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confignet_jsp.java:660 +msgid "" +"Laptop mode - Change router identity and UDP port when IP changes for " +"enhanced anonymity" +msgstr "笔记本模式 - IP 变化后改变路由身份及 UDP 端口以增强匿名性" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confignet_jsp.java:664 +msgid "UDP Configuration" +msgstr "UDP 設定" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confignet_jsp.java:666 +msgid "UDP port:" +msgstr "UDP 埠:" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confignet_jsp.java:670 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confignet_jsp.java:686 +msgid "Specify Port" +msgstr "指定埠" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confignet_jsp.java:676 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confignet_jsp.java:720 +msgid "Completely disable" +msgstr "完全禁用" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confignet_jsp.java:678 +msgid "(select only if behind a firewall that blocks outbound UDP)" +msgstr "(仅在防火墙限制出站 UDP 时选择)" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confignet_jsp.java:680 +msgid "TCP Configuration" +msgstr "TCP 連線設定" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confignet_jsp.java:682 +msgid "Externally reachable TCP port" +msgstr "公网可访问的 TCP 端口" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confignet_jsp.java:692 +msgid "Use the same port configured for UDP" +msgstr "使用与 UDP 相同的端口" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confignet_jsp.java:694 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confignet_jsp.java:704 +msgid "currently" +msgstr "目前" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confignet_jsp.java:702 +msgid "Use auto-detected IP address" +msgstr "使用自動檢測得到的 IP 地址" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confignet_jsp.java:708 +msgid "if we are not firewalled" +msgstr "如果没有受到防火墙限制" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confignet_jsp.java:712 +msgid "Always use auto-detected IP address (Not firewalled)" +msgstr "總是使用自動探測到的 IP 地址(沒有防火牆限制)" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confignet_jsp.java:722 +msgid "" +"(select only if behind a firewall that throttles or blocks outbound TCP)" +msgstr "(仅在防火墙限制或阻止出站 TCP 时选用)" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:242 +msgid "config peers" +msgstr "设置对等节点" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:579 +msgid "Manual Peer Controls" +msgstr "手动对等节点控制" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:581 +msgid "Router Hash" +msgstr "路由散列值" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:585 +msgid "Manually Ban / Unban a Peer" +msgstr "手动封禁/解封对等节点" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:587 +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:606 +msgid "Adjust Profile Bonuses" +msgstr "调整配置文件评分" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:608 +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:610 +msgid "profiles page" +msgstr "節點摘要頁面" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:647 +msgid "Banned IPs" +msgstr "已封禁 IP" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configplugins_jsp.java:242 +msgid "config plugins" +msgstr "設定插件" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configplugins_jsp.java:569 +msgid "Plugin Configuration" +msgstr "外掛設定" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configplugins_jsp.java:571 +msgid "The plugins listed below are started by the webConsole client." +msgstr "下面列出的外掛將由 webConsole 客戶端負責啟動。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configplugins_jsp.java:586 +msgid "Plugin Installation" +msgstr "安裝插件" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configplugins_jsp.java:588 +#, java-format +msgid "Look for available plugins on {0}." +msgstr "在 {0} 尋找可用外掛。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configplugins_jsp.java:590 +msgid "Installation from URL" +msgstr "從URL網址來安裝" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configplugins_jsp.java:599 +msgid "To install a plugin, enter the download URL:" +msgstr "安裝外掛前,請輸入外掛的下載連結:" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configplugins_jsp.java:610 +msgid "Installation from File" +msgstr "從檔案來安裝" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configplugins_jsp.java:614 +msgid "Select xpi2p or su3 file" +msgstr "選擇 xpi2p 或者 su3 檔案" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configplugins_jsp.java:638 +msgid "Update All Plugins" +msgstr "更新所有外掛" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configreseed_jsp.java:242 +msgid "config reseeding" +msgstr "设置补种" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configreseed_jsp.java:554 +msgid "" +"Reseeding is the bootstrapping process used to find other routers when you " +"first install I2P, or when your router has too few router references " +"remaining." +msgstr "补种是一个网络引导过程,用于发现其他路由,当您首次安装 I2P 或您的路由仅有很少路由信息。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configreseed_jsp.java:556 +msgid "" +"If reseeding has failed, you should first check your network connection." +msgstr "如果补种失败请先检查您的网络设置,确定本机网络正常。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configreseed_jsp.java:558 +msgid "" +"If a firewall is blocking your connections to reseed hosts, you may have " +"access to a proxy." +msgstr "如果防火墙组织您到补种主机的连接,您可以使用代理。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configreseed_jsp.java:560 +msgid "" +"The proxy may be a remote public proxy, or may be running on your computer " +"(localhost)." +msgstr "代理可能是一个远程公共代理或运行在您的计算机上 (localhost)。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configreseed_jsp.java:562 +msgid "To use a proxy, configure the type, host, and port below." +msgstr "为使用代理,在下方配置类型,主机名和端口。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configreseed_jsp.java:564 +msgid "" +"If you are running Tor Browser, reseed through it by configuring SOCKS 5, " +"localhost, port 9150." +msgstr "如果您在运行 Tor 浏览器,配置 SOCKS 5,localhost,9150 端口以通过它补种。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configreseed_jsp.java:566 +msgid "" +"If you are running command-line Tor, reseed through it by configuring SOCKS " +"5, localhost, port 9050." +msgstr "如果您在运行命令行 Tor,配置 SOCKS 5,localhost,9050 端口以通过它补种。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configreseed_jsp.java:568 +msgid "" +"If you have some peers but need more, you may try the I2P Outproxy option. " +"Leave the host and port blank." +msgstr "如果您有一些对等节点但需要更多,您可以尝试 I2P 出口代理选项。留空主机和端口。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configreseed_jsp.java:570 +msgid "" +"This will not work for an initial reseed when you have no peers at all." +msgstr "对于初始补种这不起作用因为您根本没有对等节点。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configreseed_jsp.java:572 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configreseed_jsp.java:584 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configreseed_jsp.java:592 +#, java-format +msgid "Then, click \"{0}\"." +msgstr "然后,点击 \"{0}\"。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configreseed_jsp.java:576 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configreseed_jsp.java:656 +msgid "" +"Change these only if HTTPS is blocked by a restrictive firewall and reseed " +"has failed." +msgstr "仅在防火墙严格封锁 HTTPS 并且补种失败时更改这些。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configreseed_jsp.java:578 +msgid "" +"If you know and trust somebody that runs I2P, ask them to send you a reseed " +"file generated using this page on their router console." +msgstr "如果您知道并信任某些运行 I2P 的人,要求他们向您发送使用他们路由控制台上此页面生成的补种文件。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configreseed_jsp.java:580 +msgid "Then, use this page to reseed with the file you received." +msgstr "然后,使用此页面从您收到的文件中补种。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configreseed_jsp.java:582 +msgid "First, select the file below." +msgstr "首先,在下方选择一个文件。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configreseed_jsp.java:586 +msgid "" +"If you know and trust somebody that publishes reseed files, ask them for the" +" URL." +msgstr "如果您知道并信任某些发布补种文件的人,向他们索要 URL。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configreseed_jsp.java:588 +msgid "Then, use this page to reseed with the URL you received." +msgstr "然后,使用此页面从您收到的 URL 中补种。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configreseed_jsp.java:590 +msgid "First, enter the URL below." +msgstr "首先,在下方输入 URL。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configreseed_jsp.java:594 +#, java-format +msgid "See {0} for instructions on reseeding manually." +msgstr "手动补种的方法请参见 {0}" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configreseed_jsp.java:594 +msgid "the FAQ" +msgstr "常见问题" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configreseed_jsp.java:596 +msgid "Manual Reseed" +msgstr "手動補種" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configreseed_jsp.java:600 +msgid "" +"The su3 format is preferred, as it will be verified as signed by a trusted " +"source." +msgstr "優選 su3 格式,因為可驗證它被一個可信任的源簽名。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configreseed_jsp.java:602 +msgid "" +"The zip format is unsigned; use a zip file only from a source that you " +"trust." +msgstr "zip 格式是無簽名的;只使用您信任的來源提供的 zip 檔案。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configreseed_jsp.java:606 +msgid "Enter zip or su3 URL" +msgstr "請輸入 zip 或者 su3 URL" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configreseed_jsp.java:619 +msgid "Reseed from File" +msgstr "使用檔案補種" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configreseed_jsp.java:621 +msgid "Select zip or su3 file" +msgstr "選擇 zip 或 su3 檔案" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configreseed_jsp.java:642 +msgid "Create Reseed File" +msgstr "建立補種檔案" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configreseed_jsp.java:644 +msgid "" +"Create a new reseed zip file you may share for others to reseed manually." +msgstr "建立一個新的補種 zip 檔案,可以分享給其他人用於手動補種。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configreseed_jsp.java:646 +msgid "This file will never contain your own router's identity or IP." +msgstr "此檔案永遠不會包含您自己的路由器身份或 IP。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configreseed_jsp.java:648 +msgid "Create reseed file" +msgstr "建立補種檔案" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configreseed_jsp.java:652 +msgid "Reseeding Configuration" +msgstr "补种设置" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configreseed_jsp.java:660 +msgid "Reseed URL Selection" +msgstr "补种 URL 选择" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configreseed_jsp.java:666 +msgid "Try SSL first then non-SSL" +msgstr "先尝试 SSL 再尝试 非 SSL" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configreseed_jsp.java:672 +msgid "Use SSL only" +msgstr "仅使用 SSL" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configreseed_jsp.java:678 +msgid "Use non-SSL only" +msgstr "仅使用非 SSL" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configreseed_jsp.java:682 +msgid "Reseed URLs" +msgstr "补种 URL" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configreseed_jsp.java:690 +msgid "Proxy type for HTTPS reseed URLs" +msgstr "HTTPS 补种 URL 代理类型" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configreseed_jsp.java:696 +msgid "None" +msgstr "無" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configreseed_jsp.java:702 +msgid "HTTPS" +msgstr "HTTPS" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configreseed_jsp.java:708 +msgid "SOCKS 4/4a" +msgstr "SOCKS 4/4a" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configreseed_jsp.java:714 +msgid "SOCKS 5" +msgstr "SOCKS 5" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configreseed_jsp.java:720 +msgid "I2P Outproxy" +msgstr "I2P 出口代理" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configreseed_jsp.java:722 +msgid "Not for initial reseed. Leave host and port blank." +msgstr "不用于初始补种。主机和端口留空。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configreseed_jsp.java:724 +msgid "HTTPS Proxy Host" +msgstr "HTTPS 代理主机" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configreseed_jsp.java:728 +msgid "HTTPS Proxy Port" +msgstr "HTTPS 代理埠" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configreseed_jsp.java:732 +msgid "Use HTTPS Proxy Authorization?" +msgstr "是否使用 HTTPS 代理认证?" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configreseed_jsp.java:736 +msgid "HTTPS Proxy Username" +msgstr "HTTPS 代理使用者名稱" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configreseed_jsp.java:740 +msgid "HTTPS Proxy Password" +msgstr "HTTPS 代理密碼" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configreseed_jsp.java:749 +msgid "Enable proxy for HTTP reseed URLs?" +msgstr "是否为 HTTP 补种 URL 启用代理?" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configreseed_jsp.java:753 +msgid "HTTP Proxy Host" +msgstr "HTTP 代理主机" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configreseed_jsp.java:757 +msgid "HTTP Proxy Port" +msgstr "HTTP 代理埠" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configreseed_jsp.java:761 +msgid "Use HTTP Proxy Authorization?" +msgstr "是否使用 HTTP 代理认证?" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configreseed_jsp.java:765 +msgid "HTTP Proxy Username" +msgstr "HTTP 代理使用者名稱" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configreseed_jsp.java:769 +msgid "HTTP Proxy Password" +msgstr "HTTP 代理密碼" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:242 +msgid "config service" +msgstr "设置服务" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:547 +msgid "Shutdown the router" +msgstr "关闭路由" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:549 +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:551 +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:565 +msgid "Restart the router" +msgstr "重启路由" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:567 +msgid "" +"If you want the router to restart itself after shutting down, you can choose" +" one of the following." +msgstr "如果你想要路由关闭后自动重新启动,可以选择下面的选项。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:569 +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 "此功能在如下情况下适用 - 例如当您修改了某些只在启动时读取的设置,例如路由控制台密码,路由监听接口等。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:571 +msgid "" +"A graceful restart will take a few minutes (but your peers will appreciate " +"your patience), while a hard restart does so immediately." +msgstr "平滑重启可能会等待几分钟的时间(但你的节点一定会感激你的耐心),硬重启可以立即完成。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:573 +msgid "" +"After tearing down the router, it will wait 1 minute before starting back up" +" again." +msgstr "路由關閉後將等待1分鐘再重新啟動。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:584 +msgid "Systray integration" +msgstr "使用系統托盤" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:586 +msgid "Control the system tray icon" +msgstr "設定系統控制台啟動圖示" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:603 +msgid "Run on startup" +msgstr "啟動時執行" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:605 +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 "这里你可以通过下面的选项来设置开机后 I2P 是否启动 - I2P 将相应的安装或卸载 I2P 服务。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:607 +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:609 +msgid "or" +msgstr "或" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:627 +msgid "Note" +msgstr "注意" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:629 +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:631 +msgid "" +"You may want to consider shutting down gracefully, as above, then running " +"uninstall_i2p_service_winnt.bat." +msgstr "您可以考慮先平滑關閉路由,待退出後執行 uninstall_i2p_service_winnt.bat。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:638 +msgid "Debugging" +msgstr "偵錯" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:642 +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:658 +msgid "Launch browser on router startup?" +msgstr "路由启动时启动浏览器?" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:662 +#, java-format +msgid "" +"I2P''s main configuration interface is this web console, so for your " +"convenience I2P can launch a web browser on startup pointing at {0}." +msgstr "I2P'' 主配置接口是网络控制台,所以为了您方便 I2P 可以在启动时启动网络浏览器指向 {0}。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configsidebar_jsp.java:242 +msgid "config sidebar" +msgstr "设置侧栏" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configsidebar_jsp.java:569 +msgid "Refresh Interval" +msgstr "重新整理間隔" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configsidebar_jsp.java:583 +msgid "seconds" +msgstr "秒" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configsidebar_jsp.java:587 +msgid "Customize Sidebar" +msgstr "自定义侧栏" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:239 +msgid "config stats" +msgstr "设置统计" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:531 +msgid "Configure I2P Stat Collection" +msgstr "設定 I2P 統計項" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:533 +msgid "Toggle full stat collection and all graphing options" +msgstr "切換全部的資料收集和所有圖形化選項" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:535 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:574 +msgid "toggle all" +msgstr "全部切換" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:537 +msgid "Enable full stats?" +msgstr "啟用完整統計?" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:544 +msgid "change requires restart to take effect" +msgstr "設定需要程式重啟後才能生效。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:553 +msgid "Stat file" +msgstr "統計檔案" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:572 +msgid "Toggle section graphing options" +msgstr "切換部分圖形化選項" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:582 +msgid "Log" +msgstr "日志" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:590 +msgid "Select stats for visualization on /graphs" +msgstr "選擇要在 /圖表 上資料視覺化的統計數據" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:593 +msgid "Graph" +msgstr "圖表" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:654 +msgid "Advanced filter" +msgstr "高階過濾器" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configtunnels_jsp.java:242 +msgid "config tunnels" +msgstr "隧道設定" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configtunnels_jsp.java:554 +msgid "The default settings work for most people." +msgstr "預設設定適於大多數人。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configtunnels_jsp.java:558 +msgid "There is a fundamental tradeoff between anonymity and performance." +msgstr "匿名性需要以效能為代價。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configtunnels_jsp.java:561 +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 个跳点的隧道(例如 2 跳点 + 0-2 跳点,3 跳点 + 0-1 跳点, 3 跳点 + 0-2 跳点),或高数量+备用数量,可能会严重降低性能或可靠性。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configtunnels_jsp.java:564 +msgid "High CPU and/or high outbound bandwidth usage may result." +msgstr "导致高 CPU 占用和/或高上行流量。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configtunnels_jsp.java:567 +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:569 +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:572 +msgid "Client tunnel changes are temporary and are not saved." +msgstr "對客戶端隧道的修改是臨時的,將不予儲存。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configtunnels_jsp.java:580 +msgid "To make permanent client tunnel changes see the" +msgstr "要永久性更改客戶通道的設定參見" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configtunnels_jsp.java:582 +msgid "i2ptunnel page" +msgstr "I2P 隧道頁面" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configui_jsp.java:242 +msgid "config UI" +msgstr "介面設定" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configui_jsp.java:557 +msgid "Router Console Theme" +msgstr "路由控制檯主題" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configui_jsp.java:573 +msgid "Theme selection disabled for Internet Explorer, sorry." +msgstr "抱歉,主題功能在 Internet Explorer 中已禁用。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configui_jsp.java:575 +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 的 UserAgent;您需要設定瀏覽器(或過濾式代理)使用其他 User Agent 才能訪問路由控制檯的主題功能。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configui_jsp.java:584 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configui_jsp.java:600 +msgid "Apply" +msgstr "套用" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configui_jsp.java:586 +msgid "Router Console Language" +msgstr "路由控制檯語言" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configui_jsp.java:594 +msgid "" +"Please contribute to the router console translation project! Contact the " +"developers in #i2p-dev on IRC to help." +msgstr "歡迎加入路由控制檯翻譯項目!提供幫助請通過IRC到 #i2p-dev 聊天室與開發人員交流。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configui_jsp.java:596 +#, java-format +msgid "See the {0}translation status report{1}." +msgstr "" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configui_jsp.java:602 +msgid "Router Console Password" +msgstr "路由控制檯密碼" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:239 +msgid "config update" +msgstr "更新設定" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:544 +msgid "Check for I2P and News Updates" +msgstr "檢查 I2P 軟體和新聞的更新" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:546 +msgid "News & I2P Updates" +msgstr "軟體及新聞更新" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:550 +msgid "Check for news updates" +msgstr "檢查新聞更新" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:552 +msgid "News Updates" +msgstr "新聞更新" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:560 +msgid "Update In Progress" +msgstr "更新進行中" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:568 +msgid "News URL" +msgstr "新聞連結" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:576 +msgid "Refresh frequency" +msgstr "更新頻率" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:582 +msgid "Update policy" +msgstr "升級策略" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:589 +msgid "Fetch news through the proxy?" +msgstr "是否通过代理获取新闻?" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:595 +msgid "Update through the proxy?" +msgstr "是否通过代理更新?" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:601 +msgid "Proxy host" +msgstr "代理主机" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:605 +msgid "Proxy port" +msgstr "代理服务器端口" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:613 +msgid "Update URLs" +msgstr "更新 URL" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:617 +msgid "Trusted keys" +msgstr "可信公鑰" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:621 +msgid "Update with signed development builds?" +msgstr "更新到已簽名的開發版本?" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:625 +msgid "Signed Build URL" +msgstr "已簽名版本 URL" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:629 +msgid "Update with unsigned development builds?" +msgstr "更新包括未簽名的開發版?" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:633 +msgid "Unsigned Build URL" +msgstr "未簽名軟體連結" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:640 +msgid "Updates will be dispatched via your package manager." +msgstr "更新將通過您的包管理器釋出。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configwebapps_jsp.java:242 +msgid "config webapps" +msgstr "設定 webapps" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configwebapps_jsp.java:558 +msgid "WebApp Configuration" +msgstr "Web 应用设置" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configwebapps_jsp.java:560 +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. address book)." +msgstr "下面列出的 Java 网络应用由 webConsole 客户端启动,并在与路由器相同的 JVM 中运行。它们通常是通过路由器控制台访问的 Web 应用程序。它们可以是完整的应用程序(例如 i2psnark),对另一必须单独启用客户端或应用程序的前端(例如 susidns、i2p 隧道),或完全没有网络界面(例如地址簿)。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configwebapps_jsp.java:562 +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 "从 web 应用文件夹中删除相应的 .wa r文件同样可以禁用 Web 应用;然而这些 .war 文件和 web 应用在更新 I2P 后还会再次出现,所以推荐在这里通过设置的方法禁用不用的 web 应用。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/console_jsp.java:237 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/home_jsp.java:238 +msgid "home" +msgstr "主页" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/console_jsp.java:444 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/console_jsp.java:446 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/home_jsp.java:407 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/home_jsp.java:409 +msgid "Configure Language" +msgstr "設定語言" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/console_jsp.java:448 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/home_jsp.java:411 +msgid "Welcome to I2P" +msgstr "欢迎使用 I2P" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/dns_jsp.java:446 +msgid "I2P Address Book" +msgstr "I2P 地址簿" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/dns_jsp.java:448 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/i2ptunnelmgr_jsp.java:449 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/torrents_jsp.java:449 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/webmail_jsp.java:449 +msgid "Open in new tab" +msgstr "在新標籤頁中打開" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/dns_jsp.java:452 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/i2ptunnelmgr_jsp.java:453 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/torrents_jsp.java:453 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/webmail_jsp.java:453 +msgid "Your browser does not support iFrames." +msgstr "您的瀏覽器不支援 iFrame。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/dns_jsp.java:454 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/i2ptunnelmgr_jsp.java:455 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/torrents_jsp.java:455 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/webmail_jsp.java:455 +msgid "Click here to continue." +msgstr "點此繼續。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/error500_jsp.java:257 +msgid "Internal Error" +msgstr "內部錯誤" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/error500_jsp.java:271 +msgid "Sorry! There has been an internal error." +msgstr "抱歉!程式發生內部錯誤。" + +#. note to translators - both parameters are URLs +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/error500_jsp.java:275 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/logs_jsp.java:442 +#, java-format +msgid "Please report bugs on {0} or {1}." +msgstr "错误报告请到 {0} 或 {1}。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/error500_jsp.java:279 +msgid "Please include this information in bug reports" +msgstr "報告問題時請包括以下資訊" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/error500_jsp.java:281 +msgid "Error Details" +msgstr "錯誤詳情" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/error500_jsp.java:283 +#, java-format +msgid "Error {0}" +msgstr "錯誤 {0}" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/error500_jsp.java:305 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/logs_jsp.java:446 +msgid "I2P Version and Running Environment" +msgstr "I2P 版本及執行環境" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/error500_jsp.java:361 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/logs_jsp.java:438 +msgid "" +"Note that system information, log timestamps, and log messages may provide " +"clues to your location; please review everything you include in a bug " +"report." +msgstr "注意,系統資訊、日誌時間戳和日誌中的部分資訊可能洩露有關您的位置的線索。提交 Bug 報告前請仔細檢查您提交的所有資訊。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/error_jsp.java:260 +msgid "Page Not Found" +msgstr "頁面未找到" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/error_jsp.java:441 +msgid "" +"Sorry! You appear to be requesting a nonexistent Router Console page or " +"resource." +msgstr "抱歉!您请求的路由控制台页面或资源不存在。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/error_jsp.java:443 +msgid "Error 404" +msgstr "錯誤 404" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/error_jsp.java:448 +msgid "not found" +msgstr "未找到" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/events_jsp.java:237 +msgid "events" +msgstr "事件" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/events_jsp.java:428 +msgid "I2P Event Log" +msgstr "I2P 事件日誌" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/graph_jsp.java:240 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/graphs_jsp.java:237 +msgid "graphs" +msgstr "圖表" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/graph_jsp.java:468 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/graphs_jsp.java:442 +msgid "I2P Performance Graphs" +msgstr "I2P 效能圖表" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:244 +msgid "help" +msgstr "幫助" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:437 +msgid "I2P Router Help and Support" +msgstr "I2P 路由帮助与支持" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:447 +msgid "Change Log" +msgstr "變更歷史" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:450 +msgid "Further Assistance" +msgstr "更多帮助" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:452 +msgid "" +"If you would like to help improve or translate the documentation, or help " +"with other aspects of the project, please see the documentation for volunteers." +msgstr "如果您想要帮助改进或翻译文档,或帮助项目其他方面,请参阅文档志愿者。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:454 +msgid "Further assistance is available here:" +msgstr "更多帮助可在此获取。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:456 +msgid "FAQ on i2p-projekt.i2p" +msgstr "i2p-projekt.i2p 上的常见问题" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:458 +#, java-format +msgid "You may also try {0} or {1}." +msgstr "您也可以尝试 {0} 或 {1}。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:460 +msgid "I2P's IRC network" +msgstr "I2P 的 IRC 网络" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:464 +msgid "Sidebar Information" +msgstr "侧栏信息" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:466 +msgid "" +"Many of the stats on the sidebar may be configured to be graphed for" +" further analysis." +msgstr "侧栏上的许多统计数据可以配置图表以进行进一步分析。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:468 +msgid "" +"You may also customize the sections that appear on the Sidebar and their " +"positioning on the Sidebar Configuration page." +msgstr "您还可以在侧栏配置页面上自定义侧栏上显示的部分及其位置。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:472 +msgid "" +"This section indicates your average bandwidth speeds and total usage for the" +" session." +msgstr "此部分指示会话中您的平均带宽速度和总使用量。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:475 +msgid "All values are in bytes per second, not bits per second." +msgstr "所有数值单位为字节每秒而非比特每秒。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:477 +msgid "" +"You may change your bandwidth limits on the Bandwidth " +"Configuration page." +msgstr "您可以在带宽配置页面上更改带宽限制。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:487 +msgid "" +"The first number is the number of peers your router has sent or received a " +"message from in the last few minutes." +msgstr "第一个数字是路由在过去几分钟内发送或接收消息的对等节点数量。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:489 +msgid "" +"This may range from 8-10 to several hundred, depending on your total " +"bandwidth, shared bandwidth, and locally-generated traffic." +msgstr "这可能在 8-10 到几百之间,具体取决于您的总带宽,共享带宽和本地生成的流量。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:491 +msgid "The second number is the number of peers seen in the last hour or so." +msgstr "第二个数字是过去一小时左右看到的对等节点数量。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:493 +msgid "Do not be concerned if these numbers vary widely." +msgstr "如果这些数字变化很大,请不要担心。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:497 +msgid "" +"This is the number of peers your router has available for building client " +"tunnels." +msgstr "这是您的路由可用于构建客户端隧道的对等节点数量。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:499 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:507 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:515 +msgid "These peers are shown on the profiles page." +msgstr "这些对等节点显示在摘要页面上。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:503 +msgid "" +"This is the number of peers your router has available for building your " +"exploratory tunnels which are used to determine network performance." +msgstr "这是您的路由可用于构建探测隧道的对等节点数,用于确定网络性能。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:505 +msgid "The fast peers are included in the high capacity tier." +msgstr "快速对等节点包含在高容量级别中。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:511 +msgid "" +"This is the number of peers your router will use for network database " +"inquiries." +msgstr "这是您的路由将用于网络数据库查询的对等节点数量。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:513 +msgid "" +"These are usually the floodfill routers responsible for maintaining network " +"integrity." +msgstr "这些通常是负责维护网络完整性的洪泛路由。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:519 +msgid "This is the total number of peers that are known by your router." +msgstr "这是路由已知的对等节点总数。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:521 +msgid "This may range from under 100 to several thousand." +msgstr "这可能从不到 100 到数千不等。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:523 +msgid "" +"This number is not the total size of the network; it may vary widely " +"depending on your total bandwidth, shared bandwidth, and locally-generated " +"traffic." +msgstr "这个数字不是网络的总大小;它可能会有很大差异,具体取决于您的总带宽,共享带宽和本地生成的流量。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:525 +msgid "" +"I2P does not require a router to know every other router in the network." +msgstr "I2P 不需要路由知道网络中的每个其他路由。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:529 +msgid "Network Help" +msgstr "网络帮助" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:533 +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/help_jsp.java:535 +msgid "" +"If there is an error, the logs may also help " +"diagnose the problem." +msgstr "如果存在錯誤,日誌可以幫助您診斷問題。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:539 +msgid "Your UDP port does not appear to be firewalled." +msgstr "您的 UDP 端口似乎未受到防火墙限制。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:541 +msgid "Firewalled" +msgstr "防火牆限制" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:543 +msgid "Your UDP port appears to be firewalled." +msgstr "您的 UDP 端口似乎受到防火墙限制。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:545 +msgid "" +"As the firewall detection methods are not 100% reliable, this may " +"occasionally be displayed in error." +msgstr "由于防火墙检测方法并非 100% 可靠,有时也可能错误地显示此提示。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:547 +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/help_jsp.java:549 +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/help_jsp.java:551 +msgid "" +"However, you will get more participating traffic and help the network if you" +" open your firewall." +msgstr "然而,如果您打开您的防火墙,将得到更多参与流量并帮助网络。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:553 +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/help_jsp.java:555 +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/help_jsp.java:559 +msgid "The router is currently testing whether your UDP port is firewalled." +msgstr "路由正在测试您的 UDP 端口是否收到防火墙限制。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:563 +msgid "" +"The router is not configured to publish its address, therefore it does not " +"expect incoming connections." +msgstr "路由被设置为禁止发布 IP 地址,因此并不需要入站连接。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:565 +msgid "" +"Hidden mode is automatically enabled for added protection in certain " +"countries." +msgstr "隱身模式在某些國家會自動啟用以增加防護。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:567 +msgid "WARN - Firewalled and Fast" +msgstr "警告 - 受到防火墙限制及快速" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:569 +msgid "" +"You have configured I2P to share more than 128KBps of bandwidth, but you are" +" firewalled." +msgstr "您已設定 I2P 共享超過 128KB/s 的頻寬,但您的連線受到防火牆限制。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:571 +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 可以正常工作,但如果您的確能夠分享超過 128KB/s 的頻寬,開啟防火牆埠能讓它更好工作,幫助網路中的其他人。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:573 +msgid "WARN - Firewalled and Floodfill" +msgstr "警告 - 受到防火墙限制及洪泛" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:575 +msgid "" +"You have configured I2P to be a floodfill router, but you are firewalled." +msgstr "您已将 I2P 设置为洪泛路由,但您的连接受到防火墙限制。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:577 +msgid "" +"For best participation as a floodfill router, you should open your firewall." +msgstr "为了洪泛路由能够更好的参与到 I2P 网络中,请您的防火墙中打开端口。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:579 +msgid "WARN - Firewalled with Inbound TCP Enabled" +msgstr "警告 - 入站 TCP 已启用,但受到防火墙限制" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:581 +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/help_jsp.java:583 +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 连接,其他路由将无法与您建立连接,造成网络受阻。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:585 +msgid "Please open your firewall or disable inbound TCP above." +msgstr "请打开您的防火墙端口或禁用上面的入站 TCP 连接。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:587 +msgid "WARN - Firewalled with UDP Disabled" +msgstr "警告 - UDP 已禁用且受到防火墙限制" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:589 +msgid "You have configured inbound TCP, however you have disabled UDP." +msgstr "您设置了入站 TCP 连接,然而禁用了 UDP 连接。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:591 +msgid "" +"You appear to be firewalled on TCP, therefore your router cannot accept " +"inbound connections." +msgstr "您的 TCP 连接似乎受到防火墙限制,导致您的路由无法接收入站连接。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:593 +msgid "Please open your firewall or enable UDP." +msgstr "请打开防火墙端口或启用 UDP。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:595 +msgid "ERR - Clock Skew" +msgstr "錯誤 - 時鐘偏差" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:597 +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/help_jsp.java:599 +msgid "Correct your clock setting if this error persists." +msgstr "如果錯誤持續存在,請校對您的系統時間。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:601 +msgid "ERR - Private TCP Address" +msgstr "错误 - 私有 TCP 地址" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:603 +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 一类的内网地址。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:605 +msgid "" +"Correct the address or disable inbound TCP on the Network Configuration " +"page." +msgstr "在網路設定裡面,修正 IP 地址或關掉進來的 TCP 封包。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:607 +msgid "ERR - SymmetricNAT" +msgstr "错误 - 对称 NAT" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:609 +msgid "I2P detected that you are firewalled by a Symmetric NAT." +msgstr "I2P 检测到您由于对称 NAT受到防火墙限制。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:611 +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 无法与此类防火墙很好的共存。您可能无法接收入站连接,这会障碍您连入 I2P 网络。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:613 +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/help_jsp.java:615 +msgid "" +"I2P was unable to bind to the configured port noted on the advanced network " +"configuration page ." +msgstr "I2P 無法繫結到高階網路配置頁面中配置的埠。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:617 +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 的端口,如果是,停止此程序或设置 I2P 使用不同的端口。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:619 +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/help_jsp.java:621 +msgid "However, a restart is always required after this error." +msgstr "然而,發生此錯誤後一般需要重啟程式才能解決。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:623 +msgid "ERR - UDP Disabled and Inbound TCP host/port not set" +msgstr "错误 - UDP 已禁用,且 TCP 入站主机与端口未设置" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:625 +msgid "" +"You have not configured inbound TCP with an address and port on the Network " +"Configuration page, however you have disabled UDP." +msgstr "您尚未在网络配置页面上配置带有地址和端口的入站 TCP,但是您已禁用 UDP。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:627 +msgid "Therefore your router cannot accept inbound connections." +msgstr "因此您的路由无法接收入站连接。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:629 +msgid "" +"Please configure a TCP host and port on the Network Configuration page or " +"enable UDP." +msgstr "请在网络配置页面上配置 TCP 主机和端口,或启用 UDP。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:631 +msgid "ERR - Client Manager I2CP Error - check logs" +msgstr "錯誤 - 客戶程式管理器 I2CP 錯誤 - 請看日誌" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:633 +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/help_jsp.java:635 +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/help_jsp.java:639 +msgid "" +"The skew (offset) of your computer's clock relative to the network-synced " +"time." +msgstr "计算机时钟相对于网络同步时间的偏差(偏移)。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:641 +msgid "I2P requires your computer's time be accurate." +msgstr "I2P 要求您的计算机时间准确。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:643 +msgid "" +"If the skew is more than a few seconds, please correct the problem by " +"adjusting your computer's time." +msgstr "如果偏差超过几秒钟,请通过调整计算机的时间来解决问题。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:645 +msgid "" +"If I2P cannot connect to the internet, a reading of 0ms may be indicated." +msgstr "如果 I2P 无法连接到互联网,则可能会显示 0ms 的读数。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:649 +msgid "Abridged I2P FAQ" +msgstr "简略 I2P 常见问题" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:651 +msgid "This is a shortened version of the official FAQ." +msgstr "这是官方常见问题的缩减版本。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:654 +#, java-format +msgid "For the full version, please visit {0} or {1}." +msgstr "请访问 {0} 或 {1} 获取完整版本。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:658 +msgid "" +"My router has been up for several minutes and has zero or very few " +"connections" +msgstr "我的路由已经启动几分钟了,仍然只有 0 或非常少的连接数。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:660 +msgid "" +"If after a few minutes of uptime your router is indicating 0 Active Peers " +"and 0 Known Peers, with a notification in the sidebar that you need to check" +" your network connection, verify that you can access the internet." +msgstr "如果在正常运行几分钟后,您的路由器显示 0 个活动对等节点和 0 个已知对等节点,并在侧栏中显示您需要检查网络连接的通知,请确认您是否可以访问互联网。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:662 +msgid "" +"If your internet connection is functional, you may need to unblock Java in " +"your firewall." +msgstr "如果您的互联网连接正常,则可能需要在防火墙中取消阻止 Java。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:664 +msgid "" +"Otherwise, you may need to reseed your I2P router. Visit the Reseed Configuration page and click " +"the \"Save Changes and Reseed Now\" button." +msgstr "否则,您可能需要为 I2P 路由补种。 访问补种配置页面并点击“保存更改并立刻补种”按钮。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:666 +msgid "My router has very few active peers, is this OK?" +msgstr "我的路由活动节点很少,正常吗?" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:668 +msgid "If your router has 10 or more active peers, everything is fine." +msgstr "如果您的路由有 10 个或更多活动对等节点,一切都很好。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:670 +msgid "The router should maintain connections to a few peers at all times." +msgstr "路由器应始终保持与几个对等节点的连接。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:672 +msgid "" +"The best way to stay connected to the network is to share more bandwidth." +msgstr "保持与网络连接的最佳方式是共享更多带宽。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:674 +msgid "" +"I am missing lots of hosts in my addressbook. What are some good " +"subscription links?" +msgstr "我在地址簿中缺少很多主机。有哪些好的订阅链接?" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:676 +#, java-format +msgid "The default subscription is to {0} which is seldom updated." +msgstr "默认订阅是来自 {0},它很少更新。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:678 +msgid "" +"If you don't have another subscription, you may use \"jump\" links which are" +" slower, but ensure that your addressbook only contains the default " +"addresses and sites that you use." +msgstr "如果您没有其他订阅,则可以使用较慢的“跳转”链接,但请确保您的地址簿仅包含您使用的默认地址和站点。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:680 +msgid "" +"To speed up browsing on I2P, it's a good idea to add some addressbook " +"subscriptions." +msgstr "为了加快浏览 I2P,添加一些地址簿订阅是个好主意。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:682 +msgid "Here are some other public addressbook subscription links." +msgstr "以下是一些其他公开地址簿订阅链接。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:684 +msgid "" +"You may wish to add one or two to your subscription list." +msgstr "您可能希望添加一两个到您的订阅列表。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:686 +msgid "" +"Note that subscribing to a hosts.txt service is an act of trust, as a " +"malicious subscription could give you incorrect addresses, so be careful " +"subscribing to lists from unknown sources." +msgstr "请注意,订阅 hosts.txt 服务是一种信任行为,因为恶意订阅可能会给您不正确的地址,因此请谨慎订阅来自未知来源的列表。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:688 +msgid "" +"The operators of these services may have various policies for listing hosts." +msgstr "这些服务的运营商可能有各种列出主机的策略。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:690 +msgid "Presence on this list does not imply endorsement." +msgstr "出现在此列表中并不意味着认可。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:692 +msgid "" +"How do I access IRC, BitTorrent, or other services on the regular Internet?" +msgstr "如何访问普通网络上的 IRC,BitTorrent,或其它服务?" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:694 +msgid "" +"Unless an outproxy has been set up for the service you want to connect to, " +"this is not possible." +msgstr "除非已为要连接的服务设置了出口代理,否则无法做到。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:696 +msgid "" +"There are only three types of outproxies running right now: HTTP, HTTPS, and" +" email." +msgstr "现在只运行三种类型的出口代理:HTTP,HTTPS 和电子邮件。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:698 +msgid "Note that there is currently no public SOCKS outproxy." +msgstr "请注意目前没有公共 SOCKS 出口代理。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:700 +msgid "How do I configure my browser to access I2P websites?" +msgstr "我该如何配置浏览器以访问 I2P 网站?" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:702 +msgid "" +"You will need to configure your browser to use the HTTP proxy server on host" +" 127.0.0.1 port 4444)." +msgstr "您需要将浏览器配置为在主机 127.0.0.1 4444 端口上使用 HTTP 代理服务。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:704 +#, java-format +msgid "See the {0} for a more detailed explanation." +msgstr "有关更详细的说明,请参阅 {0}。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:705 +msgid "Browser Proxy Configuration Guide" +msgstr "浏览器代理配置指南" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:707 +msgid "What is an eepsite?" +msgstr "什么是匿名网站 (eepsite) ?" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:709 +msgid "An eepsite is a website that is hosted anonymously on the I2P network." +msgstr "匿名网站是匿名托管在 I2P 网络上的网站。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:711 +msgid "" +"You can access it by configuring your web browser to use I2P's HTTP proxy " +"and browsing to the website." +msgstr "您可以配置网络浏览器使用 I2P 的 HTTP 代理并浏览网站。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:713 +msgid "Most of the eepsites are down?" +msgstr "大部分匿名网站已经关闭了?" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:715 +msgid "" +"If you consider every eepsite that has ever been created, yes, most of them " +"are down." +msgstr "若你考虑已创建过的每一个匿名网站,是的,它们大多已经关闭。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:718 +msgid "People and eepsites come and go." +msgstr "人们和匿名网站来来去去。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:720 +msgid "" +"A good way to get started in I2P is check out a list of eepsites that are " +"currently up." +msgstr "一个很好的了解 I2P的 方法是查阅目前正运行的匿名网站的列表。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:722 +#, java-format +msgid "{0} tracks active eepsites." +msgstr "{0} 跟踪正运行的匿名网站。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:725 +msgid "How do I connect to IRC within I2P?" +msgstr "如何使用 I2P 连接至 IRC?" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:727 +msgid "" +"A tunnel to the main IRC server network within I2P, Irc2P, is automatically " +"started when the I2P router starts." +msgstr "当 I2P 路由启动时,到 I2P 内的主 IRC 服务网络的隧道 Irc2P 将自动启动 。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:729 +msgid "" +"To connect to it, tell your IRC client to connect to server: " +"127.0.0.1 port: 6668." +msgstr "告诉您的 IRC 客户端连接到服务器:127.0.0.1 端口:6668 以连接到它。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:731 +msgid "" +"HexChat-like client users can create a new network with the server " +"127.0.0.1/6668, or you can connect with the command " +"/server 127.0.0.1 6668." +msgstr "HexChat 类客户端用户可以通过服务器 localhost/6668 创建新的网络或通过命令 /server 127.0.0.1 6668 连接。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:733 +msgid "" +"Different IRC clients may require a different command, consult the client " +"documentation." +msgstr "不同的 IRC 客户端可能需要不同的命令,请参阅客户端文档。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:735 +msgid "What ports does I2P use?" +msgstr "I2P 使用哪些端口?" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:737 +msgid "Local ports" +msgstr "本地端口" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:739 +msgid "" +"These are the local I2P port mappings, listening only to local connections " +"by default, except where noted." +msgstr "这些是本地 I2P 端口映射,默认情况下仅监听本地连接,除非另有说明。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:741 +msgid "" +"Unless you require access from other machines, they should only be " +"accessible from localhost." +msgstr "除非您需要从其他计算机访问,应仅从 localhost 访问它们。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:745 +msgid "Function" +msgstr "功能" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:747 +msgid "Notes" +msgstr "说明" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:753 +msgid "Internet facing ports" +msgstr "面向网络的端口" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:755 +msgid "" +"I2P selects a random port to communicate with other routers when the program" +" is run for the first time." +msgstr "程序首次运行时 I2P 会选择随机端口与其他路由通信。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:757 +msgid "" +"The selected port is shown on the Network " +"Configuration page." +msgstr "所选端口会显示在网络配置页面上。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/home_jsp.java:419 +msgid "Search" +msgstr "搜尋" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/jars_jsp.java:240 +msgid "Jar File Dump" +msgstr "Jar 檔案轉儲" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/jobs_jsp.java:237 +msgid "job queue" +msgstr "作業佇列" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/jobs_jsp.java:414 +msgid "I2P Router Job Queue" +msgstr "I2P 路由器作業佇列" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/logs_jsp.java:240 +msgid "logs" +msgstr "日誌" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/logs_jsp.java:433 +msgid "I2P Router Logs" +msgstr "I2P 路由器日誌" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/logs_jsp.java:435 +msgid "" +"Please include your I2P version and running environment information in bug " +"reports" +msgstr "请在错误报告中包括您的 I2P 版本和运行环境信息" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/logs_jsp.java:544 +msgid "Critical Logs" +msgstr "關鍵日誌" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/logs_jsp.java:566 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/logs_jsp.java:574 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/logs_jsp.java:589 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/logs_jsp.java:597 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/logs_jsp.java:624 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/logs_jsp.java:636 +msgid "Clear logs" +msgstr "清除日志" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/logs_jsp.java:582 +msgid "Router Logs" +msgstr "路由器日誌" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/logs_jsp.java:603 +msgid "Configure router logging options" +msgstr "設定路由器的日誌功能" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/logs_jsp.java:609 +msgid "Event Logs" +msgstr "事件日誌" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/logs_jsp.java:611 +msgid "View event logs" +msgstr "檢視事件日誌" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/logs_jsp.java:613 +msgid "Service (Wrapper) Logs" +msgstr "服务(封装)日志" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/netdb_jsp.java:238 +msgid "network database" +msgstr "網路資料庫" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/netdb_jsp.java:415 +msgid "I2P Network Database" +msgstr "I2P 網路資料庫" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/news_jsp.java:240 +msgid "News" +msgstr "VeraCrypt 新聞(線上)" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/news_jsp.java:433 +msgid "Latest News" +msgstr "最新消息" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/nowebapp_jsp.java:244 +msgid "WebApp Not Found" +msgstr "web 应用未找到" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/nowebapp_jsp.java:437 +msgid "Web Application Not Running" +msgstr "Web 应用未运行" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/nowebapp_jsp.java:439 +msgid "The requested web application is not running." +msgstr "您所访问的 Web 应用未运行。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/nowebapp_jsp.java:441 +#, java-format +msgid "Please visit the {0}config clients page{1} to start it." +msgstr "请访问{0}设置客户端页面{1}启动它。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/peers_jsp.java:237 +msgid "peer connections" +msgstr "对等节点连接" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/peers_jsp.java:414 +msgid "I2P Network Peers" +msgstr "I2P 网络对等节点" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/profiles_jsp.java:237 +msgid "peer profiles" +msgstr "对等节点摘要" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/profiles_jsp.java:414 +msgid "I2P Network Peer Profiles" +msgstr "I2P 网络对等节点摘要" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/stats_jsp.java:237 +msgid "statistics" +msgstr "統計" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/stats_jsp.java:427 +msgid "I2P Router Statistics" +msgstr "I2P 路由器統計資料" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/summaryframe_jsp.java:380 +msgid "Refresh (s)" +msgstr "重新整理(秒)" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/summaryframe_jsp.java:383 +msgid "Enable" +msgstr "啟用" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/summaryframe_jsp.java:393 +#, java-format +msgid "Disable {0} Refresh" +msgstr "停止 {0} 重新整理" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/torrents_jsp.java:263 +msgid "torrents" +msgstr "torrents" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/torrents_jsp.java:447 +msgid "I2P Torrent Manager" +msgstr "I2P Torrent 管理器" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/tunnels_jsp.java:240 +msgid "tunnel summary" +msgstr "隧道概況" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/tunnels_jsp.java:433 +msgid "I2P Tunnel Summary" +msgstr "I2P 隧道概況" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/tunnels_jsp.java:449 +msgid "This page shows tunnels built by and routed through your router." +msgstr "此页面显示由路由构建和路由的隧道。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/tunnels_jsp.java:453 +msgid "" +"Tunnels built by your router and used for communication with the floodfill " +"peers, building new tunnels, and testing existing tunnels." +msgstr "由路由构建的隧道,用于与洪泛对等节点通信,构建新隧道以及测试现有隧道。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/tunnels_jsp.java:455 +msgid "Client tunnels" +msgstr "客户端隧道" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/tunnels_jsp.java:457 +msgid "Tunnels built by your router for each client's use." +msgstr "路由为每个客户端使用构建的隧道。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/tunnels_jsp.java:461 +msgid "Tunnels built by other routers through your router." +msgstr "其他路由构建的通过您的路由的隧道。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/tunnels_jsp.java:463 +msgid "" +"The quantity may vary widely depending on network demand, your shared " +"bandwidth, and amount of locally-generated traffic." +msgstr "数量可能会有很大差异,具体取决于网络需求,共享带宽以及本地生成的流量。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/tunnels_jsp.java:465 +msgid "" +"The recommended method for limiting participating tunnels is to change your " +"share percentage on the Bandwidth Configuration page." +msgstr "限制参与隧道的推荐方式是在带宽配置页面上更改您的共享比率。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/tunnels_jsp.java:467 +msgid "" +"You may also limit the total number by setting " +"router.maxParticipatingTunnels=nnn on the Advanced configuration page." +msgstr "您也可以通过在高级配置页面上设置 router.maxParticipatingTunnels=nnn 来限制总数。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/tunnels_jsp.java:471 +msgid "" +"The number of participating tunnels you route for others, divided by the " +"total number of hops in all your exploratory and client tunnels." +msgstr "您为其他人路由的参与隧道数除以所有探测隧道和客户端隧道中的总跃点数。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/tunnels_jsp.java:473 +msgid "" +"A number greater than 1.00 means you are contributing more tunnels to the " +"network than you are using." +msgstr "大于 1.00 的数字表示您为网络提供的隧道数量超过了您使用的数量。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/viewprofile_jsp.java:237 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/viewprofile_jsp.java:414 +msgid "Peer Profile" +msgstr "对等节点摘要" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/viewprofile_jsp.java:436 +#, java-format +msgid "Profile for peer {0}" +msgstr "对等节点 {0} 摘要" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/webmail_jsp.java:263 +msgid "webmail" +msgstr "網頁郵箱" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/webmail_jsp.java:447 +msgid "I2P Webmail" +msgstr "I2P 網頁郵箱" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/welcome_jsp.java:332 +msgid "Bandwidth test in progress..." +msgstr "带宽测试进行中..." + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/welcome_jsp.java:334 +msgid "Bandwidth test is complete, click Next" +msgstr "带宽测试完成,点击下一步" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/welcome_jsp.java:479 +msgid "Select Language" +msgstr "選取語言" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/welcome_jsp.java:481 +msgid "This project is supported by volunteer translators on Transifex." +msgstr "此项目由 Transifex 上的翻译志愿者支持。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/welcome_jsp.java:483 +msgid "This helps keep I2P accessible to everyone all over the world." +msgstr "这有助于使I2P可供世界各地的任何人访问。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/welcome_jsp.java:485 +msgid "" +"Thank you to all of the volunteers all over the world who help make I2P " +"accessible." +msgstr "感谢世界各地所有帮助I2P使之可达的志愿者。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/welcome_jsp.java:487 +#, java-format +msgid "" +"If you would like to get involved, {0}please consider the I2P translation " +"efforts{1}." +msgstr "如果你想参与其中,{0}请考虑I2P翻译{1}。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/welcome_jsp.java:489 +msgid "Please select your preferred language:" +msgstr "请选择你的语言偏好:" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/welcome_jsp.java:509 +msgid "Select Theme" +msgstr "选择主题" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/welcome_jsp.java:511 +msgid "Please select your preferred theme:" +msgstr "请选择你的主题偏好:" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/welcome_jsp.java:521 +msgid "Bandwidth Test" +msgstr "带宽测试" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/welcome_jsp.java:523 +msgid "Let's check your internet connection!" +msgstr "让我们检查您的网络连接!" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/welcome_jsp.java:525 +msgid "" +"Bandwidth participation not only makes your speed and connection to the I2P " +"network better, but also helps everyone using the network." +msgstr "带宽参与不仅提高您的速度和与 I2P 网络的连接,还可以帮助使用该网络的每个人。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/welcome_jsp.java:527 +msgid "" +"When everyone is sharing as much bandwidth as possible, everyone gets to " +"have better performance and privacy by sharing participating traffic." +msgstr "当每个人都共享尽可能多的带宽时,每个人都可以通过共享参与的流量来获得更好的性能和隐私。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/welcome_jsp.java:529 +msgid "" +"I2P uses M-Lab, a third party service, to help you test your internet " +"connection and find the optimal speed settings." +msgstr "I2P 使用 M-Lab,一个第三方服务,帮助您测试互联网连接并找到最佳速度设置。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/welcome_jsp.java:531 +msgid "" +"During this time you will be connected directly to M-Lab's service with your" +" real IP address." +msgstr "在此期间,您将使用您的真实 IP 地址直接连接到 M-Lab 的服务。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/welcome_jsp.java:533 +msgid "Please review the M-Lab privacy policies linked below." +msgstr "请查看下方链接的 M-Lab 隐私政策。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/welcome_jsp.java:535 +msgid "" +"If you do not wish to run the M-Lab bandwidth test, you can skip it and " +"configure your bandwidth later." +msgstr "如果您不想运行 M-Lab 带宽测试,则可以跳过它并稍后配置带宽。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/welcome_jsp.java:537 +#, java-format +msgid "{0}M-Lab Privacy Policy{1}" +msgstr "{0}M-Lab 隐私政策{1}" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/welcome_jsp.java:539 +#, java-format +msgid "{0}M-Lab Name Server Privacy Policy{1}" +msgstr "{0}M-Lab 名称服务器隐私政策{1}" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/welcome_jsp.java:547 +msgid "Bandwidth Test in Progress" +msgstr "带宽测试正在进行中" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/welcome_jsp.java:549 +msgid "" +"Javascript is disabled - wait 60 seconds for the bandwidth test to complete " +"and then click Next" +msgstr "Javascript 已禁用 - 等待 60 秒以完成带宽测试,然后点击下一步" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/welcome_jsp.java:551 +msgid "" +"While the I2P router software is getting ready to go, it's testing your " +"bandwidth, obtaining an initial set of peers from a reseed server, making " +"its first few connections, and getting integrated with the rest of the " +"network." +msgstr "当 I2P 路由软件准备就绪时,它将测试您的带宽,从补种服务器中获取一组初始的对等节点,建立其最初的几个连接,并与网络的其余部分集成。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/welcome_jsp.java:553 +#, java-format +msgid "" +"To learn more about how important I2P Reseed servers are, or explore other " +"topics and what functions they perform for I2P, you can visit the {0}I2P " +"Wiki{1}." +msgstr "要了解有关 I2P 补种服务器的重要性,或了解其他主题以及它们对 I2P 执行的功能,请访问 {0}I2P Wiki{1}。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/welcome_jsp.java:555 +#, java-format +msgid "" +"If you would like to discuss I2P topics or get help from the community, you " +"can visit the {0}I2P Forums{1}." +msgstr "如果您想讨论 I2P 主题或获得社区的帮助,则可以访问 {0}I2P 论坛{1}。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/welcome_jsp.java:557 +#, java-format +msgid "" +"If you want to know more about the I2P Project itself, or the Invisible " +"Internet in general, you can visit our {0}Project Website{1}." +msgstr "如果您想进一步了解 I2P 项目本身或其他的匿名网络,可以访问我们的{0}项目网站{1}。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/welcome_jsp.java:577 +msgid "Bandwidth Configuration" +msgstr "带宽配置" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/welcome_jsp.java:609 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/welcome_jsp.java:616 +msgid "" +"By donating your bandwidth to participating traffic, you not only help " +"others, you improve your own anonymity and performance." +msgstr "通过贡献带宽作为参与流量,您不仅可以帮助他人,还可以提高自己的匿名性和性能。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/welcome_jsp.java:611 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/welcome_jsp.java:618 +msgid "" +"We recommend sharing 75% or more for I2P, but you can adjust based on your " +"needs." +msgstr "我们建议为 I2P 共享 75% 或更多的份额,但是您可以根据需要进行调整。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/welcome_jsp.java:628 +msgid "Browser and Application Setup" +msgstr "浏览器和应用设置" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/welcome_jsp.java:630 +msgid "Your browser needs to be configured to work with I2P." +msgstr "您的浏览器需要设置以使用 I2P。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/welcome_jsp.java:632 +msgid "" +"We have instructions for configuring both Firefox and Chromium based " +"browsers with I2P." +msgstr "我们提供了有关配置基于 Firefox 和 Chromium 的浏览器与 I2P 的说明。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/welcome_jsp.java:634 +#, java-format +msgid "You can find these instructions on our {0}website{1}." +msgstr "您可以在我们的{0}网站{1}上找到这些说明。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/welcome_jsp.java:640 +msgid "" +"Otherwise, the recommended way to browse I2P websites is with a separate " +"profile in the Firefox browser." +msgstr "否则,浏览 I2P 网站的推荐方式是在 Firefox 浏览器中使用隔离的配置文件。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/welcome_jsp.java:642 +#, java-format +msgid "{0}Install Firefox{1}" +msgstr "{0}安装 Firefox{1}" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/welcome_jsp.java:644 +#, java-format +msgid "{0}Install the I2P Firefox profile{1}" +msgstr "{0}安装 I2P Firefox 配置文件{1}" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/welcome_jsp.java:650 +msgid "" +"The I2P router also comes with its own versions of common, useful internet " +"applications." +msgstr "I2P 路由还带有自己的常用,有用的互联网应用版本。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/welcome_jsp.java:652 +#, java-format +msgid "You can download files with {0}bittorrent{1}." +msgstr "你可以通过{0}bittorrent{1}下载文件。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/welcome_jsp.java:654 +#, java-format +msgid "You can also send and receive {0}email{1}." +msgstr "您还可以发送和接收{0}电子邮件{1}。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/welcome_jsp.java:656 +#, java-format +msgid "" +"Besides that, you can use the built-in {0}web server{1} so you can create, " +"communicate, and share your content." +msgstr "除此之外,您可以使用内置的 {0}Web 服务器{1},以便创建,交流和共享内容。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/welcome_jsp.java:658 +msgid "" +"These applications work with I2P automatically and require no additional " +"configuration." +msgstr "这些应用会自动与 I2P 配合使用,不需要其他配置。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/welcome_jsp.java:660 +#, java-format +msgid "" +"To help make I2P addresses easier to read and remember, the I2P router also " +"includes its built-in {0}Address Book{1}." +msgstr "为了帮助使 I2P 地址更易于阅读和记忆,I2P 路由还包括其内置的{0}地址簿{1}。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/welcome_jsp.java:662 +msgid "" +"The Address Book is where you keep track of all your I2P \"Contacts\" by " +"giving them human-readable names." +msgstr "通过地址簿,您可以为它们提供易于理解的名称,从而跟踪所有 I2P “联系人”。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/welcome_jsp.java:664 +msgid "" +"This can be used for the sites you like to visit, messaging contacts, or " +"potentially any other service on I2P." +msgstr "它可以用于您想要访问的站点,消息联系人或 I2P 上的任何其他服务。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/welcome_jsp.java:666 +msgid "" +"To help you get started, the address book can be used to subscribe to lists " +"of addresses distributed by other I2P users." +msgstr "为了帮助您入门,可以使用地址簿来订阅其他 I2P 用户分发的地址列表。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/welcome_jsp.java:674 +msgid "Welcome to the Invisible Internet!" +msgstr "欢迎使用匿名互联网!" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/welcome_jsp.java:676 +msgid "" +"It will take some time for your peers to integrate your router into the " +"network, but while that is happening you can still explore I2P applications " +"and get to know your way around the router console." +msgstr "对等节点需要花费一些时间将路由集成到网络中,但是在这种情况下,您仍然可以探索 I2P 应用,并熟悉路由控制台。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/welcome_jsp.java:678 +#, java-format +msgid "" +"There is a quick guide, news about the latest release, an FAQ, and " +"troubleshooting guide available on the {0}console{1} page." +msgstr "{0}控制台{1}页面上有快速指南,有关最新发布版本的新闻,常见问题解答和故障排除指南。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/welcome_jsp.java:680 +msgid "You may notice a message in the sidebar that I2P is rejecting tunnels." +msgstr "您可能会在侧栏中看到一条消息,提示 I2P 正在拒绝隧道。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/welcome_jsp.java:682 +msgid "" +"This is normal behavior as part of the startup process, to make sure that " +"your router is ready to help others with participating traffic." +msgstr "在启动过程中,这是正常行为,以确保您的路由已准备好帮助其他人参与流量。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/welcome_jsp.java:684 +msgid "" +"When the connection indicators in the sidebar turn green, you are ready to " +"explore the Invisible Internet." +msgstr "当侧边栏中的连接指示灯变为绿色时,您就可以探索匿名互联网了。" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/welcome_jsp.java:699 +msgid "Previous" +msgstr "前一" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/welcome_jsp.java:706 +msgid "Skip Setup" +msgstr "跳过设置" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/welcome_jsp.java:712 +msgid "Skip Bandwidth Test" +msgstr "跳过带宽测试" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/welcome_jsp.java:718 +msgid "Cancel Bandwidth Test" +msgstr "取消带宽测试" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/welcome_jsp.java:724 +msgid "Next" +msgstr "下一頁" + +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/welcome_jsp.java:730 +msgid "Finished" +msgstr "完成" diff --git a/apps/routerconsole/resources/docs/readme_gan.html b/apps/routerconsole/resources/docs/readme_gan.html new file mode 100644 index 0000000000..e6ecdbcb53 --- /dev/null +++ b/apps/routerconsole/resources/docs/readme_gan.html @@ -0,0 +1,173 @@ +
+ + +

I2P 服务

+ + +

I2P 匿名加密网络托管

+ + + +

感兴趣的 I2P 隐藏服务

+ + +

故障排除及更多帮助

+ + + +
diff --git a/apps/susidns/locale/messages_gan.po b/apps/susidns/locale/messages_gan.po new file mode 100644 index 0000000000..4417b4c88b --- /dev/null +++ b/apps/susidns/locale/messages_gan.po @@ -0,0 +1,1006 @@ +# 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 +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: I2P\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-08-14 13:36+0000\n" +"PO-Revision-Date: 2011-02-13 12:00+0000\n" +"Last-Translator: duck \n" +"Language-Team: Chinese (Gan) (http://app.transifex.com/otf/I2P/language/gan/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: gan\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: ../src/java/src/i2p/susi/dns/AddressBean.java:132 +#, java-format +msgid "Host name \"{0}\" contains illegal character {1}" +msgstr "主機名\"{0}\"包含了無效字元{1}" + +#: ../src/java/src/i2p/susi/dns/AddressBean.java:145 +#: ../src/java/src/i2p/susi/dns/AddressBean.java:147 +#: ../src/java/src/i2p/susi/dns/AddressBean.java:154 +#, java-format +msgid "Host name cannot start with \"{0}\"" +msgstr "主機名不能以\"{0}\"起頭" + +#: ../src/java/src/i2p/susi/dns/AddressBean.java:149 +#: ../src/java/src/i2p/susi/dns/AddressBean.java:151 +#, java-format +msgid "Host name cannot end with \"{0}\"" +msgstr "主機名不能以\"{0}\"結尾" + +#: ../src/java/src/i2p/susi/dns/AddressBean.java:156 +#, java-format +msgid "Host name cannot contain \"{0}\"" +msgstr "主機名不能以包含\"{0}\"" + +#: ../src/java/src/i2p/susi/dns/AddressBean.java:159 +#, java-format +msgid "" +"Host name \"{0}\" requires conversion to ASCII but the conversion library is" +" unavailable in this JVM" +msgstr "主機名\"{0}\" 必須轉換成ASCII,但轉換庫在此JVM不可用" + +#: ../src/java/src/i2p/susi/dns/AddressBean.java:224 +msgid "None" +msgstr "無" + +#: ../src/java/src/i2p/susi/dns/AddressBean.java:232 +msgid "Hashcash" +msgstr "哈希款" + +#: ../src/java/src/i2p/susi/dns/AddressBean.java:234 +msgid "Hidden" +msgstr "隐身模式" + +#: ../src/java/src/i2p/susi/dns/AddressBean.java:236 +msgid "Signed" +msgstr "已簽屬" + +#: ../src/java/src/i2p/susi/dns/AddressBean.java:238 +msgid "Key" +msgstr "分享密钥" + +#: ../src/java/src/i2p/susi/dns/AddressBean.java:240 +#: ../src/java/src/i2p/susi/dns/AddressBean.java:265 +#, java-format +msgid "Type {0}" +msgstr "類型 {0}" + +#: ../src/java/src/i2p/susi/dns/AddressBean.java:252 +#: ../src/java/src/i2p/susi/dns/AddressBean.java:259 +#: ../src/java/src/i2p/susi/dns/AddressBean.java:262 +msgid "DSA 1024 bit" +msgstr "1024位 數位簽章演算" + +#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:195 +#, java-format +msgid "One result for search within filtered list." +msgid_plural "{0} results for search within filtered list." +msgstr[0] "{0} 在過濾列表中的搜尋結果。" + +#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:199 +#, java-format +msgid "Filtered list contains 1 entry." +msgid_plural "Filtered list contains {0} entries." +msgstr[0] "過濾列表包含了{0}條目。" + +#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:204 +#, java-format +msgid "One result for search." +msgid_plural "{0} results for search." +msgstr[0] "{0} 項搜尋結果。" + +#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:213 +#, java-format +msgid "Address book contains 1 entry." +msgid_plural "Address book contains {0} entries." +msgstr[0] "地址簿包含{0}條目。" + +#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:229 +#, java-format +msgid "Showing {0} of {1}" +msgstr "顯示 {1}的 {0} " + +#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:251 +#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:245 +#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:259 +#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:691 +msgid "Add" +msgstr "新增" + +#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:251 +#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:262 +#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:245 +#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:683 +msgid "Replace" +msgstr "取代" + +#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:261 +#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:256 +#, java-format +msgid "Host name {0} is already in address book, unchanged." +msgstr "主機名 {0} 已存在於地址簿,未變更。" + +#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:263 +#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:260 +#, java-format +msgid "" +"Host name {0} is already in address book with a different destination. Click" +" \"Replace\" to overwrite." +msgstr "不同目的地的主機名 {0} 已存在於地址簿。點擊『取代』以覆寫。" + +#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:284 +#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:291 +#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:279 +#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:286 +msgid "Unable to resolve Base 32 address" +msgstr "无法解析b32地址" + +#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:309 +#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:318 +#, java-format +msgid "Destination added for {0}." +msgstr "目的地已加入 {0}。" + +#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:311 +#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:320 +#, java-format +msgid "Destination changed for {0}." +msgstr "目的地已變為 {0}。" + +#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:313 +#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:322 +msgid "Warning - hostname does not end with \".i2p\"" +msgstr "警告 - 主机名未以\".i2p\"结尾。" + +#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:320 +#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:334 +msgid "Invalid Base 32 hostname." +msgstr "无效 b32 主机名。" + +#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:322 +#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:336 +msgid "Invalid Base 64 destination." +msgstr "無效的Base 64目的地。" + +#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:329 +#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:342 +#, java-format +msgid "Invalid hostname \"{0}\"." +msgstr "无效的主机名 “{0}”。" + +#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:332 +#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:345 +msgid "Please enter a hostname and destination" +msgstr "请输入主机名称与目标" + +#. clear search when deleting +#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:336 +#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:357 +#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:349 +#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:353 +#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:387 +#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:402 +msgid "Delete Entry" +msgstr "刪除輸入" + +#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:336 +#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:349 +#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:605 +msgid "Delete Selected" +msgstr "删除所选" + +#. parameter is a hostname +#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:350 +#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:379 +#, java-format +msgid "Destination {0} deleted." +msgstr "目标 {0} 已删除" + +#. parameter will always be >= 2 +#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:353 +#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:382 +#, java-format +msgid "1 destination deleted." +msgid_plural "{0} destinations deleted." +msgstr[0] "{0} 个目标已删除。" + +#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:355 +#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:384 +msgid "No entries selected to delete." +msgstr "未选择要删除的记录。" + +#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:359 +#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:245 +#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:257 +#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:296 +#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:303 +#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:317 +#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:687 +msgid "Add Alternate" +msgstr "添加备用" + +#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:366 +#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:391 +msgid "Address book saved." +msgstr "地址簿已保存。" + +#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:369 +msgid "ERROR: Could not write address book file." +msgstr "错误:无法写入地址簿文件" + +#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:374 +#: ../src/java/src/i2p/susi/dns/ConfigBean.java:108 +#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:395 +#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:161 +msgid "" +"Invalid form submission, probably because you used the \"back\" or " +"\"reload\" button on your browser. Please resubmit." +msgstr "提交数据无效,可能的原因是您使用了浏览器中的“前进”或“后退”按钮造成会话过期,请重新提交。" + +#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:376 +#: ../src/java/src/i2p/susi/dns/ConfigBean.java:110 +#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:397 +#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:163 +msgid "" +"If the problem persists, verify that you have cookies enabled in your " +"browser." +msgstr "如果问题持续,请确认您的浏览器支持 Cookie。" + +#: ../src/java/src/i2p/susi/dns/ConfigBean.java:99 +#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:135 +#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:237 +#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:228 +msgid "Save" +msgstr "保存" + +#: ../src/java/src/i2p/susi/dns/ConfigBean.java:101 +msgid "Configuration saved." +msgstr "配置已保存" + +#: ../src/java/src/i2p/susi/dns/ConfigBean.java:102 +#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:155 +#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:235 +#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:226 +msgid "Reload" +msgstr "重新載入" + +#: ../src/java/src/i2p/susi/dns/ConfigBean.java:104 +msgid "Configuration reloaded." +msgstr "配置已重新载入" + +#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:117 +#, java-format +msgid "{0} address book in {1} database" +msgstr "{1}数据库中{0}地址簿" + +#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:258 +#, java-format +msgid "Host name {0} is not in the address book." +msgstr "主机名 {0} 不在地址簿中。" + +#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:301 +msgid "Manually added via SusiDNS" +msgstr "通过 SusiDNS 手工添加。" + +#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:327 +#, java-format +msgid "Failed to add Destination for {0} to naming service {1}" +msgstr "域名服务{1}中的目标{0}添加失败。" + +#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:370 +#, java-format +msgid "Failed to delete Destination for {0} from naming service {1}" +msgstr "域名服务{1}中的目标{0}删除失败。" + +#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:412 +#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:384 +msgid "Save Notes" +msgstr "保存笔记" + +#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:555 +msgid "You must enter a file" +msgstr "您必须输入一个文件" + +#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:571 +msgid "No entries found in file" +msgstr "文件中未找到记录" + +#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:581 +#, java-format +msgid "Imported from file {0}" +msgstr "从文件 {0} 中导入" + +#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:583 +msgid "Imported from file" +msgstr "从文件中导入" + +#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:595 +#, java-format +msgid "Loaded {0} entry from file" +msgid_plural "Loaded {0} entries from file" +msgstr[0] "从文件中加载 {0} 条记录" + +#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:599 +#, java-format +msgid "Skipped {0} duplicate entry from file" +msgid_plural "Skipped {0} duplicate entries from file" +msgstr[0] "从文件中跳过 {0} 条重复的记录" + +#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:605 +msgid "Import from file failed" +msgstr "从文件中导入失败" + +#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:148 +msgid "" +"Subscriptions saved, updating address book from subscription sources now." +msgstr "订阅已保存,正在通过订阅地址更新地址簿。" + +#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:153 +msgid "Subscriptions saved." +msgstr "订阅已保存。" + +#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:157 +msgid "Subscriptions reloaded." +msgstr "订阅设置已重新载入。" + +#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:200 +#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:705 +msgid "Import" +msgstr "匯入" + +#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:215 +#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:192 +msgid "address book" +msgstr "地址簿" + +#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:227 +#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:208 +#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:200 +#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:190 +#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:199 +msgid "Overview" +msgstr "概述" + +#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:229 +#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:210 +#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:202 +#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:192 +#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:201 +msgid "Private" +msgstr "私人" + +#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:231 +#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:212 +#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:204 +#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:194 +#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:203 +msgid "Local" +msgstr "本地" + +#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:233 +#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:214 +#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:206 +#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:196 +#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:205 +msgid "Router" +msgstr "路由" + +#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:235 +#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:216 +#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:208 +#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:198 +#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:207 +msgid "Published" +msgstr "釋出" + +#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:237 +#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:218 +#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:210 +#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:200 +#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:209 +#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:213 build/HowSVG.java:15 +msgid "Subscriptions" +msgstr "訂閱付費" + +#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:239 +#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:220 +#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:222 +#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:212 +#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:202 +#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:211 +msgid "Configuration" +msgstr "設定" + +#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:241 +#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:214 +msgid "Address book" +msgstr "通讯录" + +#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:246 +#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:219 +msgid "Storage" +msgstr "存储" + +#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:256 +msgid "" +"Addresses in the Private Address Book are not shared with anyone else unless" +" you copy them by hand." +msgstr "在私有地址簿中的网址不会被分享给任何人,除非你手动复制。" + +#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:263 +msgid "" +"The Published Address Book is used for sharing addresses using your I2P " +"Site." +msgstr "已发行地址簿是用于通过您的 L2P 站点来分享网址的。" + +#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:265 +msgid "Sites in the Private Address Book are not published here." +msgstr "在私有地址簿里的网站将不会在这里被发布。" + +#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:272 +msgid "This is the Local Address Book." +msgstr "这是本地地址簿" + +#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:275 +msgid "Use it for sites that you host on this computer." +msgstr "将其用于您将此计算机作为主机的网站。" + +#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:282 +msgid "" +"The Router Address Book is automatically generated by combining the " +"Subscriptions, Local, Private, and Published address books." +msgstr "路由地址簿是通过结合订阅、本地、私有和发行地址簿自动生成的。" + +#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:311 +msgid "Export in hosts.txt format" +msgstr "导出 hosts.txt 格式" + +#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:336 +msgid "Current filter" +msgstr "当前过滤器" + +#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:340 +msgid "clear filter" +msgstr "清除过滤器" + +#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:368 +msgid "Filter" +msgstr "过滤器" + +#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:385 +msgid "other" +msgstr "其他" + +#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:387 +msgid "all" +msgstr "全部" + +#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:393 +msgid "Search" +msgstr "搜尋" + +#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:435 +#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:673 +#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:268 +msgid "Hostname" +msgstr "主機名稱" + +#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:437 +msgid "Link (b32)" +msgstr "链接 (b32)" + +#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:439 +#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:374 +msgid "Destination" +msgstr "目的地" + +#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:453 +msgid "Select hosts for deletion from address book" +msgstr "选择要从地址簿中删除的主机" + +#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:501 +msgid "View larger version of identicon for this hostname" +msgstr "查看此主机名的identicon的较大版本" + +#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:515 +msgid "Base 32 address" +msgstr "Base 32 地址" + +#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:521 +msgid "Helper link to share host address with option to add to address book" +msgstr "链接助手用于分享主机地址, 同时带有加入地址簿的选项" + +#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:527 +msgid "More information on this entry" +msgstr "此记录的更多信息" + +#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:530 +msgid "details" +msgstr "详情" + +#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:550 +msgid "Mark for deletion" +msgstr "標記為刪除" + +#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:603 +#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:681 +#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:703 +msgid "Cancel" +msgstr "取消" + +#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:651 +msgid "This address book is empty." +msgstr "此地址簿为空。" + +#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:671 +msgid "Add new destination" +msgstr "添加新目标" + +#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:677 +msgid "Destination or Base 32 Address" +msgstr "目标或32位地址" + +#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:699 +msgid "Import from hosts.txt file" +msgstr "从 hosts.txt 文件导入" + +#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:701 +msgid "File" +msgstr "文件" + +#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:200 +msgid "configuration" +msgstr "配置" + +#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:224 +#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:215 +msgid "File location" +msgstr "文件位置" + +#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:239 +msgid "Hints" +msgstr "提示" + +#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:241 +msgid "" +"File and directory paths here are relative to the address book's working " +"directory, which is normally ~/.i2p/addressbook/ (Linux) or " +"%LOCALAPPDATA%\\I2P\\addressbook\\ (Windows)." +msgstr "这里的文件和文件夹路径是和地址簿的工作目录相关的,一般为~/.i2p/addressbook/ (Linux) 或 %LOCALAPPDATA%\\I2P\\addressbook\\ (Windows)。" + +#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:243 +msgid "" +"If you want to manually add lines to an address book, add them to the " +"private or local address books." +msgstr "如果您想要手动地向一个地址簿里添加一些新行,那么将它们添加到私有或者本地地址簿吧。" + +#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:245 +msgid "" +"The router address book and the published address book are updated by the " +"address book application." +msgstr "路由地址簿和发行地址簿是通过地址簿应用更新的。" + +#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:247 +msgid "" +"When you publish your address book, ALL destinations from the local and " +"router address books appear there." +msgstr "当你发布你的地址簿的时候, 所有本地和路由地址簿中的目标都会在那里显示。" + +#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:249 +msgid "" +"Use the private address book for private destinations, these are not " +"published." +msgstr "使用私有地址簿来记录需要保密的私有目标,这些的条目是不会被发布的。" + +#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:251 +msgid "Options" +msgstr "選項" + +#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:253 +msgid "File containing the list of subscriptions URLs (no need to change)" +msgstr "含有订阅URL列表的文件(无需修改)" + +#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:255 +msgid "Update interval in hours" +msgstr "更新周期(小时)" + +#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:257 +msgid "" +"Your public hosts.txt file (choose a path within your webserver document " +"root)" +msgstr "您公开发布的地址簿 hosts.txt 文件 (请在您的Web服务器目录中选择一个位置以便发布。)" + +#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:259 +msgid "Your hosts.txt (don't change)" +msgstr "您的 hosts.txt (不要修改)" + +#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:261 +msgid "Your personal address book, these hosts will be published" +msgstr "你的个人地址簿,这些主机会被发布" + +#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:263 +msgid "Your private address book, it is never published" +msgstr "您的私有地址簿,其中的地址不会被发布。" + +#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:265 +msgid "Port for your eepProxy (no need to change)" +msgstr "您的 eep 代理端口(无需修改)" + +#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:267 +msgid "Hostname for your eepProxy (no need to change)" +msgstr "您的 eep 代理主机名(无需修改)" + +#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:269 +msgid "Whether to update the published address book" +msgstr "是否更新发布地址簿" + +#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:271 +msgid "" +"File containing the etags header from the fetched subscription URLs (no need" +" to change)" +msgstr "此文件含有订阅URL返回的etag头(无需修改)" + +#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:273 +msgid "" +"File containing the modification timestamp for each fetched subscription URL" +" (no need to change)" +msgstr "此文件含有每个地址簿订阅URL上次获取时的修改时间(无需修改)" + +#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:275 +msgid "File to log activity to (change to /dev/null if you like)" +msgstr "活动日志文件(关闭可设为/dev/null [Linux])" + +#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:277 +msgid "Name of the theme to use (defaults to 'light')" +msgstr "使用主题的名称(默认为\"light\")" + +#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:282 +msgid "Encoded Name" +msgstr "编码后名称" + +#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:296 +msgid "Base 32 Address" +msgstr "b32(Base32)地址" + +#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:304 +msgid "Base 64 Hash" +msgstr "Base64 散列值" + +#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:310 +msgid "Address Helper" +msgstr "地址助手" + +#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:316 +msgid "link" +msgstr "链接" + +#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:320 +msgid "Public Key" +msgstr "公開金鑰" + +#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:322 +msgid "ElGamal 2048 bit" +msgstr "ElGamal 2048位" + +#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:326 +msgid "Signing Key" +msgstr "簽名金鑰" + +#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:332 +msgid "Certificate" +msgstr "证书" + +#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:338 +msgid "Validated" +msgstr "已验证" + +#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:340 +msgid "no" +msgstr "否" + +#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:340 +msgid "yes" +msgstr "是" + +#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:346 +msgid "Source" +msgstr "源代碼" + +#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:352 +msgid "Added Date" +msgstr "添加时间" + +#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:363 +msgid "Last Modified" +msgstr "上次修改" + +#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:382 +msgid "Notes" +msgstr "说明" + +#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:409 +msgid "Visual Identification for" +msgstr "可视化认证" + +#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:421 +msgid "Create your own identification images" +msgstr "创建你自己的身份图片" + +#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:423 +msgid "Launch Image Generator" +msgstr "启动图像生成器" + +#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:182 +msgid "Introduction" +msgstr "介绍" + +#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:204 +msgid "What is the address book?" +msgstr "什么是地址簿?" + +#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:206 +msgid "The address book application is part of your I2P installation." +msgstr "地址簿应用是 I2P 安装的一部分。" + +#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:208 +msgid "" +"You can use it to connect human-readable names, like i2p-projekt.i2p, to I2P" +" Destinations." +msgstr "您可以使用它来将一些人性化的名字和 L2P 目标连接,例如 i2p-projekt.i2p 。" + +#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:210 +msgid "" +"It regularly updates your hosts.txt file from distributed sources or " +"\"subscriptions\"." +msgstr "它定期从分布式来源或“订阅”更新您的 hosts.txt 文件。" + +#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:212 +#, java-format +msgid "" +"In the default configuration, the address book is only subscribed to {0}." +msgstr "在默认配置中,地址簿只订阅 {0}。" + +#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:214 +msgid "" +"Subscribing to additional sites is easy, just add them to your subscriptions." +msgstr "要订阅其他附加的站点很容易,只需将它们加入您的订阅文件。" + +#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:216 +msgid "" +"For more information on naming in I2P, see the " +"overview." +msgstr "更多关于 I2P 中命名的信息,请参见概述。" + +#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:218 +msgid "How to use the Address Book?" +msgstr "如何去使用地址簿呢?" + +#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:220 +msgid "" +"The I2P Address Book allows you to manage addresses by sorting them into " +"categories." +msgstr "I2P地址簿允许您通过将其进行分类来管理他们。" + +#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:222 +msgid "" +"You may use these categories according to how you intend to use the address." +msgstr "您可以根据您对该地址的使用需求来将其进行分类。" + +#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:224 +msgid "" +"Router: These addresses are added automatically, by your subscriptions. If " +"you publish an address book, the router address book will be shared with " +"other I2P users." +msgstr "路由:这些地址是根据您的订阅自动添加的。如果您发布了一个地址簿,那么路由地址簿将被其他 I2P 用户共享。" + +#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:226 +msgid "" +"Local: This is your personal address book, for hosts which you publish and " +"share with others." +msgstr "本地:这是您的私人地址簿,用于那些您发布或和其他用户分享的主机。" + +#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:228 +msgid "" +"Private: This address book if used for addresses which you do not want to " +"share with other I2P users." +msgstr "私有:如果您不想将某些地址分享给其他 I2P 用户的话,那么这个地址簿将很符合您的需求。" + +#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:230 +msgid "How does the address book application work?" +msgstr "地址簿应用如何工作?" + +#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:232 +msgid "" +"The address book application regularly polls your subscriptions and merges " +"their content into your \"router\" address book." +msgstr "地址簿应用会定期下载订阅的地址簿并将它们的内容合并至“路由器”地址簿。" + +#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:234 +msgid "" +"Then it merges your \"local\" address book into the router address book as " +"well." +msgstr "接着它也会把你的“本地”地址簿合并到路由地址簿" + +#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:236 +msgid "" +"If configured, the router address book is now written to the \"published\" " +"address book, which will be publicly available if you are running an I2P " +"Site." +msgstr "一旦确认,路由地址簿将会被改写为“发行”地址簿,这意味着这个如果您正在运行一个I2P站点,这个地址簿将对所有人开放。" + +#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:238 +msgid "" +"The router also uses a private address book, which is not merged or " +"published." +msgstr "路由也使用私有地址簿,既不合并也不发布。" + +#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:240 +msgid "" +"Hosts in the private address book can be accessed by you but their addresses" +" are never distributed to others." +msgstr "您可以访问“私有”地址簿中的主机名,但它们的实际地址不会发布给其他人。" + +#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:242 +msgid "" +"The private address book can also be used for aliases of hosts in your other" +" address books." +msgstr "“私有”地址簿也可以用于为其他地址簿中的主机名添加别名。" + +#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:191 +msgid "subscriptions" +msgstr "订阅" + +#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:230 +msgid "The subscription file contains a list of i2p URLs." +msgstr "订阅文件包含一个 I2P URL 列表。" + +#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:232 +msgid "" +"The address book application regularly checks this list for new I2P Sites." +msgstr "地址簿应用将通过定期检查此列表来确认新I2P站点的存在。" + +#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:234 +msgid "Those URLs refer to published hosts.txt files." +msgstr "这些 URL 指向公开发布的 hosts.txt 文件。" + +#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:236 +#, java-format +msgid "" +"The default subscription is the hosts.txt from {0}, which is updated " +"infrequently." +msgstr "默认订阅是来自 {0} 的 hosts.txt,它很少更新。" + +#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:238 +msgid "" +"So it is a good idea to add additional subscriptions to sites that have the " +"latest addresses." +msgstr "所以订阅一些网站的最新地址簿是个不错的主意。" + +#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:240 +msgid "See the FAQ for a list of subscription URLs." +msgstr "其他来源的订阅 URL 参见 I2P 站点的 FAQ。" + +#: build/HowSVG.java:5 +msgid "" +"If SusiDNS is configured to publish your Router address book, the entries " +"will appear in your Published address book and saved to a hosts.txt file for" +" sharing." +msgstr "如果 SusiDNS 确认将要发布您的路由地址簿的话,那么网站条目将会展示您的发行地址簿并且将其保存到一个 hosts.txt 文件中以供分享。" + +#: build/HowSVG.java:6 +msgid "Published Addressbook" +msgstr "公开地址簿" + +#: build/HowSVG.java:7 +msgid "" +"To configure SusiDNS to push your Router address book to your Published " +"address book, set 'should_publish=true' on the configuration page." +msgstr "如想要配置SusiDNS来将你的路由地址簿加入到你发布的地址簿中, 请在配置页面设定 ‘should_publish=true’" + +#: build/HowSVG.java:8 +msgid "" +"All hosts derived from subscriptions will appear in this address book, in " +"addition to any you manually add here or to your Local address book." +msgstr "除开您手动添加或者位于您本地地址簿的主机,所有从订阅中获取的主机都会在这个地址簿中可见。" + +#: build/HowSVG.java:9 +msgid "Router Addressbook" +msgstr "路由地址簿" + +#: build/HowSVG.java:10 +msgid "" +"Hosts you manually add here will never be published. You can also add " +"aliases to hosts in other address books here." +msgstr "您在这里手动添加的主机永远不会被发布. 你也可以在这里别的地址簿中加入主机的别名" + +#: build/HowSVG.java:11 +msgid "Private Addressbook" +msgstr "私有地址簿" + +#: build/HowSVG.java:12 +msgid "Local Records" +msgstr "本地记录" + +#: build/HowSVG.java:13 +msgid "" +"I2P applications (including the HTTP proxy) use the hosts in your local " +"address books to resolve .i2p hostnames." +msgstr "I2P 应用(包括HTTP代理)使用你的本地地址簿上的主机解析.i2p主机名。" + +#: build/HowSVG.java:14 +msgid "" +"Additional subscriptions can be found in the FAQ section of the Router help " +"page." +msgstr "在路由的帮助界面中FAQ类别中, 您可以找到更多订阅" + +#: build/HowSVG.java:16 +msgid "" +"Hosts sourced from your subscriptions are added to your Router address book," +" and are automatically synced (by default every 12 hours)." +msgstr "源自您的订阅的主机不被加入到您的路由地址簿中, 并被自动同步(默认每12小时同步)" + +#: build/HowSVG.java:17 +msgid "Configure Subscriptions" +msgstr "配置订阅" + +#: build/HowSVG.java:18 +msgid "" +"If you manually add hosts here, they will be included your Published address" +" book (if configured)." +msgstr "如果你在此手动添加主机,它们将会被包含在你的发布地址簿(如已配置)。" + +#: build/HowSVG.java:19 +msgid "Local Addressbook" +msgstr "本地地址簿" + +#: build/HowSVG.java:20 +msgid "Searchable by" +msgstr "可通过搜索" + +#: build/HowSVG.java:21 +msgid "I2P applications" +msgstr "I2P 应用" + +#: build/HowSVG.java:22 +msgid "" +"The Local, Router and Private address books collectively serve as the DNS " +"authority for I2P applications." +msgstr "本地、路由和私有地址簿都将共同作为 I2P 应用的 DNS 授权而服务。" + +#: build/HowSVG.java:23 +msgid "Optional," +msgstr "可选," + +#: build/HowSVG.java:24 +msgid "for websites" +msgstr "针对网页" + +#: build/HowSVG.java:25 +msgid "" +"If you configure SusiDNS to publish your Router address book, it will export" +" a hosts.txt file containing all the hosts (by default to the root of your " +"eepsite)." +msgstr "如果你配置SusiDNS以发布你的路由地址簿,会输出包含所有主机的hosts.txt文件(默认为你的匿名网站的根)" + +#: build/HowSVG.java:26 +msgid "" +"Addresses manually added to your Local address book will merge with your " +"Router address book." +msgstr "手动添加到主地址簿的地址将和你的路由地址簿合并。" + +#: build/HowSVG.java:27 +msgid "" +"Hosts you receive from your subscriptions will merge with your Router " +"address book." +msgstr "从你的订阅中收到的主机将和你的路由地址簿合并。" diff --git a/apps/susimail/locale/messages_gan.po b/apps/susimail/locale/messages_gan.po new file mode 100644 index 0000000000..a3a8efd78a --- /dev/null +++ b/apps/susimail/locale/messages_gan.po @@ -0,0 +1,639 @@ +# I2P +# Copyright (C) 2009 The I2P Project +# This file is distributed under the same license as the susimail package. +# To contribute translations, see http://www.i2p2.de/newdevelopers +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: I2P\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-03-27 13:00+0000\n" +"PO-Revision-Date: 2011-03-11 22:21+0000\n" +"Last-Translator: duck \n" +"Language-Team: Chinese (Gan) (http://app.transifex.com/otf/I2P/language/gan/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: gan\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: src/src/i2p/susi/webmail/MailCache.java:551 +#: src/src/i2p/susi/webmail/WebMail.java:2626 +#, java-format +msgid "{0} new message" +msgid_plural "{0} new messages" +msgstr[0] "{0}新消息" + +#: src/src/i2p/susi/webmail/MailCache.java:554 +#: src/src/i2p/susi/webmail/WebMail.java:2539 +msgid "Email" +msgstr "电子邮件" + +#: src/src/i2p/susi/webmail/MailPart.java:336 +#, java-format +msgid "No encoder found for encoding \\''{0}\\''." +msgstr "没有找到可用编码器处理编码\\ '' {0} \\ ''。" + +#. tagged in WebMail +#: src/src/i2p/susi/webmail/Sorters.java:124 +#: src/src/i2p/susi/webmail/WebMail.java:1269 +#: src/src/i2p/susi/webmail/WebMail.java:1270 +msgid "Re:" +msgstr "回复:" + +#: src/src/i2p/susi/webmail/Sorters.java:125 +#: src/src/i2p/susi/webmail/WebMail.java:1349 +#: src/src/i2p/susi/webmail/WebMail.java:1350 +msgid "Fwd:" +msgstr "转发:" + +#. MailDir-like +#: src/src/i2p/susi/webmail/WebMail.java:222 +msgid "Drafts" +msgstr "草稿" + +#. MailDir-like +#: src/src/i2p/susi/webmail/WebMail.java:223 +msgid "Sent" +msgstr "已发送" + +#. MailDir-like +#: src/src/i2p/susi/webmail/WebMail.java:224 +msgid "Trash" +msgstr "垃圾筒" + +#. MailDir-like +#: src/src/i2p/susi/webmail/WebMail.java:225 +msgid "Bulk Mail" +msgstr "大量邮件" + +#. untranslated, translate on use +#: src/src/i2p/susi/webmail/WebMail.java:229 +msgid "Inbox" +msgstr "收件箱" + +#: src/src/i2p/susi/webmail/WebMail.java:555 +msgid "View email as HTML" +msgstr "以HTML格式查看邮件" + +#: src/src/i2p/susi/webmail/WebMail.java:573 +msgid "View email as plain text" +msgstr "以纯文本格式查看邮件" + +#: src/src/i2p/susi/webmail/WebMail.java:604 +msgid "unknown" +msgstr "未知" + +#: src/src/i2p/susi/webmail/WebMail.java:638 +msgid "" +"To protect your privacy, SusiMail has blocked remote content in this " +"message." +msgstr "为保护隐私,Susimail已屏蔽该信息的远端内容。" + +#: src/src/i2p/susi/webmail/WebMail.java:639 +msgid "Enable javascript for improved display of this message." +msgstr "启用 JavaScript 以改善此信息的显示。" + +#: src/src/i2p/susi/webmail/WebMail.java:665 +#, java-format +msgid "Charset \\''{0}\\'' not supported." +msgstr "不支持字符集\\ '' {0} \\ ''。" + +#: src/src/i2p/susi/webmail/WebMail.java:669 +#, java-format +msgid "Part ({0}) not shown, because of {1}" +msgstr "第({0})部分没有显示,因为{1}" + +#: src/src/i2p/susi/webmail/WebMail.java:719 +#: src/src/i2p/susi/webmail/WebMail.java:724 +#, java-format +msgid "Download attachment {0}" +msgstr "下载附件{0}" + +#: src/src/i2p/susi/webmail/WebMail.java:725 +msgid "File is packed into a zipfile for security reasons." +msgstr "出于安全原因,文件被打包为zip文件。" + +#: src/src/i2p/susi/webmail/WebMail.java:730 +#, java-format +msgid "Attachment ({0})." +msgstr "附件({0})。" + +#: src/src/i2p/susi/webmail/WebMail.java:790 +msgid "Need username for authentication." +msgstr "需要认证用的用户名。" + +#: src/src/i2p/susi/webmail/WebMail.java:795 +msgid "Do not include @mail.i2p in the username" +msgstr "请勿在用户名中包含@mail.i2p" + +#: src/src/i2p/susi/webmail/WebMail.java:800 +msgid "Need password for authentication." +msgstr "需要认证用的密码。" + +#: src/src/i2p/susi/webmail/WebMail.java:806 +msgid "Need hostname for connect." +msgstr "需要连接用的主机名。" + +#: src/src/i2p/susi/webmail/WebMail.java:813 +msgid "Need port number for pop3 connect." +msgstr "需要POP3的连接端口号。" + +#: src/src/i2p/susi/webmail/WebMail.java:821 +msgid "POP3 port number is not in range 0..65535." +msgstr "POP3端口号超出范围0-65535。" + +#: src/src/i2p/susi/webmail/WebMail.java:827 +msgid "POP3 port number is invalid." +msgstr "POP3端口号是无效的。" + +#: src/src/i2p/susi/webmail/WebMail.java:833 +msgid "Need port number for smtp connect." +msgstr "需要的SMTP连接端口号。" + +#: src/src/i2p/susi/webmail/WebMail.java:841 +msgid "SMTP port number is not in range 0..65535." +msgstr "SMTP端口号是超出范围0-65535。" + +#: src/src/i2p/susi/webmail/WebMail.java:847 +msgid "SMTP port number is invalid." +msgstr "SMTP端口号无效。" + +#: src/src/i2p/susi/webmail/WebMail.java:924 +#: src/src/i2p/susi/webmail/WebMail.java:1480 +#: src/src/i2p/susi/webmail/pop3/POP3MailBox.java:446 +#: src/src/i2p/susi/webmail/pop3/POP3MailBox.java:644 +#: src/src/i2p/susi/webmail/pop3/POP3MailBox.java:657 +#: src/src/i2p/susi/webmail/pop3/POP3MailBox.java:716 +#: src/src/i2p/susi/webmail/pop3/POP3MailBox.java:754 +#: src/src/i2p/susi/webmail/pop3/POP3MailBox.java:762 +#: src/src/i2p/susi/webmail/smtp/SMTPClient.java:243 +#: src/src/i2p/susi/webmail/smtp/SMTPClient.java:258 +msgid "Cannot connect" +msgstr "不能连接" + +#: src/src/i2p/susi/webmail/WebMail.java:1020 +#: src/src/i2p/susi/webmail/pop3/POP3MailBox.java:744 +msgid "Error connecting to server" +msgstr "連接服務器錯誤" + +#. _t("Internal error, lost connection.") + '\n' + +#: src/src/i2p/susi/webmail/WebMail.java:1064 +#: src/src/i2p/susi/webmail/WebMail.java:1078 +msgid "User logged out." +msgstr "用户已登出。" + +#: src/src/i2p/susi/webmail/WebMail.java:1129 +msgid "Draft saved." +msgstr "草稿已保存。" + +#: src/src/i2p/susi/webmail/WebMail.java:1139 +#: src/src/i2p/susi/webmail/WebMail.java:1384 +#: src/src/i2p/susi/webmail/WebMail.java:2985 +#: src/src/i2p/susi/webmail/WebMail.java:3166 +msgid "Unable to save mail." +msgstr "无法保存邮件。" + +#: src/src/i2p/susi/webmail/WebMail.java:1273 +#, java-format +msgid "On {0} {1} wrote:" +msgstr "在 {0} {1} 写到:" + +#: src/src/i2p/susi/webmail/WebMail.java:1336 +#: src/src/i2p/susi/webmail/WebMail.java:1563 +#, java-format +msgid "Error reading uploaded file: {0}" +msgstr "读取上传文件错误:{0}" + +#: src/src/i2p/susi/webmail/WebMail.java:1362 +msgid "begin forwarded mail" +msgstr "转信开始" + +#: src/src/i2p/susi/webmail/WebMail.java:1372 +msgid "end forwarded mail" +msgstr "转信结束" + +#: src/src/i2p/susi/webmail/WebMail.java:1390 +#: src/src/i2p/susi/webmail/WebMail.java:3788 +msgid "Could not fetch mail body." +msgstr "无法获取邮件正文。" + +#: src/src/i2p/susi/webmail/WebMail.java:1422 +msgid "Message id not valid." +msgstr "消息ID无效。" + +#: src/src/i2p/susi/webmail/WebMail.java:1467 +msgid "Internal error, lost connection." +msgstr "内部错误,连接已断开。" + +#: src/src/i2p/susi/webmail/WebMail.java:1560 +#: src/src/i2p/susi/webmail/smtp/SMTPClient.java:386 +#, java-format +msgid "No Encoding found for {0}" +msgstr "{0}的编码检测失败。" + +#: src/src/i2p/susi/webmail/WebMail.java:1707 +#: src/src/i2p/susi/webmail/WebMail.java:1754 +msgid "Attachment not found." +msgstr "找不到附件." + +#. error if we get here +#: src/src/i2p/susi/webmail/WebMail.java:1780 +#: src/src/i2p/susi/webmail/WebMail.java:1782 +#: src/src/i2p/susi/webmail/WebMail.java:2523 +#: src/src/i2p/susi/webmail/WebMail.java:3792 +msgid "Message not found." +msgstr "未找到消息。" + +#: src/src/i2p/susi/webmail/WebMail.java:1914 +#, java-format +msgid "1 message deleted." +msgid_plural "{0} messages deleted." +msgstr[0] "已删除{0}封邮件。" + +#: src/src/i2p/susi/webmail/WebMail.java:1916 +#: src/src/i2p/susi/webmail/WebMail.java:1925 +msgid "No messages marked for deletion." +msgstr "没有邮件被标记来删除。" + +#: src/src/i2p/susi/webmail/WebMail.java:1990 +#, java-format +msgid "Host unchanged. Edit configuration file {0} to change host." +msgstr "主机未变更。编辑配置文件{0}来变更主机。" + +#: src/src/i2p/susi/webmail/WebMail.java:2010 +msgid "Configuration saved" +msgstr "配置已保存" + +#: src/src/i2p/susi/webmail/WebMail.java:2032 +msgid "Invalid pagesize number, resetting to default value." +msgstr "无效的每页数,重置为默认值。" + +#: src/src/i2p/susi/webmail/WebMail.java:2501 +#: src/src/i2p/susi/webmail/WebMail.java:3398 +msgid "Login" +msgstr "登入" + +#: src/src/i2p/susi/webmail/WebMail.java:2503 +#: src/src/i2p/susi/webmail/WebMail.java:2644 +#: src/src/i2p/susi/webmail/WebMail.java:3415 +msgid "Loading emails, please wait..." +msgstr "加载邮件中,请稍后..." + +#: src/src/i2p/susi/webmail/WebMail.java:2511 +#, java-format +msgid "1 Message" +msgid_plural "{0} Messages" +msgstr[0] "{0} 封邮件" + +#: src/src/i2p/susi/webmail/WebMail.java:2513 +#: src/src/i2p/susi/webmail/WebMail.java:3558 +msgid "No messages" +msgstr "无消息" + +#: src/src/i2p/susi/webmail/WebMail.java:2521 +msgid "Show Message" +msgstr "显示消息" + +#: src/src/i2p/susi/webmail/WebMail.java:2526 +msgid "New Message" +msgstr "新消息" + +#: src/src/i2p/susi/webmail/WebMail.java:2528 +msgid "Configuration" +msgstr "設定" + +#: src/src/i2p/susi/webmail/WebMail.java:2629 +msgid "No new messages" +msgstr "没有新消息" + +#: src/src/i2p/susi/webmail/WebMail.java:2646 +msgid "Checking for new emails on server" +msgstr "正在检查服务器上的新邮件" + +#: src/src/i2p/susi/webmail/WebMail.java:2648 +#: src/src/i2p/susi/webmail/WebMail.java:3417 +msgid "Refresh the page for updates" +msgstr "刷新该页面来更新" + +#: src/src/i2p/susi/webmail/WebMail.java:2659 +#: src/src/i2p/susi/webmail/WebMail.java:3379 +msgid "Add a new user" +msgstr "新增用户" + +#: src/src/i2p/susi/webmail/WebMail.java:2893 +#: src/src/i2p/susi/webmail/WebMail.java:3517 +#: src/src/i2p/susi/webmail/WebMail.java:3764 +msgid "no subject" +msgstr "没有主题" + +#: src/src/i2p/susi/webmail/WebMail.java:3021 +msgid "Found no valid sender address." +msgstr "没有找到有效的发件人地址。" + +#: src/src/i2p/susi/webmail/WebMail.java:3027 +#, java-format +msgid "Found no valid address in \\''{0}\\''." +msgstr "\\ '' {0} \\ ''中没有找到有效的地址。" + +#: src/src/i2p/susi/webmail/WebMail.java:3041 +msgid "No recipients found." +msgstr "没有找到收件人。" + +#: src/src/i2p/susi/webmail/WebMail.java:3055 +#: src/src/i2p/susi/webmail/smtp/SMTPClient.java:302 +#, java-format +msgid "Email is too large, max is {0}" +msgstr "电子邮件过大,最大为{0}" + +#: src/src/i2p/susi/webmail/WebMail.java:3098 +#: src/src/i2p/susi/webmail/WebMail.java:3179 +msgid "Sending mail." +msgstr "正在发送邮件。" + +#: src/src/i2p/susi/webmail/WebMail.java:3103 +#: src/src/i2p/susi/webmail/smtp/SMTPClient.java:254 +#: src/src/i2p/susi/webmail/smtp/SMTPClient.java:346 +#: src/src/i2p/susi/webmail/smtp/SMTPClient.java:351 +msgid "Error sending mail" +msgstr "发送邮件错误" + +#: src/src/i2p/susi/webmail/WebMail.java:3137 +msgid "Mail sent." +msgstr "邮件已发送。" + +#: src/src/i2p/susi/webmail/WebMail.java:3229 +msgid "Send" +msgstr "发送" + +#: src/src/i2p/susi/webmail/WebMail.java:3230 +msgid "Save as Draft" +msgstr "作为草稿保存" + +#: src/src/i2p/susi/webmail/WebMail.java:3231 +#: src/src/i2p/susi/webmail/WebMail.java:3567 +#: src/src/i2p/susi/webmail/WebMail.java:3682 +#: src/src/i2p/susi/webmail/WebMail.java:3844 +msgid "Cancel" +msgstr "取消" + +#: src/src/i2p/susi/webmail/WebMail.java:3318 +#: src/src/i2p/susi/webmail/WebMail.java:3470 +#: src/src/i2p/susi/webmail/WebMail.java:3767 +msgid "From" +msgstr "从" + +#: src/src/i2p/susi/webmail/WebMail.java:3319 +#: src/src/i2p/susi/webmail/WebMail.java:3470 +#: src/src/i2p/susi/webmail/WebMail.java:3772 +msgid "To" +msgstr "至" + +#: src/src/i2p/susi/webmail/WebMail.java:3320 +#: src/src/i2p/susi/webmail/WebMail.java:3776 +msgid "Cc" +msgstr "副本" + +#: src/src/i2p/susi/webmail/WebMail.java:3321 +msgid "Bcc" +msgstr "密件副本" + +#: src/src/i2p/susi/webmail/WebMail.java:3322 +#: src/src/i2p/susi/webmail/WebMail.java:3471 +#: src/src/i2p/susi/webmail/WebMail.java:3769 +msgid "Subject" +msgstr "主旨" + +#: src/src/i2p/susi/webmail/WebMail.java:3325 +msgid "Add Attachment" +msgstr "添加附件" + +#: src/src/i2p/susi/webmail/WebMail.java:3331 +msgid "Attachments" +msgstr "附件" + +#: src/src/i2p/susi/webmail/WebMail.java:3346 +msgid "Delete selected attachments" +msgstr "删除所选的附件" + +#. boolean fixed = Boolean.parseBoolean(Config.getProperty( +#. CONFIG_PORTS_FIXED, "true" )); +#. String host = Config.getProperty(CONFIG_HOST, DEFAULT_HOST); +#. String pop3 = Config.getProperty(CONFIG_PORTS_POP3, +#. Integer.toString(DEFAULT_POP3PORT)); +#. String smtp = Config.getProperty(CONFIG_PORTS_SMTP, +#. Integer.toString(DEFAULT_SMTPPORT)); +#: src/src/i2p/susi/webmail/WebMail.java:3363 +msgid "Email Login" +msgstr "电子邮件登入" + +#. current postman hq length limits 16/12, new postman version 32/32 +#: src/src/i2p/susi/webmail/WebMail.java:3365 +msgid "User" +msgstr "使用者" + +#: src/src/i2p/susi/webmail/WebMail.java:3394 +msgid "Password" +msgstr "密碼" + +#: src/src/i2p/susi/webmail/WebMail.java:3399 +msgid "Read Mail Offline" +msgstr "脱机阅读邮件" + +#: src/src/i2p/susi/webmail/WebMail.java:3403 +#: src/src/i2p/susi/webmail/WebMail.java:3586 +msgid "Settings" +msgstr "設定" + +#: src/src/i2p/susi/webmail/WebMail.java:3405 +msgid "Create Account" +msgstr "建立帳戶" + +#: src/src/i2p/susi/webmail/WebMail.java:3405 +msgid "Learn about I2P mail" +msgstr "了解 I2P 邮件" + +#: src/src/i2p/susi/webmail/WebMail.java:3430 +#: src/src/i2p/susi/webmail/WebMail.java:3706 +msgid "New" +msgstr "未讀" + +#: src/src/i2p/susi/webmail/WebMail.java:3440 +msgid "Check Mail" +msgstr "检查邮件" + +#. if (Config.hasConfigFile()) +#. out.println(button( RELOAD, _t("Reload Config") ) + spacer); +#: src/src/i2p/susi/webmail/WebMail.java:3451 +#: src/src/i2p/susi/webmail/WebMail.java:3718 +#: src/src/i2p/susi/webmail/WebMail.java:3846 +msgid "Logout" +msgstr "登出" + +#: src/src/i2p/susi/webmail/WebMail.java:3469 +msgid "Mark for deletion" +msgstr "標記為刪除" + +#: src/src/i2p/susi/webmail/WebMail.java:3472 +#: src/src/i2p/susi/webmail/WebMail.java:3779 +msgid "Date" +msgstr "日期" + +#: src/src/i2p/susi/webmail/WebMail.java:3474 +msgid "Size" +msgstr "大小" + +#: src/src/i2p/susi/webmail/WebMail.java:3521 +msgid "Message is new" +msgstr "是新邮件" + +#: src/src/i2p/susi/webmail/WebMail.java:3548 +msgid "Message has an attachment" +msgstr "邮件带有附件" + +#: src/src/i2p/susi/webmail/WebMail.java:3550 +msgid "Message is spam" +msgstr "邮件是垃圾邮件" + +#. TODO ngettext +#: src/src/i2p/susi/webmail/WebMail.java:3565 +msgid "Really delete the marked messages?" +msgstr "真要删除标记的邮件?" + +#: src/src/i2p/susi/webmail/WebMail.java:3566 +msgid "Yes, really delete them!" +msgstr "是的,立刻删除!" + +#: src/src/i2p/susi/webmail/WebMail.java:3569 +msgid "Delete Selected" +msgstr "删除所选" + +#: src/src/i2p/susi/webmail/WebMail.java:3571 +msgid "Mark All" +msgstr "全部标记" + +#: src/src/i2p/susi/webmail/WebMail.java:3573 +msgid "Clear All" +msgstr "全部清除" + +#: src/src/i2p/susi/webmail/WebMail.java:3609 +msgid "Folder" +msgstr "文件夹" + +#. TODO css to center it +#: src/src/i2p/susi/webmail/WebMail.java:3610 +msgid "Change to Folder" +msgstr "变更到文件夹" + +#: src/src/i2p/susi/webmail/WebMail.java:3616 +msgid "First" +msgstr "第一頁" + +#: src/src/i2p/susi/webmail/WebMail.java:3617 +#: src/src/i2p/susi/webmail/WebMail.java:3730 +msgid "Previous" +msgstr "前一" + +#: src/src/i2p/susi/webmail/WebMail.java:3626 +#, java-format +msgid "Page {0} of {1}" +msgstr "第{0}页 共{1}页" + +#: src/src/i2p/susi/webmail/WebMail.java:3628 +#: src/src/i2p/susi/webmail/WebMail.java:3745 +msgid "Next" +msgstr "下一頁" + +#: src/src/i2p/susi/webmail/WebMail.java:3629 +msgid "Last" +msgstr "最後一頁" + +#: src/src/i2p/susi/webmail/WebMail.java:3680 +msgid "Really delete this message?" +msgstr "真的要删除此邮件?" + +#: src/src/i2p/susi/webmail/WebMail.java:3681 +msgid "Yes, really delete it!" +msgstr "是的,立刻删除!" + +#: src/src/i2p/susi/webmail/WebMail.java:3709 +msgid "Reply" +msgstr "回复" + +#: src/src/i2p/susi/webmail/WebMail.java:3710 +msgid "Reply All" +msgstr "回复所有人" + +#: src/src/i2p/susi/webmail/WebMail.java:3711 +msgid "Forward" +msgstr "下一步" + +#: src/src/i2p/susi/webmail/WebMail.java:3712 +msgid "Save As" +msgstr "另存新檔" + +#: src/src/i2p/susi/webmail/WebMail.java:3714 +#: src/src/i2p/susi/webmail/WebMail.java:3716 +msgid "Delete" +msgstr "刪除" + +#. can't move unless has body +#. can't move from drafts +#: src/src/i2p/susi/webmail/WebMail.java:3722 +msgid "Move to Folder" +msgstr "移动到文件夹" + +#: src/src/i2p/susi/webmail/WebMail.java:3742 +msgid "Back to Folder" +msgstr "返回到文件夹" + +#: src/src/i2p/susi/webmail/WebMail.java:3827 +msgid "Folder Page Size" +msgstr "文件夹页面大小" + +#: src/src/i2p/susi/webmail/WebMail.java:3830 +msgid "Set" +msgstr "設置" + +#: src/src/i2p/susi/webmail/WebMail.java:3833 +msgid "Advanced Configuration" +msgstr "進階設定" + +#: src/src/i2p/susi/webmail/WebMail.java:3843 +msgid "Save Configuration" +msgstr "保存配置" + +#. this appears in the UI so translate +#: src/src/i2p/susi/webmail/pop3/POP3MailBox.java:108 +#: src/src/i2p/susi/webmail/pop3/POP3MailBox.java:644 +#: src/src/i2p/susi/webmail/pop3/POP3MailBox.java:754 +#: src/src/i2p/susi/webmail/pop3/POP3MailBox.java:936 +#: src/src/i2p/susi/webmail/pop3/POP3MailBox.java:978 +#: src/src/i2p/susi/webmail/pop3/POP3MailBox.java:1199 +msgid "No response from server" +msgstr "服务器没有响应" + +#: src/src/i2p/susi/webmail/pop3/POP3MailBox.java:747 +msgid "Mail server login failed, wrong username or password." +msgstr "邮件服务器登入失败,错误的用户名或者密码" + +#: src/src/i2p/susi/webmail/pop3/POP3MailBox.java:749 +msgid "Logout and then login again with the correct username and password." +msgstr "登出后再次使用正确的用户名和密码登入。" + +#: src/src/i2p/susi/webmail/pop3/POP3MailBox.java:1238 +#: src/src/i2p/susi/webmail/pop3/POP3MailBox.java:1240 +#: src/src/i2p/susi/webmail/smtp/SMTPClient.java:314 +msgid "Login failed" +msgstr "登录失败" + +#: src/src/i2p/susi/webmail/smtp/SMTPClient.java:256 +#: src/src/i2p/susi/webmail/smtp/SMTPClient.java:285 +msgid "Server refused connection" +msgstr "服务器拒绝连接" + +#. TODO which recipient? +#: src/src/i2p/susi/webmail/smtp/SMTPClient.java:327 +msgid "Mail rejected" +msgstr "邮件被拒绝" diff --git a/core/java/src/gnu/getopt/MessagesBundle_gan.properties b/core/java/src/gnu/getopt/MessagesBundle_gan.properties new file mode 100644 index 0000000000..40ab6d8111 --- /dev/null +++ b/core/java/src/gnu/getopt/MessagesBundle_gan.properties @@ -0,0 +1,31 @@ +#************************************************************************** +#* MessagesBundle.properties -- English language error messages +#* +#* Copyright (c) 1998 by William King (wrking@eng.sun.com) and +#* Aaron M. Renn (arenn@urbanophile.com) +#* +#* This program is free software; you can redistribute it and/or modify +#* it under the terms of the GNU Library General Public License as published +#* by the Free Software Foundation; either version 2 of the License or +#* (at your option) any later version. +#* +#* This program is distributed in the hope that it will be useful, but +#* WITHOUT ANY WARRANTY; without even the implied warranty of +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +#* GNU Library General Public License for more details. +#* +#* You should have received a copy of the GNU Library General Public License +#* along with this program; see the file COPYING.LIB. If not, write to +#* the Free Software Foundation Inc., 59 Temple Place - Suite 330, +#* Boston, MA 02111-1307 USA +#**************************************************************************/ +getopt.ambigious={0}: \u9078\u9805 ''{1}'' \u4e0d\u660e +getopt.arguments1={0}: \u9078\u9805''--{1}'' \u53c3\u6578\u4e0d\u5408\u6cd5 +getopt.arguments2={0}: \u9078\u9805''{1}{2}'' \u53c3\u6578\u4e0d\u5408\u6cd5 +getopt.requires={0}: \u9078\u9805''{1}'' \u9700\u8981\u4e00\u500b\u53c3\u6578 +getopt.unrecognized={0}: \u4e0d\u660e\u7684\u9078\u9805 ''--{1}'' +getopt.unrecognized2={0}: \u4e0d\u660e\u7684\u9078\u9805 ''{1}{2}'' +getopt.illegal={0}: \u975e\u6cd5\u9078\u9805-- {1} +getopt.invalid={0}: \u7121\u7528\u9078\u9805-- {1} +getopt.requires2={0}: \u9078\u9805\u9700\u8981\u4e00\u500b\u53c3\u6578 -- {1} +getopt.invalidValue=\u7121\u6548\u7684\u503c {0} \u5c0d\u65bc\u53c3\u6578'has_arg' diff --git a/core/locale/messages_gan.po b/core/locale/messages_gan.po new file mode 100644 index 0000000000..ec45fb16c5 --- /dev/null +++ b/core/locale/messages_gan.po @@ -0,0 +1,129 @@ +# 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. +# +# Translators: +# Beta Ba , 2024 +# Mingye Wang , 2024 +# walking , 2024 +# zzzi2p, 2024 +# +msgid "" +msgstr "" +"Project-Id-Version: I2P routerconsole\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-12-17 18:42+0000\n" +"PO-Revision-Date: 2019-12-17 17:16+0000\n" +"Last-Translator: zzzi2p, 2024\n" +"Language-Team: Chinese (Gan) (https://app.transifex.com/otf/teams/12694/gan/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: gan\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. NOTE TO TRANSLATORS: Feel free to translate all these as you see fit, there +#. are several options... +#. spaces or not, '.' or not, plural or not. Try not to make it too long, it +#. is used in +#. a lot of tables. +#. milliseconds +#. Note to translators, may be negative or zero, 2999 maximum. +#. {0,number,####} prevents 1234 from being output as 1,234 in the English +#. locale. +#. If you want the digit separator in your locale, translate as {0}. +#. alternates: msec, msecs +#: ../java/src/net/i2p/data/DataHelper.java:1383 +#: ../java/src/net/i2p/data/DataHelper.java:1436 +#, java-format +msgid "{0,number,####} ms" +msgid_plural "{0,number,####} ms" +msgstr[0] "{0,number,####} ms" + +#. seconds +#. alternates: secs, sec. 'seconds' is probably too long. +#: ../java/src/net/i2p/data/DataHelper.java:1387 +#: ../java/src/net/i2p/data/DataHelper.java:1438 +#, java-format +msgid "{0} sec" +msgid_plural "{0} sec" +msgstr[0] "{0} 秒" + +#. minutes +#. alternates: mins, min. 'minutes' is probably too long. +#: ../java/src/net/i2p/data/DataHelper.java:1391 +#: ../java/src/net/i2p/data/DataHelper.java:1440 +#, java-format +msgid "{0} min" +msgid_plural "{0} min" +msgstr[0] "{0} 分" + +#. hours +#. alternates: hrs, hr., hrs. +#: ../java/src/net/i2p/data/DataHelper.java:1395 +#: ../java/src/net/i2p/data/DataHelper.java:1442 +#, java-format +msgid "{0} hour" +msgid_plural "{0} hours" +msgstr[0] "{0} 小時" + +#. days +#: ../java/src/net/i2p/data/DataHelper.java:1398 +#: ../java/src/net/i2p/data/DataHelper.java:1445 +#, java-format +msgid "{0} day" +msgid_plural "{0} days" +msgstr[0] "{0} 天" + +#. years +#: ../java/src/net/i2p/data/DataHelper.java:1401 +#: ../java/src/net/i2p/data/DataHelper.java:1448 +#, java-format +msgid "{0} year" +msgid_plural "{0} years" +msgstr[0] "{0} 年" + +#: ../java/src/net/i2p/data/DataHelper.java:1403 +#: ../java/src/net/i2p/data/DataHelper.java:1450 +msgid "n/a" +msgstr "n/a" + +#: ../java/src/net/i2p/data/DataHelper.java:1432 +#, java-format +msgid "{0,number,####} ns" +msgid_plural "{0,number,###} ns" +msgstr[0] "{0,number,###} ns" + +#: ../java/src/net/i2p/data/DataHelper.java:1434 +#, java-format +msgid "{0,number,####} μs" +msgid_plural "{0,number,###} μs" +msgstr[0] "{0,number,###} μs" + +#: ../java/src/net/i2p/util/LogRecordFormatter.java:106 +msgid "CRIT" +msgstr "嚴重" + +#: ../java/src/net/i2p/util/LogRecordFormatter.java:106 +msgid "DEBUG" +msgstr "偵錯" + +#: ../java/src/net/i2p/util/LogRecordFormatter.java:106 +msgid "ERROR" +msgstr "错误" + +#: ../java/src/net/i2p/util/LogRecordFormatter.java:106 +msgid "INFO" +msgstr "資訊" + +#: ../java/src/net/i2p/util/LogRecordFormatter.java:106 +msgid "WARN" +msgstr "警告" + +#: ../java/src/net/i2p/util/LogWriter.java:161 +#, java-format +msgid "{0} similar message omitted" +msgid_plural "{0} similar messages omitted" +msgstr[0] "{0} 条相似消息已忽略" diff --git a/debian/i2p-router.manpages b/debian/i2p-router.manpages index 7a1d5298e1..09c9e2909b 100644 --- a/debian/i2p-router.manpages +++ b/debian/i2p-router.manpages @@ -6,6 +6,7 @@ installer/resources/man/eepget.es.1 installer/resources/man/eepget.es_AR.1 installer/resources/man/eepget.fi.1 installer/resources/man/eepget.fr.1 +installer/resources/man/eepget.gan.1 installer/resources/man/eepget.hu.1 installer/resources/man/eepget.it.1 installer/resources/man/eepget.ja.1 @@ -28,6 +29,7 @@ installer/resources/man/i2prouter-nowrapper.es.1 installer/resources/man/i2prouter-nowrapper.es_AR.1 installer/resources/man/i2prouter-nowrapper.fi.1 installer/resources/man/i2prouter-nowrapper.fr.1 +installer/resources/man/i2prouter-nowrapper.gan.1 installer/resources/man/i2prouter-nowrapper.hu.1 installer/resources/man/i2prouter-nowrapper.it.1 installer/resources/man/i2prouter-nowrapper.ja.1 diff --git a/debian/i2p.manpages b/debian/i2p.manpages index e24fec480f..6d6e45dc5c 100644 --- a/debian/i2p.manpages +++ b/debian/i2p.manpages @@ -6,6 +6,7 @@ installer/resources/man/i2prouter.es.1 installer/resources/man/i2prouter.es_AR.1 installer/resources/man/i2prouter.fi.1 installer/resources/man/i2prouter.fr.1 +installer/resources/man/i2prouter.gan.1 installer/resources/man/i2prouter.hu.1 installer/resources/man/i2prouter.it.1 installer/resources/man/i2prouter.ja.1 diff --git a/debian/po/gan.po b/debian/po/gan.po new file mode 100644 index 0000000000..cd731743cf --- /dev/null +++ b/debian/po/gan.po @@ -0,0 +1,90 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the i2p package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: I2P\n" +"Report-Msgid-Bugs-To: i2p@packages.debian.org\n" +"POT-Creation-Date: 2017-11-12 14:01+0000\n" +"PO-Revision-Date: 2011-10-03 21:48+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Chinese (Gan) (http://app.transifex.com/otf/I2P/language/gan/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: gan\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. Type: boolean +#. Description +#: ../i2p.templates:2001 +msgid "Should the I2P router be started at boot?" +msgstr "I2P路由應該在開機時啟動嗎?" + +#. Type: boolean +#. Description +#: ../i2p.templates:2001 +msgid "" +"The I2P router can be run as a daemon that starts automatically when your " +"computer boots up. This is the recommended configuration." +msgstr "I2P路由可以在開機時以進程方式自動啟動。這是建議的設定。" + +#. Type: string +#. Description +#: ../i2p.templates:3001 +msgid "I2P daemon user:" +msgstr "I2P進程用戶:" + +#. Type: string +#. Description +#: ../i2p.templates:3001 +msgid "" +"By default I2P is configured to run under the account i2psvc when running as" +" a daemon. To use an **existing** I2P profile you may enter a different " +"account name here. For example, if your previous I2P installation is at " +"/home/user/i2p, you may enter 'user' here." +msgstr "I2P后台服务默认以 i2psvc 账户运行。要使用*已有*的I2P配置文件,您可以输入不同的账户名。例如,如果您之前的I2P安装在 /home/user/i2p,此处可输入 'user'。" + +#. Type: string +#. Description +#: ../i2p.templates:3001 +msgid "" +"Very important: If a user other than the default of 'i2psvc' is entered " +"here, the chosen username *MUST* already exist." +msgstr "重要:如果您输入默认的 'i2psvc' 以外的账户,此账户必须已经存在。" + +#. Type: string +#. Description +#: ../i2p.templates:4001 +msgid "Memory that can be allocated to I2P:" +msgstr "I2P 最多可占用内存:" + +#. Type: string +#. Description +#: ../i2p.templates:4001 +msgid "By default, I2P will only be allowed to use up to 128MB of RAM." +msgstr "默认情况下,I2P 最多只允许使用 128MB 系统内存。" + +#. Type: string +#. Description +#: ../i2p.templates:4001 +msgid "" +"High bandwidth routers, as well as routers with a lot of active torrents / " +"plugins, may need to have this value increased." +msgstr "如果是高带宽,大量BT下载或是插件较多的节点,请放宽此限制。" + +#. Type: boolean +#. Description +#: ../i2p.templates:5001 +msgid "Should the I2P daemon be confined with AppArmor?" +msgstr "在 AppArmor 的沙河化下运行 I2P 守护进程?" + +#. Type: boolean +#. Description +#: ../i2p.templates:5001 +msgid "" +"With this option enabled I2P will be sandboxed with AppArmor, restricting " +"which files and directories may be accessed by I2P." +msgstr "此选项将启用被 AppArmor 沙盒化的 I2P,限制 I2P 可访问的文件和目录。" diff --git a/installer/resources/eepsite/docroot/help/index_gan.html b/installer/resources/eepsite/docroot/help/index_gan.html new file mode 100644 index 0000000000..8ead3f9c19 --- /dev/null +++ b/installer/resources/eepsite/docroot/help/index_gan.html @@ -0,0 +1,193 @@ + + + +I2P 公告網頁伺服器 + + + + + + +
+ +
+English + عربية + Azerbaijani + 中文 + Deutsch + Ελληνικά + Español + فارسی + Français + Magyar + bahasa Indonesia + Italian + Nederlands + Polish + Português + Română + Русский + Svenska + Turkish + Українська +
+ +

I2P 匿名网页服务器

+ +

在I2P上匿名部署网页的指导

+ +

这是你自己的匿名I2P网页服务器(经常被称为一个匿名网站)。 + 如果要提供你自己的内容,简单地编辑在网页服务器根目录下的文件。如果你按照下面的说明操作,这个站点将会被发布。

+ +

网页服务器的根目录文件夹可以在如下几个位置找到,这要看你的操作系统:

+ +
    +
  • +Linux
    +标准 安装:~/.i2p/匿名网站/docroot/
    +包安装,作为一个运行服务,/var/lib/i2p/i2p-配置/匿名网站/docroot/ +
  • +
  • +Windows
    %LOCALAPPDATA%\I2P\eepsite\docroot\ +
  • +
  • +Mac
    /Users/(user)/Library/Application Support/i2p +
  • +
+

在I2P中,隐藏服务使用以“ .b32.i2p”结尾的Base32地址或以长Base32字符串表示的Destination来寻址。 +在您按照以下说明分配寄存器名称之前,可以将Base32地址用作主机名。 +目标在某种程度上类似于IP地址,并显示在 +隐藏服务配置页面上

+ +

教程:如何为你的网站配置类似 "mysite.i2p" 的域名并允许他人访问。 + 你可以在本机访问http://127.0.0.1:7658/进入你的网站。

+ +

如何设置并发布你的隐藏服务

+ +

网页服务默认开启,但在你开启隐藏服务隧道前他人不能访问。 + 尽管你开启了 I2P 网页服务器隧道,但他人很难访问你的网站。 + 这是因为匿名网站只能由一段很长的网址或原始网址的 Base32 编码(下称“编码网址”)(.b32.i2p)访问。 + 为了让他人访问,你可以直接告知他人你的匿名网站的原始网址或编码网址,但把网址加入 I2P 的地址簿会比较方便。 + 以下是详细说明。

+ +
    +
  • 为你的网站取一个名字(something.i2p),使用小写字母。 +你可以先在你自己的路由器的地址簿中检查一下,看看你的名字是否已经被占用。 +在 隐藏服务配置页面上的 "网站名称 "处输入你网站的新名称。 +这将取代默认的 "mysite.i2p"。 +另外,如果您希望在启动I2P时自动启动您的I2P网络服务器隧道,请勾选 "自动启动 "选项。 +现在您的网站将在每次启动路由器时启动。 +请务必点击 "保存".
  • +
  • 隧道管理器页面上点击Webserver隧道的启动按钮。 + 你现在应该看到它列在I2P路由器控制台左侧的 "本地隧道 "下 。 + 您的网站已经运行在I2P网络上了
  • +
  • 突出显示并复制隐藏服务配置页上的整个本地目的地。 +请确保你复制了整个内容,它超过了500个字符。
  • +
  • 输入名称并将目的地粘贴到你的address book。 +点击 "添加 "以保存新条目。
  • +
  • 在你的浏览器中,输入你的网站名称(something.i2p),你应该就会回到这里。 +希望它正常工作!
  • +
  • 在你告诉世界你的新网站之前,你应该添加一些内容。 +进入上面列出的服务器根目录,用你自己的内容替换index.html重定向页面。
  • +
+

目录列表是启用的,所以你可以从一个子目录中托管文件,而不提供一个带有文件链接的页面。 +你可以通过为每个目录提供一个经过编辑的jetty-dir.css文件来改变目录的外观。 +lib子目录展示了一个自定义的风格。 +resources子目录演示的是默认样式。 +如果你需要一个基本网站的模板,请随意调整这个页面相关内容

+ +

如果您在编辑内容后返回此页面,尝试清楚您的浏览器缓存:

+ +
    +
  • +Firefox: 首选项➜ 高级➜ 网络➜ 缓存网页内容➜ 立即清除
  • +
  • +Chrome/Chromium: 设置➜ 高级设置➜ 隐私➜ 清除浏览数据
  • +
  • +Chrome/Chromium: 设置 ➜ 隐私➜ 清除浏览数据
  • +
+

注册您自己的I2P域名

+ +

现在是时候将您的网站添加到由stats.i2p等网站托管的I2P地址簿中。 +您必须在其中一个或多个网站上输入您的网站名称和目的地(或注册认证字符串)。

+

一些注册网站要求使用 "目的地"。 +突出显示并复制隐藏服务配置页上的整个本地目的地。 +请确保你复制了整个内容,它超过了500个字符。

+

一些注册网站,包括stats.i2p,需要注册认证字符串。 +它可以在隐藏服务配置页面Registration Authentication页面中找到。 +复制整个认证字符串并将其粘贴到注册页面。 +请确保你复制了整个字符串,它超过了500个字符。 +如果网站要求提供这一信息,请简要描述你的网站。 +如果你的网站是一个HTTP服务,请把复选框留下;如果不是,请取消选择。

+

对于所有注册站点,请仔细阅读服务条款。 +点击“提交”按钮。 +验证提交是否成功。 +由于许多路由器会定期从这些站点获取地址簿更新,因此在几个小时之内,其他路由器只需在其浏览器中输入您的主机名就能找到您的网站。

+ +

添加地址簿订阅

+ +

说到地址簿更新,这是将更多地址簿添加到您自己的订阅列表中的好时机。 + 转到订阅配置页面并添加一个或多个自动更新的新主机列表:

+ +
    +
  • +http://stats.i2p/cgi-bin/newhosts.txt (stats.i2p)
  • +
+

如果您赶时间并且不能等几个小时,可以告诉人们使用“跳转”地址帮助程序重定向服务。 + 这将会在您同一站点上注册主机名后的几分钟内生效。 + 首先,通过在浏览器中输入http://stats.i2p/cgi-bin/jump.cgi?a=something.i2p进入您的浏览器。 + 一旦设置完毕,您就可以告诉其他人使用跳转服务了。

+ +

有些人查看网站列表,如Identiguy的eepsite状态列表no.i2p的活跃主机列表,以了解新的eepsite,因此你的网站可能刚开始就能获得一些流量。 +还有很多其他方法可以告诉人们。这里有几个点子。

+ + +

请注意,有些网站建议粘贴那个长的目的地。 +如果你想的话可以,但如果你已经在注册服务上成功注册了你的主机名,使用跳转服务进行了测试,并等待24小时后地址簿更新传播给其他人,这应该是没有必要的。

+ +

使用备用网络服务器托管你的网站

+ +

该网站(和I2P路由控制台)正在运行Jetty网络服务器,但您可能希望使用其他网络服务器来托管您的主机内容。 +为了保持匿名,请确保将您的网络服务器配置为仅允许来自本地主机(127.0.0.1)的连接,并检查文档以确保您的网络服务器没有发布可能危害您匿名性的详细信息。

+ +

要配置您的webserver在I2P上使用,您可以使用现有的webserver隧道,禁用默认webserver运行,或者在匿名服务管理器中创建一个新的HTTP Server隧道。 +确保为webserver配置的监听端口(默认为7658)也在隐藏服务设置中配置。 +例如,如果你的webserver默认是在地址127.0.0.1端口80上监听,你还需要确保在隐藏服务管理器的设置页面中,该服务的目标端口也被配置为80端口。

+ +

请注意,配置不当的Web服务器或Web应用程序可能会泄漏可能危害信息的信息,例如 +您的真实IP地址或服务器详细信息,可能会减少您的匿名性或帮助黑客。 +我们建议您使用默认服务器,除非您愿意进行服务器管理。 +在将其联机之前,请确保您的Web服务器是安全的。 +在线上有很多指南,例如,如果您搜索“ nginx安全强化指南”,则会发现许多具有良好建议的指南。

+ +

Apache服务器有一个重要的问题。 +mod_statusmod_info模块在某些操作系统上是默认启用的。 +这些模块暴露了内部数据,当在匿名网络上使用时,会导致匿名性的严重损害。 +删除配置文件中加载这些模块的行是防止这些问题的最简单方法。

+ +

更多帮助

+ +

如你有任何问题,可在如下地方寻求帮助:

+ + +
+
本页、项目网站和路由器控制台都需要翻译! +请通过参与开发翻译来帮助项目的发展。
+
+
+ + diff --git a/installer/resources/locale-man/man_gan.po b/installer/resources/locale-man/man_gan.po new file mode 100644 index 0000000000..ca7b6fd060 --- /dev/null +++ b/installer/resources/locale-man/man_gan.po @@ -0,0 +1,453 @@ +# I2P +# Copyright (C) 2017 The I2P Project +# This file is distributed under the same license as the routerconsole package. +# To contribute translations, see https://www.transifex.com/otf/I2P/dashboard/ +# zzz , 2017. +# +# Translators: +# zzzi2p, 2024 +# 黃彥儒 , 2024 +# Scott Rhodes , 2024 +# a478a116a491ba89a1cee347ebcf239b_fd74b84, 2024 +# YFdyh000 , 2024 +# Hsiu-Ming Chang , 2024 +# 591313068a9d8b738947e39c2189fca2_35785ab, 2024 +# +msgid "" +msgstr "" +"Project-Id-Version: I2P man pages\n" +"POT-Creation-Date: 2021-11-27 13:31-0000\n" +"Last-Translator: 591313068a9d8b738947e39c2189fca2_35785ab, 2024\n" +"Language-Team: Chinese (Gan) (https://app.transifex.com/otf/teams/12694/gan/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: gan\n" +"POT-Revision-Date: 2021-11-27 13:31-0000\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. type: TH +#: man/eepget.1:1 +#, no-wrap +msgid "EEPGET" +msgstr "EEPGET" + +#. type: TH +#: man/eepget.1:1 man/i2prouter.1:1 man/i2prouter-nowrapper.1:1 +#, no-wrap +msgid "January 26, 2017" +msgstr "2017年1月26日" + +#. type: TH +#: man/eepget.1:1 man/i2prouter.1:1 man/i2prouter-nowrapper.1:1 +#, no-wrap +msgid "I2P" +msgstr "I2P" + +#. type: SH +#: man/eepget.1:3 man/i2prouter.1:3 man/i2prouter-nowrapper.1:3 +#, no-wrap +msgid "NAME" +msgstr "名称" + +#. type: Plain text +#: man/eepget.1:5 +msgid "Eepget - I2P downloader" +msgstr "Eepget - I2P 下载器" + +#. type: SH +#: man/eepget.1:6 man/i2prouter.1:6 man/i2prouter-nowrapper.1:6 +#, no-wrap +msgid "SYNOPSIS" +msgstr "概要" + +#. type: Plain text +#: man/eepget.1:9 +msgid "B [I]I" +msgstr "B [I]I" + +#. type: SH +#: man/eepget.1:11 man/i2prouter.1:11 man/i2prouter-nowrapper.1:10 +#, no-wrap +msgid "DESCRIPTION" +msgstr "描述" + +#. type: Plain text +#: man/eepget.1:15 +msgid "" +"Download a file non-interactively via HTTP. Transfers through both I2P and " +"the regular Internet are supported." +msgstr "通过 HTTP 非交互式地下载一个文件。支持通过 I2P 和常规互联网传输。" + +#. type: Plain text +#: man/eepget.1:21 +msgid "" +"Eepget is able to cope with slow or unstable network connections; if a " +"download is not successful because of a network problem, it will keep " +"retrying until the whole file has been retrieved (if the -n option is set)." +" If supported by the remote server, eepget will instruct the server to " +"continue the download from the point of interruption." +msgstr "" +"Eepget 能够处理缓慢或不稳定的网络连接;如果由于网络问题导致下载不成功,它将继续重试,直到检索到整个文件(如果已设定 -n " +"选项)。如果远程服务器支持,eepget 将指示服务器从中断点继续。" + +#. type: SH +#: man/eepget.1:22 +#, no-wrap +msgid "OPTIONS" +msgstr "选项" + +#. type: Plain text +#: man/eepget.1:25 +msgid "B<-c>" +msgstr "B<-c>" + +#. type: TP +#: man/eepget.1:25 +#, no-wrap +msgid "Clearnet. Do not use a proxy. Same as B<-p> :0 ." +msgstr "明网。不使用代理。同 B<-p> :0 。" + +#. type: Plain text +#: man/eepget.1:31 +msgid "B<-e> etag" +msgstr "B<-e> etag" + +#. type: TP +#: man/eepget.1:31 +#, no-wrap +msgid "Sets the etag value in the request headers." +msgstr "设定请求头中的 etag 值。" + +#. type: Plain text +#: man/eepget.1:37 +msgid "B<-h> name=value" +msgstr "B<-h> 名称=值" + +#. type: TP +#: man/eepget.1:37 +#, no-wrap +msgid "Adds an arbitrary request header with the given name and value." +msgstr "使用指定的名称和值添加任意请求头。" + +#. type: Plain text +#: man/eepget.1:43 +msgid "B<-l> lineLen" +msgstr "B<-l> 行长度" + +#. type: TP +#: man/eepget.1:43 +#, no-wrap +msgid "" +"Controls the progress display. B<\\ lineLen > is the length of one progress " +"line in characters. The default is 40." +msgstr "控制进度显示。B<\\ lineLen > 控制进度行的字符长度。默认为40。" + +#. type: Plain text +#: man/eepget.1:49 +msgid "B<-m> markSize" +msgstr "标记大小" + +#. type: TP +#: man/eepget.1:49 +#, no-wrap +msgid "" +"Controls the progress display. B<\\ markSize > is the number of bytes one " +"'#' character represents. The default is 1024." +msgstr "控制进度显示。B<\\ markSize > 控制进度行的字符长度。默认为1024。" + +#. type: Plain text +#: man/eepget.1:55 +msgid "B<-n> retries" +msgstr "B<-n> 次重试" + +#. type: TP +#: man/eepget.1:55 +#, no-wrap +msgid "" +"Specify the number of times to retry downloading if the download isn't " +"successful. If this option is not specified, eepget will not retry." +msgstr "指定在下载不成功的情况下重试下载的次数。如果不指定这个选项,eepget将不会重试。" + +#. type: Plain text +#: man/eepget.1:61 +msgid "B<-o> file" +msgstr "B<-o> 文件" + +#. type: TP +#: man/eepget.1:61 +#, no-wrap +msgid "" +"Sets the output file to write to. If this option is not given, the output " +"filename will be determined by the URL." +msgstr "设置要写入的输出文件。 如果未指定此选项,输出文件名将由URL确定。" + +#. type: Plain text +#: man/eepget.1:67 +msgid "B<-p> proxy_host[:port]" +msgstr "B<-p>代理主机:[端口]" + +#. type: TP +#: man/eepget.1:67 +#, no-wrap +msgid "" +"Specify an I2P proxy server (eeproxy) to use. If the port is not specified, " +"eepget will use 4444. If this option is not specified, eepget will use " +"127.0.0.1:4444. Specify B<-c> or B<-p> :0 to disable the eeproxy." +msgstr "" +"指定一个要使用的I2P代理服务器(eeproxy)。如果不指定这个选项,eepget将使用127.0.0.1:4444。指定B<-c>或B<-p>:0来禁用eeproxy。" + +#. type: Plain text +#: man/eepget.1:73 +msgid "B<-t> seconds" +msgstr "B<-t> 秒" + +#. type: TP +#: man/eepget.1:73 +#, no-wrap +msgid "Sets the inactivity timeout. The default is 60 seconds." +msgstr "设置不活动超时。默认是60秒。" + +#. type: Plain text +#: man/eepget.1:79 +msgid "B<-u> username" +msgstr "B<-u> 用户名" + +#. type: TP +#: man/eepget.1:79 +#, no-wrap +msgid "Sets the username for proxy authorization, if required." +msgstr "如果需要的话,设置代理授权的用户名。" + +#. type: Plain text +#: man/eepget.1:85 +msgid "B<-x> password" +msgstr "B<-x> 密码" + +#. type: TP +#: man/eepget.1:85 +#, no-wrap +msgid "" +"Sets the password for proxy authorization, if required. If a username is " +"specified but not a password, EepGet will prompt for the password." +msgstr "如果需要的话,设置代理授权的密码。如果指定了用户名但没有密码,EepGet将提示密码。" + +#. type: SH +#: man/eepget.1:88 +#, no-wrap +msgid "EXIT STATUS" +msgstr "退出状态" + +#. type: Plain text +#: man/eepget.1:92 +msgid "" +"B exits with status zero upon successful transfer and non-zero if " +"there were problems with the download." +msgstr "B 退出状态为 0 表示传输成功。如果下载遇到问题,则退出状态非 0。" + +#. type: SH +#: man/eepget.1:93 man/i2prouter.1:54 man/i2prouter-nowrapper.1:24 +#, no-wrap +msgid "REPORTING BUGS" +msgstr "回報錯誤" + +#. type: Plain text +#: man/eepget.1:98 man/i2prouter.1:59 man/i2prouter-nowrapper.1:29 +msgid "" +"Please enter an issue on E<.UR " +"https://i2pgit.org/i2p-hackers/i2p.i2p/-/issues> the I2P GitLab server E<.UE" +" .>" +msgstr "" +"请在E<.UR https://i2pgit.org/i2p-hackers/i2p.i2p/-/issues> I2P GitLab服务器E<.UE " +".>上输入一个问题。" + +#. type: SH +#: man/eepget.1:99 man/i2prouter.1:60 man/i2prouter-nowrapper.1:30 +#, no-wrap +msgid "SEE ALSO" +msgstr "另见" + +#. type: Plain text +#: man/eepget.1:103 +msgid "B(1) B(1) B(1)" +msgstr "B(1) B(1) B(1)" + +#. type: TH +#: man/i2prouter.1:1 +#, no-wrap +msgid "I2PROUTER" +msgstr "I2PROUTER" + +#. type: Plain text +#: man/i2prouter.1:5 +msgid "i2prouter - start and stop the I2P router" +msgstr "i2prouter - 启动和停止 I2P 路由器" + +#. type: Plain text +#: man/i2prouter.1:9 +msgid "" +"B " +"{I|I|I|I|I|I|I|I|I|I}" +msgstr "" +"B " +"{I|I|I|I|I|I|I|I|I|I}" + +#. type: Plain text +#: man/i2prouter.1:13 +msgid "Control the I2P service." +msgstr "控制 I2P 服务。" + +#. type: IP +#: man/i2prouter.1:15 +#, no-wrap +msgid "B" +msgstr "B" + +#. type: Plain text +#: man/i2prouter.1:17 +msgid "Runs I2P as a console application under the current user." +msgstr "在当前用户以控制台应用运行I2P" + +#. type: IP +#: man/i2prouter.1:19 +#, no-wrap +msgid "B" +msgstr "B" + +#. type: Plain text +#: man/i2prouter.1:21 +msgid "Starts the I2P service." +msgstr "启动 I2P 服务。" + +#. type: IP +#: man/i2prouter.1:23 +#, no-wrap +msgid "B" +msgstr "B" + +#. type: Plain text +#: man/i2prouter.1:25 +msgid "Stops the I2P service." +msgstr "停止 I2P 服务。" + +#. type: IP +#: man/i2prouter.1:27 +#, no-wrap +msgid "B" +msgstr "B" + +#. type: Plain text +#: man/i2prouter.1:29 +msgid "Stops the I2P service and then starts it." +msgstr "停止I2P服务,随后重启。" + +#. type: IP +#: man/i2prouter.1:31 +#, no-wrap +msgid "B" +msgstr "B" + +#. type: Plain text +#: man/i2prouter.1:33 +msgid "Restart the I2P service only if it is already running." +msgstr "仅当I2P服务已在运行时重启。" + +#. type: IP +#: man/i2prouter.1:35 +#, no-wrap +msgid "B" +msgstr "B" + +#. type: Plain text +#: man/i2prouter.1:37 +msgid "Stop I2P gracefully (may take up to 11 minutes)" +msgstr "平滑关闭I2P(最多可能需要11分钟)" + +#. type: IP +#: man/i2prouter.1:39 +#, no-wrap +msgid "B" +msgstr "B" + +#. type: Plain text +#: man/i2prouter.1:41 +msgid "Install initscript to start I2P automatically when the system boots." +msgstr "安装initscript以在系统启动时自动启动I2P。" + +#. type: IP +#: man/i2prouter.1:43 +#, no-wrap +msgid "B" +msgstr "B" + +#. type: Plain text +#: man/i2prouter.1:45 +msgid "Uninstall initscript that was installed with B" +msgstr "卸载与B一起安装的initscript" + +#. type: IP +#: man/i2prouter.1:47 +#, no-wrap +msgid "B" +msgstr "B" + +#. type: Plain text +#: man/i2prouter.1:49 +msgid "Prints whether the I2P service is running." +msgstr "显示I2P服务是否在运行。" + +#. type: IP +#: man/i2prouter.1:51 +#, no-wrap +msgid "B" +msgstr "B" + +#. type: Plain text +#: man/i2prouter.1:53 +msgid "Dumps the current threads into B." +msgstr "将当前的线程转储保存到B。" + +#. type: Plain text +#: man/i2prouter.1:61 +msgid "B(1)" +msgstr "B(1)" + +#. type: TH +#: man/i2prouter-nowrapper.1:1 +#, no-wrap +msgid "I2PROUTER-NOWRAPPER" +msgstr "I2PROUTER-NOWRAPPER" + +#. type: Plain text +#: man/i2prouter-nowrapper.1:5 +msgid "i2prouter-nowrapper - start the I2P router" +msgstr "i2prouter-nowrapper - 启动I2P路由器" + +#. type: Plain text +#: man/i2prouter-nowrapper.1:8 +msgid "B" +msgstr "B" + +#. type: Plain text +#: man/i2prouter-nowrapper.1:14 +msgid "" +"Start the I2P router, without the service wrapper. This means the router " +"will not restart if it crashes. Also, it will use the default memory size, " +"which may not be enough for I2P." +msgstr "" +"不使用服务封装器启动 I2P 路由器。 这意味着如果路由器崩溃,它不会重新启动。 另外,它将使用默认的内存大小,这对 I2P 来说可能是不够的。" + +#. type: Plain text +#: man/i2prouter-nowrapper.1:23 +msgid "" +"You should really use the B(1) script instead. There are no " +"options. To stop the router, use your browser to access E<.UR " +"http://localhost:7657/> the router console E<.UE .>" +msgstr "" +"你应该用B(1) 脚本来代替。 这里没有任何选项。 要停止路由器,使用浏览器访问E<.UR " +"http://localhost:7657/>路由器控制台E<.UE .>。" + +#. type: Plain text +#: man/i2prouter-nowrapper.1:31 +msgid "B(1)" +msgstr "B(1)" diff --git a/installer/resources/locale/po/messages_gan.po b/installer/resources/locale/po/messages_gan.po new file mode 100644 index 0000000000..67ae63fc49 --- /dev/null +++ b/installer/resources/locale/po/messages_gan.po @@ -0,0 +1,197 @@ +# I2P +# Copyright (C) 2012 The I2P Project +# This file is distributed under the same license as the routerconsole package. +# To contribute translations, see http://www.i2p2.de/newdevelopers +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: I2P\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-10-06 13:42+0000\n" +"PO-Revision-Date: 2012-12-22 15:05+0000\n" +"Last-Translator: kytv \n" +"Language-Team: Chinese (Gan) (http://app.transifex.com/otf/I2P/language/gan/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: gan\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: ../i2prouter:223 +msgid "Failed to load the wrapper" +msgstr "封装程序载入失败" + +#: ../i2prouter:988 ../i2prouter:1016 ../i2prouter:1090 ../i2prouter:1118 +#: ../i2prouter:1139 +#, sh-format +msgid "$APP_LONG_NAME is already running." +msgstr "$APP_LONG_NAME 已运行。" + +#: ../i2prouter:999 +#, sh-format +msgid "Running $APP_LONG_NAME" +msgstr "正在运行 $APP_LONG_NAME" + +#: ../i2prouter:1023 +#, sh-format +msgid "Waiting for $APP_LONG_NAME" +msgstr "正在等待 $APP_LONG_NAME" + +#: ../i2prouter:1070 +#, sh-format +msgid "WARNING: $APP_LONG_NAME may have failed to start." +msgstr "警告:$APP_LONG_NAME 可能启动失败。" + +#: ../i2prouter:1084 ../i2prouter:1112 ../i2prouter:1318 ../i2prouter:1607 +msgid "Must be root to perform this action." +msgstr "root 才能执行此操作。" + +#: ../i2prouter:1128 +#, sh-format +msgid "Starting $APP_LONG_NAME" +msgstr "正在启动 $APP_LONG_NAME" + +#: ../i2prouter:1150 +#, sh-format +msgid "Stopping $APP_LONG_NAME" +msgstr "正在停止 $APP_LONG_NAME" + +#: ../i2prouter:1154 ../i2prouter:1222 ../i2prouter:1775 +#, sh-format +msgid "$APP_LONG_NAME was not running." +msgstr "$APP_LONG_NAME 未运行" + +#: ../i2prouter:1167 ../i2prouter:1175 ../i2prouter:1237 ../i2prouter:1245 +#, sh-format +msgid "Unable to stop $APP_LONG_NAME." +msgstr "无法停止 $APP_LONG_NAME" + +#: ../i2prouter:1193 +#, sh-format +msgid "Waiting for $APP_LONG_NAME to exit" +msgstr "正在等待 $APP_LONG_NAME 退出" + +#: ../i2prouter:1207 +#, sh-format +msgid "Failed to stop $APP_LONG_NAME." +msgstr "无法停止 $APP_LONG_NAME。" + +#: ../i2prouter:1210 +#, sh-format +msgid "Stopped $APP_LONG_NAME." +msgstr "$APP_LONG_NAME 已停止。" + +#: ../i2prouter:1218 +#, sh-format +msgid "Stopping $APP_LONG_NAME gracefully" +msgstr "正在等待 $APP_LONG_NAME 自然关闭" + +#: ../i2prouter:1264 +#, sh-format +msgid "$APP_LONG_NAME is not running." +msgstr "$APP_LONG_NAME 未运行" + +#: ../i2prouter:1269 +#, sh-format +msgid "$APP_LONG_NAME is running: PID:$pid" +msgstr "$APP_LONG_NAME 已运行:PID:$pid" + +#: ../i2prouter:1272 +#, sh-format +msgid "$APP_LONG_NAME is running: PID:$pid, Wrapper:$STATUS, Java:$JAVASTATUS" +msgstr "$APP_LONG_NAME 已运行:PID:$pid, 封装:$STATUS, Java:$JAVASTATUS" + +#: ../i2prouter:1325 ../i2prouter:1337 ../i2prouter:1356 ../i2prouter:1373 +#: ../i2prouter:1440 ../i2prouter:1460 ../i2prouter:1474 ../i2prouter:1488 +#: ../i2prouter:1516 ../i2prouter:1554 ../i2prouter:1589 +#, sh-format +msgid "The $APP_LONG_NAME daemon is already installed." +msgstr "后台服务 $APP_LONG_NAME 已运行。" + +#: ../i2prouter:1328 ../i2prouter:1343 ../i2prouter:1445 ../i2prouter:1477 +#: ../i2prouter:1491 ../i2prouter:1505 ../i2prouter:1519 ../i2prouter:1557 +#: ../i2prouter:1592 +#, sh-format +msgid "Installing the $APP_LONG_NAME daemon" +msgstr "正在安装后台服务 $APP_LONG_NAME" + +#: ../i2prouter:1599 +#, sh-format +msgid "Install not currently supported for $DIST_OS" +msgstr "暂不支持 $DIST_OS 平台上的安装" + +#: ../i2prouter:1615 ../i2prouter:1628 ../i2prouter:1642 ../i2prouter:1651 +#: ../i2prouter:1661 ../i2prouter:1685 ../i2prouter:1698 ../i2prouter:1710 +#: ../i2prouter:1728 ../i2prouter:1741 ../i2prouter:1755 +#, sh-format +msgid "Removing $APP_LONG_NAME daemon" +msgstr "正在删除后台服务 $APP_LONG_NAME" + +#: ../i2prouter:1621 ../i2prouter:1636 ../i2prouter:1645 ../i2prouter:1655 +#: ../i2prouter:1666 ../i2prouter:1679 ../i2prouter:1691 ../i2prouter:1704 +#: ../i2prouter:1722 ../i2prouter:1735 ../i2prouter:1749 ../i2prouter:1760 +#, sh-format +msgid "The $APP_LONG_NAME daemon is not currently installed." +msgstr "后台服务 $APP_LONG_NAME 未安装。" + +#: ../i2prouter:1764 +#, sh-format +msgid "Remove not currently supported for $DIST_OS" +msgstr "暂不支持 $DIST_OS 平台上的删除" + +#: ../i2prouter:1851 +msgid "Commands:" +msgstr "指令:" + +#: ../i2prouter:1852 +msgid "Launch in the current console." +msgstr "从当前控制台中启动。" + +#: ../i2prouter:1853 +msgid "Start in the background as a daemon process." +msgstr "作为服务进程从后台启动。" + +#: ../i2prouter:1854 +msgid "Stop if running as a daemon or in another console." +msgstr "关闭作为服务进程或从其他控制台启动的I2P。" + +#: ../i2prouter:1855 +msgid "Stop gracefully, may take up to 11 minutes." +msgstr "自然关闭,可以需要最多11分钟。" + +#: ../i2prouter:1856 +msgid "Stop if running and then start." +msgstr "先终止(如果运行)再启动。" + +#: ../i2prouter:1857 +msgid "Restart only if already running." +msgstr "重启(仅在已运行时)。" + +#: ../i2prouter:1858 +msgid "Query the current status." +msgstr "查询当前状态。" + +#: ../i2prouter:1859 +msgid "Install to start automatically when system boots." +msgstr "安装为随系统启动。" + +#: ../i2prouter:1860 +msgid "Uninstall." +msgstr "卸载。" + +#: ../i2prouter:1861 +msgid "Request a Java thread dump if running." +msgstr "请求Java转储(如果在运行)。" + +#: ../i2prouter:1874 +msgid "Please edit i2prouter and set the variable RUN_AS_USER" +msgstr "请编辑 i2prouter 设置 RUN_AS_USER 变量" + +#: ../i2prouter:1879 +msgid "Running I2P as the root user is *not* recommended." +msgstr "推荐 *不要* 以 root 身份运行 I2P 。" + +#: ../i2prouter:1882 +msgid "To run as root anyway, edit i2prouter and set ALLOW_ROOT=true." +msgstr "要以root运行,请编辑 i2prouter 并设置 ALLOW_ROOT=true。" diff --git a/installer/resources/man/eepget.gan.1 b/installer/resources/man/eepget.gan.1 new file mode 100644 index 0000000000..62a4f7e77e --- /dev/null +++ b/installer/resources/man/eepget.gan.1 @@ -0,0 +1,90 @@ +.\"******************************************************************* +.\" +.\" This file was generated with po4a. Translate the source file. +.\" +.\"******************************************************************* +.TH EEPGET 1 "November 27, 2021" "" I2P + +.SH 名称 +Eepget \- I2P 下载器 + +.SH 概要 +\fBeepget\fP [\fIoptions\fP]\fIURL\fP +.br + +.SH 描述 +.P +通过 HTTP 非交互式地下载一个文件。支持通过 I2P 和常规互联网传输。 +.P +Eepget 能够处理缓慢或不稳定的网络连接;如果由于网络问题导致下载不成功,它将继续重试,直到检索到整个文件(如果已设定 \-n +选项)。如果远程服务器支持,eepget 将指示服务器从中断点继续。 + +.SH 选项 +\fB\-c\fP +.TP +明网。不使用代理。同 \fB\-p\fP :0 。 +.TP + +\fB\-e\fP etag +.TP +设定请求头中的 etag 值。 +.TP + +\fB\-h\fP 名称=值 +.TP +使用指定的名称和值添加任意请求头。 +.TP + +\fB\-l\fP 行长度 +.TP +控制进度显示。\fB\ lineLen \fP 控制进度行的字符长度。默认为40。 +.TP + +标记大小 +.TP +控制进度显示。\fB\ markSize \fP 控制进度行的字符长度。默认为1024。 +.TP + +\fB\-n\fP 次重试 +.TP +指定在下载不成功的情况下重试下载的次数。如果不指定这个选项,eepget将不会重试。 +.TP + +\fB\-o\fP 文件 +.TP +设置要写入的输出文件。 如果未指定此选项,输出文件名将由URL确定。 +.TP + +\fB\-p\fP代理主机:[端口] +.TP +指定一个要使用的I2P代理服务器(eeproxy)。如果不指定这个选项,eepget将使用127.0.0.1:4444。指定\fB\-c\fP或\fB\-p\fP:0来禁用eeproxy。 +.TP + +\fB\-t\fP 秒 +.TP +设置不活动超时。默认是60秒。 +.TP + +\fB\-u\fP 用户名 +.TP +如果需要的话,设置代理授权的用户名。 +.TP + +\fB\-x\fP 密码 +.TP +如果需要的话,设置代理授权的密码。如果指定了用户名但没有密码,EepGet将提示密码。 + +.SH 退出状态 + +\fBeepget\fP 退出状态为 0 表示传输成功。如果下载遇到问题,则退出状态非 0。 + +.SH 回報錯誤 +请在 +.UR https://i2pgit.org/i2p\-hackers/i2p.i2p/\-/issues +I2P GitLab服务器 +.UE . +上输入一个问题。 + +.SH 另见 +\fBi2prouter\fP(1) \fBcurl\fP(1) \fBwget\fP(1) + diff --git a/installer/resources/man/i2prouter-nowrapper.gan.1 b/installer/resources/man/i2prouter-nowrapper.gan.1 new file mode 100644 index 0000000000..0f3e385638 --- /dev/null +++ b/installer/resources/man/i2prouter-nowrapper.gan.1 @@ -0,0 +1,32 @@ +.\"******************************************************************* +.\" +.\" This file was generated with po4a. Translate the source file. +.\" +.\"******************************************************************* +.TH I2PROUTER\-NOWRAPPER 1 "November 27, 2021" "" I2P + +.SH 名称 +i2prouter\-nowrapper \- 启动I2P路由器 + +.SH 概要 +\fBi2prouter\-nowrapper\fP +.br + +.SH 描述 +不使用服务封装器启动 I2P 路由器。 这意味着如果路由器崩溃,它不会重新启动。 另外,它将使用默认的内存大小,这对 I2P 来说可能是不够的。 +.P +你应该用\fBi2prouter\fP(1) 脚本来代替。 这里没有任何选项。 要停止路由器,使用浏览器访问 +.UR http://localhost:7657/ +路由器控制台 +.UE . +。 + +.SH 回報錯誤 +请在 +.UR https://i2pgit.org/i2p\-hackers/i2p.i2p/\-/issues +I2P GitLab服务器 +.UE . +上输入一个问题。 + +.SH 另见 +\fBi2prouter\fP(1) diff --git a/installer/resources/man/i2prouter.gan.1 b/installer/resources/man/i2prouter.gan.1 new file mode 100644 index 0000000000..512f3d2b9b --- /dev/null +++ b/installer/resources/man/i2prouter.gan.1 @@ -0,0 +1,57 @@ +.\"******************************************************************* +.\" +.\" This file was generated with po4a. Translate the source file. +.\" +.\"******************************************************************* +.TH I2PROUTER 1 "November 27, 2021" "" I2P + +.SH 名称 +i2prouter \- 启动和停止 I2P 路由器 + +.SH 概要 +\fBi2prouter\fP +{\fIconsole\fP|\fIstart\fP|\fIstop\fP|\fIgraceful\fP|\fIrestart\fP|\fIcondrestart\fP|\fIstatus\fP|\fIdump\fP|\fIinstall\fP|\fIremove\fP} +.br + +.SH 描述 +控制 I2P 服务。 + +.IP \fBconsole\fP +在当前用户以控制台应用运行I2P + +.IP \fBstart\fP +启动 I2P 服务。 + +.IP \fBstop\fP +停止 I2P 服务。 + +.IP \fBrestart\fP +停止I2P服务,随后重启。 + +.IP \fBcondrestart\fP +仅当I2P服务已在运行时重启。 + +.IP \fBgraceful\fP +平滑关闭I2P(最多可能需要11分钟) + +.IP \fBinstall\fP +安装initscript以在系统启动时自动启动I2P。 + +.IP \fBremove\fP +卸载与\fBinstall\fP一起安装的initscript + +.IP \fBstatus\fP +显示I2P服务是否在运行。 + +.IP \fBdump\fP +将当前的线程转储保存到\fBwrapper.log\fP。 + +.SH 回報錯誤 +请在 +.UR https://i2pgit.org/i2p\-hackers/i2p.i2p/\-/issues +I2P GitLab服务器 +.UE . +上输入一个问题。 + +.SH 另见 +\fBi2prouter\-nowrapper\fP(1) diff --git a/installer/tools/java/src/net/i2p/util/TranslationStatus.java b/installer/tools/java/src/net/i2p/util/TranslationStatus.java index f29ff27be6..8f4e030534 100644 --- a/installer/tools/java/src/net/i2p/util/TranslationStatus.java +++ b/installer/tools/java/src/net/i2p/util/TranslationStatus.java @@ -54,7 +54,7 @@ public class TranslationStatus { // Java lang codes, see notes below private static final String[] LANGS = { "ar", "az", "bg", "ca", "cs", "da", "de", "el", "es", "es_AR", - "et", "fa", "fi", "fr", "gl", "hi", "hr", "hu", "in", "it", "iw", + "et", "fa", "fi", "fr", "gan", "gl", "hi", "hr", "hu", "in", "it", "iw", "ja", "ko", "ku", "mg", "nb", "nl", "nn", "pl", "pt", "pt_BR", "ro", "ru", "sk", "sl", "sq", "sr", "sv", "tk", "tr", "uk", "vi", "zh", "zh_TW" }; diff --git a/router/locale/messages_gan.po b/router/locale/messages_gan.po new file mode 100644 index 0000000000..d7199f94e6 --- /dev/null +++ b/router/locale/messages_gan.po @@ -0,0 +1,193 @@ +# 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. +# +# Translators: +# Chi-Hsun Tsai, 2024 +# 591313068a9d8b738947e39c2189fca2_35785ab, 2024 +# Maja, 2024 +# erinm, 2024 +# YFdyh000 , 2024 +# a478a116a491ba89a1cee347ebcf239b_fd74b84, 2024 +# Mingye Wang , 2024 +# Beta Ba , 2024 +# +msgid "" +msgstr "" +"Project-Id-Version: I2P routerconsole\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-12-18 13:32+0000\n" +"PO-Revision-Date: 2019-12-19 14:09+0000\n" +"Last-Translator: Beta Ba , 2024\n" +"Language-Team: Chinese (Gan) (https://app.transifex.com/otf/teams/12694/gan/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: gan\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. * IPv4 OK, IPv6 OK or disabled or no address +#: ../java/src/net/i2p/router/CommSystemFacade.java:370 +msgid "OK" +msgstr "正常" + +#: ../java/src/net/i2p/router/CommSystemFacade.java:371 +msgid "IPv4: OK; IPv6: Testing" +msgstr "IPv4: 正常; IPv6: 测试中" + +#: ../java/src/net/i2p/router/CommSystemFacade.java:372 +msgid "IPv4: OK; IPv6: Firewalled" +msgstr "IPv4: 正常; IPv6: 受到防火墙限制" + +#: ../java/src/net/i2p/router/CommSystemFacade.java:373 +msgid "IPv4: Testing; IPv6: OK" +msgstr "IPv4: 测试中; IPv6: 正常" + +#: ../java/src/net/i2p/router/CommSystemFacade.java:374 +msgid "IPv4: Firewalled; IPv6: OK" +msgstr "IPv4: 受到防火墙限制; IPv6: 正常" + +#: ../java/src/net/i2p/router/CommSystemFacade.java:375 +msgid "IPv4: Disabled; IPv6: OK" +msgstr "IPv4: 已禁用; IPv6: OK" + +#: ../java/src/net/i2p/router/CommSystemFacade.java:376 +msgid "IPv4: Symmetric NAT; IPv6: OK" +msgstr "IPv4: 對稱 NAT; IPv6: OK" + +#. * IPv4 symmetric NAT, IPv6 firewalled or disabled or no address +#: ../java/src/net/i2p/router/CommSystemFacade.java:378 +msgid "Symmetric NAT" +msgstr "对称 NAT" + +#: ../java/src/net/i2p/router/CommSystemFacade.java:379 +msgid "IPv4: Symmetric NAT; IPv6: Testing" +msgstr "IPv4: 对称 NAT; IPv6: 测试中" + +#: ../java/src/net/i2p/router/CommSystemFacade.java:380 +msgid "IPv4: Firewalled; IPv6: Testing" +msgstr "IPv4: 受到防火墙限制; IPv6: 测试中" + +#. * IPv4 firewalled, IPv6 firewalled or disabled or no address +#: ../java/src/net/i2p/router/CommSystemFacade.java:382 +msgid "Firewalled" +msgstr "受到防火墙限制" + +#: ../java/src/net/i2p/router/CommSystemFacade.java:383 +msgid "IPv4: Testing; IPv6: Firewalled" +msgstr "IPv4: 测试中; IPv6: 受到防火墙限制" + +#: ../java/src/net/i2p/router/CommSystemFacade.java:384 +msgid "IPv4: Disabled; IPv6: Testing" +msgstr "IPv4: 已禁用; IPv6: 測試中" + +#: ../java/src/net/i2p/router/CommSystemFacade.java:385 +msgid "IPv4: Disabled; IPv6: Firewalled" +msgstr "IPv4: 已禁用; IPv6: 受到防火墙限制" + +#: ../java/src/net/i2p/router/CommSystemFacade.java:386 +msgid "Disconnected" +msgstr "已中斷連線" + +#: ../java/src/net/i2p/router/CommSystemFacade.java:387 +msgid "Port Conflict" +msgstr "端口冲突" + +#: ../java/src/net/i2p/router/CommSystemFacade.java:388 +msgid "Testing" +msgstr "測試中" + +#. NPE, too early +#. if (_context.router().getRouterInfo().getBandwidthTier().equals("K")) +#. setTunnelStatus("Not expecting tunnel requests: Advertised bandwidth too +#. low"); +#. else +#: ../java/src/net/i2p/router/RouterThrottleImpl.java:84 +#: ../java/src/net/i2p/router/RouterThrottleImpl.java:142 +#: ../java/src/net/i2p/router/RouterThrottleImpl.java:545 +msgid "Rejecting tunnels: Starting up" +msgstr "拒絕共享:正在啟動" + +#: ../java/src/net/i2p/router/RouterThrottleImpl.java:189 +msgid "Rejecting tunnels: High message delay" +msgstr "拒絕共享:高訊息延遲" + +#: ../java/src/net/i2p/router/RouterThrottleImpl.java:202 +msgid "Rejecting tunnels: Limit reached" +msgstr "拒絕共享:隧道數限額" + +#: ../java/src/net/i2p/router/RouterThrottleImpl.java:241 +msgid "Rejecting most tunnels: High number of requests" +msgstr "拒绝多数共享隧道:请求过多" + +#. hard to do {0} from here +#. setTunnelStatus("Accepting " + (100-(int)(100.0*probReject)) + "% of +#. tunnels"); +#: ../java/src/net/i2p/router/RouterThrottleImpl.java:243 +#: ../java/src/net/i2p/router/RouterThrottleImpl.java:424 +msgid "Accepting most tunnels" +msgstr "接受多数共享隧道" + +#: ../java/src/net/i2p/router/RouterThrottleImpl.java:245 +#: ../java/src/net/i2p/router/RouterThrottleImpl.java:426 +#: ../java/src/net/i2p/router/RouterThrottleImpl.java:561 +msgid "Accepting tunnels" +msgstr "接受共享隧道" + +#. .067KBps +#. * also limited to 90% - see below +#. always leave at least 4KBps free when allowing +#: ../java/src/net/i2p/router/RouterThrottleImpl.java:350 +msgid "Rejecting tunnels: Bandwidth limit" +msgstr "拒絕共享:頻寬限額" + +#. hard to do {0} from here +#. setTunnelStatus("Rejecting " + ((int)(100.0*probReject)) + "% of tunnels: +#. Bandwidth limit"); +#: ../java/src/net/i2p/router/RouterThrottleImpl.java:420 +msgid "Rejecting most tunnels: Bandwidth limit" +msgstr "收紧最大共享隧道:带宽限额" + +#: ../java/src/net/i2p/router/RouterThrottleImpl.java:550 +msgid "Rejecting tunnels: Shutting down" +msgstr "拒绝共享隧道:正在关闭" + +#: ../java/src/net/i2p/router/RouterThrottleImpl.java:563 +msgid "Rejecting tunnels" +msgstr "拒絕參與共享隧道" + +#: ../java/src/net/i2p/router/tunnel/pool/BuildHandler.java:260 +msgid "Dropping tunnel requests: Too slow" +msgstr "忽略共享隧道请求:速度太慢" + +#: ../java/src/net/i2p/router/tunnel/pool/BuildHandler.java:270 +msgid "Dropping tunnel requests: High job lag" +msgstr "忽略共享請求:高作業延遲" + +#. don't even bother, since we are so overloaded locally +#: ../java/src/net/i2p/router/tunnel/pool/BuildHandler.java:464 +msgid "Dropping tunnel requests: Overloaded" +msgstr "忽略共享請求:路由過載" + +#: ../java/src/net/i2p/router/tunnel/pool/BuildHandler.java:747 +msgid "Rejecting tunnels: Hidden mode" +msgstr "拒絕隧道:隱身模式" + +#: ../java/src/net/i2p/router/tunnel/pool/BuildHandler.java:775 +msgid "Rejecting tunnels: Request overload" +msgstr "拒绝共享隧道:请求过多" + +#: ../java/src/net/i2p/router/tunnel/pool/BuildHandler.java:806 +msgid "Rejecting tunnels: Connection limit" +msgstr "拒绝共享隧道:连接受限" + +#: ../java/src/net/i2p/router/tunnel/pool/BuildHandler.java:1024 +#: ../java/src/net/i2p/router/tunnel/pool/BuildHandler.java:1057 +msgid "Dropping tunnel requests: High load" +msgstr "忽略共享請求:高負載" + +#: ../java/src/net/i2p/router/tunnel/pool/BuildHandler.java:1140 +msgid "Dropping tunnel requests: Queue time" +msgstr "忽略共享隧道请求:队列积压" From a1949bf612019f36663b6498a8c91e71572e59e4 Mon Sep 17 00:00:00 2001 From: zzz Date: Thu, 28 Nov 2024 10:50:26 -0500 Subject: [PATCH 23/36] Build: Suppress JNI warnings from Java 24 for CLI and i2psnark-standalone and add note to wrapper.config on how to do it there for normal runtime --- apps/i2psnark/java/build.xml | 5 +++++ core/java/build.xml | 7 +++++++ installer/resources/wrapper.config | 7 +++++++ router/java/build.xml | 7 +++++++ 4 files changed, 26 insertions(+) diff --git a/apps/i2psnark/java/build.xml b/apps/i2psnark/java/build.xml index 3346039adf..339f440cdd 100644 --- a/apps/i2psnark/java/build.xml +++ b/apps/i2psnark/java/build.xml @@ -261,6 +261,11 @@ + +
diff --git a/core/java/build.xml b/core/java/build.xml index 8b36ce5f0b..f934f4ee4e 100644 --- a/core/java/build.xml +++ b/core/java/build.xml @@ -129,6 +129,13 @@ + + diff --git a/installer/resources/wrapper.config b/installer/resources/wrapper.config index 3e353cfa48..e3a7188206 100644 --- a/installer/resources/wrapper.config +++ b/installer/resources/wrapper.config @@ -77,6 +77,13 @@ wrapper.java.additional.1=-DloggerFilenameOverride=logs/log-router-@.txt wrapper.java.additional.2=-Di2p.dir.base="$INSTALL_PATH" wrapper.java.additional.2.stripquotes=TRUE +# Suppress JNI warning in JRE 24+, and eventual restriction +# See https://openjdk.org/jeps/472 +# This will fail on JRE 11 or lower, works on JRE 17+ +#wrapper.java.additional.3=--enable-native-access=ALL-UNNAMED +# Alternative that _may_ work on all JRE versions: +#set.JDK_JAVA_OPTIONS=--enable-native-access=ALL-UNNAMED + # Prevent the JVM from exporting stats (and thereby causing hundreds of # ms long pauses during GC) # http://www.evanjones.ca/jvm-mmap-pause.html diff --git a/router/java/build.xml b/router/java/build.xml index 4b0cedf2bc..2286b72cb3 100644 --- a/router/java/build.xml +++ b/router/java/build.xml @@ -99,6 +99,13 @@ + + From 37cdade492f33fc7f2c77d93af4d897801e6ba34 Mon Sep 17 00:00:00 2001 From: zzz Date: Thu, 28 Nov 2024 17:17:11 -0500 Subject: [PATCH 24/36] Build: Fix some deprecation warnings all over --- .../com/thetransactioncompany/jsonrpc2/server/Dispatcher.java | 2 ++ apps/i2psnark/java/src/org/klomp/snark/Snark.java | 4 ++-- apps/jrobin/java/src/org/rrd4j/data/DataProcessor.java | 1 + core/java/src/org/json/simple/Yylex.java | 2 +- 4 files changed, 6 insertions(+), 3 deletions(-) diff --git a/apps/i2pcontrol/java/com/thetransactioncompany/jsonrpc2/server/Dispatcher.java b/apps/i2pcontrol/java/com/thetransactioncompany/jsonrpc2/server/Dispatcher.java index cec3500bb9..cf566667d1 100644 --- a/apps/i2pcontrol/java/com/thetransactioncompany/jsonrpc2/server/Dispatcher.java +++ b/apps/i2pcontrol/java/com/thetransactioncompany/jsonrpc2/server/Dispatcher.java @@ -162,6 +162,7 @@ public NotificationHandler getNotificationHandler(final String notificationName) /** * @deprecated */ + @Deprecated public JSONRPC2Response dispatch(final JSONRPC2Request request, final MessageContext requestCtx) { return process(request, requestCtx); @@ -209,6 +210,7 @@ public JSONRPC2Response process(final JSONRPC2Request request, final MessageCont /** * @deprecated */ + @Deprecated public void dispatch(final JSONRPC2Notification notification, final MessageContext notificationCtx) { process(notification, notificationCtx); diff --git a/apps/i2psnark/java/src/org/klomp/snark/Snark.java b/apps/i2psnark/java/src/org/klomp/snark/Snark.java index b134c426ab..36f7987c10 100644 --- a/apps/i2psnark/java/src/org/klomp/snark/Snark.java +++ b/apps/i2psnark/java/src/org/klomp/snark/Snark.java @@ -252,7 +252,7 @@ else if ("".equals(line) || "help".equals(line)) /** * from main() via parseArguments() single torrent * - * @deprecated unused + * unused */ /**** Snark(I2PSnarkUtil util, String torrent, String ip, int user_port, @@ -264,7 +264,7 @@ else if ("".equals(line) || "help".equals(line)) /** * single torrent - via router * - * @deprecated unused + * unused */ /**** public Snark(I2PAppContext ctx, Properties opts, String torrent, diff --git a/apps/jrobin/java/src/org/rrd4j/data/DataProcessor.java b/apps/jrobin/java/src/org/rrd4j/data/DataProcessor.java index d8db8fcdab..f4d64b981b 100644 --- a/apps/jrobin/java/src/org/rrd4j/data/DataProcessor.java +++ b/apps/jrobin/java/src/org/rrd4j/data/DataProcessor.java @@ -260,6 +260,7 @@ public void setTimeZone(TimeZone tz) { * @return Ending timestamp in seconds * @deprecated Uses {@link #getEndTime()} instead. */ + @Deprecated public long getEndingTimestamp() { return tEnd; } diff --git a/core/java/src/org/json/simple/Yylex.java b/core/java/src/org/json/simple/Yylex.java index 13e4696d62..240fb9d049 100644 --- a/core/java/src/org/json/simple/Yylex.java +++ b/core/java/src/org/json/simple/Yylex.java @@ -652,7 +652,7 @@ else if (zzAtEOF) { } case 39: break; case 1: - { throw new DeserializationException(yychar, DeserializationException.Problems.UNEXPECTED_CHARACTER, new Character(yycharat(0))); + { throw new DeserializationException(yychar, DeserializationException.Problems.UNEXPECTED_CHARACTER, Character.valueOf(yycharat(0))); } case 40: break; case 6: From 085bbbb6e6b5945c99a3ffec98c9a4d2a375d6f1 Mon Sep 17 00:00:00 2001 From: zzz Date: Fri, 29 Nov 2024 10:50:54 -0500 Subject: [PATCH 25/36] Transport: Better message on UPnP tab when enabled but fails to start (Github #84) --- .../src/net/i2p/router/transport/UPnPManager.java | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/router/java/src/net/i2p/router/transport/UPnPManager.java b/router/java/src/net/i2p/router/transport/UPnPManager.java index c3d662cc14..9a303f18d1 100644 --- a/router/java/src/net/i2p/router/transport/UPnPManager.java +++ b/router/java/src/net/i2p/router/transport/UPnPManager.java @@ -141,11 +141,11 @@ public synchronized void start() { // If not, that's why it failed (HTTPServer won't start) if (!Addresses.isConnected()) { if (!_disconLogged) { - _log.logAlways(Log.WARN, "UPnP start failed - no network connection?"); + _log.logAlways(Log.WARN, _t("UPnP failed to start - no network connection?")); _disconLogged = true; } } else { - _log.error("UPnP start failed - port conflict?"); + _log.error(_t("UPnP failed to start - port conflict?")); } } } @@ -391,8 +391,14 @@ private void locked_PFS(Map statuses) { * will take many seconds if it has vanished. */ public String renderStatusHTML() { - if (!_isRunning) - return "

" + _t("UPnP is not enabled") + "

\n"; + if (!_isRunning) { + String msg; + if (Addresses.isConnected()) + msg = _t("UPnP failed to start - port conflict?"); + else + msg = _t("UPnP failed to start - no network connection?"); + return "

" + msg + "

\n"; + } return _upnp.renderStatusHTML(); } From 7e9e78fed5df1b3292e2340654ccc9134307a939 Mon Sep 17 00:00:00 2001 From: zzz Date: Fri, 29 Nov 2024 16:06:35 -0500 Subject: [PATCH 26/36] Build: Prep for izpack 5.2.3 (Github #86) Update shortcut spec format, old format does not work with 5.2.3, new format works with 4.3.0, 5.1.3, and 5.2.3 Format grabbed from ./izpack-dist/src/main/izpack/shortcutSpec.xml in izpack repo https://github.com/izpack/izpack and specified at https://izpack.atlassian.net/wiki/spaces/IZPACK/pages/491733/Shortcut+Specification --- installer/resources/shortcutSpec.xml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/installer/resources/shortcutSpec.xml b/installer/resources/shortcutSpec.xml index 3e5e1c12f9..a33a383c4e 100644 --- a/installer/resources/shortcutSpec.xml +++ b/installer/resources/shortcutSpec.xml @@ -1,5 +1,9 @@ - + + - + From d7e97a16a2835973d202685b08e72cdbaab427a7 Mon Sep 17 00:00:00 2001 From: zzz Date: Fri, 29 Nov 2024 16:56:13 -0500 Subject: [PATCH 27/36] bump -3 --- history.txt | 15 +++++++++++++++ router/java/src/net/i2p/router/RouterVersion.java | 2 +- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/history.txt b/history.txt index 4c82de21a8..169431ccae 100644 --- a/history.txt +++ b/history.txt @@ -1,3 +1,18 @@ +2024-11-29 zzz + * Build: Prep for izpack 5.2.3 (Github #86) + * Transport: Better message on UPnP tab when enabled but fails to start (Github #84) + +2024-11-28 zzz + * Build: Suppress JNI warnings from Java 24 for CLI and i2psnark-standalone + +2024-11-26 zzz + * Console: Move jar dump link from summary bar to debug page tab + * New complete Gan Chinese translation + +2024-11-17 zzz + * Profiles: Extend time to treat E routers as severely congested + * Streaming: Reduce batch delay + 2024-11-14 zzz * Router: Change cap for sym. nat diff --git a/router/java/src/net/i2p/router/RouterVersion.java b/router/java/src/net/i2p/router/RouterVersion.java index 14ca763aef..f2016528bf 100644 --- a/router/java/src/net/i2p/router/RouterVersion.java +++ b/router/java/src/net/i2p/router/RouterVersion.java @@ -20,7 +20,7 @@ public class RouterVersion { public final static String VERSION = CoreVersion.VERSION; /** for example: "beta", "alpha", "rc" */ public final static String QUALIFIER = ""; - public final static long BUILD = 2; + public final static long BUILD = 3; /** for example "-test" */ public final static String EXTRA = ""; public final static String FULL_VERSION = VERSION + "-" + BUILD + QUALIFIER + EXTRA; From b0f786e17c98c93fcad3ae0be3c3db084dabffa8 Mon Sep 17 00:00:00 2001 From: zzz Date: Sun, 1 Dec 2024 12:29:02 -0500 Subject: [PATCH 28/36] Build: Add warning to izpack 4 targets --- build.xml | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/build.xml b/build.xml index 0e515d8bca..2741113958 100644 --- a/build.xml +++ b/build.xml @@ -1886,8 +1886,17 @@ + - + + + + + + + + Date: Tue, 3 Dec 2024 07:18:07 -0500 Subject: [PATCH 29/36] Console: Output debug info for client DB LS since tab is hidden behind adv. config anyway, to assist in debugging RAP/RAR --- .../java/src/net/i2p/router/web/helpers/NetDbRenderer.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/apps/routerconsole/java/src/net/i2p/router/web/helpers/NetDbRenderer.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/NetDbRenderer.java index 371ab50b28..c08bd4d96f 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/helpers/NetDbRenderer.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/NetDbRenderer.java @@ -819,6 +819,7 @@ public void renderLeaseSetHTML(Writer out, boolean debug, Hash client) throws IO boolean linkSusi = _context.portMapper().isRegistered("susidns"); long now = _context.clock().now(); buf.append("
"); + boolean ldebug = debug || client != null; for (LeaseSet ls : leases) { String distance; if (debug) { @@ -832,7 +833,7 @@ public void renderLeaseSetHTML(Writer out, boolean debug, Hash client) throws IO distance = null; } if (!ls.getHash().equals(myLeaseSet.getHash())) { - renderLeaseSet(buf, ls, debug, now, linkSusi, distance); + renderLeaseSet(buf, ls, ldebug, now, linkSusi, distance); out.write(buf.toString()); buf.setLength(0); } From 6ffdb70e4cb257262a269faad8a6bea805d7a8f8 Mon Sep 17 00:00:00 2001 From: zzz Date: Tue, 3 Dec 2024 07:43:27 -0500 Subject: [PATCH 30/36] Tunnels: Remove unnecessary casts in IMD since setReceivedBy() was promoted to super --- .../tunnel/InboundMessageDistributor.java | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/router/java/src/net/i2p/router/tunnel/InboundMessageDistributor.java b/router/java/src/net/i2p/router/tunnel/InboundMessageDistributor.java index 7f9c1aff0b..7f4756eff2 100644 --- a/router/java/src/net/i2p/router/tunnel/InboundMessageDistributor.java +++ b/router/java/src/net/i2p/router/tunnel/InboundMessageDistributor.java @@ -114,7 +114,8 @@ public void distribute(I2NPMessage msg, Hash target, TunnelId tunnel) { case DatabaseStoreMessage.MESSAGE_TYPE: DatabaseStoreMessage dsm = (DatabaseStoreMessage) msg; - if (dsm.getEntry().getType() == DatabaseEntry.KEY_TYPE_ROUTERINFO) { + DatabaseEntry dbe = dsm.getEntry(); + if (dbe.getType() == DatabaseEntry.KEY_TYPE_ROUTERINFO) { // FVSJ may result in an unsolicited RI store if the peer went non-ff. // We handle this safely, so we don't ask him again. // Todo: if peer was ff and RI is not ff, queue for exploration in netdb (but that isn't part of the facade now) @@ -125,7 +126,7 @@ public void distribute(I2NPMessage msg, Hash target, TunnelId tunnel) { Hash key = dsm.getKey(); if (_context.routerHash().equals(key)) return; - RouterInfo ri = (RouterInfo) dsm.getEntry(); + RouterInfo ri = (RouterInfo) dbe; if (!key.equals(ri.getIdentity().getHash())) return; if (!ri.isValid()) @@ -148,7 +149,7 @@ public void distribute(I2NPMessage msg, Hash target, TunnelId tunnel) { // allow DSM of our own key (used by FloodfillVerifyStoreJob) // or other keys (used by IterativeSearchJob) // as long as there's no reply token (we will never set a reply token but an attacker might) - ((LeaseSet)dsm.getEntry()).setReceivedBy(_client); + dbe.setReceivedBy(_client); } break; @@ -178,8 +179,9 @@ public void distribute(I2NPMessage msg, Hash target, TunnelId tunnel) { _log.error("Dropping DSM w/ reply token down a expl. tunnel: " + msg); return; } - if (dsm.getEntry().isLeaseSet()) - ((LeaseSet)dsm.getEntry()).setReceivedBy(_client); + DatabaseEntry dbe = dsm.getEntry(); + if (dbe.isLeaseSet()) + dbe.setReceivedBy(_client); break; case DatabaseSearchReplyMessage.MESSAGE_TYPE: @@ -277,7 +279,8 @@ public void handleClove(DeliveryInstructions instructions, I2NPMessage data) { dsm.setReplyTunnel(null); dsm.setReplyGateway(null); - if (dsm.getEntry().isLeaseSet()) { + DatabaseEntry dbe = dsm.getEntry(); + if (dbe.isLeaseSet()) { // Case 1: // store of our own LS. // This is almost certainly a response to a FloodfillVerifyStoreJob search. @@ -292,7 +295,7 @@ public void handleClove(DeliveryInstructions instructions, I2NPMessage data) { // Or, it's a normal LS bundled with data and a MessageStatusMessage. // ... and inject it. - ((LeaseSet)dsm.getEntry()).setReceivedBy(_client); + dbe.setReceivedBy(_client); if (_log.shouldLog(Log.INFO)) _log.info("Storing garlic LS down tunnel for: " + dsm.getKey() + " sent to: " + _clientNickname + " (" From 492056e99e1b64fd8ab26d5e3f786e422d199124 Mon Sep 17 00:00:00 2001 From: zzz Date: Wed, 18 Dec 2024 17:57:53 +0000 Subject: [PATCH 31/36] NetDB: Add aggressive LS expire --- core/java/src/net/i2p/data/LeaseSet.java | 4 +- .../OutboundClientMessageOneShotJob.java | 27 ++++-- .../networkdb/kademlia/ExpireLeasesJob.java | 91 ++++++++++++++++--- ...andleFloodfillDatabaseStoreMessageJob.java | 7 +- 4 files changed, 101 insertions(+), 28 deletions(-) diff --git a/core/java/src/net/i2p/data/LeaseSet.java b/core/java/src/net/i2p/data/LeaseSet.java index 0f96cdbc0a..c5f7a8e593 100644 --- a/core/java/src/net/i2p/data/LeaseSet.java +++ b/core/java/src/net/i2p/data/LeaseSet.java @@ -185,13 +185,13 @@ public void setSigningKey(SigningPublicKey key) { } /** - * Also sets receivedAsReply to true + * As of 0.9.65, no longer sets receivedAsReply to true * @param localClient may be null * @since 0.9.47 */ public void setReceivedBy(Hash localClient) { super.setReceivedBy(localClient); - super.setReceivedAsReply(); + //setReceivedAsReply(); } /** diff --git a/router/java/src/net/i2p/router/message/OutboundClientMessageOneShotJob.java b/router/java/src/net/i2p/router/message/OutboundClientMessageOneShotJob.java index 3667650bb6..f9a6446ec3 100644 --- a/router/java/src/net/i2p/router/message/OutboundClientMessageOneShotJob.java +++ b/router/java/src/net/i2p/router/message/OutboundClientMessageOneShotJob.java @@ -35,11 +35,13 @@ import net.i2p.router.JobImpl; import net.i2p.router.LeaseSetKeys; import net.i2p.router.MessageSelector; +import net.i2p.router.NetworkDatabaseFacade; import net.i2p.router.ReplyJob; import net.i2p.router.Router; import net.i2p.router.RouterContext; import net.i2p.router.TunnelInfo; import net.i2p.router.crypto.ratchet.ReplyCallback; +import net.i2p.router.networkdb.kademlia.KademliaNetworkDatabaseFacade; import net.i2p.util.Log; /** @@ -295,9 +297,10 @@ public void runJob() { } SendJob success = new SendJob(getContext()); + KademliaNetworkDatabaseFacade kndf = (KademliaNetworkDatabaseFacade) getContext().clientNetDb(_from.calculateHash()); // set in constructor if (_leaseSet != null) { - if (!_leaseSet.getReceivedAsReply()) { + if (!kndf.isClientDb() && !_leaseSet.getReceivedAsReply()) { boolean shouldFetch = true; if (_leaseSet.getType() != DatabaseEntry.KEY_TYPE_LEASESET) { LeaseSet2 ls2 = (LeaseSet2) _leaseSet; @@ -307,7 +310,7 @@ public void runJob() { if (_log.shouldInfo()) _log.info(getJobId() + ": RAP LS, firing search: " + _leaseSet.getHash().toBase32()); LookupLeaseSetFailedJob failed = new LookupLeaseSetFailedJob(getContext()); - getContext().clientNetDb(_from.calculateHash()).lookupLeaseSetRemotely(_leaseSet.getHash(), success, failed, + kndf.lookupLeaseSetRemotely(_leaseSet.getHash(), success, failed, LS_LOOKUP_TIMEOUT, _from.calculateHash()); } else { dieFatal(MessageStatusMessage.STATUS_SEND_FAILURE_NO_LEASESET); @@ -330,7 +333,7 @@ public void runJob() { long exp = now - _leaseSet.getLatestLeaseDate(); _log.info(getJobId() + ": leaseSet expired " + DataHelper.formatDuration(exp) + " ago, firing search: " + _leaseSet.getHash().toBase32()); } - getContext().clientNetDb(_from.calculateHash()).lookupLeaseSetRemotely(_leaseSet.getHash(), _from.calculateHash()); + kndf.lookupLeaseSetRemotely(_leaseSet.getHash(), _from.calculateHash()); } } success.runJob(); @@ -340,7 +343,7 @@ public void runJob() { _log.debug(getJobId() + ": Send outbound client message - sending off leaseSet lookup job for " + _toString + " from client " + _from.calculateHash().toBase32()); LookupLeaseSetFailedJob failed = new LookupLeaseSetFailedJob(getContext()); Hash key = _to.calculateHash(); - getContext().clientNetDb(_from.calculateHash()).lookupLeaseSet(key, success, failed, LS_LOOKUP_TIMEOUT, _from.calculateHash()); + kndf.lookupLeaseSet(key, success, failed, LS_LOOKUP_TIMEOUT, _from.calculateHash()); } } @@ -422,14 +425,18 @@ public void runJob() { */ private int getNextLease() { // set in runJob if found locally - if (_leaseSet == null || !_leaseSet.getReceivedAsReply()) { - _leaseSet = getContext().clientNetDb(_from.calculateHash()).lookupLeaseSetLocally(_to.calculateHash()); + KademliaNetworkDatabaseFacade kndf = (KademliaNetworkDatabaseFacade) getContext().clientNetDb(_from.calculateHash()); + if (_leaseSet == null || (!kndf.isClientDb() && _leaseSet.getReceivedAsPublished())) { if (_leaseSet == null) { // shouldn't happen - if (_log.shouldLog(Log.WARN)) - _log.warn(getJobId() + ": Lookup locally didn't find the leaseSet for " + _toString); - return MessageStatusMessage.STATUS_SEND_FAILURE_NO_LEASESET; - } else if (_leaseSet.getReceivedAsPublished()) { + _leaseSet = kndf.lookupLeaseSetLocally(_to.calculateHash()); + if (_leaseSet == null) { + if (_log.shouldLog(Log.WARN)) + _log.warn(getJobId() + ": Lookup locally didn't find the leaseSet for " + _toString); + return MessageStatusMessage.STATUS_SEND_FAILURE_NO_LEASESET; + } + } + if (!kndf.isClientDb() && _leaseSet.getReceivedAsPublished()) { if (_log.shouldLog(Log.WARN)) _log.warn(getJobId() + ": Only have RAP LS for " + _toString); return MessageStatusMessage.STATUS_SEND_FAILURE_NO_LEASESET; diff --git a/router/java/src/net/i2p/router/networkdb/kademlia/ExpireLeasesJob.java b/router/java/src/net/i2p/router/networkdb/kademlia/ExpireLeasesJob.java index 3462d4f070..800d5568a6 100644 --- a/router/java/src/net/i2p/router/networkdb/kademlia/ExpireLeasesJob.java +++ b/router/java/src/net/i2p/router/networkdb/kademlia/ExpireLeasesJob.java @@ -9,16 +9,21 @@ */ import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; import java.util.List; import java.util.Map; +import java.util.Set; import net.i2p.data.DatabaseEntry; import net.i2p.data.Hash; import net.i2p.data.LeaseSet; +import net.i2p.data.router.RouterKeyGenerator; import net.i2p.router.JobImpl; import net.i2p.router.Router; import net.i2p.router.RouterContext; import net.i2p.util.Log; +import net.i2p.util.SystemVersion; /** * Periodically search through all leases to find expired ones, failing those @@ -31,6 +36,8 @@ class ExpireLeasesJob extends JobImpl { private final KademliaNetworkDatabaseFacade _facade; private final static long RERUN_DELAY_MS = 1*60*1000; + private static final int LIMIT_LEASES_FF = 1250; + private static final int LIMIT_LEASES_CLIENT = SystemVersion.isSlow() ? 750 : 300; public ExpireLeasesJob(RouterContext ctx, KademliaNetworkDatabaseFacade facade) { super(ctx); @@ -42,16 +49,13 @@ public ExpireLeasesJob(RouterContext ctx, KademliaNetworkDatabaseFacade facade) public void runJob() { List toExpire = selectKeysToExpire(); - for (Hash key : toExpire) { - _facade.fail(key); - //_log.info("Lease " + key + " is expiring, so lets look for it again", new Exception("Expire and search")); - //_facade.lookupLeaseSet(key, null, null, RERUN_DELAY_MS); + if (!toExpire.isEmpty()) { + for (Hash key : toExpire) { + _facade.fail(key); + } + if (_log.shouldInfo()) + _log.info(_facade + " Leases expired: " + toExpire.size()); } - if (_log.shouldInfo()) - _log.info("(dbid: " + _facade - + "; db size: " + _facade.getKnownLeaseSets() - + ") Leases expired: " + toExpire); - //_facade.queueForExploration(toExpire); // don't do explicit searches, just explore passively requeue(RERUN_DELAY_MS); } @@ -62,19 +66,80 @@ public void runJob() { */ private List selectKeysToExpire() { RouterContext ctx = getContext(); - List toExpire = new ArrayList(128); - for (Map.Entry entry : _facade.getDataStore().getMapEntries()) { + boolean isClient = _facade.isClientDb(); + boolean isFFDB = _facade.floodfillEnabled() && !isClient; + Set> entries = _facade.getDataStore().getMapEntries(); + // clientdb only has leasesets + List current = new ArrayList(isFFDB ? 512 : (isClient ? entries.size() : 128)); + List toExpire = new ArrayList(Math.min(entries.size(), 128)); + int sz = 0; + for (Map.Entry entry : entries) { DatabaseEntry obj = entry.getValue(); if (obj.isLeaseSet()) { LeaseSet ls = (LeaseSet)obj; + Hash h = entry.getKey(); + boolean isLocal = ctx.clientManager().isLocal(h); if (!ls.isCurrent(Router.CLOCK_FUDGE_FACTOR)) { - Hash h = entry.getKey(); toExpire.add(h); - if (ctx.clientManager().isLocal(h)) + if (isLocal) _log.logAlways(Log.WARN, "Expired local leaseset " + h.toBase32()); + } else if (!isLocal) { + // do not aggressive expire RAR LS but still count them + sz++; + if (!ls.getReceivedAsReply()) + current.add(ls); + } + } + } + int origsz = sz; + int limit = isFFDB ? LIMIT_LEASES_FF : LIMIT_LEASES_CLIENT; + if (sz > limit) { + // aggressive drop strategy + if (isFFDB) { + RouterKeyGenerator gen = ctx.routerKeyGenerator(); + byte[] ourRKey = ctx.routerHash().getData(); + for (LeaseSet ls : current) { + Hash h = ls.getHash(); + // don't drop very close to us + byte[] rkey = gen.getRoutingKey(h).getData(); + int distance = (((rkey[0] ^ ourRKey[0]) & 0xff) << 8) | + ((rkey[1] ^ ourRKey[1]) & 0xff); + // they have to be within 1/256 of the keyspace + if (distance >= 256) { + toExpire.add(h); + if (--sz <= limit) + break; + } + } + } else { + Collections.sort(current, new LeaseSetComparator()); + for (LeaseSet ls : current) { + toExpire.add(ls.getHash()); + //if (_log.shouldInfo()) + // _log.info("Aggressive LS expire for " + _facade + '\n' + ls); + if (--sz <= limit) + break; } } + int exp = origsz - sz; + if (exp > 0 && _log.shouldWarn()) + _log.warn("Aggressive LS expire for " + _facade + " removed " + exp + + " leasesets, limit " + limit + ", size now " + sz); } return toExpire; } + + /** + * Oldest first + * @since 0.9.65 + */ + private static class LeaseSetComparator implements Comparator { + public int compare(LeaseSet l, LeaseSet r) { + long dl = l.getLatestLeaseDate(); + long dr = r.getLatestLeaseDate(); + if (dl < dr) return -1; + if (dl > dr) return 1; + return 0; + } + } } diff --git a/router/java/src/net/i2p/router/networkdb/kademlia/HandleFloodfillDatabaseStoreMessageJob.java b/router/java/src/net/i2p/router/networkdb/kademlia/HandleFloodfillDatabaseStoreMessageJob.java index 166d3d37d8..843c0f5f36 100644 --- a/router/java/src/net/i2p/router/networkdb/kademlia/HandleFloodfillDatabaseStoreMessageJob.java +++ b/router/java/src/net/i2p/router/networkdb/kademlia/HandleFloodfillDatabaseStoreMessageJob.java @@ -122,9 +122,10 @@ public void runJob() { // for it. This flag must NOT get set on entries that we // receive in response to our own lookups. // See ../HDLMJ for more info - if (!ls.getReceivedAsReply()) - ls.setReceivedAsPublished(); - if (_facade.isClientDb()) { + if (!_facade.isClientDb()) { + if (!ls.getReceivedAsReply()) + ls.setReceivedAsPublished(); + } else { // This is where we deal with what happens if a client subDB tries to store // a leaseSet which it is the owner/publisher of. // Look up a ls hash in the netDbSegmentor, and compare it to the _facade that we have. From e617059b301f289316053130e4a95eeeac241845 Mon Sep 17 00:00:00 2001 From: zzz Date: Wed, 18 Dec 2024 13:02:28 -0500 Subject: [PATCH 32/36] bump -4 --- history.txt | 3 +++ router/java/src/net/i2p/router/RouterVersion.java | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/history.txt b/history.txt index 169431ccae..fae318a697 100644 --- a/history.txt +++ b/history.txt @@ -1,3 +1,6 @@ +2024-12-18 zzz + * NetDB: Aggressive expire for leasesets when over limits + 2024-11-29 zzz * Build: Prep for izpack 5.2.3 (Github #86) * Transport: Better message on UPnP tab when enabled but fails to start (Github #84) diff --git a/router/java/src/net/i2p/router/RouterVersion.java b/router/java/src/net/i2p/router/RouterVersion.java index f2016528bf..ca3640d9db 100644 --- a/router/java/src/net/i2p/router/RouterVersion.java +++ b/router/java/src/net/i2p/router/RouterVersion.java @@ -20,7 +20,7 @@ public class RouterVersion { public final static String VERSION = CoreVersion.VERSION; /** for example: "beta", "alpha", "rc" */ public final static String QUALIFIER = ""; - public final static long BUILD = 3; + public final static long BUILD = 4; /** for example "-test" */ public final static String EXTRA = ""; public final static String FULL_VERSION = VERSION + "-" + BUILD + QUALIFIER + EXTRA; From 09baa49370d1491b5f04bcacdf547477c521df42 Mon Sep 17 00:00:00 2001 From: zzz Date: Thu, 26 Dec 2024 07:42:45 -0500 Subject: [PATCH 33/36] NetDB: Reduce max ff response time --- .../i2p/router/networkdb/kademlia/FloodfillPeerSelector.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/router/java/src/net/i2p/router/networkdb/kademlia/FloodfillPeerSelector.java b/router/java/src/net/i2p/router/networkdb/kademlia/FloodfillPeerSelector.java index fd1f871ee5..c061fbcc10 100644 --- a/router/java/src/net/i2p/router/networkdb/kademlia/FloodfillPeerSelector.java +++ b/router/java/src/net/i2p/router/networkdb/kademlia/FloodfillPeerSelector.java @@ -178,7 +178,7 @@ List selectFloodfillParticipants(Hash key, int maxNumRouters, KBucketSet Date: Thu, 26 Dec 2024 07:50:07 -0500 Subject: [PATCH 34/36] Profiles: Remove unused 10m and 24h rates for DB response time --- .../net/i2p/router/web/helpers/ProfileOrganizerRenderer.java | 4 ---- router/java/src/net/i2p/router/peermanager/PeerProfile.java | 2 +- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/apps/routerconsole/java/src/net/i2p/router/web/helpers/ProfileOrganizerRenderer.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/ProfileOrganizerRenderer.java index 878fbf4ff2..476b0eba1d 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/helpers/ProfileOrganizerRenderer.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/ProfileOrganizerRenderer.java @@ -227,9 +227,7 @@ public void renderStatusHTML(Writer out, int mode) throws IOException { buf.append("").append(_t("Last Heard From")).append(""); buf.append("").append(_t("Last Good Send")).append(""); buf.append("").append(_t("Last Bad Send")).append(""); - buf.append("").append(_t("10m Resp. Time")).append(""); buf.append("").append(_t("1h Resp. Time")).append(""); - buf.append("").append(_t("1d Resp. Time")).append(""); buf.append("").append(_t("Last Good Lookup")).append(""); buf.append("").append(_t("Last Bad Lookup")).append(""); buf.append("").append(_t("Last Good Store")).append(""); @@ -254,9 +252,7 @@ public void renderStatusHTML(Writer out, int mode) throws IOException { buf.append("").append(formatInterval(now, prof.getLastHeardFrom())).append(""); buf.append("").append(formatInterval(now, prof.getLastSendSuccessful())).append(""); buf.append("").append(formatInterval(now, prof.getLastSendFailed())).append(""); - buf.append("").append(avg(prof, 10*60*1000l, ra)).append(""); buf.append("").append(avg(prof, 60*60*1000l, ra)).append(""); - buf.append("").append(avg(prof, 24*60*60*1000l, ra)).append(""); DBHistory dbh = prof.getDBHistory(); if (dbh != null) { buf.append("").append(formatInterval(now, dbh.getLastLookupSuccessful())).append(""); diff --git a/router/java/src/net/i2p/router/peermanager/PeerProfile.java b/router/java/src/net/i2p/router/peermanager/PeerProfile.java index 794e6b46c4..e2a481bdb2 100644 --- a/router/java/src/net/i2p/router/peermanager/PeerProfile.java +++ b/router/java/src/net/i2p/router/peermanager/PeerProfile.java @@ -565,7 +565,7 @@ public synchronized void expandProfile() { public synchronized void expandDBProfile() { String group = (null == _peer ? "profileUnknown" : _peer.toBase64().substring(0,6)); if (_dbResponseTime == null) - _dbResponseTime = new RateStat("dbResponseTime", "how long it takes to get a db response from the peer (in milliseconds)", group, new long[] { 10*60*1000l, 60*60*1000l, 24*60*60*1000 } ); + _dbResponseTime = new RateStat("dbResponseTime", "how long it takes to get a db response from the peer (in milliseconds)", group, new long[] { 60*60*1000l } ); if (_dbIntroduction == null) _dbIntroduction = new RateStat("dbIntroduction", "how many new peers we get from dbSearchReplyMessages or dbStore messages", group, new long[] { 60*60*1000l, 6*60*60*1000l, 24*60*60*1000l }); From c0797889987981e675ad95932ee43c209486ad13 Mon Sep 17 00:00:00 2001 From: zzz Date: Thu, 26 Dec 2024 08:21:16 -0500 Subject: [PATCH 35/36] NetDB: Base lookup timeout on peer's average response time --- .../kademlia/IterativeSearchJob.java | 24 ++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/router/java/src/net/i2p/router/networkdb/kademlia/IterativeSearchJob.java b/router/java/src/net/i2p/router/networkdb/kademlia/IterativeSearchJob.java index d0ab7470a8..844e3edd0a 100644 --- a/router/java/src/net/i2p/router/networkdb/kademlia/IterativeSearchJob.java +++ b/router/java/src/net/i2p/router/networkdb/kademlia/IterativeSearchJob.java @@ -29,8 +29,11 @@ import net.i2p.router.RouterContext; import net.i2p.router.TunnelInfo; import net.i2p.router.TunnelManagerFacade; +import net.i2p.router.peermanager.PeerProfile; import net.i2p.router.util.MaskedIPSet; import net.i2p.router.util.RandomIterator; +import net.i2p.stat.Rate; +import net.i2p.stat.RateStat; import net.i2p.util.Log; import net.i2p.util.NativeBigInteger; import net.i2p.util.SystemVersion; @@ -101,6 +104,7 @@ public class IterativeSearchJob extends FloodSearchJob { * The default single search time */ private static final long SINGLE_SEARCH_TIME = 3*1000; + private static final long MIN_SINGLE_SEARCH_TIME = 500; /** the actual expire time for a search message */ private static final long SINGLE_SEARCH_MSG_TIME = 20*1000; /** @@ -549,7 +553,25 @@ private void sendQuery(Hash peer, int previouslyTried) { // The timeout job is always run (never cancelled) // Note that the timeout is much shorter than the message expiration (see above) Job j = new IterativeTimeoutJob(ctx, peer, this); - long expire = Math.min(_expiration, now + _singleSearchTime); + // set timeout based on resp. time from profile + PeerProfile prof = getContext().profileOrganizer().getProfileNonblocking(peer); + long exp = _singleSearchTime; + if (prof != null && prof.getIsExpandedDB()) { + RateStat dbrt = prof.getDbResponseTime(); + if (dbrt != null) { + Rate r = dbrt.getRate(60*60*1000L); + if (r != null) { + long avg = (long) r.getAvgOrLifetimeAvg(); + if (avg > 0) { + // We don't calculate RTO so just use a multiple of the RTT + exp = Math.min(exp, Math.max(MIN_SINGLE_SEARCH_TIME, (isDirect ? 2 : 3) * avg)); + //if (_log.shouldInfo()) + // _log.info("lookup from " + peer.toBase64() + " avg resp time " + avg + " expires " + exp); + } + } + } + } + long expire = Math.min(_expiration, now + exp); j.getTiming().setStartAfter(expire); getContext().jobQueue().addJob(j); From a2069da48fa121c9b675ade16fb995425a307411 Mon Sep 17 00:00:00 2001 From: zzz Date: Wed, 1 Jan 2025 09:21:41 -0500 Subject: [PATCH 36/36] javadoc fix --- router/java/src/net/i2p/router/transport/udp/UDPTransport.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 e093623acb..0c276c0b45 100644 --- a/router/java/src/net/i2p/router/transport/udp/UDPTransport.java +++ b/router/java/src/net/i2p/router/transport/udp/UDPTransport.java @@ -2669,7 +2669,7 @@ void sendIfEstablished(OutNetMessage msg) { * If you have multiple messages, use the list variant, * so the messages may be bundled efficiently. * - * @param peer all messages MUST be going to this peer + * @param peer the message MUST be going to this peer */ void send(I2NPMessage msg, PeerState peer) { try {