propagate from branch 'i2p.i2p' (head f33e0980fd48ba4acda12d2079f2a4834a710ae4)

to branch 'i2p.i2p.zzz.jetty7' (head bd1a64f7262ad5bbea3529675f1f055b9ad257a8)
This commit is contained in:
zzz
2013-01-13 12:38:05 +00:00
356 changed files with 41754 additions and 101567 deletions

View File

@ -2,6 +2,7 @@
# Use mtn add --no-respect-ignore foo.jar to ignore this ignore list
_jsp\.java$
\.bz2$
\.tar$
\.class$
\.diff$
\.exe$
@ -15,6 +16,7 @@ _jsp\.java$
\.su2$
\.tar$
\.war$
.\deb$
\.zip$
^\.
^build
@ -23,4 +25,7 @@ _jsp\.java$
/build
/classes/
^debian/copyright
^debian/changelog
override.properties
sloccount.sc
^reports/

View File

@ -123,6 +123,7 @@ trans.cs = debian/po/cs.po
trans.de = debian/po/de.po
trans.el = debian/po/el.po
trans.es = debian/po/es.po
trans.fr = debian/po/fr.po
trans.it = debian/po/it.po
trans.hu = debian/po/hu.po
trans.pl = debian/po/pl.po
@ -130,6 +131,11 @@ trans.ru = debian/po/ru.po
trans.sv_SE = debian/po/sv.po
trans.uk_UA = debian/po/uk.po
[I2P.i2prouter-script]
source_file = installer/resources/locale/messages_en.po
source_lang = en
trans.de = installer/resources/locale/po/messages_de.po
[main]
host = http://www.transifex.net

View File

@ -11,7 +11,7 @@ you may use:
lynx http://localhost:7657/
to configure the router.
If you're having trouble, swing by http://forum.i2p2.de/, check the
If you're having trouble, swing by http://forum.i2p/, check the
website at http://www.i2p2.de/, or get on irc://irc.freenode.net/#i2p
I2P will create and store files and configuration data in the user directory

View File

@ -72,6 +72,9 @@ Public domain except as listed below:
Copyright (c) 2006, Matthew Estes
See licenses/LICENSE-BlockFile.txt
SipHashInline:
Copyright 2012 Hiroshi Nakamura <nahi@ruby-lang.org>
See licenses/LICENSE-Apache2.0.txt
Router (router.jar):
Public domain except as listed below:
@ -239,8 +242,8 @@ Applications:
Bundles systray4j-2.4.1:
See licenses/LICENSE-LGPLv2.1.txt
Tomcat 6.0.35:
Copyright 1999-2011 The Apache Software Foundation
Tomcat 6.0.36:
Copyright 1999-2012 The Apache Software Foundation
See licenses/LICENSE-Apache2.0.txt
See licenses/NOTICE-Tomcat.txt

View File

@ -32,7 +32,7 @@ FAQ:
Need help?
IRC irc.freenode.net #i2p
http://forum.i2p2.de/
http://forum.i2p/
Licenses:
See LICENSE.txt

View File

@ -83,7 +83,7 @@
<pathelement path="${javac.classpath}" />
</path>
</copy>
<copy todir="${dist.dir}/lib" file="../../installer/lib/jbigi/jbigi.jar" />
<copy todir="${dist.dir}/lib" file="../../build/jbigi.jar" />
<!-- Extract the classes inside the jar files -->
<unjar dest="${dist.dir}/classes" >

View File

@ -30,11 +30,11 @@ excludes=**/*.html,**/*.txt
file.reference.build-javadoc=../../i2p.i2p/build/javadoc
file.reference.i2p.jar=../../core/java/build/i2p.jar
file.reference.i2ptunnel.jar=../i2ptunnel/java/build/i2ptunnel.jar
file.reference.jbigi.jar=../../installer/lib/jbigi/jbigi.jar
file.reference.jbigi.jar=../../build/jbigi.jar
file.reference.mstreaming.jar=../ministreaming/java/build/mstreaming.jar
file.reference.router.jar=../../router/java/build/router.jar
file.reference.streaming.jar=../streaming/java/build/streaming.jar
file.reference.wrapper.jar=../../installer/lib/wrapper/linux/wrapper.jar
file.reference.wrapper.jar=../../installer/lib/wrapper/all/wrapper.jar
includes=**
jar.compress=true
javac.classpath=\

View File

@ -42,8 +42,8 @@ import javax.servlet.http.HttpServletResponse;
*/
public class Servlet extends HttpServlet {
private DaemonThread thread;
private String nonce;
private static final String PROP_NONCE = "addressbook.nonce";
//private String nonce;
//private static final String PROP_NONCE = "addressbook.nonce";
/**
* Hack to allow susidns to kick the daemon when the subscription list changes.
@ -54,15 +54,15 @@ public class Servlet extends HttpServlet {
*/
public void service(HttpServletRequest request, HttpServletResponse response) throws IOException {
//System.err.println("Got request nonce = " + request.getParameter("nonce"));
if (this.thread != null && request.getParameter("wakeup") != null &&
this.nonce != null && this.nonce.equals(request.getParameter("nonce"))) {
//System.err.println("Sending interrupt");
this.thread.interrupt();
// no output
} else {
//if (this.thread != null && request.getParameter("wakeup") != null &&
// this.nonce != null && this.nonce.equals(request.getParameter("nonce"))) {
// //System.err.println("Sending interrupt");
// this.thread.interrupt();
// // no output
//} else {
PrintWriter out = response.getWriter();
out.write("I2P addressbook OK");
}
//}
}
/* (non-Javadoc)
@ -75,9 +75,9 @@ public class Servlet extends HttpServlet {
} catch (ServletException exp) {
System.err.println("Addressbook init exception: " + exp);
}
this.nonce = "" + Math.abs((new Random()).nextLong());
//this.nonce = "" + Math.abs((new Random()).nextLong());
// put the nonce where susidns can get it
System.setProperty(PROP_NONCE, this.nonce);
//System.setProperty(PROP_NONCE, this.nonce);
String[] args = new String[1];
args[0] = config.getInitParameter("home");
this.thread = new DaemonThread(args);

View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry combineaccessrules="false" kind="src" path="/i2p_router"/>
<classpathentry combineaccessrules="false" kind="src" path="/i2p_sdk"/>
<classpathentry kind="lib" path="/lib/wrapper/all/wrapper.jar"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="output" path="build"/>
</classpath>

17
apps/desktopgui/.project Normal file
View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>desktopgui</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>

View File

@ -8,6 +8,9 @@
<property name="resources" value="resources"/>
<property name="javadoc" value="javadoc"/>
<condition property="no.bundle">
<isfalse value="${require.gettext}" />
</condition>
<property name="javac.compilerargs" value=""/>
<property name="require.gettext" value="true" />
@ -39,7 +42,7 @@
</copy>
</target>
<target name="bundle" >
<target name="bundle" unless="no.bundle">
<exec executable="sh" osfamily="unix" failifexecutionfails="true" failonerror="${require.gettext}" >
<arg value="./bundle-messages.sh" />
</exec>

View File

@ -1,3 +1,4 @@
#!/bin/sh
#
# Update messages_xx.po and messages_xx.class files,
# from both java and jsp sources.

11
apps/i2psnark/.classpath Normal file
View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="java/src"/>
<classpathentry combineaccessrules="false" kind="src" path="/i2p_sdk"/>
<classpathentry combineaccessrules="false" kind="src" path="/ministreaming"/>
<classpathentry kind="lib" path="/jetty/jettylib/javax.servlet.jar"/>
<classpathentry kind="lib" path="/jetty/jettylib/jetty-util.jar"/>
<classpathentry kind="lib" path="/jetty/jettylib/org.mortbay.jetty.jar"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="output" path="java/build/obj"/>
</classpath>

17
apps/i2psnark/.project Normal file
View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>i2psnark</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>

View File

@ -25,6 +25,9 @@
</depend>
</target>
<condition property="no.bundle">
<isfalse value="${require.gettext}" />
</condition>
<property name="javac.compilerargs" value="" />
<property name="require.gettext" value="true" />
@ -81,7 +84,7 @@
<isset property="jar.uptodate" />
</not>
<not>
<isset property="wjar.uptodate" />
<isset property="war.uptodate" />
</not>
<isset property="mtn.available" />
</and>
@ -121,7 +124,7 @@
</uptodate>
</target>
<target name="bundle" depends="compile">
<target name="bundle" depends="compile" unless="no.bundle">
<!-- Update the messages_*.po files.
We need to supply the bat file for windows, and then change the fail property to true -->
<exec executable="sh" osfamily="unix" failifexecutionfails="true" failonerror="${require.gettext}" >

View File

@ -1,3 +1,4 @@
#!/bin/sh
#
# Update messages_xx.po and messages_xx.class files,
# from both java and jsp sources.

View File

@ -61,6 +61,7 @@ public class MetaInfo
private final byte[] piece_hashes;
private final long length;
private final boolean privateTorrent;
private final List<List<String>> announce_list;
private Map<String, BEValue> infoMap;
/**
@ -69,9 +70,11 @@ public class MetaInfo
* @param announce may be null
* @param files null for single-file torrent
* @param lengths null for single-file torrent
* @param announce_list may be null
*/
MetaInfo(String announce, String name, String name_utf8, List<List<String>> files, List<Long> lengths,
int piece_length, byte[] piece_hashes, long length, boolean privateTorrent)
int piece_length, byte[] piece_hashes, long length, boolean privateTorrent,
List<List<String>> announce_list)
{
this.announce = announce;
this.name = name;
@ -83,6 +86,7 @@ public class MetaInfo
this.piece_hashes = piece_hashes;
this.length = length;
this.privateTorrent = privateTorrent;
this.announce_list = announce_list;
// TODO if we add a parameter for other keys
//if (other != null) {
@ -141,6 +145,23 @@ public class MetaInfo
this.announce = val.getString();
}
// BEP 12
val = m.get("announce-list");
if (val == null) {
this.announce_list = null;
} else {
this.announce_list = new ArrayList();
List<BEValue> bl1 = val.getList();
for (BEValue bev : bl1) {
List<BEValue> bl2 = bev.getList();
List<String> sl2 = new ArrayList();
for (BEValue bev2 : bl2) {
sl2.add(bev2.getString());
}
this.announce_list.add(sl2);
}
}
val = m.get("info");
if (val == null)
throw new InvalidBEncodingException("Missing info map");
@ -296,6 +317,15 @@ public class MetaInfo
return announce;
}
/**
* Returns a list of lists of urls.
*
* @since 0.9.5
*/
public List<List<String>> getAnnounceList() {
return announce_list;
}
/**
* Returns the original 20 byte SHA1 hash over the bencoded info map.
*/
@ -470,12 +500,13 @@ public class MetaInfo
/**
* Creates a copy of this MetaInfo that shares everything except the
* announce URL.
* Drops any announce-list.
*/
public MetaInfo reannounce(String announce)
{
return new MetaInfo(announce, name, name_utf8, files,
lengths, piece_length,
piece_hashes, length, privateTorrent);
piece_hashes, length, privateTorrent, null);
}
/**
@ -486,6 +517,8 @@ public class MetaInfo
Map m = new HashMap();
if (announce != null)
m.put("announce", announce);
if (announce_list != null)
m.put("announce-list", announce_list);
Map info = createInfoMap();
m.put("info", info);
// don't save this locally, we should only do this once

View File

@ -886,7 +886,9 @@ public class SnarkManager implements CompleteListener {
}
}
} catch (IOException ioe) {
addMessage(_("Torrent in \"{0}\" is invalid", sfile.getName()) + ": " + ioe.getMessage());
String err = _("Torrent in \"{0}\" is invalid", sfile.getName()) + ": " + ioe.getMessage();
addMessage(err);
_log.error(err, ioe);
if (sfile.exists())
sfile.delete();
return;

View File

@ -122,6 +122,7 @@ public class Storage
* @throws IOException when creating and/or checking files fails.
*/
public Storage(I2PSnarkUtil util, File baseFile, String announce,
List<List<String>> announce_list,
boolean privateTorrent, StorageListener listener)
throws IOException
{
@ -182,7 +183,8 @@ public class Storage
// TODO thread this so we can return and show something on the UI
byte[] piece_hashes = fast_digestCreate();
metainfo = new MetaInfo(announce, baseFile.getName(), null, files,
lengthsList, piece_size, piece_hashes, total, privateTorrent);
lengthsList, piece_size, piece_hashes, total, privateTorrent,
announce_list);
}
@ -1225,7 +1227,7 @@ public class Storage
File file = null;
FileOutputStream out = null;
try {
Storage storage = new Storage(util, base, announce, false, null);
Storage storage = new Storage(util, base, announce, null, false, null);
MetaInfo meta = storage.getMetaInfo();
file = new File(storage.getBaseName() + ".torrent");
out = new FileOutputStream(file);

View File

@ -31,6 +31,7 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Date;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Locale;
@ -40,6 +41,7 @@ import java.util.Set;
import net.i2p.I2PAppContext;
import net.i2p.data.DataHelper;
import net.i2p.data.Hash;
import net.i2p.util.ConvertToHash;
import net.i2p.util.I2PAppThread;
import net.i2p.util.Log;
import net.i2p.util.SimpleTimer2;
@ -109,8 +111,8 @@ public class TrackerClient implements Runnable {
private boolean completed;
private volatile boolean _fastUnannounce;
private long lastDHTAnnounce;
private final List<Tracker> trackers;
private final List<Tracker> backupTrackers;
private final List<TCTracker> trackers;
private final List<TCTracker> backupTrackers;
/**
* Call start() to start it.
@ -270,9 +272,12 @@ public class TrackerClient implements Runnable {
primary = meta.getAnnounce();
else if (additionalTrackerURL != null)
primary = additionalTrackerURL;
Set<Hash> trackerHashes = new HashSet(8);
// primary tracker
if (primary != null) {
if (isValidAnnounce(primary)) {
trackers.add(new Tracker(primary, true));
if (isNewValidTracker(trackerHashes, primary)) {
trackers.add(new TCTracker(primary, true));
if (_log.shouldLog(Log.DEBUG))
_log.debug("Announce: [" + primary + "] infoHash: " + infoHash);
} else {
@ -281,34 +286,33 @@ public class TrackerClient implements Runnable {
}
} else {
_log.warn("No primary announce");
primary = "";
}
// announce list
if (meta != null && !meta.isPrivate()) {
List<List<String>> list = meta.getAnnounceList();
if (list != null) {
for (List<String> llist : list) {
for (String url : llist) {
if (!isNewValidTracker(trackerHashes, url))
continue;
trackers.add(new TCTracker(url, trackers.isEmpty()));
if (_log.shouldLog(Log.DEBUG))
_log.debug("Additional announce (list): [" + url + "] for infoHash: " + infoHash);
}
}
}
}
// configured open trackers
if (meta == null || !meta.isPrivate()) {
List<String> tlist = _util.getOpenTrackers();
for (int i = 0; i < tlist.size(); i++) {
String url = tlist.get(i);
if (!isValidAnnounce(url)) {
_log.error("Bad announce URL: [" + url + "]");
continue;
}
int slash = url.indexOf('/', 7);
if (slash <= 7) {
_log.error("Bad announce URL: [" + url + "]");
continue;
}
if (primary.startsWith(url.substring(0, slash)))
continue;
String dest = _util.lookup(url.substring(7, slash));
if (dest == null) {
_log.error("Announce host unknown: [" + url.substring(7, slash) + "]");
continue;
}
if (primary.startsWith("http://" + dest))
continue;
if (primary.startsWith("http://i2p/" + dest))
if (!isNewValidTracker(trackerHashes, url))
continue;
// opentrackers are primary if we don't have primary
trackers.add(new Tracker(url, primary.equals("")));
trackers.add(new TCTracker(url, trackers.isEmpty()));
if (_log.shouldLog(Log.DEBUG))
_log.debug("Additional announce: [" + url + "] for infoHash: " + infoHash);
}
@ -319,30 +323,39 @@ public class TrackerClient implements Runnable {
List<String> tlist = _util.getBackupTrackers();
for (int i = 0; i < tlist.size(); i++) {
String url = tlist.get(i);
if (!isValidAnnounce(url)) {
_log.error("Bad announce URL: [" + url + "]");
if (!isNewValidTracker(trackerHashes, url))
continue;
}
int slash = url.indexOf('/', 7);
if (slash <= 7) {
_log.error("Bad announce URL: [" + url + "]");
continue;
}
String dest = _util.lookup(url.substring(7, slash));
if (dest == null) {
_log.error("Announce host unknown: [" + url.substring(7, slash) + "]");
continue;
}
backupTrackers.add(new Tracker(url, false));
backupTrackers.add(new TCTracker(url, false));
if (_log.shouldLog(Log.DEBUG))
_log.debug("Backup announce: [" + url + "] for infoHash: " + infoHash);
}
if (backupTrackers.isEmpty())
backupTrackers.add(new Tracker(DEFAULT_BACKUP_TRACKER, false));
if (backupTrackers.isEmpty()) {
backupTrackers.add(new TCTracker(DEFAULT_BACKUP_TRACKER, false));
}
}
this.completed = coordinator.getLeft() == 0;
}
/**
* @param existing the ones we already know about
* @param ann an announce URL non-null
* @return true if ann is valid and new; adds to existing if returns true
* @since 0.9.5
*/
private boolean isNewValidTracker(Set<Hash> existing, String ann) {
Hash h = getHostHash(ann);
if (h == null) {
_log.error("Bad announce URL: [" + ann + ']');
return false;
}
boolean rv = existing.add(h);
if (!rv) {
if (_log.shouldLog(Log.INFO))
_log.info("Dup announce URL: [" + ann + ']');
}
return rv;
}
/**
* Announce to all the trackers, get peers from PEX and DHT, then queue up a SimpleTimer2 event.
* This will take several seconds to several minutes.
@ -425,7 +438,7 @@ public class TrackerClient implements Runnable {
/**
* @return max peers seen
*/
private int getPeersFromTrackers(List<Tracker> trckrs) {
private int getPeersFromTrackers(List<TCTracker> trckrs) {
long uploaded = coordinator.getUploaded();
long downloaded = coordinator.getDownloaded();
long left = coordinator.getLeft(); // -1 in magnet mode
@ -442,7 +455,7 @@ public class TrackerClient implements Runnable {
// *** loop once for each tracker
int maxSeenPeers = 0;
for (Tracker tr : trckrs) {
for (TCTracker tr : trckrs) {
if ((!stop) && (!tr.stop) &&
(completed || coordinator.needOutboundPeers() || !tr.started) &&
(event.equals(COMPLETED_EVENT) || System.currentTimeMillis() > tr.lastRequestTime + tr.interval))
@ -639,7 +652,7 @@ public class TrackerClient implements Runnable {
if (dht != null)
dht.unannounce(snark.getInfoHash());
int i = 0;
for (Tracker tr : trackers) {
for (TCTracker tr : trackers) {
if (_util.connected() &&
tr.started && (!tr.stop) && tr.trackerProblems == null) {
try {
@ -659,9 +672,9 @@ public class TrackerClient implements Runnable {
* @since 0.9.1
*/
private class Unannouncer implements Runnable {
private final Tracker tr;
private final TCTracker tr;
public Unannouncer(Tracker tr) {
public Unannouncer(TCTracker tr) {
this.tr = tr;
}
@ -685,7 +698,7 @@ public class TrackerClient implements Runnable {
}
}
private TrackerInfo doRequest(Tracker tr, String infoHash,
private TrackerInfo doRequest(TCTracker tr, String infoHash,
String peerID, long uploaded,
long downloaded, long left, String event)
throws IOException
@ -775,6 +788,7 @@ public class TrackerClient implements Runnable {
}
/**
* @param ann an announce URL
* @return true for i2p hosts only
* @since 0.7.12
*/
@ -790,10 +804,38 @@ public class TrackerClient implements Runnable {
url.getPort() < 0;
}
private static class Tracker
/**
* @param ann an announce URL non-null
* @return a Hash for i2p hosts only, null otherwise
* @since 0.9.5
*/
private static Hash getHostHash(String ann) {
URL url;
try {
url = new URL(ann);
} catch (MalformedURLException mue) {
return null;
}
if (url.getPort() >= 0 || !url.getProtocol().equals("http"))
return null;
String host = url.getHost();
if (host.endsWith(".i2p"))
return ConvertToHash.getHash(host);
if (host.equals("i2p")) {
String path = url.getPath();
if (path == null || path.length() < 517 ||
!path.startsWith("/"))
return null;
String[] parts = path.substring(1).split("/?&;", 2);
return ConvertToHash.getHash(parts[0]);
}
return null;
}
private static class TCTracker
{
String announce;
boolean isPrimary;
final String announce;
final boolean isPrimary;
long interval;
long lastRequestTime;
String trackerProblems;
@ -803,7 +845,7 @@ public class TrackerClient implements Runnable {
int consecutiveFails;
int seenPeers;
public Tracker(String a, boolean p)
public TCTracker(String a, boolean p)
{
announce = a;
isPrimary = p;

View File

@ -61,7 +61,7 @@ public class I2PSnarkServlet extends DefaultServlet {
private Resource _resourceBase;
private String _themePath;
private String _imgPath;
private String _lastAnnounceURL = "";
private String _lastAnnounceURL;
public static final String PROP_CONFIG_FILE = "i2psnark.configFile";
@ -188,11 +188,15 @@ public class I2PSnarkServlet extends DefaultServlet {
} else {
String base = URIUtil.addPaths(req.getRequestURI(), "/");
String listing = getListHTML(resource, base, true, method.equals("POST") ? req.getParameterMap() : null);
if (listing != null)
if (method.equals("POST")) {
// P-R-G
sendRedirect(req, resp, "");
} else if (listing != null) {
resp.getWriter().write(listing);
else // shouldn't happen
} else { // shouldn't happen
resp.sendError(404);
}
}
} else {
super.service(req, resp);
}
@ -209,6 +213,9 @@ public class I2PSnarkServlet extends DefaultServlet {
processRequest(req);
else // nonce is constant, shouldn't happen
_manager.addMessage("Please retry form submission (bad nonce)");
// P-R-G (or G-R-G to hide the params from the address bar)
sendRedirect(req, resp, peerString);
return;
}
PrintWriter out = resp.getWriter();
@ -730,18 +737,54 @@ public class I2PSnarkServlet extends DefaultServlet {
//if ( (announceURLOther != null) && (announceURLOther.trim().length() > "http://.i2p/announce".length()) )
// announceURL = announceURLOther;
if (announceURL == null || announceURL.length() <= 0)
_manager.addMessage(_("Error creating torrent - you must select a tracker"));
else if (baseFile.exists()) {
_lastAnnounceURL = announceURL;
if (baseFile.exists()) {
if (announceURL.equals("none"))
announceURL = null;
_lastAnnounceURL = announceURL;
List<String> backupURLs = new ArrayList();
Enumeration e = req.getParameterNames();
while (e.hasMoreElements()) {
Object o = e.nextElement();
if (!(o instanceof String))
continue;
String k = (String) o;
if (k.startsWith("backup_")) {
String url = k.substring(7);
if (!url.equals(announceURL))
backupURLs.add(url);
}
}
List<List<String>> announceList = null;
if (!backupURLs.isEmpty()) {
// BEP 12 - Put primary first, then the others, each as the sole entry in their own list
if (announceURL == null) {
_manager.addMessage(_("Error - Cannot include alternate trackers without a primary tracker"));
return;
}
backupURLs.add(0, announceURL);
boolean hasPrivate = false;
boolean hasPublic = false;
for (String url : backupURLs) {
if (_manager.getPrivateTrackers().contains(announceURL))
hasPrivate = true;
else
hasPublic = true;
}
if (hasPrivate && hasPublic) {
_manager.addMessage(_("Error - Cannot mix private and public trackers in a torrent"));
return;
}
announceList = new ArrayList(backupURLs.size());
for (String url : backupURLs) {
announceList.add(Collections.singletonList(url));
}
}
try {
// This may take a long time to check the storage, but since it already exists,
// it shouldn't be THAT bad, so keep it in this thread.
// TODO thread it for big torrents, perhaps a la FetchAndAdd
boolean isPrivate = _manager.getPrivateTrackers().contains(announceURL);
Storage s = new Storage(_manager.util(), baseFile, announceURL, isPrivate, null);
Storage s = new Storage(_manager.util(), baseFile, announceURL, announceList, isPrivate, null);
s.close(); // close the files... maybe need a way to pass this Storage to addTorrent rather than starting over
MetaInfo info = s.getMetaInfo();
File torrentFile = new File(_manager.getDataDir(), s.getBaseName() + ".torrent");
@ -771,6 +814,22 @@ public class I2PSnarkServlet extends DefaultServlet {
}
}
/**
* Redirect a POST to a GET (P-R-G), preserving the peer string
* @since 0.9.5
*/
private void sendRedirect(HttpServletRequest req, HttpServletResponse resp, String p) throws IOException {
String url = req.getRequestURL().toString();
StringBuilder buf = new StringBuilder(128);
if (url.endsWith("_post"))
url = url.substring(0, url.length() - 5);
buf.append(url);
if (p.length() > 0)
buf.append('?').append(p);
resp.setHeader("Location", buf.toString());
resp.sendError(302, "Moved");
}
/** @since 0.9 */
private void processTrackerForm(String action, HttpServletRequest req) {
if (action.equals(_("Delete selected")) || action.equals(_("Save tracker configuration"))) {
@ -996,6 +1055,8 @@ public class I2PSnarkServlet extends DefaultServlet {
statusString = "<img alt=\"\" border=\"0\" src=\"" + _imgPath + "stalled.png\" title=\"" + _("Allocating") + "\"></td>" +
"<td class=\"snarkTorrentStatus " + rowClass + "\">" + _("Allocating");
} else if (err != null && curPeers == 0) {
// Also don't show if seeding... but then we won't see the not-registered error
// && remaining != 0 && needed != 0) {
// let's only show this if we have no peers, otherwise PEX and DHT should bail us out, user doesn't care
//if (isRunning && curPeers > 0 && !showPeers)
// statusString = "<img alt=\"\" border=\"0\" src=\"" + _imgPath + "trackererror.png\" title=\"" + err + "\"></td>" +
@ -1372,6 +1433,7 @@ public class I2PSnarkServlet extends DefaultServlet {
}
/**
* Start of anchor only, caller must add anchor text or img and close anchor
* @return string or null
* @since 0.8.4
*/
@ -1399,6 +1461,7 @@ public class I2PSnarkServlet extends DefaultServlet {
}
/**
* Full anchor with img
* @return string or null
* @since 0.8.4
*/
@ -1414,6 +1477,29 @@ public class I2PSnarkServlet extends DefaultServlet {
return null;
}
/**
* Full anchor with shortened URL as anchor text
* @return string, non-null
* @since 0.9.5
*/
private String getShortTrackerLink(String announce, byte[] infohash) {
StringBuilder buf = new StringBuilder(128);
String trackerLinkUrl = getTrackerLinkUrl(announce, infohash);
if (trackerLinkUrl != null)
buf.append(trackerLinkUrl);
if (announce.startsWith("http://"))
announce = announce.substring(7);
int slsh = announce.indexOf('/');
if (slsh > 0)
announce = announce.substring(0, slsh);
if (announce.length() > 67)
announce = announce.substring(0, 40) + "&hellip;" + announce.substring(announce.length() - 8);
buf.append(announce);
if (trackerLinkUrl != null)
buf.append("</a>");
return buf.toString();
}
private void writeAddForm(PrintWriter out, HttpServletRequest req) throws IOException {
// display incoming parameter if a GET so links will work
String newURL = req.getParameter("newURL");
@ -1482,33 +1568,43 @@ public class I2PSnarkServlet extends DefaultServlet {
+ "\" title=\"");
out.write(_("File or directory to seed (must be within the specified path)"));
out.write("\" ><tr><td>\n");
out.write(_("Tracker"));
out.write(":<td><select name=\"announceURL\"><option value=\"\">");
out.write(_("Select a tracker"));
out.write("</option>\n");
// todo remember this one with _lastAnnounceURL also
out.write("<option value=\"none\">");
//out.write(_("Open trackers and DHT only"));
out.write(_("Open trackers only"));
out.write("</option>\n");
out.write(_("Trackers"));
out.write(":<td><table style=\"width: 30%;\"><tr><td></td><td align=\"center\">");
out.write(_("Primary"));
out.write("</td><td align=\"center\">");
out.write(_("Alternates"));
out.write("</td><td rowspan=\"0\">" +
" <input type=\"submit\" class=\"create\" value=\"");
out.write(_("Create torrent"));
out.write("\" name=\"foo\" >" +
"</td></tr>\n");
for (Tracker t : sortedTrackers) {
String name = t.name;
String announceURL = t.announceURL.replace("&#61;", "=");
out.write("<tr><td>");
out.write(name);
out.write("</td><td align=\"center\"><input type=\"radio\" name=\"announceURL\" value=\"");
out.write(announceURL);
out.write("\"");
if (announceURL.equals(_lastAnnounceURL))
announceURL += "\" selected=\"selected";
out.write("\t<option value=\"" + announceURL + "\">" + name + "</option>\n");
out.write(" checked");
out.write("></td><td align=\"center\"><input type=\"checkbox\" name=\"backup_");
out.write(announceURL);
out.write("\" value=\"foo\"></td></tr>\n");
}
out.write("</select>\n");
out.write("<tr><td><i>");
out.write(_("none"));
out.write("</i></td><td align=\"center\"><input type=\"radio\" name=\"announceURL\" value=\"none\"");
if (_lastAnnounceURL == null)
out.write(" checked");
out.write("></td><td></td></tr></table>\n");
// make the user add a tracker on the config form now
//out.write(_("or"));
//out.write("&nbsp;<input type=\"text\" name=\"announceURLOther\" size=\"57\" value=\"http://\" " +
// "title=\"");
//out.write(_("Specify custom tracker announce URL"));
//out.write("\" > " +
out.write(" <input type=\"submit\" class=\"create\" value=\"");
out.write(_("Create torrent"));
out.write("\" name=\"foo\" >\n" +
"</td></tr>" +
out.write("</td></tr>" +
"</table>\n" +
"</form></div></div>");
}
@ -1695,10 +1791,11 @@ public class I2PSnarkServlet extends DefaultServlet {
out.write(_("I2CP options"));
out.write(": <td><textarea name=\"i2cpOpts\" cols=\"60\" rows=\"1\" wrap=\"off\" spellcheck=\"false\" >"
+ opts.toString() + "</textarea><br>\n" +
"<tr><td colspan=\"2\">&nbsp;\n" + // spacer
"<tr><td>&nbsp;<td><input type=\"submit\" class=\"accept\" value=\"");
out.write(_("Save configuration"));
out.write("\" name=\"foo\" >\n" +
"<tr><td colspan=\"2\">&nbsp;\n" + // spacer
"</table></div></div></form>");
}
@ -1764,6 +1861,7 @@ public class I2PSnarkServlet extends DefaultServlet {
"<td><input type=\"checkbox\" class=\"optbox\" name=\"_add_open_\"></td>" +
"<td><input type=\"checkbox\" class=\"optbox\" name=\"_add_private_\"></td>" +
"<td><input type=\"text\" class=\"trackerannounce\" name=\"taurl\"></td></tr>\n" +
"<tr><td colspan=\"6\">&nbsp;</td></tr>\n" + // spacer
"<tr><td colspan=\"2\"></td><td colspan=\"4\">\n" +
"<input type=\"submit\" name=\"taction\" class=\"default\" value=\"").append(_("Add tracker")).append("\">\n" +
"<input type=\"submit\" name=\"taction\" class=\"delete\" value=\"").append(_("Delete selected")).append("\">\n" +
@ -1771,7 +1869,9 @@ public class I2PSnarkServlet extends DefaultServlet {
// "<input type=\"reset\" class=\"cancel\" value=\"").append(_("Cancel")).append("\">\n" +
"<input type=\"submit\" name=\"taction\" class=\"reload\" value=\"").append(_("Restore defaults")).append("\">\n" +
"<input type=\"submit\" name=\"taction\" class=\"add\" value=\"").append(_("Add tracker")).append("\">\n" +
"</td></tr></table></div></div></form>\n");
"</td></tr>" +
"<tr><td colspan=\"6\">&nbsp;</td></tr>\n" + // spacer
"</table></div></div></form>\n");
out.write(buf.toString());
}
@ -1928,7 +2028,7 @@ public class I2PSnarkServlet extends DefaultServlet {
* @param base The base URL
* @param parent True if the parent directory should be included
* @param postParams map of POST parameters or null if not a POST
* @return String of HTML
* @return String of HTML or null if postParams != null
* @since 0.7.14
*/
private String getListHTML(Resource r, String base, boolean parent, Map postParams)
@ -1940,8 +2040,6 @@ public class I2PSnarkServlet extends DefaultServlet {
Arrays.sort(ls, Collator.getInstance());
} // if r is not a directory, we are only showing torrent info section
StringBuilder buf=new StringBuilder(4096);
buf.append(DOCTYPE + "<HTML><HEAD><TITLE>");
String title = URIUtil.decodePath(base);
if (title.startsWith("/i2psnark/"))
title = title.substring("/i2psnark/".length());
@ -1955,9 +2053,14 @@ public class I2PSnarkServlet extends DefaultServlet {
torrentName = title;
Snark snark = _manager.getTorrentByBaseName(torrentName);
if (snark != null && postParams != null)
if (snark != null && postParams != null) {
// caller must P-R-G
savePriorities(snark, postParams);
return null;
}
StringBuilder buf=new StringBuilder(4096);
buf.append(DOCTYPE).append("<HTML><HEAD><TITLE>");
if (title.endsWith("/"))
title = title.substring(0, title.length() - 1);
String directory = title;
@ -1998,20 +2101,26 @@ public class I2PSnarkServlet extends DefaultServlet {
String trackerLink = getTrackerLink(announce, snark.getInfoHash());
if (trackerLink != null)
buf.append(trackerLink).append(' ');
buf.append("<b>").append(_("Tracker")).append(":</b> ");
String trackerLinkUrl = getTrackerLinkUrl(announce, snark.getInfoHash());
if (trackerLinkUrl != null)
buf.append(trackerLinkUrl);
if (announce.startsWith("http://"))
announce = announce.substring(7);
int slsh = announce.indexOf('/');
if (slsh > 0)
announce = announce.substring(0, slsh);
if (announce.length() > 67)
announce = announce.substring(0, 40) + "&hellip;" + announce.substring(announce.length() - 8);
buf.append(announce);
if (trackerLinkUrl != null)
buf.append("</a>");
buf.append("<b>").append(_("Primary Tracker")).append(":</b> ");
buf.append(getShortTrackerLink(announce, snark.getInfoHash()));
buf.append("</td></tr>");
}
List<List<String>> alist = meta.getAnnounceList();
if (alist != null) {
buf.append("<tr><td><b>");
buf.append(_("Tracker List")).append(":</b> ");
for (List<String> alist2 : alist) {
buf.append('[');
boolean more = false;
for (String s : alist2) {
if (more)
buf.append(' ');
else
more = true;
buf.append(getShortTrackerLink(s, snark.getInfoHash()));
}
buf.append("] ");
}
buf.append("</td></tr>");
}
}

View File

@ -10,12 +10,13 @@
# ducki2p <ducki2p@gmail.com>, 2011.
# foo <foo@bar>, 2009.
# mixxy, 2011.
# <pirr@tormail.org>, 2012.
msgid ""
msgstr ""
"Project-Id-Version: I2P\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-11-02 19:46+0000\n"
"PO-Revision-Date: 2012-08-17 09:44+0000\n"
"POT-Creation-Date: 2012-12-14 15:54+0000\n"
"PO-Revision-Date: 2012-11-30 02:09+0000\n"
"Last-Translator: blabla <blabla@trash-mail.com>\n"
"Language-Team: German (http://www.transifex.com/projects/p/I2P/language/"
"de/)\n"
@ -23,7 +24,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ../java/src/org/klomp/snark/MagnetURI.java:42
#: ../java/src/org/klomp/snark/MagnetURI.java:52
@ -135,15 +136,16 @@ msgstr ""
#: ../java/src/org/klomp/snark/SnarkManager.java:622
msgid "Enabled DHT."
msgstr ""
msgstr "DHT eingeschaltet"
#: ../java/src/org/klomp/snark/SnarkManager.java:624
msgid "Disabled DHT."
msgstr ""
msgstr "DHT ausgeschaltet"
#: ../java/src/org/klomp/snark/SnarkManager.java:626
msgid "DHT change requires tunnel shutdown and reopen"
msgstr ""
"DHT-Änderungen bedürfen des anhaltens und erneuten Startens der Tunnel."
#: ../java/src/org/klomp/snark/SnarkManager.java:633
#, java-format
@ -206,31 +208,32 @@ msgid "ERROR - No I2P trackers in private torrent \"{0}\""
msgstr "Fehler - Keine I2P-Tracker im privaten Torrent {0}"
#: ../java/src/org/klomp/snark/SnarkManager.java:862
#, fuzzy, java-format
#, java-format
msgid ""
"Warning - No I2P trackers in \"{0}\", will announce to I2P open trackers and "
"DHT only."
msgstr ""
"Warnung - keine I2P-Tracker in \"{0}\", werde nur bei I2P-OpenTrackern "
"bekanntgeben"
"Warnung - keine I2P-Tracker in \"{0}\", werde nur bei I2P-OpenTrackern und "
"mittels DHT bekanntgeben"
#: ../java/src/org/klomp/snark/SnarkManager.java:865
#, fuzzy, java-format
#, java-format
msgid ""
"Warning - No I2P trackers in \"{0}\", and open trackers are disabled, will "
"announce to DHT only."
msgstr ""
"Warnung - keine I2P-Tracker in \"{0}\", werde nur bei I2P-OpenTrackern "
"bekanntgeben"
"Warnung - keine I2P-internen Tracker in \"{0}\", und OpenTracker "
"deaktiviert. Bekanntgabe erfolgt nur mittels DHT."
#: ../java/src/org/klomp/snark/SnarkManager.java:867
#, fuzzy, java-format
#, 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 ""
"Warnung - keine I2P-Tracker in \"{0}\" gefunden. Stell sicher, dass "
"OpenTracker aktiviert sind, bevor du diesen Torrent startest!"
"Warnung - keine I2P-internen Tracker in \"{0}\", und as Benutzen von sowohl "
"DHT alsauch OpenTracker sind deaktiviert. DHT oder OpenTracker sollten "
"aktiviert werden, bevor du den Torrent startest."
#: ../java/src/org/klomp/snark/SnarkManager.java:889
#, java-format
@ -262,14 +265,15 @@ msgid "Fetching {0}"
msgstr "Hole {0}"
#: ../java/src/org/klomp/snark/SnarkManager.java:969
#, fuzzy, java-format
#, 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 ""
"Wir haben keine gespeicherten Teilnehmer und keine anderen aktiven Torrents. "
"Das Herunterladen von {0} kann nicht erfolgen, solange du keinen anderen "
"Torrent startest."
"Das Verwenden von OpenTrackern ist abgeschaltet und wir haben keine DHT-"
"Gegenstellen. Das Herunterladen von {0} könnte scheitern, sofern kein "
"anderer Torrent gestartet und die Verwendung von OpenTrackern oder DHT "
"erlaubt wird."
#: ../java/src/org/klomp/snark/SnarkManager.java:973
#, java-format
@ -351,9 +355,9 @@ msgid "Adding torrents in {0}"
msgstr "Füge Torrents in {0} hinzu ..."
#: ../java/src/org/klomp/snark/SnarkManager.java:1428
#, fuzzy, java-format
#, java-format
msgid "Up bandwidth limit is {0} KBps"
msgstr "Minimales Limit der Upload-Bandbreite ist {0} kbyte/s."
msgstr "Limit der Upload-Bandbreite ist {0} KByte/s."
#: ../java/src/org/klomp/snark/SnarkManager.java:1450
#, java-format
@ -407,21 +411,22 @@ msgstr "Der I2P-Tunnel wird nach Benachrichtigung der Tracker geschlossen."
msgid "I2P tunnel closed."
msgstr "I2P-Tunnel geschlossen."
#: ../java/src/org/klomp/snark/TrackerClient.java:227
#: ../java/src/org/klomp/snark/TrackerClient.java:233
#, java-format
msgid "No valid trackers for {0} - enable opentrackers or DHT?"
msgstr ""
"Keine gültigen Tracker für {0}. Sollen OpenTracker und/oder DHT verwendet "
"werden?"
#: ../java/src/org/klomp/snark/UpdateHandler.java:49
#: ../java/src/org/klomp/snark/UpdateRunner.java:227
#, fuzzy
msgid "Updating"
msgstr "Starten"
msgstr "Lade Aktualisierung ..."
#: ../java/src/org/klomp/snark/UpdateRunner.java:114
#, java-format
msgid "Updating from {0}"
msgstr ""
msgstr "Lade Aktualisierung von {0}"
#: ../java/src/org/klomp/snark/web/FetchAndAdd.java:75
#, java-format
@ -596,11 +601,11 @@ msgstr[0] "1 verbundener Teilnehmer"
msgstr[1] "{0} verbundene Teilnehmer"
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:474
#, fuzzy, java-format
#, java-format
msgid "1 DHT peer"
msgid_plural "{0} DHT peers"
msgstr[0] "1 Teilnehmer"
msgstr[1] "{0} Teilnehmern"
msgstr[0] "eine DHT-Gegenstelle"
msgstr[1] "{0} DHT-Gegenstellen"
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:567
#, java-format
@ -620,9 +625,9 @@ msgid "Torrent file deleted: {0}"
msgstr "Torrentdatei gelöscht: {0}"
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:638
#, fuzzy, java-format
#, java-format
msgid "Download deleted: {0}"
msgstr "vollständig heruntergeladen:\"{0}\""
msgstr "Download gelöscht: {0}"
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:652
#, java-format
@ -719,12 +724,12 @@ msgstr "Auf Default Tracker zurückgesetzt"
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:993
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:994
msgid "Checking"
msgstr ""
msgstr "Überprüfe"
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:996
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:997
msgid "Allocating"
msgstr ""
msgstr "Reserviere"
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1009
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1016
@ -1035,11 +1040,11 @@ msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1641
msgid "Enable DHT"
msgstr ""
msgstr "DHT einschalten"
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1645
msgid "If checked, use DHT"
msgstr ""
msgstr "Wenn ausgewählt, wird DHT verwendet"
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1661
msgid "Inbound Settings"
@ -1198,6 +1203,3 @@ msgstr "auslassen"
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2250
msgid "Save priorities"
msgstr "Prioritäten speichern"
#~ msgid "Invalid info hash in magnet URL {0}"
#~ msgstr "ungültiger Infohash im Magnetlink {0}"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: I2P i2psnark\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-11-02 19:51+0000\n"
"POT-Creation-Date: 2012-12-21 22:40+0000\n"
"PO-Revision-Date: 2010-06-15 14:09+0100\n"
"Last-Translator: duck <duck@mail.i2p>\n"
"Language-Team: duck <duck@mail.i2p>\n"
@ -375,7 +375,7 @@ msgstr ""
msgid "I2P tunnel closed."
msgstr ""
#: ../java/src/org/klomp/snark/TrackerClient.java:227
#: ../java/src/org/klomp/snark/TrackerClient.java:233
#, java-format
msgid "No valid trackers for {0} - enable opentrackers or DHT?"
msgstr ""

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="src" path="test/junit"/>
<classpathentry combineaccessrules="false" kind="src" path="/i2p_sdk"/>
<classpathentry combineaccessrules="false" kind="src" path="/ministreaming"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>
<classpathentry kind="output" path="build/obj"/>
</classpath>

View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>i2ptunnel</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>

View File

@ -21,6 +21,9 @@
</depend>
</target>
<condition property="no.bundle">
<isfalse value="${require.gettext}" />
</condition>
<property name="javac.compilerargs" value="" />
<property name="require.gettext" value="true" />
@ -84,7 +87,7 @@
</condition>
</target>
<target name="bundle" depends="compile, precompilejsp">
<target name="bundle" depends="compile, precompilejsp" unless="no.bundle">
<!-- Update the messages_*.po files.
We need to supply the bat file for windows, and then change the fail property to true -->
<exec executable="sh" osfamily="unix" failifexecutionfails="true" failonerror="${require.gettext}" >

View File

@ -1,4 +1,5 @@
#
#!/bin/sh
# Update messages_xx.po and messages_xx.class files,
# from both java and jsp sources.
# Requires installed programs xgettext, msgfmt, msgmerge, and find.

View File

@ -54,9 +54,7 @@ class HTTPResponseOutputStream extends FilterOutputStream {
public HTTPResponseOutputStream(OutputStream raw) {
super(raw);
_context = I2PAppContext.getGlobalContext();
_context.statManager().createRateStat("i2ptunnel.httpCompressionRatio", "ratio of compressed size to decompressed size after transfer", "I2PTunnel", new long[] { 60*60*1000 });
_context.statManager().createRateStat("i2ptunnel.httpCompressed", "compressed size transferred", "I2PTunnel", new long[] { 60*60*1000 });
_context.statManager().createRateStat("i2ptunnel.httpExpanded", "size transferred after expansion", "I2PTunnel", new long[] { 60*60*1000 });
// all createRateStat in I2PTunnelHTTPClient.startRunning()
_log = _context.logManager().getLog(getClass());
_headerBuffer = _cache.acquire();
_buf1 = new byte[1];

View File

@ -273,6 +273,10 @@ public class I2PTunnelHTTPClient extends I2PTunnelHTTPClientBase implements Runn
*/
@Override
public void startRunning() {
// following are for HTTPResponseOutputStream
_context.statManager().createRateStat("i2ptunnel.httpCompressionRatio", "ratio of compressed size to decompressed size after transfer", "I2PTunnel", new long[] { 60*60*1000 });
_context.statManager().createRateStat("i2ptunnel.httpCompressed", "compressed size transferred", "I2PTunnel", new long[] { 60*60*1000 });
_context.statManager().createRateStat("i2ptunnel.httpExpanded", "size transferred after expansion", "I2PTunnel", new long[] { 60*60*1000 });
super.startRunning();
this.isr = new InternalSocketRunner(this);
_context.portMapper().register(PortMapper.SVC_HTTP_PROXY, getLocalPort());

View File

@ -79,11 +79,9 @@ public class I2PTunnelIRCServer extends I2PTunnelServer implements Runnable {
public I2PTunnelIRCServer(InetAddress host, int port, File privkey, String privkeyname, Logging l, EventDispatcher notifyThis, I2PTunnel tunnel) {
super(host, port, privkey, privkeyname, l, notifyThis, tunnel);
initCloak(tunnel);
}
/** generate a random 32 bytes, or the hash of the passphrase */
private void initCloak(I2PTunnel tunnel) {
// generate a random 32 bytes, or the hash of the passphrase
// get the properties of this server-tunnel
Properties opts = tunnel.getClientOptions();
@ -236,9 +234,9 @@ public class I2PTunnelIRCServer extends I2PTunnelServer implements Runnable {
return buf.toString();
}
private byte[] cloakKey; // 32 bytes of stuff to scramble the dest with
private String hostname;
private String method;
private String webircPassword;
private String webircSpoofIP;
private final byte[] cloakKey; // 32 bytes of stuff to scramble the dest with
private final String hostname;
private final String method;
private final String webircPassword;
private final String webircSpoofIP;
}

View File

@ -248,7 +248,7 @@
<option value="2"<%=(tunnelQuantity == 2 ? " selected=\"selected\"" : "") %>><%=intl._("2 inbound, 2 outbound tunnels (standard bandwidth usage, standard reliability)")%></option>
<option value="3"<%=(tunnelQuantity == 3 ? " selected=\"selected\"" : "") %>><%=intl._("3 inbound, 3 outbound tunnels (higher bandwidth usage, higher reliability)")%></option>
<% if (tunnelQuantity > 3) {
%> <option value="<%=tunnelQuantity%>" selected="selected"><%=tunnelQuantity%> <%=intl._("tunnels")%></option>
%> <option value="<%=tunnelQuantity%>" selected="selected"><%=tunnelQuantity%>&nbsp;<%=intl._("tunnels")%></option>
<% }
%></select>
</div>

View File

@ -264,8 +264,11 @@
%><option value="1"<%=(tunnelQuantity == 1 ? " selected=\"selected\"" : "") %>><%=intl._("1 inbound, 1 outbound tunnel (low bandwidth usage, less reliability)")%></option>
<option value="2"<%=(tunnelQuantity == 2 ? " selected=\"selected\"" : "") %>><%=intl._("2 inbound, 2 outbound tunnels (standard bandwidth usage, standard reliability)")%></option>
<option value="3"<%=(tunnelQuantity == 3 ? " selected=\"selected\"" : "") %>><%=intl._("3 inbound, 3 outbound tunnels (higher bandwidth usage, higher reliability)")%></option>
<% if (tunnelQuantity > 3) {
%> <option value="<%=tunnelQuantity%>" selected="selected"><%=tunnelQuantity%> <%=intl._("tunnels")%></option>
<option value="4"<%=(tunnelQuantity == 4 ? " selected=\"selected\"" : "") %>><%=intl._("4 in, 4 out (high traffic server)")%></option>
<option value="5"<%=(tunnelQuantity == 5 ? " selected=\"selected\"" : "") %>><%=intl._("5 in, 5 out (high traffic server)")%></option>
<option value="6"<%=(tunnelQuantity == 6 ? " selected=\"selected\"" : "") %>><%=intl._("6 in, 6 out (high traffic server)")%></option>
<% if (tunnelQuantity > 6) {
%> <option value="<%=tunnelQuantity%>" selected="selected"><%=tunnelQuantity%>&nbsp;<%=intl._("tunnels")%></option>
<% }
%></select>
</div>

View File

@ -5,7 +5,7 @@
#
# Translators:
# blabla, 2011.
# <blabla@trash-mail.com>, 2011, 2012.
# <blabla@trash-mail.com>, 2011-2012.
# D.A. Loader <>, 2012.
# <driz@i2pmail.org>, 2012.
# ducki2p <ducki2p@gmail.com>, 2011.
@ -16,9 +16,9 @@ msgid ""
msgstr ""
"Project-Id-Version: I2P\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-11-02 19:46+0000\n"
"PO-Revision-Date: 2012-10-27 16:43+0000\n"
"Last-Translator: pirr <pirr@tormail.org>\n"
"POT-Creation-Date: 2012-12-14 15:54+0000\n"
"PO-Revision-Date: 2012-11-30 02:18+0000\n"
"Last-Translator: blabla <blabla@trash-mail.com>\n"
"Language-Team: German (http://www.transifex.com/projects/p/I2P/language/"
"de/)\n"
"Language: de\n"
@ -27,15 +27,15 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:553
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:554
msgid "This seems to be a bad destination:"
msgstr "Dies scheint kein gültiges Ziel zu sein:"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:553
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:554
msgid "i2paddresshelper cannot help you with a destination like that!"
msgstr "Der I2P-Adresshelfer kann dir bei solch einem Ziel nicht helfen."
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:620
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:621
#, java-format
msgid ""
"To visit the destination in your host database, click <a href=\"{0}\">here</"
@ -46,7 +46,7 @@ msgstr ""
"\"{0}\">hier</a>, und um das Ziel aus der kollidierenden Adresshelfer-"
"Anfrage zu besuchen, <a href=\"{1}\">hier</a>!"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1020
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1025
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:409
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:159
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:413
@ -54,41 +54,41 @@ msgstr ""
msgid "Host"
msgstr "Host"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1024
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1029
msgid "Base 32"
msgstr "Base 32"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1028
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1033
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:377
msgid "Destination"
msgstr "Ziel"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1034
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1039
#, java-format
msgid "Continue to {0} without saving"
msgstr "Weiter zu {0}, ohne zu speichern"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1039
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1044
#, java-format
msgid "Save {0} to router address book and continue to eepsite"
msgstr "{0} im Router-Adressbuch speichern und auf die Eepseite weiterleiten"
#. only blockfile supports multiple books
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1042
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1047
#, java-format
msgid "Save {0} to master address book and continue to eepsite"
msgstr "{0} im Master-Adressbuch speichern und auf die Eepseite weiterleiten"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1043
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1048
#, java-format
msgid "Save {0} to private address book and continue to eepsite"
msgstr "{0} im privaten Adressbuch speichern und auf die Eepseite weiterleiten"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1153
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1162
msgid "HTTP Outproxy"
msgstr "HTTP-Outproxy"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1158
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1167
msgid ""
"Click a link below to look for an address helper by using a \"jump\" service:"
msgstr ""
@ -96,49 +96,54 @@ msgstr ""
"Adresshelfer von einem \"Sprung\"-Service:"
#. Translators: parameter is a host name
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1194
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1203
#, java-format
msgid "{0} jump service"
msgstr "Weiterleitungsdienst {0}"
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:159
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:163
#, fuzzy, java-format
msgid "Added via address helper from {0}"
msgstr "Durch Adresshelfer hinzugefügt"
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:165
msgid "Added via address helper"
msgstr "Durch Adresshelfer hinzugefügt"
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:183
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:190
#, java-format
msgid "Redirecting to {0}"
msgstr "Weiterleitung zu {0}"
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:189
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:196
msgid "Router Console"
msgstr "Routerkonsole"
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:190
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:197
msgid "Addressbook"
msgstr "Adressbuch"
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:190
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:197
msgid "Configuration"
msgstr "Einstellungen"
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:190
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:197
msgid "Help"
msgstr "Hilfe"
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:195
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:202
#, java-format
msgid "Saved {0} to the {1} addressbook, redirecting now."
msgstr ""
"{0} wurde ins {1} Adressbuch geschrieben. Du wirst nun weitergeleitet."
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:196
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:203
#, java-format
msgid "Failed to save {0} to the {1} addressbook, redirecting now."
msgstr ""
"Konnte {0} nicht im {1} Adressbuch speichern. Du wirst nun weitergeleitet."
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:198
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:205
msgid "Click here if you are not redirected automatically."
msgstr "Klick hier, wenn du nicht automatisch weitergeleitet wirst!"
@ -150,6 +155,8 @@ msgstr "intern"
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:119
msgid "Tunnels are not initialized yet, please reload in two minutes."
msgstr ""
"Tunnel sind noch nicht initialisiert. Bitte aktualisiere die Seite in zwei "
"Minuten."
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:192
msgid ""
@ -164,6 +171,8 @@ msgid ""
"If the problem persists, verify that you have cookies enabled in your "
"browser."
msgstr ""
"Falls dieses Problem weiterhin besteht: Stellen Sie sicher, dass in Ihrem "
"Browser Cookies aktiviert sind."
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:240
msgid "Configuration reloaded for all tunnels"
@ -200,11 +209,11 @@ msgstr "Port nicht gesetzt"
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:485
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:611
msgid "Invalid port"
msgstr "Ungültiger Port"
msgstr "ungültiger Port"
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:488
msgid "Warning - ports less than 1024 are not recommended"
msgstr "Warnung - Ports unter 1024 sind nicht empfehlenswert"
msgstr "Warnung - Ports unter 1024 werden nicht empfohlen"
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:504
msgid "Standard client"
@ -261,7 +270,7 @@ msgstr "Host nicht gesetzt"
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:605
msgid "Invalid address"
msgstr "Ungültige Adresse"
msgstr "ungültige Adresse"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:82
msgid "I2P Tunnel Manager - Edit Client Tunnel"
@ -1346,6 +1355,3 @@ msgstr "Abschließen"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:724
msgid "Next"
msgstr "Nächstes"
#~ msgid "Reload Config"
#~ msgstr "Konfiguration neu einlesen"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: I2P i2ptunnel\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-11-02 19:51+0000\n"
"POT-Creation-Date: 2012-12-21 22:40+0000\n"
"PO-Revision-Date: 2010-06-15 14:09+0100\n"
"Last-Translator: duck <duck@mail.i2p>\n"
"Language-Team: duck <duck@mail.i2p>\n"
@ -18,15 +18,15 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:553
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:554
msgid "This seems to be a bad destination:"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:553
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:554
msgid "i2paddresshelper cannot help you with a destination like that!"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:620
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:621
#, java-format
msgid ""
"To visit the destination in your host database, click <a href=\"{0}\">here</"
@ -34,7 +34,7 @@ msgid ""
"\"{1}\">here</a>."
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1020
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1025
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:409
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:159
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:413
@ -42,87 +42,92 @@ msgstr ""
msgid "Host"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1024
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1029
msgid "Base 32"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1028
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1033
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:377
msgid "Destination"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1034
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1039
#, java-format
msgid "Continue to {0} without saving"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1039
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1044
#, java-format
msgid "Save {0} to router address book and continue to eepsite"
msgstr ""
#. only blockfile supports multiple books
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1042
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1047
#, java-format
msgid "Save {0} to master address book and continue to eepsite"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1043
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1048
#, java-format
msgid "Save {0} to private address book and continue to eepsite"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1153
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1162
msgid "HTTP Outproxy"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1158
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1167
msgid ""
"Click a link below to look for an address helper by using a \"jump\" service:"
msgstr ""
#. Translators: parameter is a host name
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1194
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1203
#, java-format
msgid "{0} jump service"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:159
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:163
#, java-format
msgid "Added via address helper from {0}"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:165
msgid "Added via address helper"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:183
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:190
#, java-format
msgid "Redirecting to {0}"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:189
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:196
msgid "Router Console"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:190
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:197
msgid "Addressbook"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:190
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:197
msgid "Configuration"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:190
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:197
msgid "Help"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:195
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:202
#, java-format
msgid "Saved {0} to the {1} addressbook, redirecting now."
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:196
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:203
#, java-format
msgid "Failed to save {0} to the {1} addressbook, redirecting now."
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:198
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:205
msgid "Click here if you are not redirected automatically."
msgstr ""

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

10
apps/jetty/.classpath Normal file
View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="java/src"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry combineaccessrules="false" kind="src" path="/i2p_sdk"/>
<classpathentry kind="lib" path="jettylib/javax.servlet.jar"/>
<classpathentry kind="lib" path="jettylib/jetty-util.jar"/>
<classpathentry kind="lib" path="jettylib/org.mortbay.jetty.jar"/>
<classpathentry kind="output" path="build/obj"/>
</classpath>

17
apps/jetty/.project Normal file
View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>jetty</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>

View File

@ -1,5 +1,5 @@
Apache Tomcat
Copyright 1999-2011 The Apache Software Foundation
Copyright 1999-2012 The Apache Software Foundation
This product includes software developed by
The Apache Software Foundation (http://www.apache.org/).

View File

@ -2,7 +2,7 @@ This is Apache Tomcat 6.x, supporting Servlet 2.5 and JSP 2.1.
The Glassfish JSP 2.1 bundled in Jetty 6 is way too old.
Retrieved from the file
apache-tomcat-6.0.35-deployer.tar.gz
apache-tomcat-6.0.36-deployer.tar.gz
minus the following files and directores:

4
apps/jrobin/.classpath Normal file
View File

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="output" path="build"/>
</classpath>

17
apps/jrobin/.project Normal file
View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>jrobin</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="src" path="test/junit"/>
<classpathentry combineaccessrules="false" kind="src" path="/i2p_sdk"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="output" path="build/obj"/>
</classpath>

View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>ministreaming</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>

View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry combineaccessrules="false" kind="src" path="/i2p_router"/>
<classpathentry combineaccessrules="false" kind="src" path="/i2p_sdk"/>
<classpathentry combineaccessrules="false" kind="src" path="/desktopgui"/>
<classpathentry combineaccessrules="false" kind="src" path="/systray"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="lib" path="/lib/wrapper/all/wrapper.jar"/>
<classpathentry kind="lib" path="/jrobin/jrobin-1.5.9.1.jar"/>
<classpathentry kind="lib" path="/jetty/jettylib/javax.servlet.jar"/>
<classpathentry kind="lib" path="/jetty/jettylib/jetty-java5-threadpool.jar"/>
<classpathentry kind="lib" path="/jetty/jettylib/jetty-sslengine.jar"/>
<classpathentry kind="lib" path="/jetty/jettylib/jetty-util.jar"/>
<classpathentry kind="lib" path="/jetty/jettylib/org.mortbay.jetty.jar"/>
<classpathentry kind="output" path="build/obj"/>
</classpath>

View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>routerconsole</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>

View File

@ -8,6 +8,9 @@
<target name="prepare">
<!-- run from top level build.xml to get dependencies built -->
</target>
<condition property="no.bundle">
<isfalse value="${require.gettext}" />
</condition>
<condition property="depend.available">
<typefound name="depend" />
</condition>
@ -117,7 +120,7 @@
</target>
<!-- this is tricky because the message classes go in the jar, not in the war -->
<target name="bundle" depends="jar1, precompilejsp" >
<target name="bundle" depends="jar1, precompilejsp" unless="no.bundle">
<!-- Update the messages_*.po files.
We need to supply the bat file for windows, and then change the fail property to true -->
<exec executable="sh" osfamily="unix" failifexecutionfails="true" failonerror="${require.gettext}" >

View File

@ -1,3 +1,4 @@
#!/bin/sh
#
# Update messages_xx.po and messages_xx.class files,
# from both java and jsp sources.

View File

@ -558,6 +558,11 @@ public class ConsoleUpdateManager implements UpdateManager {
* Call once for each type/method pair.
*/
public void register(Updater updater, UpdateType type, UpdateMethod method, int priority) {
if ((type == ROUTER_SIGNED || type == ROUTER_UNSIGNED) && NewsHelper.dontInstall(_context)) {
if (_log.shouldLog(Log.WARN))
_log.warn("Ignoring registration for " + type + ", router updates disabled");
return;
}
// DEBUG slow start for snark updates
// For 0.9.4 update, only for dev builds
// For 0.9.5 update, only for dev builds and 1% more

View File

@ -64,14 +64,6 @@ class NewsFetcher extends UpdateRunner {
return NewsHelper.dontInstall(_context);
}
private boolean shouldInstall() {
String policy = _context.getProperty(ConfigUpdateHandler.PROP_UPDATE_POLICY);
if ("notify".equals(policy) || dontInstall())
return false;
File zip = new File(_context.getRouterDir(), Router.UPDATE_FILE);
return !zip.exists();
}
@Override
public void run() {
_isRunning = true;
@ -133,6 +125,11 @@ class NewsFetcher extends UpdateRunner {
* TODO: Check minVersion, use backup URLs specified
*/
void checkForUpdates() {
// For now, don't even tell the manager about new versions if we can't install.
// If we do want the manager to know, we must hide the buttons in
// SummaryHelper.getUpdateStatus().
if (dontInstall())
return;
FileInputStream in = null;
try {
in = new FileInputStream(_newsFile);

View File

@ -2,6 +2,7 @@ package net.i2p.router.update;
import java.io.File;
import java.io.IOException;
import java.lang.IllegalArgumentException;
import java.net.URI;
import java.util.List;
import java.util.Map;
@ -37,6 +38,8 @@ import net.i2p.util.VersionComparator;
* then fetch the first 56 bytes of the URL, extract the version,
* and compare.
*
* uri list must not be empty.
*
* Moved from web/ and turned into an UpdateTask.
*
* @since 0.9.4 moved from PluginUpdateHandler
@ -58,7 +61,7 @@ class PluginUpdateRunner extends UpdateRunner {
String appName, String oldVersion ) {
super(ctx, mgr, uris);
if (uris.isEmpty())
_uri = null;
throw new IllegalArgumentException("uri cannot be empty");
else
_uri = uris.get(0);
_xpi2pURL = _uri.toString();

View File

@ -85,6 +85,7 @@ public class ConfigClientsHelper extends HelperBase {
}
}
/** clients */
public String getForm1() {
StringBuilder buf = new StringBuilder(1024);
buf.append("<table>\n");
@ -112,6 +113,7 @@ public class ConfigClientsHelper extends HelperBase {
return buf.toString();
}
/** webapps */
public String getForm2() {
StringBuilder buf = new StringBuilder(1024);
buf.append("<table>\n");
@ -136,6 +138,7 @@ public class ConfigClientsHelper extends HelperBase {
return PluginStarter.pluginsEnabled(_context);
}
/** plugins */
public String getForm3() {
StringBuilder buf = new StringBuilder(1024);
buf.append("<table>\n");
@ -218,7 +221,11 @@ public class ConfigClientsHelper extends HelperBase {
return buf.toString();
}
/** ro trumps edit and showEditButton */
/**
* Misnamed, renders a single line in a table for a single client/webapp/plugin.
*
* ro trumps edit and showEditButton
*/
private void renderForm(StringBuilder buf, String index, String name, boolean urlify,
boolean enabled, boolean ro, String desc, boolean edit,
boolean showEditButton, boolean showUpdateButton, boolean showStopButton,

View File

@ -172,6 +172,7 @@ public class ConsolePasswordManager extends RouterPasswordManager {
return _context.router().saveConfig(toAdd, toDel);
}
/****
public static void main(String args[]) {
RouterContext ctx = (new Router()).getContext();
ConsolePasswordManager pm = new ConsolePasswordManager(ctx);
@ -210,4 +211,5 @@ public class ConsolePasswordManager extends RouterPasswordManager {
if (!pm.checkHash("type5", "user5", "pw5"))
System.out.println("Fail 11");
}
****/
}

View File

@ -12,9 +12,12 @@ import java.util.List;
import net.i2p.data.DataHelper;
import net.i2p.router.Job;
import net.i2p.router.JobStats;
import net.i2p.util.ObjectCounter;
public class JobQueueHelper extends HelperBase {
private static final int MAX_JOBS = 50;
public String getJobQueueSummary() {
try {
if (_out != null) {
@ -44,7 +47,7 @@ public class JobQueueHelper extends HelperBase {
int numRunners = _context.jobQueue().getJobs(readyJobs, timedJobs, activeJobs, justFinishedJobs);
StringBuilder buf = new StringBuilder(32*1024);
buf.append("<b><div class=\"joblog\"><h3>I2P Job Queue</h3><div class=\"wideload\">Job runners: ").append(numRunners);
buf.append("<b><div class=\"joblog\"><h3>I2P Job Queue</h3><br><div class=\"wideload\">Job runners: ").append(numRunners);
buf.append("</b><br>\n");
long now = _context.clock().now();
@ -56,6 +59,7 @@ public class JobQueueHelper extends HelperBase {
buf.append(j.toString()).append("</li>\n");
}
buf.append("</ol>\n");
buf.append("<hr><b>Just finished jobs: ").append(justFinishedJobs.size()).append("</b><ol>\n");
for (int i = 0; i < justFinishedJobs.size(); i++) {
Job j = justFinishedJobs.get(i);
@ -63,20 +67,32 @@ public class JobQueueHelper extends HelperBase {
buf.append(j.toString()).append("</li>\n");
}
buf.append("</ol>\n");
buf.append("<hr><b>Ready/waiting jobs: ").append(readyJobs.size()).append("</b><ol>\n");
ObjectCounter<String> counter = new ObjectCounter();
for (int i = 0; i < readyJobs.size(); i++) {
Job j = readyJobs.get(i);
counter.increment(j.getName());
if (i >= MAX_JOBS)
continue;
buf.append("<li>[waiting ");
buf.append(DataHelper.formatDuration2(now-j.getTiming().getStartAfter()));
buf.append("]: ");
buf.append(j.toString()).append("</li>\n");
}
buf.append("</ol>\n");
out.flush();
getJobCounts(buf, counter);
out.write(buf.toString());
buf.setLength(0);
buf.append("<hr><b>Scheduled jobs: ").append(timedJobs.size()).append("</b><ol>\n");
long prev = Long.MIN_VALUE;
for (Job j : timedJobs) {
counter.clear();
for (int i = 0; i < timedJobs.size(); i++) {
Job j = timedJobs.get(i);
counter.increment(j.getName());
if (i >= MAX_JOBS)
continue;
long time = j.getTiming().getStartAfter() - now;
buf.append("<li>").append(j.getName()).append(" in ");
buf.append(DataHelper.formatDuration2(time));
@ -88,14 +104,29 @@ public class JobQueueHelper extends HelperBase {
buf.append("</li>\n");
}
buf.append("</ol></div>\n");
out.flush();
getJobStats(buf);
out.flush();
getJobCounts(buf, counter);
out.write(buf.toString());
buf.setLength(0);
buf.append("<hr><b>Total Job Stats</b>\n");
getJobStats(buf);
out.write(buf.toString());
}
/** @since 0.9.5 */
private static void getJobCounts(StringBuilder buf, ObjectCounter<String> counter) {
List<String> names = new ArrayList(counter.objects());
if (names.size() < 4)
return;
buf.append("<table style=\"width: 30%; margin-left: 100px;\">\n" +
"<tr><th>Job</th><th>Queued<th>");
Collections.sort(names, new JobCountComparator(counter));
for (String name : names) {
buf.append("<tr><td>").append(name)
.append("</td><td>").append(counter.count(name))
.append("</td></tr>\n");
}
buf.append("</table>\n");
}
/**
@ -175,4 +206,23 @@ public class JobQueueHelper extends HelperBase {
}
}
/** @since 0.9.5 */
private static class JobCountComparator implements Comparator<String> {
private final ObjectCounter<String> _counter;
public JobCountComparator(ObjectCounter<String> counter) {
_counter = counter;
}
public int compare(String l, String r) {
// reverse
int lc = _counter.count(l);
int rc = _counter.count(r);
if (lc > rc)
return -1;
if (lc < rc)
return 1;
return l.compareTo(r);
}
}
}

View File

@ -230,10 +230,12 @@ public class NewsHelper extends ContentHelper {
* @since 0.9.4 moved from NewsFetcher
*/
public static boolean dontInstall(RouterContext ctx) {
boolean disabled = ctx.getBooleanProperty(ConfigUpdateHandler.PROP_UPDATE_DISABLED);
if (disabled)
return true;
File test = new File(ctx.getBaseDir(), "history.txt");
boolean readonly = ((test.exists() && !test.canWrite()) || (!ctx.getBaseDir().canWrite()));
boolean disabled = ctx.getBooleanProperty(ConfigUpdateHandler.PROP_UPDATE_DISABLED);
return readonly || disabled;
return readonly;
}
/**

View File

@ -16,6 +16,7 @@ import net.i2p.router.peermanager.DBHistory;
import net.i2p.router.peermanager.PeerProfile;
import net.i2p.router.peermanager.ProfileOrganizer;
import net.i2p.stat.Rate;
import net.i2p.stat.RateAverages;
import net.i2p.stat.RateStat;
/**
@ -171,11 +172,12 @@ class ProfileOrganizerRenderer {
if (_context.banlist().isBanlisted(peer)) buf.append(_("Banned"));
if (prof.getIsFailing()) buf.append(' ').append(_("Failing"));
if (_context.commSystem().wasUnreachable(peer)) buf.append(' ').append(_("Unreachable"));
RateAverages ra = RateAverages.getTemp();
Rate failed = prof.getTunnelHistory().getFailedRate().getRate(30*60*1000);
long fails = failed.getCurrentEventCount() + failed.getLastEventCount();
long fails = failed.computeAverages(ra, false).getTotalEventCount();
if (fails > 0) {
Rate accepted = prof.getTunnelCreateResponseTime().getRate(30*60*1000);
long total = fails + accepted.getCurrentEventCount() + accepted.getLastEventCount();
long total = fails + accepted.computeAverages(ra, false).getTotalEventCount();
if (total / fails <= 10) // hide if < 10%
buf.append(' ').append(fails).append('/').append(total).append(' ').append(_("Test Fails"));
}
@ -218,6 +220,7 @@ class ProfileOrganizerRenderer {
buf.append("<th class=\"smallhead\">").append(_("1h Fail Rate")).append("</th>");
buf.append("<th class=\"smallhead\">").append(_("1d Fail Rate")).append("</th>");
buf.append("</tr>");
RateAverages ra = RateAverages.getTemp();
for (Iterator<PeerProfile> iter = integratedPeers.iterator(); iter.hasNext();) {
PeerProfile prof = iter.next();
Hash peer = prof.getPeer();
@ -240,9 +243,9 @@ class ProfileOrganizerRenderer {
buf.append("<td align=\"right\">").append(DataHelper.formatDuration2(time)).append("</td>");
time = now - prof.getLastSendFailed();
buf.append("<td align=\"right\">").append(DataHelper.formatDuration2(time)).append("</td>");
buf.append("<td align=\"right\">").append(avg(prof, 10*60*1000l)).append("</td>");
buf.append("<td align=\"right\">").append(avg(prof, 60*60*1000l)).append("</td>");
buf.append("<td align=\"right\">").append(avg(prof, 24*60*60*1000l)).append("</td>");
buf.append("<td align=\"right\">").append(avg(prof, 10*60*1000l, ra)).append("</td>");
buf.append("<td align=\"right\">").append(avg(prof, 60*60*1000l, ra)).append("</td>");
buf.append("<td align=\"right\">").append(avg(prof, 24*60*60*1000l, ra)).append("</td>");
DBHistory dbh = prof.getDBHistory();
if (dbh != null) {
time = now - dbh.getLastLookupSuccessful();
@ -253,8 +256,8 @@ class ProfileOrganizerRenderer {
buf.append("<td align=\"right\">").append(DataHelper.formatDuration2(time)).append("</td>");
time = now - dbh.getLastStoreFailed();
buf.append("<td align=\"right\">").append(DataHelper.formatDuration2(time)).append("</td>");
buf.append("<td align=\"right\">").append(davg(dbh, 60*60*1000l)).append("</td>");
buf.append("<td align=\"right\">").append(davg(dbh, 24*60*60*1000l)).append("</td>");
buf.append("<td align=\"right\">").append(davg(dbh, 60*60*1000l, ra)).append("</td>");
buf.append("<td align=\"right\">").append(davg(dbh, 24*60*60*1000l, ra)).append("</td>");
} else {
for (int i = 0; i < 6; i++)
buf.append("<td align=\"right\">").append(_(NA));
@ -340,31 +343,30 @@ class ProfileOrganizerRenderer {
private final static String num(double num) { synchronized (_fmt) { return _fmt.format(num); } }
private final static String NA = HelperBase._x("n/a");
private String avg (PeerProfile prof, long rate) {
private String avg (PeerProfile prof, long rate, RateAverages ra) {
RateStat rs = prof.getDbResponseTime();
if (rs == null)
return _(NA);
Rate r = rs.getRate(rate);
if (r == null)
return _(NA);
long c = r.getCurrentEventCount() + r.getLastEventCount();
if (c == 0)
r.computeAverages(ra, false);
if (ra.getTotalEventCount() == 0)
return _(NA);
double d = r.getCurrentTotalValue() + r.getLastTotalValue();
return DataHelper.formatDuration2(Math.round(d/c));
return DataHelper.formatDuration2(Math.round(ra.getAverage()));
}
private String davg (DBHistory dbh, long rate) {
private String davg (DBHistory dbh, long rate, RateAverages ra) {
RateStat rs = dbh.getFailedLookupRate();
if (rs == null)
return "0%";
Rate r = rs.getRate(rate);
if (r == null)
return "0%";
long c = r.getCurrentEventCount() + r.getLastEventCount();
if (c <= 0)
r.computeAverages(ra, false);
if (ra.getTotalEventCount() <= 0)
return "0%";
double avg = 0.5 + 100 * (r.getCurrentTotalValue() + r.getLastTotalValue()) / c;
double avg = 0.5 + 100 * ra.getAverage();
return ((int) avg) + "%";
}

View File

@ -55,7 +55,7 @@ public class StatSummarizer implements Runnable {
private Thread _thread;
public StatSummarizer() {
_context = RouterContext.listContexts().get(0); // fuck it, only summarize one per jvm
_context = RouterContext.listContexts().get(0); // only summarize one per jvm
_log = _context.logManager().getLog(getClass());
_listeners = new CopyOnWriteArrayList();
_instance = this;

View File

@ -852,29 +852,29 @@ public class SummaryHelper extends HelperBase {
.append(i)
.append("\">");
if (i > 0) {
buf.append("<input type=\"image\" class=\"buttonTop\" name=\"move_")
buf.append("<button type=\"submit\" class=\"buttonTop\" name=\"action\" value=\"move_")
.append(i)
.append("_top\" alt=\"")
.append("_top\"><img alt=\"")
.append(_("Top"))
.append("\" src=\"" + imgPath + "move_top.png\">");
buf.append("<input type=\"image\" class=\"buttonUp\" name=\"move_")
.append("\" src=\"" + imgPath + "move_top.png\" /></button>");
buf.append("<button type=\"submit\" class=\"buttonUp\" name=\"action\" value=\"move_")
.append(i)
.append("_up\" alt=\"")
.append("_up\"><img alt=\"")
.append(_("Up"))
.append("\" src=\"" + imgPath + "move_up.png\">");
.append("\" src=\"" + imgPath + "move_up.png\" /></button>");
}
buf.append("</td><td align=\"left\">");
if (i < sections.size() - 1) {
buf.append("<input type=\"image\" class=\"buttonDown\" name=\"move_")
buf.append("<button type=\"submit\" class=\"buttonDown\" name=\"action\" value=\"move_")
.append(i)
.append("_down\" alt=\"")
.append("_down\"><img alt=\"")
.append(_("Down"))
.append("\" src=\"" + imgPath + "move_down.png\">");
buf.append("<input type=\"image\" class=\"buttonBottom\" name=\"move_")
.append("\" src=\"" + imgPath + "move_down.png\" /></button>");
buf.append("<button type=\"submit\" class=\"buttonBottom\" name=\"action\" value=\"move_")
.append(i)
.append("_bottom\" alt=\"")
.append("_bottom\"><img alt=\"")
.append(_("Bottom"))
.append("\" src=\"" + imgPath + "move_bottom.png\">");
.append("\" src=\"" + imgPath + "move_bottom.png\" /></button>");
}
buf.append("</td></tr>\n");
}

File diff suppressed because it is too large Load Diff

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: I2P routerconsole\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-11-02 19:51+0000\n"
"POT-Creation-Date: 2012-12-21 22:40+0000\n"
"PO-Revision-Date: 2010-06-15 14:09+0100\n"
"Last-Translator: duck <duck@mail.i2p>\n"
"Language-Team: duck <duck@mail.i2p>\n"
@ -61,7 +61,7 @@ msgstr[0] ""
msgstr[1] ""
#: ../../../core/java/src/net/i2p/data/DataHelper.java:1438
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:341
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:344
msgid "n/a"
msgstr ""
@ -120,85 +120,85 @@ msgstr ""
#. else
#: ../../../router/java/src/net/i2p/router/RouterThrottleImpl.java:73
#: ../../../router/java/src/net/i2p/router/RouterThrottleImpl.java:115
#: ../../../router/java/src/net/i2p/router/RouterThrottleImpl.java:519
#: ../../../router/java/src/net/i2p/router/RouterThrottleImpl.java:492
msgid "Rejecting tunnels: Starting up"
msgstr ""
#: ../../../router/java/src/net/i2p/router/RouterThrottleImpl.java:170
#: ../../../router/java/src/net/i2p/router/RouterThrottleImpl.java:154
msgid "Rejecting tunnels: High message delay"
msgstr ""
#. hard to do {0} from here
#. setTunnelStatus("Rejecting " + (100 - (int) probAccept*100) + "% of tunnels: High number of requests");
#: ../../../router/java/src/net/i2p/router/RouterThrottleImpl.java:209
#: ../../../router/java/src/net/i2p/router/RouterThrottleImpl.java:191
msgid "Rejecting most tunnels: High number of requests"
msgstr ""
#: ../../../router/java/src/net/i2p/router/RouterThrottleImpl.java:264
#: ../../../router/java/src/net/i2p/router/RouterThrottleImpl.java:242
msgid "Rejecting tunnels: Limit reached"
msgstr ""
#. .067KBps
#. * also limited to 90% - see below
#. always leave at least 4KBps free when allowing
#: ../../../router/java/src/net/i2p/router/RouterThrottleImpl.java:332
#: ../../../router/java/src/net/i2p/router/RouterThrottleImpl.java:305
msgid "Rejecting tunnels: Bandwidth limit"
msgstr ""
#. hard to do {0} from here
#. setTunnelStatus("Rejecting " + ((int)(100.0*probReject)) + "% of tunnels: Bandwidth limit");
#: ../../../router/java/src/net/i2p/router/RouterThrottleImpl.java:402
#: ../../../router/java/src/net/i2p/router/RouterThrottleImpl.java:375
msgid "Rejecting most tunnels: Bandwidth limit"
msgstr ""
#. hard to do {0} from here
#. setTunnelStatus("Accepting " + (100-(int)(100.0*probReject)) + "% of tunnels");
#: ../../../router/java/src/net/i2p/router/RouterThrottleImpl.java:406
#: ../../../router/java/src/net/i2p/router/RouterThrottleImpl.java:379
msgid "Accepting most tunnels"
msgstr ""
#: ../../../router/java/src/net/i2p/router/RouterThrottleImpl.java:408
#: ../../../router/java/src/net/i2p/router/RouterThrottleImpl.java:381
msgid "Accepting tunnels"
msgstr ""
#: ../../../router/java/src/net/i2p/router/RouterThrottleImpl.java:524
#: ../../../router/java/src/net/i2p/router/RouterThrottleImpl.java:497
msgid "Rejecting tunnels: Shutting down"
msgstr ""
#: ../../../router/java/src/net/i2p/router/RouterThrottleImpl.java:529
#: ../../../router/java/src/net/i2p/router/RouterThrottleImpl.java:502
msgid "Rejecting tunnels"
msgstr ""
#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:155
#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:152
#: ../java/src/net/i2p/router/web/ConfigNavHelper.java:22
msgid "Reseeding"
msgstr ""
#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:167
#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:164
#, java-format
msgid "Reseed fetched only 1 router."
msgid_plural "Reseed fetched only {0} routers."
msgstr[0] ""
msgstr[1] ""
#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:174
#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:171
msgid "Reseed failed."
msgstr ""
#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:175
#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:172
#, java-format
msgid "See {0} for help."
msgstr ""
#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:176
#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:173
msgid "reseed configuration page"
msgstr ""
#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:317
#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:318
msgid "Reseeding: fetching seed URL."
msgstr ""
#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:375
#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:376
#, java-format
msgid ""
"Reseeding: fetching router info from seed URL ({0} successful, {1} errors)."
@ -231,7 +231,7 @@ msgstr ""
msgid "Known fast peers"
msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/CommSystemFacadeImpl.java:539
#: ../../../router/java/src/net/i2p/router/transport/CommSystemFacadeImpl.java:540
msgid "NetDb entry"
msgstr ""
@ -272,7 +272,7 @@ msgid ""
msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:528
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:279
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:282
msgid "Definitions"
msgstr ""
@ -282,8 +282,8 @@ msgstr ""
#: ../java/src/net/i2p/router/web/ConfigPeerHandler.java:24
#: ../java/src/net/i2p/router/web/ConfigPeerHandler.java:33
#: ../java/src/net/i2p/router/web/ConfigPeerHandler.java:35
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:91
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:204
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:92
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:206
msgid "Peer"
msgstr ""
@ -341,7 +341,7 @@ msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:540
#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:756
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2191
#: ../java/src/net/i2p/router/web/SummaryHelper.java:857
#: ../java/src/net/i2p/router/web/SummaryHelper.java:863
msgid "Up"
msgstr ""
@ -443,7 +443,7 @@ msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:461
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:471
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:476
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:96
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:97
msgid "Status"
msgstr ""
@ -686,7 +686,7 @@ msgstr ""
#. 1
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2261
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:171
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:172
#: ../java/src/net/i2p/router/web/ProfilesHelper.java:13
msgid "Banned"
msgstr ""
@ -700,29 +700,29 @@ msgstr ""
msgid "SUMMARY"
msgstr ""
#: ../../../router/java/src/net/i2p/router/tunnel/pool/BuildHandler.java:191
#: ../../../router/java/src/net/i2p/router/tunnel/pool/BuildHandler.java:193
msgid "Dropping tunnel requests: Too slow"
msgstr ""
#. don't even bother, since we are so overloaded locally
#: ../../../router/java/src/net/i2p/router/tunnel/pool/BuildHandler.java:334
#: ../../../router/java/src/net/i2p/router/tunnel/pool/BuildHandler.java:336
msgid "Dropping tunnel requests: Overloaded"
msgstr ""
#: ../../../router/java/src/net/i2p/router/tunnel/pool/BuildHandler.java:543
#: ../../../router/java/src/net/i2p/router/tunnel/pool/BuildHandler.java:545
msgid "Rejecting tunnels: Request overload"
msgstr ""
#: ../../../router/java/src/net/i2p/router/tunnel/pool/BuildHandler.java:574
#: ../../../router/java/src/net/i2p/router/tunnel/pool/BuildHandler.java:576
msgid "Rejecting tunnels: Connection limit"
msgstr ""
#: ../../../router/java/src/net/i2p/router/tunnel/pool/BuildHandler.java:778
#: ../../../router/java/src/net/i2p/router/tunnel/pool/BuildHandler.java:799
#: ../../../router/java/src/net/i2p/router/tunnel/pool/BuildHandler.java:780
#: ../../../router/java/src/net/i2p/router/tunnel/pool/BuildHandler.java:801
msgid "Dropping tunnel requests: High load"
msgstr ""
#: ../../../router/java/src/net/i2p/router/tunnel/pool/BuildHandler.java:878
#: ../../../router/java/src/net/i2p/router/tunnel/pool/BuildHandler.java:880
msgid "Dropping tunnel requests: Queue time"
msgstr ""
@ -1969,7 +1969,7 @@ msgstr ""
msgid "unban now"
msgstr ""
#: ../java/src/net/i2p/router/web/CSSHelper.java:118
#: ../java/src/net/i2p/router/web/CSSHelper.java:128
#: ../java/src/net/i2p/router/web/HomeHelper.java:33
#: ../java/strings/Strings.java:29
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:204
@ -2002,9 +2002,9 @@ msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configui_jsp.java:206
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:204
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:206
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/console_jsp.java:209
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/console_jsp.java:211
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/console_jsp.java:310
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/console_jsp.java:205
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/console_jsp.java:207
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/console_jsp.java:306
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/debug_jsp.java:207
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/debug_jsp.java:209
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/dns_jsp.java:220
@ -2026,9 +2026,9 @@ msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_005fru_jsp.java:209
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:207
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/help_jsp.java:209
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/home_jsp.java:195
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/home_jsp.java:197
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/home_jsp.java:284
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/home_jsp.java:191
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/home_jsp.java:193
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/home_jsp.java:280
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/i2ptunnelmgr_jsp.java:221
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/i2ptunnelmgr_jsp.java:223
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/jars_jsp.java:209
@ -2135,7 +2135,7 @@ msgstr ""
#. label (IE)
#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:149
#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:252
#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:259
msgid "Start"
msgstr ""
@ -2177,7 +2177,7 @@ msgstr ""
#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:231
#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:242
#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:253
#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:91
#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:92
#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:508
#: ../java/src/net/i2p/router/web/SummaryHelper.java:428
msgid "Client"
@ -2205,7 +2205,7 @@ msgid "Plugin configuration saved."
msgstr ""
#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:299
#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:118
#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:120
msgid "WebApp"
msgstr ""
@ -2266,7 +2266,7 @@ msgid "Interface configuration saved"
msgstr ""
#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:74
#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:255
#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:262
msgid "Edit"
msgstr ""
@ -2275,103 +2275,103 @@ msgstr ""
msgid "Add Client"
msgstr ""
#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:91
#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:92
msgid "Class and arguments"
msgstr ""
#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:91
#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:118
#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:142
#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:92
#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:120
#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:145
msgid "Control"
msgstr ""
#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:91
#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:118
#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:142
#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:92
#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:120
#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:145
msgid "Run at Startup?"
msgstr ""
#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:118
#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:142
#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:191
#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:120
#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:145
#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:194
msgid "Description"
msgstr ""
#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:142
#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:145
msgid "Plugin"
msgstr ""
#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:155
#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:158
#: ../java/src/net/i2p/router/web/NetDbRenderer.java:290
#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:293
#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:319
msgid "Version"
msgstr ""
#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:157
#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:160
msgid "Signed by"
msgstr ""
#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:174
#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:177
msgid "Date"
msgstr ""
#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:180
#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:183
msgid "Author"
msgstr ""
#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:196
#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:199
msgid "License"
msgstr ""
#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:201
#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:204
#: ../java/src/net/i2p/router/web/HomeHelper.java:35
#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:174
msgid "Website"
msgstr ""
#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:206
#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:209
msgid "Update link"
msgstr ""
#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:257
#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:264
msgid "Stop"
msgstr ""
#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:259
#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:266
#: ../java/src/net/i2p/router/web/ConfigUpdateHandler.java:98
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:420
msgid "Check for updates"
msgstr ""
#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:260
#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:267
#: ../java/src/net/i2p/router/web/ConfigNavHelper.java:20
msgid "Update"
msgstr ""
#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:265
#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:272
#, java-format
msgid "Are you sure you want to delete {0}?"
msgstr ""
#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:267
#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:274
msgid "Delete"
msgstr ""
#: ../java/src/net/i2p/router/web/ConfigHomeHandler.java:21
#: ../java/src/net/i2p/router/web/ConfigSummaryHandler.java:23
#: ../java/src/net/i2p/router/web/ConfigUIHandler.java:18
#: ../java/src/net/i2p/router/web/SummaryHelper.java:877
#: ../java/src/net/i2p/router/web/SummaryHelper.java:883
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confighome_jsp.java:452
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confighome_jsp.java:472
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confighome_jsp.java:488
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configui_jsp.java:438
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configui_jsp.java:429
msgid "Delete selected"
msgstr ""
#: ../java/src/net/i2p/router/web/ConfigHomeHandler.java:22
#: ../java/src/net/i2p/router/web/ConfigSummaryHandler.java:24
#: ../java/src/net/i2p/router/web/SummaryHelper.java:896
#: ../java/src/net/i2p/router/web/SummaryHelper.java:902
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confighome_jsp.java:450
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confighome_jsp.java:458
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confighome_jsp.java:470
@ -2519,7 +2519,7 @@ msgstr ""
#: ../java/src/net/i2p/router/web/ConfigLoggingHelper.java:88
#: ../java/src/net/i2p/router/web/ConfigUIHelper.java:104
#: ../java/src/net/i2p/router/web/HomeHelper.java:192
#: ../java/src/net/i2p/router/web/SummaryHelper.java:831
#: ../java/src/net/i2p/router/web/SummaryHelper.java:837
msgid "Remove"
msgstr ""
@ -2558,7 +2558,7 @@ msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configtunnels_jsp.java:305
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configui_jsp.java:279
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:279
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/console_jsp.java:284
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/console_jsp.java:280
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/debug_jsp.java:282
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/dns_jsp.java:295
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/error_jsp.java:289
@ -2824,7 +2824,7 @@ msgid "Configuration saved successfully."
msgstr ""
#. Normal browsers send value, IE sends button label
#: ../java/src/net/i2p/router/web/ConfigRestartBean.java:34
#: ../java/src/net/i2p/router/web/ConfigRestartBean.java:33
#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:176
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:429
msgid "Shutdown immediately"
@ -2832,43 +2832,43 @@ msgstr ""
#. ctx.router().shutdown(Router.EXIT_HARD); // never returns
#. give the UI time to respond
#: ../java/src/net/i2p/router/web/ConfigRestartBean.java:39
#: ../java/src/net/i2p/router/web/ConfigRestartBean.java:38
msgid "Cancel shutdown"
msgstr ""
#: ../java/src/net/i2p/router/web/ConfigRestartBean.java:40
#: ../java/src/net/i2p/router/web/ConfigRestartBean.java:39
msgid "Cancel restart"
msgstr ""
#: ../java/src/net/i2p/router/web/ConfigRestartBean.java:42
#: ../java/src/net/i2p/router/web/ConfigRestartBean.java:41
msgid "Restart immediately"
msgstr ""
#. ctx.router().shutdown(Router.EXIT_HARD_RESTART); // never returns
#. give the UI time to respond
#: ../java/src/net/i2p/router/web/ConfigRestartBean.java:47
#: ../java/src/net/i2p/router/web/ConfigRestartBean.java:46
#: ../java/src/net/i2p/router/web/SummaryRenderer.java:163
msgid "Restart"
msgstr ""
#: ../java/src/net/i2p/router/web/ConfigRestartBean.java:51
#: ../java/src/net/i2p/router/web/ConfigRestartBean.java:50
msgid "Shutdown"
msgstr ""
#: ../java/src/net/i2p/router/web/ConfigRestartBean.java:65
#: ../java/src/net/i2p/router/web/ConfigRestartBean.java:64
msgid "Restart imminent"
msgstr ""
#: ../java/src/net/i2p/router/web/ConfigRestartBean.java:67
#: ../java/src/net/i2p/router/web/ConfigRestartBean.java:66
msgid "Shutdown imminent"
msgstr ""
#: ../java/src/net/i2p/router/web/ConfigRestartBean.java:71
#: ../java/src/net/i2p/router/web/ConfigRestartBean.java:70
#, java-format
msgid "Shutdown in {0}"
msgstr ""
#: ../java/src/net/i2p/router/web/ConfigRestartBean.java:76
#: ../java/src/net/i2p/router/web/ConfigRestartBean.java:75
#, java-format
msgid "Restart in {0}"
msgstr ""
@ -3163,8 +3163,8 @@ msgid "Outbound options"
msgstr ""
#: ../java/src/net/i2p/router/web/ConfigUIHandler.java:20
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configui_jsp.java:436
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configui_jsp.java:442
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configui_jsp.java:427
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configui_jsp.java:433
msgid "Add user"
msgstr ""
@ -3283,7 +3283,7 @@ msgstr ""
#: ../java/src/net/i2p/router/web/ConfigUIHelper.java:117
#: ../java/src/net/i2p/router/web/HomeHelper.java:214
#: ../java/src/net/i2p/router/web/SummaryHelper.java:879
#: ../java/src/net/i2p/router/web/SummaryHelper.java:885
msgid "Add"
msgstr ""
@ -3727,7 +3727,7 @@ msgid "Your browser is not properly configured to use the HTTP proxy at {0}"
msgstr ""
#: ../java/src/net/i2p/router/web/HomeHelper.java:194
#: ../java/src/net/i2p/router/web/SummaryHelper.java:833
#: ../java/src/net/i2p/router/web/SummaryHelper.java:839
msgid "Name"
msgstr ""
@ -3950,209 +3950,209 @@ msgid "Plugin update check complete"
msgstr ""
#. buf.append("<h2>").append(_("Peer Profiles")).append("</h2>\n<p>");
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:83
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:84
#, java-format
msgid "Showing 1 recent profile."
msgid_plural "Showing {0} recent profiles."
msgstr[0] ""
msgstr[1] ""
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:85
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:86
#, java-format
msgid "Hiding 1 older profile."
msgid_plural "Hiding {0} older profiles."
msgstr[0] ""
msgstr[1] ""
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:87
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:88
#, java-format
msgid "Hiding 1 standard profile."
msgid_plural "Hiding {0} standard profiles."
msgstr[0] ""
msgstr[1] ""
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:92
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:93
msgid "Groups (Caps)"
msgstr ""
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:93
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:273
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:94
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:276
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:472
msgid "Speed"
msgstr ""
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:94
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:275
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:95
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:278
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:476
msgid "Capacity"
msgstr ""
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:95
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:277
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:96
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:280
msgid "Integration"
msgstr ""
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:135
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:136
msgid "Fast, High Capacity"
msgstr ""
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:136
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:137
#: ../java/src/net/i2p/router/web/ProfilesHelper.java:11
msgid "High Capacity"
msgstr ""
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:137
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:138
msgid "Standard"
msgstr ""
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:138
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:172
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:139
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:173
msgid "Failing"
msgstr ""
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:140
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:141
#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:416
msgid "Integrated"
msgstr ""
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:173
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:174
msgid "Unreachable"
msgstr ""
#. hide if < 10%
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:180
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:182
msgid "Test Fails"
msgstr ""
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:186
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:188
msgid "profile"
msgstr ""
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:205
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:207
msgid "Caps"
msgstr ""
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:206
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:208
msgid "Integ. Value"
msgstr ""
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:207
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:209
msgid "Last Heard About"
msgstr ""
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:208
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:210
msgid "Last Heard From"
msgstr ""
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:209
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:211
msgid "Last Good Send"
msgstr ""
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:210
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:212
msgid "Last Bad Send"
msgstr ""
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:211
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:213
msgid "10m Resp. Time"
msgstr ""
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:212
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:214
msgid "1h Resp. Time"
msgstr ""
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:213
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:215
msgid "1d Resp. Time"
msgstr ""
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:214
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:216
msgid "Last Good Lookup"
msgstr ""
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:215
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:217
msgid "Last Bad Lookup"
msgstr ""
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:216
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:218
msgid "Last Good Store"
msgstr ""
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:217
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:219
msgid "Last Bad Store"
msgstr ""
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:218
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:220
msgid "1h Fail Rate"
msgstr ""
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:219
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:221
msgid "1d Fail Rate"
msgstr ""
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:272
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:275
msgid "Thresholds"
msgstr ""
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:274
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:277
msgid "fast peers"
msgstr ""
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:276
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:279
msgid "high capacity peers"
msgstr ""
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:278
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:281
msgid " well integrated peers"
msgstr ""
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:280
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:283
msgid "as determined by the profile organizer"
msgstr ""
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:280
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:283
msgid "groups"
msgstr ""
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:281
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:284
msgid "capabilities in the netDb, not used to determine profiles"
msgstr ""
#. capabilities
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:281
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:284
#: ../java/strings/Strings.java:81
msgid "caps"
msgstr ""
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:282
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:285
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/ProfileOrganizerRenderer.java:282
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:285
msgid "speed"
msgstr ""
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:283
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:286
msgid "capacity"
msgstr ""
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:283
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:286
msgid "how many tunnels can we ask them to join in an hour?"
msgstr ""
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:284
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:287
msgid "how many new peers have they told us about lately?"
msgstr ""
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:284
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:287
msgid "integration"
msgstr ""
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:285
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:288
msgid "is the peer banned, or unreachable, or failing tunnel tests?"
msgstr ""
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:285
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:288
msgid "status"
msgstr ""
@ -4256,7 +4256,7 @@ msgid "Lifetime average frequency"
msgstr ""
#: ../java/src/net/i2p/router/web/StatsGenerator.java:144
#: ../java/src/net/i2p/router/web/StatsGenerator.java:233
#: ../java/src/net/i2p/router/web/StatsGenerator.java:234
#, java-format
msgid "1 event"
msgid_plural "{0} events"
@ -4303,16 +4303,16 @@ msgstr ""
msgid "Graph Data"
msgstr ""
#: ../java/src/net/i2p/router/web/StatsGenerator.java:222
#: ../java/src/net/i2p/router/web/StatsGenerator.java:223
msgid "Graph Event Count"
msgstr ""
#: ../java/src/net/i2p/router/web/StatsGenerator.java:225
#: ../java/src/net/i2p/router/web/StatsGenerator.java:226
msgid "Export Data as XML"
msgstr ""
#. Display the strict average
#: ../java/src/net/i2p/router/web/StatsGenerator.java:230
#: ../java/src/net/i2p/router/web/StatsGenerator.java:231
msgid "Lifetime average value"
msgstr ""
@ -4738,23 +4738,23 @@ msgstr ""
msgid "Reseed"
msgstr ""
#: ../java/src/net/i2p/router/web/SummaryHelper.java:835
#: ../java/src/net/i2p/router/web/SummaryHelper.java:841
msgid "Order"
msgstr ""
#: ../java/src/net/i2p/router/web/SummaryHelper.java:852
#: ../java/src/net/i2p/router/web/SummaryHelper.java:858
msgid "Top"
msgstr ""
#: ../java/src/net/i2p/router/web/SummaryHelper.java:865
#: ../java/src/net/i2p/router/web/SummaryHelper.java:871
msgid "Down"
msgstr ""
#: ../java/src/net/i2p/router/web/SummaryHelper.java:870
#: ../java/src/net/i2p/router/web/SummaryHelper.java:876
msgid "Bottom"
msgstr ""
#: ../java/src/net/i2p/router/web/SummaryHelper.java:882
#: ../java/src/net/i2p/router/web/SummaryHelper.java:888
msgid "Select a section to add"
msgstr ""
@ -5182,7 +5182,7 @@ msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configtunnels_jsp.java:318
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configui_jsp.java:292
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:292
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/console_jsp.java:297
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/console_jsp.java:293
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/debug_jsp.java:295
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/dns_jsp.java:308
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/error_jsp.java:302
@ -5227,7 +5227,7 @@ msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configtunnels_jsp.java:322
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configui_jsp.java:296
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:296
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/console_jsp.java:301
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/console_jsp.java:297
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/debug_jsp.java:299
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/dns_jsp.java:312
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/error_jsp.java:306
@ -5335,8 +5335,8 @@ msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configreseed_jsp.java:511
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:515
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configtunnels_jsp.java:465
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configui_jsp.java:426
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configui_jsp.java:440
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configui_jsp.java:417
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configui_jsp.java:431
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:476
msgid "Cancel"
msgstr ""
@ -5498,7 +5498,7 @@ msgid "Recommended Eepsites"
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confighome_jsp.java:480
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/home_jsp.java:386
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/home_jsp.java:382
msgid "Local Services"
msgstr ""
@ -6522,32 +6522,32 @@ msgstr ""
msgid "Router Console Theme"
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configui_jsp.java:413
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configui_jsp.java:404
msgid "Theme selection disabled for Internet Explorer, sorry."
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configui_jsp.java:415
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configui_jsp.java:406
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 ""
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configui_jsp.java:418
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configui_jsp.java:409
msgid "Router Console Language"
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configui_jsp.java:424
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configui_jsp.java:415
msgid ""
"Please contribute to the router console translation project! Contact the "
"developers in #i2p-dev on IRC to help."
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configui_jsp.java:428
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configui_jsp.java:419
msgid "Apply"
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configui_jsp.java:430
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configui_jsp.java:421
msgid "Router Console Password"
msgstr ""
@ -6628,8 +6628,8 @@ msgstr ""
msgid "home"
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/console_jsp.java:383
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/home_jsp.java:354
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/console_jsp.java:379
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/home_jsp.java:350
msgid "Welcome to I2P"
msgstr ""
@ -6703,7 +6703,7 @@ msgstr ""
msgid "I2P Version and Running Environment"
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/error500_jsp.java:241
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/error500_jsp.java:243
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/logs_jsp.java:390
msgid ""
"Note that system information, log timestamps, and log messages may provide "
@ -6738,17 +6738,17 @@ msgstr ""
msgid "I2P Performance Graphs"
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/home_jsp.java:312
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/home_jsp.java:308
msgid ""
"Click a flag to select a language. Click 'configure language' below to "
"change it later."
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/home_jsp.java:362
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/home_jsp.java:358
msgid "Search I2P"
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/home_jsp.java:382
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/home_jsp.java:378
msgid "Eepsites of Interest"
msgstr ""

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -96,9 +96,11 @@ public class SAMDatagramSession extends SAMMessageSession {
byte[] payload;
Destination sender;
try {
synchronized (dgramDissector) {
dgramDissector.loadI2PDatagram(msg);
sender = dgramDissector.getSender();
payload = dgramDissector.extractPayload();
}
} catch (DataFormatException e) {
if (_log.shouldLog(Log.DEBUG)) {
_log.debug("Dropping ill-formatted I2P repliable datagram");

View File

@ -21,6 +21,7 @@ import java.util.Properties;
import java.util.StringTokenizer;
import net.i2p.I2PException;
import net.i2p.client.I2PClient;
import net.i2p.client.I2PSessionException;
import net.i2p.data.Base64;
import net.i2p.data.DataFormatException;
@ -253,6 +254,11 @@ public class SAMv1Handler extends SAMHandler implements SAMRawReceiver, SAMDatag
}
props.remove("STYLE");
// Unconditionally override what the client may have set
// (iMule sets BestEffort) as None is more efficient
// and the client has no way to access delivery notifications
props.setProperty(I2PClient.PROP_RELIABILITY, I2PClient.PROP_RELIABILITY_NONE);
if (style.equals("RAW")) {
rawSession = new SAMRawSession(destKeystream, props, this);
} else if (style.equals("DATAGRAM")) {

View File

@ -26,6 +26,7 @@ import java.util.HashMap;
import java.util.StringTokenizer;
import net.i2p.I2PException;
import net.i2p.client.I2PClient;
import net.i2p.client.I2PSessionException;
import net.i2p.data.Base64;
import net.i2p.data.DataFormatException;
@ -514,7 +515,10 @@ public class SAMv3Handler extends SAMv1Handler
}
props.remove("STYLE");
// Unconditionally override what the client may have set
// (iMule sets BestEffort) as None is more efficient
// and the client has no way to access delivery notifications
i2cpProps.setProperty(I2PClient.PROP_RELIABILITY, I2PClient.PROP_RELIABILITY_NONE);
// Record the session in the database sSessionsHash
Properties allProps = new Properties();

View File

@ -77,7 +77,7 @@ msgstr[1] "بحث ضمن القائمة"
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:236
#, fuzzy, java-format
msgid "Filtered list contains 1 entry."
msgid_plural "Fltered list contains {0} entries."
msgid_plural "Filtered list contains {0} entries."
msgstr[0] "يحتوي على واحدة"
msgstr[1] "يحتوي على واحدة"

View File

@ -81,7 +81,7 @@ msgstr[2] ""
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:206
#, java-format
msgid "Filtered list contains 1 entry."
msgid_plural "Fltered list contains {0} entries."
msgid_plural "Filtered list contains {0} entries."
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""

View File

@ -79,7 +79,7 @@ msgstr[1] ""
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:236
#, java-format
msgid "Filtered list contains 1 entry."
msgid_plural "Fltered list contains {0} entries."
msgid_plural "Filtered list contains {0} entries."
msgstr[0] ""
msgstr[1] ""

View File

@ -87,7 +87,7 @@ msgstr[1] "{0} Suchergebnisse in der gefilterten Liste"
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:206
#, java-format
msgid "Filtered list contains 1 entry."
msgid_plural "Fltered list contains {0} entries."
msgid_plural "Filtered list contains {0} entries."
msgstr[0] "Die gefilterte Liste enthält einen Eintrag."
msgstr[1] "Die gefilterte Liste enthält {0} Einträge."

View File

@ -80,7 +80,7 @@ msgstr[1] ""
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:206
#, java-format
msgid "Filtered list contains 1 entry."
msgid_plural "Fltered list contains {0} entries."
msgid_plural "Filtered list contains {0} entries."
msgstr[0] ""
msgstr[1] ""

View File

@ -79,7 +79,7 @@ msgstr[1] ""
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:206
#, java-format
msgid "Filtered list contains 1 entry."
msgid_plural "Fltered list contains {0} entries."
msgid_plural "Filtered list contains {0} entries."
msgstr[0] ""
msgstr[1] ""

View File

@ -91,7 +91,7 @@ msgstr[1] ""
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:206
#, java-format
msgid "Filtered list contains 1 entry."
msgid_plural "Fltered list contains {0} entries."
msgid_plural "Filtered list contains {0} entries."
msgstr[0] "La lista de elementos filtrados contiene una entrada."
msgstr[1] "La lista de elementos filtrados contiene {0} entradas."

View File

@ -7,20 +7,21 @@
# <bastien@quelen.net>, 2012.
# ducki2p <ducki2p@gmail.com>, 2011.
# foo <foo@bar>, 2009.
# <nekolam55@gmail.com>, 2012.
msgid ""
msgstr ""
"Project-Id-Version: I2P\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-07-26 19:13+0000\n"
"PO-Revision-Date: 2012-07-22 09:40+0000\n"
"Last-Translator: bquelen <bastien@quelen.net>\n"
"POT-Creation-Date: 2012-11-28 22:31+0000\n"
"PO-Revision-Date: 2012-11-13 14:42+0000\n"
"Last-Translator: Boxoa590 <nekolam55@gmail.com>\n"
"Language-Team: French (http://www.transifex.com/projects/p/I2P/language/"
"fr/)\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1)\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#: ../src/java/src/i2p/susi/dns/AddressBean.java:130
#, java-format
@ -85,7 +86,7 @@ msgstr[1] "{0} résultats de recherche dans la liste filtrée."
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:206
#, java-format
msgid "Filtered list contains 1 entry."
msgid_plural "Fltered list contains {0} entries."
msgid_plural "Filtered list contains {0} entries."
msgstr[0] "La liste filtrée contient {0} entrée."
msgstr[1] "La liste filtrée contient {0} entrées."
@ -108,27 +109,27 @@ msgstr[1] "Ce carnet d''adresses contient {0} entrées."
msgid "Showing {0} of {1}"
msgstr "Affichage {0} sur {1}"
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:257
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:258
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:227
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:412
msgid "Add"
msgstr "Ajouter"
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:257
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:268
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:258
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:269
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:227
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:239
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:410
msgid "Replace"
msgstr "Remplacer"
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:267
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:268
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:238
#, java-format
msgid "Host name {0} is already in address book, unchanged."
msgstr "L''hôte {0} est déjà présent: inchangé."
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:269
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:270
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:240
#, java-format
msgid ""
@ -138,63 +139,63 @@ msgstr ""
"L''hôte {0} est déjà présent avec une destination différente. Cliquez sur "
"\"Remplacer\"...pour le remplacer."
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:282
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:283
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:253
#, java-format
msgid "Destination added for {0}."
msgstr "Destination ajoutée pour {0}."
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:284
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:285
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:255
#, java-format
msgid "Destination changed for {0}."
msgstr "Destination modifiée pour {0}."
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:286
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:287
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:257
msgid "Warning - host name does not end with \".i2p\""
msgstr "Attention - le nom d'hôte ne finit pas en \".i2p\""
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:291
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:292
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:265
msgid "Invalid Base 64 destination."
msgstr "Destination Base64 incorrecte."
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:297
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:298
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:271
#, java-format
msgid "Invalid host name \"{0}\"."
msgstr "Nom d''hôte \"{0}\" invalide."
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:300
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:301
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:274
msgid "Please enter a host name and destination"
msgstr "Entrez un nom d'hôte et sa destination"
#. clear search when deleting
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:304
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:325
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:305
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:326
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:278
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:303
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:274
msgid "Delete Entry"
msgstr "Supprimer l'entrée"
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:304
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:305
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:278
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:351
msgid "Delete Selected"
msgstr "Supprimer les éléments sélectionnés"
#. parameter is a host name
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:318
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:319
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:295
#, java-format
msgid "Destination {0} deleted."
msgstr "Destination {0} supprimée."
#. parameter will always be >= 2
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:321
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:322
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:298
#, java-format
msgid "1 destination deleted."
@ -202,22 +203,22 @@ msgid_plural "{0} destinations deleted."
msgstr[0] "{0} destination supprimée."
msgstr[1] "{0} destinations supprimées."
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:323
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:324
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:300
msgid "No entries selected to delete."
msgstr "Aucune entrée sélectionnée pour suppression."
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:331
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:332
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:307
msgid "Address book saved."
msgstr "Carnet d'adresses enregistré."
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:334
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:335
msgid "ERROR: Could not write addressbook file."
msgstr "ERREUR: impossible d'enregistrer le fichier carnet d'adresses."
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:339
#: ../src/java/src/i2p/susi/dns/ConfigBean.java:148
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:340
#: ../src/java/src/i2p/susi/dns/ConfigBean.java:149
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:311
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:128
msgid ""
@ -227,29 +228,40 @@ msgstr ""
"Soumission du formulaire incorrecte: vous avez peut-être utilisé le bouton "
"\"Page précédente\" ou \"Recharger\". Merci de soumettre à nouveau."
#: ../src/java/src/i2p/susi/dns/ConfigBean.java:139
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:342
#: ../src/java/src/i2p/susi/dns/ConfigBean.java:151
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:313
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:130
msgid ""
"If the problem persists, verify that you have cookies enabled in your "
"browser."
msgstr ""
"Si le problème persiste, vérifiez dans votre navigateur que les cookies sont "
"activés."
#: ../src/java/src/i2p/susi/dns/ConfigBean.java:140
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:103
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:153
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:145
msgid "Save"
msgstr "Enregistrer"
#: ../src/java/src/i2p/susi/dns/ConfigBean.java:141
#: ../src/java/src/i2p/susi/dns/ConfigBean.java:142
msgid "Configuration saved."
msgstr "Configuration enregistrée."
#: ../src/java/src/i2p/susi/dns/ConfigBean.java:142
#: ../src/java/src/i2p/susi/dns/ConfigBean.java:143
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:122
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:151
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:143
msgid "Reload"
msgstr "Recharger"
#: ../src/java/src/i2p/susi/dns/ConfigBean.java:144
#: ../src/java/src/i2p/susi/dns/ConfigBean.java:145
msgid "Configuration reloaded."
msgstr "Configuration rechargée."
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:101
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:100
#, java-format
msgid "{0} address book in {1} database"
msgstr "{0} carnet(s) d''adresses dans {1} base(s) de données"
@ -555,7 +567,7 @@ msgstr "Fichier d'historiques (modifiez en /dev/null si ça vous chante) "
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:191
msgid "Name of the theme to use (defaults to 'light')"
msgstr ""
msgstr "Nom du thème à utiliser ('light' par défaut)"
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:110
msgid "addressbook"
@ -571,7 +583,7 @@ msgstr "Adresse Base32"
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:207
msgid "Base 64 Hash"
msgstr ""
msgstr "Hachage Base 64"
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:213
msgid "Address Helper"
@ -652,6 +664,8 @@ msgid ""
"Subscribing to additional sites is easy, just add them to your <a href="
"\"subscriptions\">subscriptions</a> file."
msgstr ""
"S'abonner à des sites supplémentaires est facile, ajoutez les simplement à "
"votre fichier <a href=\"subscriptions\">subscriptions</a>."
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:140
msgid ""

View File

@ -82,7 +82,7 @@ msgstr[1] "A keresés a szűrővel ellátott listában {0} eredményt hozott."
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:236
#, java-format
msgid "Filtered list contains 1 entry."
msgid_plural "Fltered list contains {0} entries."
msgid_plural "Filtered list contains {0} entries."
msgstr[0] "A szűrés után a lista 1 bejegyzést tartalmaz."
msgstr[1] "A szűrés után a lista {0} bejegyzést tartalmaz."

View File

@ -11,8 +11,8 @@ msgid ""
msgstr ""
"Project-Id-Version: I2P\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-10-12 00:46+0000\n"
"PO-Revision-Date: 2012-10-11 19:37+0000\n"
"POT-Creation-Date: 2012-11-28 22:38+0000\n"
"PO-Revision-Date: 2012-11-18 22:17+0000\n"
"Last-Translator: Tony Goodyear <fswitch20@hotmail.com>\n"
"Language-Team: Italian (http://www.transifex.com/projects/p/I2P/language/"
"it/)\n"
@ -85,7 +85,7 @@ msgstr[1] "{0} risultati per la ricerca all'interno della lista filtrata."
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:206
#, java-format
msgid "Filtered list contains 1 entry."
msgid_plural "Fltered list contains {0} entries."
msgid_plural "Filtered list contains {0} entries."
msgstr[0] "La lista filtrata contiene 1 voce."
msgstr[1] "La lista filtrata contiene {0} voci."
@ -108,27 +108,27 @@ msgstr[1] "La rubrica contiene {0} voci."
msgid "Showing {0} of {1}"
msgstr "Mostrati {0} su {1}"
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:257
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:258
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:227
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:412
msgid "Add"
msgstr "Aggiungi"
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:257
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:268
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:258
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:269
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:227
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:239
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:410
msgid "Replace"
msgstr "Sostituisci"
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:267
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:268
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:238
#, java-format
msgid "Host name {0} is already in address book, unchanged."
msgstr "L''host name {0} è già nella rubrica, nessuna modifica."
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:269
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:270
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:240
#, java-format
msgid ""
@ -138,63 +138,63 @@ msgstr ""
"L''host name {0} è già nella rubrica con una destinazione diversa. Fare "
"click su \"Sostituisci\" per sovrascrivere."
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:282
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:283
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:253
#, java-format
msgid "Destination added for {0}."
msgstr "Destinazione aggiunta per {0}."
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:284
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:285
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:255
#, java-format
msgid "Destination changed for {0}."
msgstr "Destinazione modificata per {0}."
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:286
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:287
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:257
msgid "Warning - host name does not end with \".i2p\""
msgstr "Warning - l'host name non finisce con \".i2p\""
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:291
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:292
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:265
msgid "Invalid Base 64 destination."
msgstr "Destinazione in Base 64 non valida."
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:297
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:298
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:271
#, java-format
msgid "Invalid host name \"{0}\"."
msgstr "Host name \"{0}\" non valido."
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:300
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:301
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:274
msgid "Please enter a host name and destination"
msgstr "Inserire un nome per l'host e una destinazione"
#. clear search when deleting
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:304
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:325
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:305
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:326
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:278
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:303
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:274
msgid "Delete Entry"
msgstr "Elimina voce"
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:304
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:305
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:278
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:351
msgid "Delete Selected"
msgstr "Elimina Selezione"
#. parameter is a host name
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:318
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:319
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:295
#, java-format
msgid "Destination {0} deleted."
msgstr "Destinazione {0} eliminata."
#. parameter will always be >= 2
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:321
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:322
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:298
#, java-format
msgid "1 destination deleted."
@ -202,22 +202,22 @@ msgid_plural "{0} destinations deleted."
msgstr[0] "1 destinazione eliminata."
msgstr[1] "{0} destinazioni eliminate."
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:323
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:324
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:300
msgid "No entries selected to delete."
msgstr "Non è stata selezionata nessuna voce per l'eliminazione."
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:331
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:332
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:307
msgid "Address book saved."
msgstr "Rubrica salvata."
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:334
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:335
msgid "ERROR: Could not write addressbook file."
msgstr "ERRORE: impossibile scrivere sul file della rubrica."
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:339
#: ../src/java/src/i2p/susi/dns/ConfigBean.java:148
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:340
#: ../src/java/src/i2p/susi/dns/ConfigBean.java:149
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:311
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:128
msgid ""
@ -227,29 +227,40 @@ msgstr ""
"Il form presentato è invalido, probabilmente hai usato la funzione \"indietro"
"\" o \"aggiorna\" del tuo browser. Per favore inviarlo nuovamente."
#: ../src/java/src/i2p/susi/dns/ConfigBean.java:139
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:342
#: ../src/java/src/i2p/susi/dns/ConfigBean.java:151
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:313
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:130
msgid ""
"If the problem persists, verify that you have cookies enabled in your "
"browser."
msgstr ""
"Se il problema persisite, verifica di avere i cookies abilitati nel tuo "
"browser."
#: ../src/java/src/i2p/susi/dns/ConfigBean.java:140
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:103
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:153
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:145
msgid "Save"
msgstr "Salva"
#: ../src/java/src/i2p/susi/dns/ConfigBean.java:141
#: ../src/java/src/i2p/susi/dns/ConfigBean.java:142
msgid "Configuration saved."
msgstr "Configurazione salvata."
#: ../src/java/src/i2p/susi/dns/ConfigBean.java:142
#: ../src/java/src/i2p/susi/dns/ConfigBean.java:143
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:122
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:151
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:143
msgid "Reload"
msgstr "Ricarica"
#: ../src/java/src/i2p/susi/dns/ConfigBean.java:144
#: ../src/java/src/i2p/susi/dns/ConfigBean.java:145
msgid "Configuration reloaded."
msgstr "Configurazione ricaricata."
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:101
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:100
#, java-format
msgid "{0} address book in {1} database"
msgstr "{0} rubriche in {1} database"

View File

@ -79,7 +79,7 @@ msgstr[1] "Zoek binnen gefilterde lijst"
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:206
#, fuzzy, java-format
msgid "Filtered list contains 1 entry."
msgid_plural "Fltered list contains {0} entries."
msgid_plural "Filtered list contains {0} entries."
msgstr[0] "bevat 1 item"
msgstr[1] "bevat 1 item"

View File

@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: I2P\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-02-02 22:40+0000\n"
"POT-Creation-Date: 2012-11-28 22:32+0000\n"
"PO-Revision-Date: 2012-01-07 12:58+0000\n"
"Last-Translator: PolishAnon <b790979@klzlk.com>\n"
"Language-Team: Polish (http://www.transifex.net/projects/p/I2P/team/pl/)\n"
@ -20,30 +20,30 @@ msgstr ""
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
"|| n%100>=20) ? 1 : 2)\n"
#: ../src/java/src/i2p/susi/dns/AddressBean.java:131
#: ../src/java/src/i2p/susi/dns/AddressBean.java:130
#, java-format
msgid "Host name \"{0}\" contains illegal character {1}"
msgstr "Nazwa hosta \"{0}\" zawiera niedozwolony znak {1}"
#: ../src/java/src/i2p/susi/dns/AddressBean.java:144
#: ../src/java/src/i2p/susi/dns/AddressBean.java:146
#: ../src/java/src/i2p/susi/dns/AddressBean.java:153
#: ../src/java/src/i2p/susi/dns/AddressBean.java:143
#: ../src/java/src/i2p/susi/dns/AddressBean.java:145
#: ../src/java/src/i2p/susi/dns/AddressBean.java:152
#, java-format
msgid "Host name cannot start with \"{0}\""
msgstr "Nazwa hosta nie może zaczynać się od \"{0}\""
#: ../src/java/src/i2p/susi/dns/AddressBean.java:148
#: ../src/java/src/i2p/susi/dns/AddressBean.java:150
#: ../src/java/src/i2p/susi/dns/AddressBean.java:147
#: ../src/java/src/i2p/susi/dns/AddressBean.java:149
#, java-format
msgid "Host name cannot end with \"{0}\""
msgstr "Nazwa hosta nie może kończyć się na \"{0}\""
#: ../src/java/src/i2p/susi/dns/AddressBean.java:155
#: ../src/java/src/i2p/susi/dns/AddressBean.java:154
#, java-format
msgid "Host name cannot contain \"{0}\""
msgstr "Nazwa hosta nie może zawierać \"{0}\""
#: ../src/java/src/i2p/susi/dns/AddressBean.java:158
#: ../src/java/src/i2p/susi/dns/AddressBean.java:157
#, java-format
msgid ""
"Host name \"{0}\" requires conversion to ASCII but the conversion library is "
@ -52,28 +52,28 @@ msgstr ""
"Nazwa hosta \"{0}\" wymaga konwersji na ASCII, ale ta biblioteka konwersji "
"jest niedostępna w tym JVM"
#: ../src/java/src/i2p/susi/dns/AddressBean.java:210
#: ../src/java/src/i2p/susi/dns/AddressBean.java:218
msgid "None"
msgstr "Brak"
#: ../src/java/src/i2p/susi/dns/AddressBean.java:218
#: ../src/java/src/i2p/susi/dns/AddressBean.java:226
msgid "Hashcash"
msgstr "Hashcash"
#: ../src/java/src/i2p/susi/dns/AddressBean.java:220
#: ../src/java/src/i2p/susi/dns/AddressBean.java:228
msgid "Hidden"
msgstr "Ukryty"
#: ../src/java/src/i2p/susi/dns/AddressBean.java:222
#: ../src/java/src/i2p/susi/dns/AddressBean.java:230
msgid "Signed"
msgstr "Podpisano"
#: ../src/java/src/i2p/susi/dns/AddressBean.java:224
#: ../src/java/src/i2p/susi/dns/AddressBean.java:232
#, java-format
msgid "Type {0}"
msgstr "Typ {0}"
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:233
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:202
#, java-format
msgid "One result for search within filtered list."
msgid_plural "{0} results for search within filtered list."
@ -81,15 +81,15 @@ msgstr[0] "Jeden wynik wyszukiwania w filtrowanej liście."
msgstr[1] "{0} wyniki wyszukiwania w filtrowanej listy."
msgstr[2] "{0} wyników wyszukiwania w filtrowanej listy."
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:237
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:206
#, java-format
msgid "Filtered list contains 1 entry."
msgid_plural "Fltered list contains {0} entries."
msgid_plural "Filtered list contains {0} entries."
msgstr[0] "Filtrowana lista zawiera 1 wpis."
msgstr[1] "Filtrowana lista zawiera {0} wpisy."
msgstr[2] "Filtrowana lista zawiera {0} wpisów."
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:242
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:211
#, java-format
msgid "One result for search."
msgid_plural "{0} results for search."
@ -97,7 +97,7 @@ msgstr[0] "Jeden wynik wyszukiwania."
msgstr[1] "{0} wyniki wyszukiwania."
msgstr[2] "{0} wyników wyszukiwania."
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:251
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:220
#, java-format
msgid "Address book contains 1 entry."
msgid_plural "Address book contains {0} entries."
@ -105,33 +105,33 @@ msgstr[0] "Książka adresowa zawiera 1 wpis."
msgstr[1] "Książka adresowa zawiera {0} wpisy."
msgstr[2] "Książka adresowa zawiera {0} wpisów."
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:267
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:236
#, java-format
msgid "Showing {0} of {1}"
msgstr "Wyświetlono {0} z {1}"
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:288
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:231
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:392
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:258
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:227
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:412
msgid "Add"
msgstr "Dodaj"
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:288
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:299
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:231
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:243
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:390
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:258
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:269
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:227
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:239
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:410
msgid "Replace"
msgstr "Zastąp"
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:298
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:242
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:268
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:238
#, java-format
msgid "Host name {0} is already in address book, unchanged."
msgstr "Nazwa hosta {0} jest już w książce adresowej, bez zmian."
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:300
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:244
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:270
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:240
#, java-format
msgid ""
"Host name {0} is already in address book with a different destination. Click "
@ -140,64 +140,64 @@ msgstr ""
"Nazwa hosta {0} jest już w książce adresowej z innym miejscem przeznaczenia. "
"Kliknij przycisk \"Zmień\", aby nadpisać."
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:313
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:257
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:283
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:253
#, java-format
msgid "Destination added for {0}."
msgstr "Miejsce przeznaczenia dodane dla {0}."
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:315
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:259
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:285
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:255
#, java-format
msgid "Destination changed for {0}."
msgstr "Miejsce przeznaczenia zmienione dla {0}."
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:317
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:261
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:287
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:257
msgid "Warning - host name does not end with \".i2p\""
msgstr "Uwaga - nazwa hosta nie kończy się na \".i2p\""
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:322
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:269
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:292
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:265
msgid "Invalid Base 64 destination."
msgstr "Nieprawidłowy miejsca przeznaczenia formatu Base 64."
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:328
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:275
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:298
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:271
#, java-format
msgid "Invalid host name \"{0}\"."
msgstr "Nieprawidłowa nazwa hosta \"{0}\"."
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:331
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:278
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:301
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:274
msgid "Please enter a host name and destination"
msgstr "Wpisz nazwę hosta i miejsca przeznaczenia"
#. clear search when deleting
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:335
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:356
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:282
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:307
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:258
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:305
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:326
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:278
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:303
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:274
msgid "Delete Entry"
msgstr "Usuń wpis"
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:335
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:282
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:334
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:305
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:278
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:351
msgid "Delete Selected"
msgstr "Usuń zaznaczone"
#. parameter is a host name
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:349
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:299
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:319
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:295
#, java-format
msgid "Destination {0} deleted."
msgstr "Miejsce przeznaczenia {0} usunięte."
#. parameter will always be >= 2
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:352
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:302
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:322
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:298
#, java-format
msgid "1 destination deleted."
msgid_plural "{0} destinations deleted."
@ -205,24 +205,24 @@ msgstr[0] "1 miejsce przeznaczenia usunięte."
msgstr[1] "{0} miejsca przeznaczenia usunięte."
msgstr[2] "{0} miejsc przeznaczenia usunięte."
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:354
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:304
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:324
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:300
msgid "No entries selected to delete."
msgstr "Brak wpisów wybranych do usunięcia."
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:362
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:311
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:332
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:307
msgid "Address book saved."
msgstr "Książka adresowa zapisana."
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:365
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:335
msgid "ERROR: Could not write addressbook file."
msgstr "BŁĄD: Nie można zapisać pliku książki adresowej."
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:370
#: ../src/java/src/i2p/susi/dns/ConfigBean.java:148
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:315
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:156
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:340
#: ../src/java/src/i2p/susi/dns/ConfigBean.java:149
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:311
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:128
msgid ""
"Invalid form submission, probably because you used the \"back\" or \"reload"
"\" button on your browser. Please resubmit."
@ -230,61 +230,70 @@ msgstr ""
"Nieprawidłowy formularz, prawdopodobnie dlatego, że użyto przycisku \"wstecz"
"\" lub \"przeładuj\" w przeglądarce. Proszę prześlij ponownie."
#: ../src/java/src/i2p/susi/dns/ConfigBean.java:139
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:131
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:132
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:132
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:342
#: ../src/java/src/i2p/susi/dns/ConfigBean.java:151
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:313
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:130
msgid ""
"If the problem persists, verify that you have cookies enabled in your "
"browser."
msgstr ""
#: ../src/java/src/i2p/susi/dns/ConfigBean.java:140
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:103
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:153
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:145
msgid "Save"
msgstr "Zapisz"
#: ../src/java/src/i2p/susi/dns/ConfigBean.java:141
#: ../src/java/src/i2p/susi/dns/ConfigBean.java:142
msgid "Configuration saved."
msgstr "Konfiguracja zapisana."
#: ../src/java/src/i2p/susi/dns/ConfigBean.java:142
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:150
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:130
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:130
#: ../src/java/src/i2p/susi/dns/ConfigBean.java:143
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:122
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:151
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:143
msgid "Reload"
msgstr "Przeładuj"
#: ../src/java/src/i2p/susi/dns/ConfigBean.java:144
#: ../src/java/src/i2p/susi/dns/ConfigBean.java:145
msgid "Configuration reloaded."
msgstr "Konfiguracja przeładowana."
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:105
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:100
#, java-format
msgid "{0} address book in {1} database"
msgstr "{0} książka adresowa w bazie {1}"
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:252
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:248
msgid "Manually added via SusiDNS"
msgstr "Dodane ręcznie przez SusiDNS"
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:266
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:262
#, java-format
msgid "Failed to add Destination for {0} to naming service {1}"
msgstr ""
"Nie udało się dodać Miejsca Przeznaczenia dla {0} do serwisu nazewnictwa {1}"
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:290
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:286
#, java-format
msgid "Failed to delete Destination for {0} from naming service {1}"
msgstr ""
"Nie udało się usunąć Miejsca Przeznaczenia dla {0} z serwisu nazewnictwa {1}"
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:143
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:115
msgid ""
"Subscriptions saved, updating addressbook from subscription sources now."
msgstr ""
"Subskrypcje zapisane, trwa teraz aktualizowanie książki adresowej ze źródeł "
"subskrypcji."
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:148
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:120
msgid "Subscriptions saved."
msgstr "Subskrypcje zapisane."
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:152
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:124
msgid "Subscriptions reloaded."
msgstr "Subskrypcje przeładowane."
@ -292,166 +301,166 @@ msgstr "Subskrypcje przeładowane."
msgid "address book"
msgstr "książka adresowa"
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:127
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:143
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:104
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:120
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:105
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:121
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:107
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:104
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:120
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:131
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:147
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:125
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:141
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:116
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:132
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:130
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:117
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:133
msgid "Overview"
msgstr "Przegląd"
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:129
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:106
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:107
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:93
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:106
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:133
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:127
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:118
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:116
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:119
msgid "Address books"
msgstr "Książki adresowe"
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:131
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:108
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:109
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:95
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:108
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:135
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:129
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:120
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:118
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:121
msgid "private"
msgstr "prywatne"
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:133
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:110
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:111
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:97
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:110
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:137
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:131
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:122
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:120
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:123
msgid "master"
msgstr "głowne"
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:135
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:112
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:113
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:99
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:112
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:139
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:133
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:124
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:122
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:125
msgid "router"
msgstr "router"
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:137
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:114
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:115
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:101
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:114
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:141
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:135
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:126
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:124
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:127
msgid "published"
msgstr "opublikowane"
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:139
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:116
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:117
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:103
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:116
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:143
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:137
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:128
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:126
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:129
msgid "Subscriptions"
msgstr "Subskrypcje"
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:141
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:118
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:119
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:105
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:118
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:145
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:139
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:130
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:128
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:131
msgid "Configuration"
msgstr "Konfiguracja"
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:145
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:123
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:149
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:134
msgid "Address book"
msgstr "Książka adresowa"
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:150
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:128
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:154
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:139
msgid "Storage"
msgstr "Pamięć"
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:169
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:172
msgid "Filter"
msgstr "Filtr"
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:172
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:175
msgid "other"
msgstr "inne"
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:174
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:177
msgid "all"
msgstr "wszystkie"
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:185
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:191
msgid "Current filter"
msgstr "Obecny filtr"
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:190
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:196
msgid "clear filter"
msgstr "wyczyść filtr"
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:201
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:205
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:209
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:213
msgid "Search"
msgstr "Szukaj"
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:238
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:246
msgid "Name"
msgstr "Nazwa"
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:240
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:248
msgid "Links"
msgstr "Linki"
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:242
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:384
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:250
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:250
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:404
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:266
msgid "Destination"
msgstr "Miejsce przeznaczenia"
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:273
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:286
msgid "Mark for deletion"
msgstr "Zaznacz do usunięcia"
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:292
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:307
msgid "Base 32 address"
msgstr "Adres Base 32"
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:296
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:311
msgid "More information on this entry"
msgstr "Więcej informacji na temat tego wpisu"
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:299
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:314
msgid "details"
msgstr "szczegóły"
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:332
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:388
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:349
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:408
msgid "Cancel"
msgstr "Anuluj"
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:365
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:383
msgid "This address book is empty."
msgstr "Ta książka adresowa jest pusta."
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:378
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:398
msgid "Add new destination"
msgstr "Dodaj nowe miejsce przeznaczenia"
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:380
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:155
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:400
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:165
msgid "Host Name"
msgstr "Nazwa hosta"
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:102
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:119
msgid "configuration"
msgstr "konfiguracja"
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:134
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:155
msgid "Hints"
msgstr "Wskazówki"
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:136
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:157
msgid ""
"File and directory paths here are relative to the addressbook's working "
"directory, which is normally ~/.i2p/addressbook/ (Linux) or %APPDATA%\\I2P"
@ -461,7 +470,7 @@ msgstr ""
"książki adresowej, którym jest zwykle ~/.i2p/addressbook/ (Linux) lub "
"%APPDATA%\\I2P\\addressbook\\ (Windows)."
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:138
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:159
msgid ""
"If you want to manually add lines to an addressbook, add them to the private "
"or master addressbooks."
@ -469,7 +478,7 @@ msgstr ""
"Jeśli chcesz ręcznie dodać wiersze do książki adresowej, dodaj je do "
"prywatnych lub głownych książek adresowych."
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:140
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:160
msgid ""
"The router addressbook and the published addressbook are updated by the "
"addressbook application."
@ -477,7 +486,7 @@ msgstr ""
"Książka adresowa routera i opublikowana książka adresowa są aktualizowane "
"przez aplikacje książki adresowej."
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:142
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:162
msgid ""
"When you publish your addressbook, ALL destinations from the master and "
"router addressbooks appear there."
@ -485,7 +494,7 @@ msgstr ""
"Kiedy publikujesz swoja książke adresowa, WSZYSTKIE miejsca przeznaczenia z "
"głównej książki adresowej i książki adresowej routera zostaną ukazane."
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:144
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:163
msgid ""
"Use the private addressbook for private destinations, these are not "
"published."
@ -493,21 +502,21 @@ msgstr ""
"Użyj prywatnej książki adresowej dla prywatnych miejsc przeznaczania, te nie "
"są publikowane."
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:146
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:165
msgid "Options"
msgstr "Opcje"
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:148
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:167
msgid "File containing the list of subscriptions URLs (no need to change)"
msgstr ""
"Plik zawierający listę adresów URL subskrypcji (nie ma potrzeby, aby "
"zmieniać)"
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:150
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:169
msgid "Update interval in hours"
msgstr "Przerwa miedzy aktualizacjami w godzinach"
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:152
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:171
msgid ""
"Your public hosts.txt file (choose a path within your webserver document "
"root)"
@ -515,31 +524,31 @@ msgstr ""
"Twoje publiczne pliki hosts.txt (wybierz ścieżkę w głównym katalogu "
"webserwera)"
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:154
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:173
msgid "Your hosts.txt (don't change)"
msgstr "Twój hosts.txt (nie zmieniaj)"
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:156
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:175
msgid "Your personal addressbook, these hosts will be published"
msgstr "Twoja osobista książka adresowa, te hosty będą publikowane"
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:158
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:177
msgid "Your private addressbook, it is never published"
msgstr "Twoja prywatna książka adresowa, ta nigdy nie jest publikowany"
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:160
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:179
msgid "Port for your eepProxy (no need to change)"
msgstr "Port dla eepProxy (nie ma potrzeby, aby zmieniać)"
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:162
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:181
msgid "Hostname for your eepProxy (no need to change)"
msgstr "Nazwa hosta dla eepProxy (nie ma potrzeby, aby zmienić)"
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:164
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:183
msgid "Whether to update the published addressbook"
msgstr "Czy aktualizpwać opublikowaną książke adresową"
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:166
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:185
msgid ""
"File containing the etags header from the fetched subscription URLs (no need "
"to change)"
@ -547,7 +556,7 @@ msgstr ""
"Plik zawierający nagłówek etagów z pobranych subskrypcji URL (nie trzeba "
"zmieniać)"
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:168
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:187
msgid ""
"File containing the modification timestamp for each fetched subscription URL "
"(no need to change)"
@ -555,79 +564,87 @@ msgstr ""
"Plik zawierający modifikacje znaczów czasu dla każdej pobranej subscrypcji "
"URL (nie trzeba zmieniać)"
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:170
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:189
msgid "File to log activity to (change to /dev/null if you like)"
msgstr "Plik do logowania działalności (zmień na /dev/null, jeśli chcesz)"
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:103
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:191
msgid "Name of the theme to use (defaults to 'light')"
msgstr ""
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:110
msgid "addressbook"
msgstr "Ksiazka adresowa"
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:171
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:181
msgid "Encoded Name"
msgstr "Zakodowana Nazwa"
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:187
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:197
msgid "Base 32 Address"
msgstr "Adress Base 32"
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:197
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:207
msgid "Base 64 Hash"
msgstr ""
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:213
msgid "Address Helper"
msgstr "Pomoc Adresowa"
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:204
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:220
msgid "link"
msgstr "link"
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:208
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:224
msgid "Public Key"
msgstr "Klucz publiczny"
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:210
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:226
msgid "ElGamal 2048 bit"
msgstr "ElGamal 2048 bitów"
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:214
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:230
msgid "Signing Key"
msgstr "Klucz Podpisywania"
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:216
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:232
msgid "DSA 1024 bit"
msgstr "DSA 1024 bity"
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:220
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:236
msgid "Certificate"
msgstr "Certyfikat"
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:226
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:242
msgid "Added Date"
msgstr "Data dodania"
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:232
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:248
msgid "Source"
msgstr "Źródło"
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:238
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:254
msgid "Last Modified"
msgstr "Ostatnio modyfikowano"
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:244
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:260
msgid "Notes"
msgstr "Notatki"
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:91
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:110
msgid "Introduction"
msgstr "Wprowadzenie"
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:109
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:132
msgid "What is the addressbook?"
msgstr "Co to jest książka adresowa?"
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:111
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:134
msgid "The addressbook application is part of your I2P installation."
msgstr "Aplikacja książki adresowej jest częścią instalacji twojego I2P."
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:113
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:135
msgid ""
"It regularly updates your hosts.txt file from distributed sources or "
"\"subscriptions\"."
@ -635,7 +652,7 @@ msgstr ""
"Regularnie aktualizuje twoj plik hosts.txt z rozproszonych źródeł lub "
"\"subskrypcji\"."
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:115
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:137
msgid ""
"In the default configuration, the address book is only subscribed to www."
"i2p2.i2p."
@ -643,7 +660,7 @@ msgstr ""
"W domyślnej konfiguracji, książka adresowa jest zapisana tylko do www.i2p2."
"i2p."
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:117
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:138
msgid ""
"Subscribing to additional sites is easy, just add them to your <a href="
"\"subscriptions\">subscriptions</a> file."
@ -651,7 +668,7 @@ msgstr ""
"Zapisywanie się do innych witryn jest proste, wystarczy dodać je do pliku "
"&lt;a href=\"subscriptions.jsp\"&gt;subskrypcje&lt;/a&gt;."
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:119
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:140
msgid ""
"For more information on naming in I2P, see <a href=\"http://www.i2p2.i2p/"
"naming.html\">the overview on www.i2p2.i2p</a>."
@ -659,11 +676,11 @@ msgstr ""
"Aby uzyskać więcej informacji na temat nazewnictwa w I2P, zobacz <a href="
"\"http://www.i2p2.i2p/naming.html\">przegląd www.i2p2.i2p</a> ."
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:121
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:142
msgid "How does the addressbook application work?"
msgstr "Jak działa aplikacja książki adresowej?"
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:123
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:144
msgid ""
"The addressbook application regularly polls your subscriptions and merges "
"their content into your \"router\" address book."
@ -671,7 +688,7 @@ msgstr ""
"Aplikacja książki adresowej regularnie pobiera twoje subskrypcje i łączy ich "
"zawartość w twoja książkę adresowa \"routera\"."
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:125
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:145
msgid ""
"Then it merges your \"master\" address book into the router address book as "
"well."
@ -679,7 +696,7 @@ msgstr ""
"Poźniej, łączy też twoją \"główną\" książke adresową do książki adresowej "
"routera."
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:127
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:146
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 eepsite."
@ -688,7 +705,7 @@ msgstr ""
"\"opublikowanej\" książki adresowej, która będzie publicznie dostępna jeżeli "
"masz swoją stronę eepsite."
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:129
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:148
msgid ""
"The router also uses a private address book (not shown in the picture), "
"which is not merged or published."
@ -696,7 +713,7 @@ msgstr ""
"Router używa też prywatnej książki adresowej (nie pokazanej na obrazku), "
"która nie jest łączona lub publikowana"
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:131
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:149
msgid ""
"Hosts in the private address book can be accessed by you but their addresses "
"are never distributed to others."
@ -704,7 +721,7 @@ msgstr ""
"Nazwy hostów w prywatnej książce adresowej mogą być dostępne dla ciebie ale "
"ich adresy nie są nigdy rozpowszechniane dla innych."
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:133
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:150
msgid ""
"The private address book can also be used for aliases of hosts in your other "
"address books."
@ -712,25 +729,25 @@ msgstr ""
"Prywatna książka adresowa może być też użyta dla aliasów nazw hostów w "
"twoich innych książkach adresowych."
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:102
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:111
msgid "subscriptions"
msgstr "subskrypcje"
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:134
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:147
msgid "The subscription file contains a list of i2p URLs."
msgstr "Plik subskrypcji zawiera listę URLów i2p."
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:136
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:148
msgid ""
"The addressbook application regularly checks this list for new eepsites."
msgstr ""
"Aplikacja książki adresowej regularnie sprawdza te listę dla nowych eepsites."
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:138
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:149
msgid "Those URLs refer to published hosts.txt files."
msgstr "Te URL odnoszą się do opublikowanych plików hosts.txt."
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:140
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:150
msgid ""
"The default subscription is the hosts.txt from www.i2p2.i2p, which is "
"updated infrequently."
@ -738,7 +755,7 @@ msgstr ""
"Domyślna subskrypcja to hosts.txt z www.i2p2.i2p, która jest rzadko "
"aktualizowana."
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:142
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:151
msgid ""
"So it is a good idea to add additional subscriptions to sites that have the "
"latest addresses."
@ -746,6 +763,6 @@ msgstr ""
"Jest to więc dobry pomysł, aby dodać dodatkowe subskrypcje do stron, które "
"mają najnowsze adresy."
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:144
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:153
msgid "See the FAQ for a list of subscription URLs."
msgstr "Więcej w FAQ dla listy subskrypcji adresów URL."

View File

@ -81,7 +81,7 @@ msgstr[1] ""
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:206
#, java-format
msgid "Filtered list contains 1 entry."
msgid_plural "Fltered list contains {0} entries."
msgid_plural "Filtered list contains {0} entries."
msgstr[0] ""
msgstr[1] ""

View File

@ -79,7 +79,7 @@ msgstr[2] "{0} результатов для поиска внутри отфи
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:236
#, java-format
msgid "Filtered list contains 1 entry."
msgid_plural "Fltered list contains {0} entries."
msgid_plural "Filtered list contains {0} entries."
msgstr[0] "Отфильтрованный список содержит {0} запись."
msgstr[1] "Отфильтрованный список содержит {0} записи."
msgstr[2] "Отфильтрованный список содержит {0} записей."

View File

@ -84,7 +84,7 @@ msgstr[1] "{0} resultat för sökning i filtrerlistan ."
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:206
#, java-format
msgid "Filtered list contains 1 entry."
msgid_plural "Fltered list contains {0} entries."
msgid_plural "Filtered list contains {0} entries."
msgstr[0] "Filtrerlistan innehåller 1 post."
msgstr[1] "Filtrerlistan innehåller {0} poster."

File diff suppressed because it is too large Load Diff

View File

@ -79,7 +79,7 @@ msgstr[0] ""
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:236
#, java-format
msgid "Filtered list contains 1 entry."
msgid_plural "Fltered list contains {0} entries."
msgid_plural "Filtered list contains {0} entries."
msgstr[0] ""
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:241

Some files were not shown because too many files have changed in this diff Show More