forked from I2P_Developers/i2p.i2p
propagate from branch 'i2p.i2p.str4d.test' (head 190d9be59620f8c6f80e0cb2fc4d9fa839edbb4f)
to branch 'i2p.i2p' (head c884db74f90a9d1c33deca6e2fd2e29f6c1ac8fa)
This commit is contained in:
@ -197,6 +197,7 @@ Applications:
|
||||
- Guernsey and Isle of Man flags from the Open Clip Art Library, released into the public domain
|
||||
- All other flag icons: public domain, courtesy mjames@gmail.com http://www.famfamfam.com/
|
||||
Silk icons: See licenses/LICENSE-SilkIcons.txt
|
||||
FatCow icons: See licenses/LICENSE-FatCowIcons.txt
|
||||
|
||||
GeoIP Data:
|
||||
Copyright (c) 2008 MaxMind, Inc. All Rights Reserved.
|
||||
@ -206,6 +207,10 @@ Applications:
|
||||
"Man with hat over face" & related images licensed under a Creative Commons 2.0 license.
|
||||
Original photos by Florian Kuhlmann. http://www.flickr.com/photos/floriankuhlmann/3117758155
|
||||
|
||||
I2PSnark light theme:
|
||||
"Creative Commons Cat" licensed under a Creative Commons Attribution 3.0 Unported License.
|
||||
Original photo by Boaz Arad. http://www.luxphile.com/2011/01/creative-commons-cat.html
|
||||
|
||||
SAM:
|
||||
Public domain.
|
||||
|
||||
|
@ -115,7 +115,6 @@ import net.i2p.util.SimpleTimer2;
|
||||
*/
|
||||
public class BOB {
|
||||
|
||||
private final static Log _log = new Log(BOB.class);
|
||||
public final static String PROP_CONFIG_LOCATION = "BOB.config";
|
||||
public final static String PROP_BOB_PORT = "BOB.port";
|
||||
public final static String PROP_BOB_HOST = "BOB.host";
|
||||
@ -137,7 +136,7 @@ public class BOB {
|
||||
*/
|
||||
public static void info(String arg) {
|
||||
System.out.println("INFO:" + arg);
|
||||
_log.info(arg);
|
||||
(new Log(BOB.class)).info(arg);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -147,7 +146,7 @@ public class BOB {
|
||||
*/
|
||||
public static void warn(String arg) {
|
||||
System.out.println("WARNING:" + arg);
|
||||
_log.warn(arg);
|
||||
(new Log(BOB.class)).warn(arg);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -157,7 +156,7 @@ public class BOB {
|
||||
*/
|
||||
public static void error(String arg) {
|
||||
System.out.println("ERROR: " + arg);
|
||||
_log.error(arg);
|
||||
(new Log(BOB.class)).error(arg);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -185,6 +184,7 @@ public class BOB {
|
||||
SimpleTimer2 Y2 = SimpleTimer2.getInstance();
|
||||
i = Y1.hashCode();
|
||||
i = Y2.hashCode();
|
||||
Log _log = new Log(BOB.class);
|
||||
try {
|
||||
{
|
||||
File cfg = new File(configLocation);
|
||||
@ -260,6 +260,7 @@ public class BOB {
|
||||
|
||||
i = 0;
|
||||
boolean g = false;
|
||||
spin.set(true);
|
||||
try {
|
||||
info("BOB is now running.");
|
||||
listener = new ServerSocket(Integer.parseInt(props.getProperty(PROP_BOB_PORT)), 10, InetAddress.getByName(props.getProperty(PROP_BOB_HOST)));
|
||||
|
@ -54,7 +54,7 @@ public class DoCMDS implements Runnable {
|
||||
|
||||
// FIX ME
|
||||
// I need a better way to do versioning, but this will do for now.
|
||||
public static final String BMAJ = "00", BMIN = "00", BREV = "0F", BEXT = "";
|
||||
public static final String BMAJ = "00", BMIN = "00", BREV = "10", BEXT = "";
|
||||
public static final String BOBversion = BMAJ + "." + BMIN + "." + BREV + BEXT;
|
||||
private Socket server;
|
||||
private Properties props;
|
||||
|
@ -67,7 +67,7 @@ public class ConnectionAcceptor implements Runnable
|
||||
thread = new I2PAppThread(this, "I2PSnark acceptor");
|
||||
thread.setDaemon(true);
|
||||
thread.start();
|
||||
SimpleScheduler.getInstance().addPeriodicEvent(new Cleaner(), BAD_CLEAN_INTERVAL);
|
||||
_util.getContext().simpleScheduler().addPeriodicEvent(new Cleaner(), BAD_CLEAN_INTERVAL);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -82,7 +82,7 @@ public class ConnectionAcceptor implements Runnable
|
||||
thread = new I2PAppThread(this, "I2PSnark acceptor");
|
||||
thread.setDaemon(true);
|
||||
thread.start();
|
||||
SimpleScheduler.getInstance().addPeriodicEvent(new Cleaner(), BAD_CLEAN_INTERVAL);
|
||||
_util.getContext().simpleScheduler().addPeriodicEvent(new Cleaner(), BAD_CLEAN_INTERVAL);
|
||||
}
|
||||
|
||||
public void halt()
|
||||
@ -146,7 +146,7 @@ public class ConnectionAcceptor implements Runnable
|
||||
}
|
||||
} else {
|
||||
if (socket.getPeerDestination().equals(_util.getMyDestination())) {
|
||||
_util.debug("Incoming connection from myself", Snark.ERROR);
|
||||
_log.error("Incoming connection from myself");
|
||||
try { socket.close(); } catch (IOException ioe) {}
|
||||
continue;
|
||||
}
|
||||
@ -163,13 +163,13 @@ public class ConnectionAcceptor implements Runnable
|
||||
catch (I2PException ioe)
|
||||
{
|
||||
if (!socketChanged) {
|
||||
_util.debug("Error while accepting: " + ioe, Snark.ERROR);
|
||||
_log.error("Error while accepting", ioe);
|
||||
stop = true;
|
||||
}
|
||||
}
|
||||
catch (IOException ioe)
|
||||
{
|
||||
_util.debug("Error while accepting: " + ioe, Snark.ERROR);
|
||||
_log.error("Error while accepting", ioe);
|
||||
stop = true;
|
||||
}
|
||||
// catch oom?
|
||||
|
@ -309,7 +309,7 @@ public class I2PSnarkUtil {
|
||||
return rv;
|
||||
} catch (I2PException ie) {
|
||||
_shitlist.add(dest);
|
||||
SimpleScheduler.getInstance().addEvent(new Unshitlist(dest), 10*60*1000);
|
||||
_context.simpleScheduler().addEvent(new Unshitlist(dest), 10*60*1000);
|
||||
throw new IOException("Unable to reach the peer " + peer + ": " + ie.getMessage());
|
||||
}
|
||||
}
|
||||
@ -538,40 +538,6 @@ public class I2PSnarkUtil {
|
||||
return buf.toString();
|
||||
}
|
||||
|
||||
/** hook between snark's logger and an i2p log */
|
||||
void debug(String msg, int snarkDebugLevel) {
|
||||
debug(msg, snarkDebugLevel, null);
|
||||
}
|
||||
void debug(String msg, int snarkDebugLevel, Throwable t) {
|
||||
if (t instanceof OutOfMemoryError) {
|
||||
try { Thread.sleep(100); } catch (InterruptedException ie) {}
|
||||
try {
|
||||
t.printStackTrace();
|
||||
} catch (Throwable tt) {}
|
||||
try {
|
||||
System.out.println("OOM thread: " + Thread.currentThread().getName());
|
||||
} catch (Throwable tt) {}
|
||||
}
|
||||
switch (snarkDebugLevel) {
|
||||
case 0:
|
||||
case 1:
|
||||
_log.error(msg, t);
|
||||
break;
|
||||
case 2:
|
||||
_log.warn(msg, t);
|
||||
break;
|
||||
case 3:
|
||||
case 4:
|
||||
_log.info(msg, t);
|
||||
break;
|
||||
case 5:
|
||||
case 6:
|
||||
default:
|
||||
_log.debug(msg, t);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private static final String BUNDLE_NAME = "org.klomp.snark.web.messages";
|
||||
|
||||
/** lang in routerconsole.lang property, else current locale */
|
||||
|
@ -133,7 +133,7 @@ class PeerCheckerTask implements Runnable
|
||||
// Check if it still wants pieces from us.
|
||||
if (!peer.isInterested())
|
||||
{
|
||||
if (_log.shouldLog(Log.INFO))
|
||||
if (_log.shouldLog(Log.DEBUG))
|
||||
_log.debug("Choke uninterested peer: " + peer);
|
||||
peer.setChoking(true);
|
||||
uploaders--;
|
||||
@ -144,7 +144,7 @@ class PeerCheckerTask implements Runnable
|
||||
}
|
||||
else if (overBWLimitChoke)
|
||||
{
|
||||
if (_log.shouldLog(Log.INFO))
|
||||
if (_log.shouldLog(Log.DEBUG))
|
||||
_log.debug("BW limit (" + upload + "/" + uploaded + "), choke peer: " + peer);
|
||||
peer.setChoking(true);
|
||||
uploaders--;
|
||||
|
@ -160,7 +160,7 @@ class PeerCoordinator implements PeerListener
|
||||
// Install a timer to check the uploaders.
|
||||
// Randomize the first start time so multiple tasks are spread out,
|
||||
// this will help the behavior with global limits
|
||||
timer = new CheckEvent(new PeerCheckerTask(_util, this));
|
||||
timer = new CheckEvent(_util.getContext(), new PeerCheckerTask(_util, this));
|
||||
timer.schedule((CHECK_PERIOD / 2) + _random.nextInt((int) CHECK_PERIOD));
|
||||
}
|
||||
|
||||
@ -170,8 +170,8 @@ class PeerCoordinator implements PeerListener
|
||||
*/
|
||||
private static class CheckEvent extends SimpleTimer2.TimedEvent {
|
||||
private final PeerCheckerTask _task;
|
||||
public CheckEvent(PeerCheckerTask task) {
|
||||
super(SimpleTimer2.getInstance());
|
||||
public CheckEvent(I2PAppContext ctx, PeerCheckerTask task) {
|
||||
super(ctx.simpleTimer2());
|
||||
_task = task;
|
||||
}
|
||||
public void timeReached() {
|
||||
|
@ -35,6 +35,7 @@ import net.i2p.I2PAppContext;
|
||||
import net.i2p.client.streaming.I2PServerSocket;
|
||||
import net.i2p.data.Destination;
|
||||
import net.i2p.util.I2PThread;
|
||||
import net.i2p.util.Log;
|
||||
|
||||
/**
|
||||
* Main Snark program startup class.
|
||||
@ -47,29 +48,6 @@ public class Snark
|
||||
private final static int MIN_PORT = 6881;
|
||||
private final static int MAX_PORT = 6889;
|
||||
|
||||
// Error messages (non-fatal)
|
||||
public final static int ERROR = 1;
|
||||
|
||||
// Warning messages
|
||||
public final static int WARNING = 2;
|
||||
|
||||
// Notices (peer level)
|
||||
public final static int NOTICE = 3;
|
||||
|
||||
// Info messages (protocol policy level)
|
||||
public final static int INFO = 4;
|
||||
|
||||
// Debug info (protocol level)
|
||||
public final static int DEBUG = 5;
|
||||
|
||||
// Very low level stuff (network level)
|
||||
public final static int ALL = 6;
|
||||
|
||||
/**
|
||||
* What level of debug info to show.
|
||||
*/
|
||||
//public static int debug = NOTICE;
|
||||
|
||||
// Whether or not to ask the user for commands while sharing
|
||||
//private static boolean command_interpreter = true;
|
||||
|
||||
@ -249,12 +227,13 @@ public class Snark
|
||||
private TrackerClient trackerclient;
|
||||
private String rootDataDir = ".";
|
||||
private final CompleteListener completeListener;
|
||||
private boolean stopped;
|
||||
private boolean starting;
|
||||
private volatile boolean stopped;
|
||||
private volatile boolean starting;
|
||||
private byte[] id;
|
||||
private byte[] infoHash;
|
||||
private String additionalTrackerURL;
|
||||
private final I2PSnarkUtil _util;
|
||||
private final Log _log;
|
||||
private final PeerCoordinatorSet _peerCoordinatorSet;
|
||||
private String trackerProblems;
|
||||
private int trackerSeenPeers;
|
||||
@ -308,6 +287,7 @@ public class Snark
|
||||
|
||||
completeListener = complistener;
|
||||
_util = util;
|
||||
_log = util.getContext().logManager().getLog(Snark.class);
|
||||
_peerCoordinatorSet = peerCoordinatorSet;
|
||||
acceptor = connectionAcceptor;
|
||||
|
||||
@ -318,7 +298,8 @@ public class Snark
|
||||
activity = "Network setup";
|
||||
|
||||
id = generateID();
|
||||
debug("My peer id: " + PeerID.idencode(id), Snark.INFO);
|
||||
if (_log.shouldLog(Log.INFO))
|
||||
_log.info("My peer id: " + PeerID.idencode(id));
|
||||
|
||||
/*
|
||||
* Don't start a tunnel if the torrent isn't going to be started.
|
||||
@ -403,7 +384,8 @@ public class Snark
|
||||
try { in.close(); } catch (IOException ioe) {}
|
||||
}
|
||||
|
||||
debug(meta.toString(), INFO);
|
||||
if (_log.shouldLog(Log.INFO))
|
||||
_log.info(meta.toString());
|
||||
|
||||
// When the metainfo torrent was created from an existing file/dir
|
||||
// it already exists.
|
||||
@ -464,6 +446,7 @@ public class Snark
|
||||
{
|
||||
completeListener = complistener;
|
||||
_util = util;
|
||||
_log = util.getContext().logManager().getLog(Snark.class);
|
||||
_peerCoordinatorSet = peerCoordinatorSet;
|
||||
acceptor = connectionAcceptor;
|
||||
this.torrent = torrent;
|
||||
@ -531,9 +514,11 @@ public class Snark
|
||||
fatal("Unable to listen for I2P connections");
|
||||
else {
|
||||
Destination d = serversocket.getManager().getSession().getMyDestination();
|
||||
debug("Listening on I2P destination " + d.toBase64() + " / " + d.calculateHash().toBase64(), NOTICE);
|
||||
if (_log.shouldLog(Log.INFO))
|
||||
_log.info("Listening on I2P destination " + d.toBase64() + " / " + d.calculateHash().toBase64());
|
||||
}
|
||||
debug("Starting PeerCoordinator, ConnectionAcceptor, and TrackerClient", NOTICE);
|
||||
if (_log.shouldLog(Log.INFO))
|
||||
_log.info("Starting PeerCoordinator, ConnectionAcceptor, and TrackerClient");
|
||||
activity = "Collecting pieces";
|
||||
coordinator = new PeerCoordinator(_util, id, infoHash, meta, storage, this, this);
|
||||
if (_peerCoordinatorSet != null) {
|
||||
@ -573,7 +558,8 @@ public class Snark
|
||||
}
|
||||
trackerclient.start();
|
||||
} else {
|
||||
debug("NOT starting TrackerClient???", NOTICE);
|
||||
if (_log.shouldLog(Log.INFO))
|
||||
_log.info("NOT starting TrackerClient???");
|
||||
}
|
||||
}
|
||||
|
||||
@ -1017,22 +1003,13 @@ public class Snark
|
||||
private static void usage()
|
||||
{
|
||||
System.out.println
|
||||
("Usage: snark [--debug [level]] [--no-commands] [--port <port>]");
|
||||
("Usage: snark [--no-commands] [--port <port>]");
|
||||
System.out.println
|
||||
(" [--eepproxy hostname portnum]");
|
||||
System.out.println
|
||||
(" [--i2cp routerHost routerPort ['name=val name=val name=val']]");
|
||||
System.out.println
|
||||
(" (<url>|<file>)");
|
||||
System.out.println
|
||||
(" --debug\tShows some extra info and stacktraces");
|
||||
System.out.println
|
||||
(" level\tHow much debug details to show");
|
||||
System.out.println
|
||||
(" \t(defaults to "
|
||||
+ NOTICE + ", with --debug to "
|
||||
+ INFO + ", highest level is "
|
||||
+ ALL + ").");
|
||||
System.out.println
|
||||
(" --no-commands\tDon't read interactive commands or show usage info.");
|
||||
System.out.println
|
||||
@ -1071,7 +1048,7 @@ public class Snark
|
||||
*/
|
||||
private void fatal(String s, Throwable t)
|
||||
{
|
||||
_util.debug(s, ERROR, t);
|
||||
_log.error(s, t);
|
||||
//System.err.println("snark: " + s + ((t == null) ? "" : (": " + t)));
|
||||
//if (debug >= INFO && t != null)
|
||||
// t.printStackTrace();
|
||||
@ -1083,14 +1060,6 @@ public class Snark
|
||||
throw new RuntimeException(s, t);
|
||||
}
|
||||
|
||||
/**
|
||||
* Show debug info if debug is true.
|
||||
*/
|
||||
private void debug(String s, int level)
|
||||
{
|
||||
_util.debug(s, level, null);
|
||||
}
|
||||
|
||||
/** CoordinatorListener - this does nothing */
|
||||
public void peerChange(PeerCoordinator coordinator, Peer peer)
|
||||
{
|
||||
@ -1168,9 +1137,10 @@ public class Snark
|
||||
// + " pieces: ");
|
||||
checking = true;
|
||||
}
|
||||
if (!checking)
|
||||
debug("Got " + (checked ? "" : "BAD ") + "piece: " + num,
|
||||
Snark.INFO);
|
||||
if (!checking) {
|
||||
if (_log.shouldLog(Log.INFO))
|
||||
_log.info("Got " + (checked ? "" : "BAD ") + "piece: " + num);
|
||||
}
|
||||
}
|
||||
|
||||
public void storageAllChecked(Storage storage)
|
||||
@ -1186,7 +1156,8 @@ public class Snark
|
||||
|
||||
public void storageCompleted(Storage storage)
|
||||
{
|
||||
debug("Completely received " + torrent, Snark.INFO);
|
||||
if (_log.shouldLog(Log.INFO))
|
||||
_log.info("Completely received " + torrent);
|
||||
//storage.close();
|
||||
//System.out.println("Completely received: " + torrent);
|
||||
if (completeListener != null)
|
||||
@ -1259,7 +1230,8 @@ public class Snark
|
||||
total += c.getCurrentUploadRate();
|
||||
}
|
||||
long limit = 1024l * _util.getMaxUpBW();
|
||||
debug("Total up bw: " + total + " Limit: " + limit, Snark.NOTICE);
|
||||
if (_log.shouldLog(Log.INFO))
|
||||
_log.info("Total up bw: " + total + " Limit: " + limit);
|
||||
return total > limit;
|
||||
}
|
||||
|
||||
|
@ -1728,7 +1728,7 @@ public class SnarkManager implements Snark.CompleteListener {
|
||||
if (count > 0) {
|
||||
// Schedule this even for final shutdown, as there's a chance
|
||||
// that it's just this webapp that is stopping.
|
||||
SimpleScheduler.getInstance().addEvent(new Disconnector(), 60*1000);
|
||||
_context.simpleScheduler().addEvent(new Disconnector(), 60*1000);
|
||||
addMessage(_("Closing I2P tunnel after notifying trackers."));
|
||||
if (finalShutdown) {
|
||||
try { Thread.sleep(5*1000); } catch (InterruptedException ie) {}
|
||||
|
@ -34,6 +34,7 @@ import java.util.StringTokenizer;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
import net.i2p.crypto.SHA1;
|
||||
import net.i2p.util.Log;
|
||||
import net.i2p.util.SecureFile;
|
||||
|
||||
/**
|
||||
@ -55,6 +56,7 @@ public class Storage
|
||||
|
||||
private final StorageListener listener;
|
||||
private final I2PSnarkUtil _util;
|
||||
private final Log _log;
|
||||
|
||||
private /* FIXME final FIXME */ BitField bitfield; // BitField to represent the pieces
|
||||
private int needed; // Number of pieces needed
|
||||
@ -87,6 +89,7 @@ public class Storage
|
||||
throws IOException
|
||||
{
|
||||
_util = util;
|
||||
_log = util.getContext().logManager().getLog(Storage.class);
|
||||
this.metainfo = metainfo;
|
||||
this.listener = listener;
|
||||
needed = metainfo.getPieces();
|
||||
@ -110,6 +113,7 @@ public class Storage
|
||||
throws IOException
|
||||
{
|
||||
_util = util;
|
||||
_log = util.getContext().logManager().getLog(Storage.class);
|
||||
this.listener = listener;
|
||||
// Create names, rafs and lengths arrays.
|
||||
getFiles(baseFile);
|
||||
@ -232,8 +236,9 @@ public class Storage
|
||||
File[] files = f.listFiles();
|
||||
if (files == null)
|
||||
{
|
||||
_util.debug("WARNING: Skipping '" + f
|
||||
+ "' not a normal file.", Snark.WARNING);
|
||||
if (_log.shouldLog(Log.WARN))
|
||||
_log.warn("WARNING: Skipping '" + f
|
||||
+ "' not a normal file.");
|
||||
return;
|
||||
}
|
||||
for (int i = 0; i < files.length; i++)
|
||||
@ -457,7 +462,8 @@ public class Storage
|
||||
if (files == null)
|
||||
{
|
||||
// Create base as file.
|
||||
_util.debug("Creating/Checking file: " + base, Snark.NOTICE);
|
||||
if (_log.shouldLog(Log.INFO))
|
||||
_log.info("Creating/Checking file: " + base);
|
||||
if (!base.createNewFile() && !base.exists())
|
||||
throw new IOException("Could not create file " + base);
|
||||
|
||||
@ -481,7 +487,8 @@ public class Storage
|
||||
else
|
||||
{
|
||||
// Create base as dir.
|
||||
_util.debug("Creating/Checking directory: " + base, Snark.NOTICE);
|
||||
if (_log.shouldLog(Log.INFO))
|
||||
_log.info("Creating/Checking directory: " + base);
|
||||
if (!base.mkdir() && !base.isDirectory())
|
||||
throw new IOException("Could not create directory " + base);
|
||||
|
||||
@ -540,19 +547,22 @@ public class Storage
|
||||
bitfield = savedBitField;
|
||||
needed = metainfo.getPieces() - bitfield.count();
|
||||
_probablyComplete = complete();
|
||||
_util.debug("Found saved state and files unchanged, skipping check", Snark.NOTICE);
|
||||
if (_log.shouldLog(Log.INFO))
|
||||
_log.info("Found saved state and files unchanged, skipping check");
|
||||
} else {
|
||||
// the following sets the needed variable
|
||||
changed = true;
|
||||
checkCreateFiles(false);
|
||||
}
|
||||
if (complete()) {
|
||||
_util.debug("Torrent is complete", Snark.NOTICE);
|
||||
if (_log.shouldLog(Log.INFO))
|
||||
_log.info("Torrent is complete");
|
||||
} else {
|
||||
// fixme saved priorities
|
||||
if (files != null)
|
||||
priorities = new int[files.size()];
|
||||
_util.debug("Still need " + needed + " out of " + metainfo.getPieces() + " pieces", Snark.NOTICE);
|
||||
if (_log.shouldLog(Log.INFO))
|
||||
_log.info("Still need " + needed + " out of " + metainfo.getPieces() + " pieces");
|
||||
}
|
||||
}
|
||||
|
||||
@ -731,7 +741,7 @@ public class Storage
|
||||
String msg = "File '" + names[i] + "' exists, but has wrong length (expected " +
|
||||
lengths[i] + " but found " + length + ") - repairing corruption";
|
||||
SnarkManager.instance().addMessage(msg);
|
||||
_util.debug(msg, Snark.ERROR);
|
||||
_log.error(msg);
|
||||
changed = true;
|
||||
resume = true;
|
||||
_probablyComplete = false; // to force RW
|
||||
@ -844,7 +854,8 @@ public class Storage
|
||||
*/
|
||||
private void balloonFile(int nr) throws IOException
|
||||
{
|
||||
_util.debug("Ballooning " + nr + ": " + RAFfile[nr], Snark.INFO);
|
||||
if (_log.shouldLog(Log.INFO))
|
||||
_log.info("Ballooning " + nr + ": " + RAFfile[nr]);
|
||||
long remaining = lengths[nr];
|
||||
final int ZEROBLOCKSIZE = (int) Math.min(remaining, 32*1024);
|
||||
byte[] zeros = new byte[ZEROBLOCKSIZE];
|
||||
@ -875,7 +886,7 @@ public class Storage
|
||||
closeRAF(i);
|
||||
}
|
||||
} catch (IOException ioe) {
|
||||
_util.debug("Error closing " + RAFfile[i], Snark.ERROR, ioe);
|
||||
_log.error("Error closing " + RAFfile[i], ioe);
|
||||
// gobble gobble
|
||||
}
|
||||
}
|
||||
@ -896,7 +907,8 @@ public class Storage
|
||||
try {
|
||||
bs = new byte[len];
|
||||
} catch (OutOfMemoryError oom) {
|
||||
_util.debug("Out of memory, can't honor request for piece " + piece, Snark.WARNING, oom);
|
||||
if (_log.shouldLog(Log.WARN))
|
||||
_log.warn("Out of memory, can't honor request for piece " + piece, oom);
|
||||
return null;
|
||||
}
|
||||
getUncheckedPiece(piece, bs, off, len);
|
||||
@ -1000,8 +1012,9 @@ public class Storage
|
||||
if (needed > 0) {
|
||||
if (listener != null)
|
||||
listener.setWantedPieces(this);
|
||||
_util.debug("WARNING: Not really done, missing " + needed
|
||||
+ " pieces", Snark.WARNING);
|
||||
if (_log.shouldLog(Log.WARN))
|
||||
_log.warn("WARNING: Not really done, missing " + needed
|
||||
+ " pieces");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -62,7 +62,7 @@ import net.i2p.util.SimpleTimer2;
|
||||
* @author Mark Wielaard (mark@klomp.org)
|
||||
*/
|
||||
public class TrackerClient implements Runnable {
|
||||
private final Log _log = I2PAppContext.getGlobalContext().logManager().getLog(TrackerClient.class);
|
||||
private final Log _log;
|
||||
private static final String NO_EVENT = "";
|
||||
private static final String STARTED_EVENT = "started";
|
||||
private static final String COMPLETED_EVENT = "completed";
|
||||
@ -116,6 +116,7 @@ public class TrackerClient implements Runnable {
|
||||
String id = urlencode(snark.getID());
|
||||
_threadName = "TrackerClient " + id.substring(id.length() - 12);
|
||||
_util = util;
|
||||
_log = util.getContext().logManager().getLog(TrackerClient.class);
|
||||
this.meta = meta;
|
||||
this.additionalTrackerURL = additionalTrackerURL;
|
||||
this.coordinator = coordinator;
|
||||
@ -183,7 +184,7 @@ public class TrackerClient implements Runnable {
|
||||
|
||||
private class Runner extends SimpleTimer2.TimedEvent {
|
||||
public Runner(long delay) {
|
||||
super(SimpleTimer2.getInstance(), delay);
|
||||
super(_util.getContext().simpleTimer2(), delay);
|
||||
}
|
||||
|
||||
public void timeReached() {
|
||||
@ -397,9 +398,10 @@ public class TrackerClient implements Runnable {
|
||||
catch (IOException ioe)
|
||||
{
|
||||
// Probably not fatal (if it doesn't last to long...)
|
||||
_util.debug
|
||||
if (_log.shouldLog(Log.WARN))
|
||||
_log.warn
|
||||
("WARNING: Could not contact tracker at '"
|
||||
+ tr.announce + "': " + ioe, Snark.WARNING);
|
||||
+ tr.announce + "': " + ioe);
|
||||
tr.trackerProblems = ioe.getMessage();
|
||||
// don't show secondary tracker problems to the user
|
||||
if (tr.isPrimary)
|
||||
@ -421,8 +423,9 @@ public class TrackerClient implements Runnable {
|
||||
}
|
||||
}
|
||||
} else {
|
||||
_util.debug("Not announcing to " + tr.announce + " last announce was " +
|
||||
new Date(tr.lastRequestTime) + " interval is " + DataHelper.formatDuration(tr.interval), Snark.INFO);
|
||||
if (_log.shouldLog(Log.INFO))
|
||||
_log.info("Not announcing to " + tr.announce + " last announce was " +
|
||||
new Date(tr.lastRequestTime) + " interval is " + DataHelper.formatDuration(tr.interval));
|
||||
}
|
||||
if ((!tr.stop) && maxSeenPeers < tr.seenPeers)
|
||||
maxSeenPeers = tr.seenPeers;
|
||||
@ -432,7 +435,8 @@ public class TrackerClient implements Runnable {
|
||||
if (coordinator.needOutboundPeers() && (meta == null || !meta.isPrivate()) && !stop) {
|
||||
Set<PeerID> pids = coordinator.getPEXPeers();
|
||||
if (!pids.isEmpty()) {
|
||||
_util.debug("Got " + pids.size() + " from PEX", Snark.INFO);
|
||||
if (_log.shouldLog(Log.INFO))
|
||||
_log.info("Got " + pids.size() + " from PEX");
|
||||
List<Peer> peers = new ArrayList(pids.size());
|
||||
for (PeerID pID : pids) {
|
||||
peers.add(new Peer(pID, snark.getID(), snark.getInfoHash(), snark.getMetaInfo()));
|
||||
@ -448,7 +452,8 @@ public class TrackerClient implements Runnable {
|
||||
}
|
||||
}
|
||||
} else {
|
||||
_util.debug("Not getting PEX peers", Snark.INFO);
|
||||
if (_log.shouldLog(Log.INFO))
|
||||
_log.info("Not getting PEX peers");
|
||||
}
|
||||
|
||||
// Get peers from DHT
|
||||
@ -460,12 +465,14 @@ public class TrackerClient implements Runnable {
|
||||
else
|
||||
numwant = _util.getMaxConnections();
|
||||
List<Hash> hashes = _util.getDHT().getPeers(snark.getInfoHash(), numwant, 2*60*1000);
|
||||
_util.debug("Got " + hashes + " from DHT", Snark.INFO);
|
||||
if (_log.shouldLog(Log.INFO))
|
||||
_log.info("Got " + hashes + " from DHT");
|
||||
// announce ourselves while the token is still good
|
||||
// FIXME this needs to be in its own thread
|
||||
if (!stop) {
|
||||
int good = _util.getDHT().announce(snark.getInfoHash(), 8, 5*60*1000);
|
||||
_util.debug("Sent " + good + " good announces to DHT", Snark.INFO);
|
||||
if (_log.shouldLog(Log.INFO))
|
||||
_log.info("Sent " + good + " good announces to DHT");
|
||||
}
|
||||
|
||||
// now try these peers
|
||||
@ -486,7 +493,8 @@ public class TrackerClient implements Runnable {
|
||||
}
|
||||
}
|
||||
} else {
|
||||
_util.debug("Not getting DHT peers", Snark.INFO);
|
||||
if (_log.shouldLog(Log.INFO))
|
||||
_log.info("Not getting DHT peers");
|
||||
}
|
||||
|
||||
|
||||
@ -497,7 +505,8 @@ public class TrackerClient implements Runnable {
|
||||
return;
|
||||
|
||||
if (!runStarted)
|
||||
_util.debug(" Retrying in one minute...", Snark.DEBUG);
|
||||
if (_log.shouldLog(Log.DEBUG))
|
||||
_log.debug(" Retrying in one minute...");
|
||||
|
||||
try {
|
||||
// Sleep some minutes...
|
||||
@ -526,7 +535,7 @@ public class TrackerClient implements Runnable {
|
||||
} // try
|
||||
catch (Throwable t)
|
||||
{
|
||||
_util.debug("TrackerClient: " + t, Snark.ERROR, t);
|
||||
_log.error("TrackerClient: " + t, t);
|
||||
if (t instanceof OutOfMemoryError)
|
||||
throw (OutOfMemoryError)t;
|
||||
}
|
||||
@ -619,7 +628,8 @@ public class TrackerClient implements Runnable {
|
||||
else
|
||||
buf.append(_util.getMaxConnections());
|
||||
String s = buf.toString();
|
||||
_util.debug("Sending TrackerClient request: " + s, Snark.INFO);
|
||||
if (_log.shouldLog(Log.INFO))
|
||||
_log.info("Sending TrackerClient request: " + s);
|
||||
|
||||
tr.lastRequestTime = System.currentTimeMillis();
|
||||
// Don't wait for a response to stopped when shutting down
|
||||
@ -635,7 +645,8 @@ public class TrackerClient implements Runnable {
|
||||
|
||||
TrackerInfo info = new TrackerInfo(in, snark.getID(),
|
||||
snark.getInfoHash(), snark.getMetaInfo());
|
||||
_util.debug("TrackerClient response: " + info, Snark.INFO);
|
||||
if (_log.shouldLog(Log.INFO))
|
||||
_log.info("TrackerClient response: " + info);
|
||||
|
||||
String failure = info.getFailureReason();
|
||||
if (failure != null)
|
||||
|
@ -232,7 +232,7 @@ public class I2PSnarkServlet extends DefaultServlet {
|
||||
//out.write("<meta http-equiv=\"refresh\" content=\"" + delay + ";/i2psnark/" + peerString + "\">\n");
|
||||
out.write("<script src=\"/js/ajax.js\" type=\"text/javascript\"></script>\n" +
|
||||
"<script type=\"text/javascript\">\n" +
|
||||
"var failMessage = \"<div class=\\\"routerdown\\\"><b>" + _("Router is down") + "<\\/b></div>\";\n" +
|
||||
"var failMessage = \"<div class=\\\"routerdown\\\"><b>" + _("Router is down") + "<\\/b><\\/div>\";\n" +
|
||||
"function requestAjax1() { ajax(\"/i2psnark/.ajax/xhr1.html" + peerString + "\", \"mainsection\", " + (delay*1000) + "); }\n" +
|
||||
"function initAjax() { setTimeout(requestAjax1, " + (delay*1000) +"); }\n" +
|
||||
"</script>\n");
|
||||
@ -972,24 +972,24 @@ public class I2PSnarkServlet extends DefaultServlet {
|
||||
String statusString;
|
||||
if (err != null) {
|
||||
if (isRunning && curPeers > 0 && !showPeers)
|
||||
statusString = "<img border=\"0\" src=\"" + _imgPath + "trackererror.png\" title=\"" + err + "\"></td>" +
|
||||
statusString = "<img alt=\"\" border=\"0\" src=\"" + _imgPath + "trackererror.png\" title=\"" + err + "\"></td>" +
|
||||
"<td class=\"snarkTorrentStatus " + rowClass + "\">" + _("Tracker Error") +
|
||||
": <a href=\"" + uri + "?p=" + Base64.encode(snark.getInfoHash()) + "\">" +
|
||||
curPeers + thinsp(noThinsp) +
|
||||
ngettext("1 peer", "{0} peers", knownPeers) + "</a>";
|
||||
else if (isRunning)
|
||||
statusString = "<img border=\"0\" src=\"" + _imgPath + "trackererror.png\" title=\"" + err + "\"></td>" +
|
||||
statusString = "<img alt=\"\" border=\"0\" src=\"" + _imgPath + "trackererror.png\" title=\"" + err + "\"></td>" +
|
||||
"<td class=\"snarkTorrentStatus " + rowClass + "\">" + _("Tracker Error") +
|
||||
": " + curPeers + thinsp(noThinsp) +
|
||||
ngettext("1 peer", "{0} peers", knownPeers);
|
||||
else {
|
||||
if (err.length() > MAX_DISPLAYED_ERROR_LENGTH)
|
||||
err = err.substring(0, MAX_DISPLAYED_ERROR_LENGTH) + "…";
|
||||
statusString = "<img border=\"0\" src=\"" + _imgPath + "trackererror.png\" title=\"" + err + "\"></td>" +
|
||||
statusString = "<img alt=\"\" border=\"0\" src=\"" + _imgPath + "trackererror.png\" title=\"" + err + "\"></td>" +
|
||||
"<td class=\"snarkTorrentStatus " + rowClass + "\">" + _("Tracker Error");
|
||||
}
|
||||
} else if (snark.isStarting()) {
|
||||
statusString = "<img border=\"0\" src=\"" + _imgPath + "stalled.png\" title=\"" + _("Starting") + "\"></td>" +
|
||||
statusString = "<img alt=\"\" border=\"0\" src=\"" + _imgPath + "stalled.png\" title=\"" + _("Starting") + "\"></td>" +
|
||||
"<td class=\"snarkTorrentStatus " + rowClass + "\">" + _("Starting");
|
||||
} else if (remaining == 0 || needed == 0) { // < 0 means no meta size yet
|
||||
// partial complete or seeding
|
||||
@ -1005,52 +1005,52 @@ public class I2PSnarkServlet extends DefaultServlet {
|
||||
txt = _("Complete");
|
||||
}
|
||||
if (curPeers > 0 && !showPeers)
|
||||
statusString = "<img border=\"0\" src=\"" + _imgPath + img + ".png\" title=\"" + txt + "\"></td>" +
|
||||
statusString = "<img alt=\"\" border=\"0\" src=\"" + _imgPath + img + ".png\" title=\"" + txt + "\"></td>" +
|
||||
"<td class=\"snarkTorrentStatus " + rowClass + "\">" + txt +
|
||||
": <a href=\"" + uri + "?p=" + Base64.encode(snark.getInfoHash()) + "\">" +
|
||||
curPeers + thinsp(noThinsp) +
|
||||
ngettext("1 peer", "{0} peers", knownPeers) + "</a>";
|
||||
else
|
||||
statusString = "<img border=\"0\" src=\"" + _imgPath + img + ".png\" title=\"" + txt + "\"></td>" +
|
||||
statusString = "<img alt=\"\" border=\"0\" src=\"" + _imgPath + img + ".png\" title=\"" + txt + "\"></td>" +
|
||||
"<td class=\"snarkTorrentStatus " + rowClass + "\">" + txt +
|
||||
": " + curPeers + thinsp(noThinsp) +
|
||||
ngettext("1 peer", "{0} peers", knownPeers);
|
||||
} else {
|
||||
statusString = "<img border=\"0\" src=\"" + _imgPath + "complete.png\" title=\"" + _("Complete") + "\"></td>" +
|
||||
statusString = "<img alt=\"\" border=\"0\" src=\"" + _imgPath + "complete.png\" title=\"" + _("Complete") + "\"></td>" +
|
||||
"<td class=\"snarkTorrentStatus " + rowClass + "\">" + _("Complete");
|
||||
}
|
||||
} else {
|
||||
if (isRunning && curPeers > 0 && downBps > 0 && !showPeers)
|
||||
statusString = "<img border=\"0\" src=\"" + _imgPath + "downloading.png\" title=\"" + _("OK") + "\"></td>" +
|
||||
statusString = "<img alt=\"\" border=\"0\" src=\"" + _imgPath + "downloading.png\" title=\"" + _("OK") + "\"></td>" +
|
||||
"<td class=\"snarkTorrentStatus " + rowClass + "\">" + _("OK") +
|
||||
": <a href=\"" + uri + "?p=" + Base64.encode(snark.getInfoHash()) + "\">" +
|
||||
curPeers + thinsp(noThinsp) +
|
||||
ngettext("1 peer", "{0} peers", knownPeers) + "</a>";
|
||||
else if (isRunning && curPeers > 0 && downBps > 0)
|
||||
statusString = "<img border=\"0\" src=\"" + _imgPath + "downloading.png\" title=\"" + _("OK") + "\"></td>" +
|
||||
statusString = "<img alt=\"\" border=\"0\" src=\"" + _imgPath + "downloading.png\" title=\"" + _("OK") + "\"></td>" +
|
||||
"<td class=\"snarkTorrentStatus " + rowClass + "\">" + _("OK") +
|
||||
": " + curPeers + thinsp(noThinsp) +
|
||||
ngettext("1 peer", "{0} peers", knownPeers);
|
||||
else if (isRunning && curPeers > 0 && !showPeers)
|
||||
statusString = "<img border=\"0\" src=\"" + _imgPath + "stalled.png\" title=\"" + _("Stalled") + "\"></td>" +
|
||||
statusString = "<img alt=\"\" border=\"0\" src=\"" + _imgPath + "stalled.png\" title=\"" + _("Stalled") + "\"></td>" +
|
||||
"<td class=\"snarkTorrentStatus " + rowClass + "\">" + _("Stalled") +
|
||||
": <a href=\"" + uri + "?p=" + Base64.encode(snark.getInfoHash()) + "\">" +
|
||||
curPeers + thinsp(noThinsp) +
|
||||
ngettext("1 peer", "{0} peers", knownPeers) + "</a>";
|
||||
else if (isRunning && curPeers > 0)
|
||||
statusString = "<img border=\"0\" src=\"" + _imgPath + "stalled.png\" title=\"" + _("Stalled") + "\"></td>" +
|
||||
statusString = "<img alt=\"\" border=\"0\" src=\"" + _imgPath + "stalled.png\" title=\"" + _("Stalled") + "\"></td>" +
|
||||
"<td class=\"snarkTorrentStatus " + rowClass + "\">" + _("Stalled") +
|
||||
": " + curPeers + thinsp(noThinsp) +
|
||||
ngettext("1 peer", "{0} peers", knownPeers);
|
||||
else if (isRunning && knownPeers > 0)
|
||||
statusString = "<img border=\"0\" src=\"" + _imgPath + "nopeers.png\" title=\"" + _("No Peers") + "\"></td>" +
|
||||
statusString = "<img alt=\"\" border=\"0\" src=\"" + _imgPath + "nopeers.png\" title=\"" + _("No Peers") + "\"></td>" +
|
||||
"<td class=\"snarkTorrentStatus " + rowClass + "\">" + _("No Peers") +
|
||||
": 0" + thinsp(noThinsp) + knownPeers ;
|
||||
else if (isRunning)
|
||||
statusString = "<img border=\"0\" src=\"" + _imgPath + "nopeers.png\" title=\"" + _("No Peers") + "\"></td>" +
|
||||
statusString = "<img alt=\"\" border=\"0\" src=\"" + _imgPath + "nopeers.png\" title=\"" + _("No Peers") + "\"></td>" +
|
||||
"<td class=\"snarkTorrentStatus " + rowClass + "\">" + _("No Peers");
|
||||
else
|
||||
statusString = "<img border=\"0\" src=\"" + _imgPath + "stopped.png\" title=\"" + _("Stopped") + "\"></td>" +
|
||||
statusString = "<img alt=\"\" border=\"0\" src=\"" + _imgPath + "stopped.png\" title=\"" + _("Stopped") + "\"></td>" +
|
||||
"<td class=\"snarkTorrentStatus " + rowClass + "\">" + _("Stopped");
|
||||
}
|
||||
|
||||
@ -1098,7 +1098,7 @@ public class I2PSnarkServlet extends DefaultServlet {
|
||||
else
|
||||
icon = "magnet";
|
||||
if (isValid) {
|
||||
out.write(toImg(icon, _("Info")));
|
||||
out.write(toImg(icon));
|
||||
out.write("</a>");
|
||||
} else {
|
||||
out.write(toImg(icon));
|
||||
|
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
@ -74,6 +74,9 @@ public class I2PTunnelServer extends I2PTunnelTask implements Runnable {
|
||||
protected int localPort = DEFAULT_LOCALPORT;
|
||||
|
||||
/**
|
||||
* Warning, blocks in constructor while connecting to router and building tunnels;
|
||||
* TODO move that to startRunning()
|
||||
*
|
||||
* @param privData Base64-encoded private key data,
|
||||
* format is specified in {@link net.i2p.data.PrivateKeyFile PrivateKeyFile}
|
||||
* @throws IllegalArgumentException if the I2CP configuration is b0rked so
|
||||
@ -87,6 +90,9 @@ public class I2PTunnelServer extends I2PTunnelTask implements Runnable {
|
||||
}
|
||||
|
||||
/**
|
||||
* Warning, blocks in constructor while connecting to router and building tunnels;
|
||||
* TODO move that to startRunning()
|
||||
*
|
||||
* @param privkey file containing the private key data,
|
||||
* format is specified in {@link net.i2p.data.PrivateKeyFile PrivateKeyFile}
|
||||
* @param privkeyname the name of the privKey file, not clear why we need this too
|
||||
@ -111,6 +117,9 @@ public class I2PTunnelServer extends I2PTunnelTask implements Runnable {
|
||||
}
|
||||
|
||||
/**
|
||||
* Warning, blocks in constructor while connecting to router and building tunnels;
|
||||
* TODO move that to startRunning()
|
||||
*
|
||||
* @param privData stream containing the private key data,
|
||||
* format is specified in {@link net.i2p.data.PrivateKeyFile PrivateKeyFile}
|
||||
* @param privkeyname the name of the privKey file, not clear why we need this too
|
||||
@ -124,6 +133,8 @@ public class I2PTunnelServer extends I2PTunnelTask implements Runnable {
|
||||
}
|
||||
|
||||
/**
|
||||
* Non-blocking
|
||||
*
|
||||
* @param sktMgr the existing socket manager
|
||||
* @since 0.8.9
|
||||
*/
|
||||
@ -142,6 +153,9 @@ public class I2PTunnelServer extends I2PTunnelTask implements Runnable {
|
||||
private static final int MAX_RETRIES = 4;
|
||||
|
||||
/**
|
||||
* Warning, blocks while connecting to router and building tunnels;
|
||||
* TODO move that to startRunning()
|
||||
*
|
||||
* @param privData stream containing the private key data,
|
||||
* format is specified in {@link net.i2p.data.PrivateKeyFile PrivateKeyFile}
|
||||
* @param privkeyname the name of the privKey file, not clear why we need this too
|
||||
@ -236,6 +250,7 @@ public class I2PTunnelServer extends I2PTunnelTask implements Runnable {
|
||||
/**
|
||||
* Start running the I2PTunnelServer.
|
||||
*
|
||||
* TODO: Wait to connect to router until here.
|
||||
*/
|
||||
public void startRunning() {
|
||||
// prevent JVM exit when running outside the router
|
||||
|
@ -156,8 +156,8 @@ public class TunnelController implements Logging {
|
||||
}
|
||||
String type = getType();
|
||||
if ( (type == null) || (type.length() <= 0) ) {
|
||||
if (_log.shouldLog(Log.WARN))
|
||||
_log.warn("Cannot start the tunnel - no type specified");
|
||||
if (_log.shouldLog(Log.ERROR))
|
||||
_log.error("Cannot start the tunnel - no type specified");
|
||||
return;
|
||||
}
|
||||
// Config options may have changed since instantiation, so do this again.
|
||||
@ -455,6 +455,25 @@ public class TunnelController implements Logging {
|
||||
}
|
||||
}
|
||||
_config = props;
|
||||
|
||||
// Set up some per-type defaults
|
||||
// This really isn't the best spot to do this but for servers in particular,
|
||||
// it's hard to override settings in the subclass since the session connect
|
||||
// is done in the I2PTunnelServer constructor.
|
||||
String type = getType();
|
||||
if (type != null) {
|
||||
if (type.equals("httpserver") || type.equals("streamrserver")) {
|
||||
if (!_config.containsKey("option.shouldBundleReplyInfo"))
|
||||
_config.setProperty("option.shouldBundleReplyInfo", "false");
|
||||
} else if (type.contains("irc") || type.equals("streamrclient")) {
|
||||
// maybe a bad idea for ircclient if DCC is enabled
|
||||
if (!_config.containsKey("option.crypto.tagsToSend"))
|
||||
_config.setProperty("option.crypto.tagsToSend", "20");
|
||||
if (!_config.containsKey("option.crypto.lowTagThreshold"))
|
||||
_config.setProperty("option.crypto.lowTagThreshold", "14");
|
||||
}
|
||||
}
|
||||
|
||||
// tell i2ptunnel, who will tell the TunnelTask, who will tell the SocketManager
|
||||
setSessionOptions();
|
||||
if (_running && _sessions != null) {
|
||||
@ -467,6 +486,9 @@ public class TunnelController implements Logging {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @return a copy
|
||||
*/
|
||||
public Properties getConfig(String prefix) {
|
||||
Properties rv = new Properties();
|
||||
for (Map.Entry e : _config.entrySet()) {
|
||||
|
@ -22,7 +22,7 @@
|
||||
<link href="/themes/console/images/favicon.ico" type="image/x-icon" rel="shortcut icon" />
|
||||
|
||||
<% if (editBean.allowCSS()) {
|
||||
%><link rel="icon" href="<%=editBean.getTheme()%>images/favicon.ico">
|
||||
%><link rel="icon" href="<%=editBean.getTheme()%>images/favicon.ico" />
|
||||
<link href="<%=editBean.getTheme()%>default.css" rel="stylesheet" type="text/css" />
|
||||
<link href="<%=editBean.getTheme()%>i2ptunnel.css" rel="stylesheet" type="text/css" />
|
||||
<% }
|
||||
|
@ -22,7 +22,7 @@
|
||||
<link href="/themes/console/images/favicon.ico" type="image/x-icon" rel="shortcut icon" />
|
||||
|
||||
<% if (editBean.allowCSS()) {
|
||||
%><link rel="icon" href="<%=editBean.getTheme()%>images/favicon.ico">
|
||||
%><link rel="icon" href="<%=editBean.getTheme()%>images/favicon.ico" />
|
||||
<link href="<%=editBean.getTheme()%>default.css" rel="stylesheet" type="text/css" />
|
||||
<link href="<%=editBean.getTheme()%>i2ptunnel.css" rel="stylesheet" type="text/css" />
|
||||
<% }
|
||||
|
@ -24,7 +24,7 @@
|
||||
<link href="/themes/console/images/favicon.ico" type="image/x-icon" rel="shortcut icon" />
|
||||
|
||||
<% if (indexBean.allowCSS()) {
|
||||
%><link rel="icon" href="<%=indexBean.getTheme()%>images/favicon.ico">
|
||||
%><link rel="icon" href="<%=indexBean.getTheme()%>images/favicon.ico" />
|
||||
<link href="<%=indexBean.getTheme()%>default.css" rel="stylesheet" type="text/css" />
|
||||
<link href="<%=indexBean.getTheme()%>i2ptunnel.css" rel="stylesheet" type="text/css" />
|
||||
<% }
|
||||
|
@ -57,7 +57,7 @@
|
||||
<link href="/themes/console/images/favicon.ico" type="image/x-icon" rel="shortcut icon" />
|
||||
|
||||
<% if (editBean.allowCSS()) {
|
||||
%><link rel="icon" href="<%=editBean.getTheme()%>images/favicon.ico">
|
||||
%><link rel="icon" href="<%=editBean.getTheme()%>images/favicon.ico" />
|
||||
<link href="<%=editBean.getTheme()%>default.css" rel="stylesheet" type="text/css" />
|
||||
<link href="<%=editBean.getTheme()%>i2ptunnel.css" rel="stylesheet" type="text/css" />
|
||||
<% }
|
||||
|
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
@ -72,7 +72,13 @@ public class ConfigHomeHandler extends FormHandler {
|
||||
}
|
||||
name = DataHelper.escapeHTML(name).replace(",", ","); // HomeHelper.S
|
||||
url = DataHelper.escapeHTML(url).replace(",", ",");
|
||||
HomeHelper.App app = new HomeHelper.App(name, "", url, "/themes/console/images/itoopie_sm.png");
|
||||
HomeHelper.App app = null;
|
||||
if ("1".equals(group))
|
||||
app = new HomeHelper.App(name, "", url, "/themes/console/images/eepsite.png");
|
||||
else if ("2".equals(group))
|
||||
app = new HomeHelper.App(name, "", url, "/themes/console/images/title_window.png");
|
||||
else
|
||||
app = new HomeHelper.App(name, "", url, "/themes/console/images/question.png");
|
||||
apps.add(app);
|
||||
addFormNotice(_("Added") + ": " + app.name);
|
||||
} else {
|
||||
|
@ -25,14 +25,14 @@ public class HomeHelper extends HelperBase {
|
||||
|
||||
static final String DEFAULT_SERVICES =
|
||||
_x("Addressbook") + S + _x("Manage your I2P hosts file here (I2P domain name resolution)") + S + "/dns" + S + I + "book_addresses.png" + S +
|
||||
_x("Configure Bandwidth") + S + _x("I2P Bandwidth Configuration") + S + "/config" + S + I + "wrench_orange.png" + S +
|
||||
_x("Configure Bandwidth") + S + _x("I2P Bandwidth Configuration") + S + "/config" + S + I + "action_log.png" + S +
|
||||
_x("Configure Language") + S + _x("Console Language Selection") + S + "/configui" + S + I + "wrench_orange.png" + S +
|
||||
_x("Customize Home Page") + S + _x("I2P Home Page Configuration") + S + "/confighome" + S + I + "wrench_orange.png" + S +
|
||||
_x("Email") + S + _x("Anonymous webmail client") + S + "/webmail" + S + I + "email.png" + S +
|
||||
_x("Help") + S + _x("I2P Router Help") + S + "/help" + S + I + "help.png" + S +
|
||||
_x("Router Console") + S + _x("I2P Router Console") + S + "/console" + S + I + "wrench_orange.png" + S +
|
||||
_x("Torrents") + S + _x("Built-in anonymous BitTorrent Client") + S + "/torrents" + S + I + "film.png" + S +
|
||||
_x("Website") + S + _x("Local web server") + S + "http://127.0.0.1:7658/" + S + I + "server.png" + S +
|
||||
_x("Customize Home Page") + S + _x("I2P Home Page Configuration") + S + "/confighome" + S + I + "home_page.png" + S +
|
||||
_x("Email") + S + _x("Anonymous webmail client") + S + "/susimail/susimail" + S + I + "email.png" + S +
|
||||
_x("Help") + S + _x("I2P Router Help") + S + "/help" + S + I + "support.png" + S +
|
||||
_x("Router Console") + S + _x("I2P Router Console") + S + "/console" + S + I + "toolbox.png" + S +
|
||||
_x("Torrents") + S + _x("Built-in anonymous BitTorrent Client") + S + "/i2psnark/" + S + I + "magnet.png" + S +
|
||||
_x("Website") + S + _x("Local web server") + S + "http://127.0.0.1:7658/" + S + I + "server_32x32.png" + S +
|
||||
"";
|
||||
|
||||
static final String DEFAULT_FAVORITES =
|
||||
@ -41,20 +41,20 @@ public class HomeHelper extends HelperBase {
|
||||
_x("Dev Forum") + S + _x("Development forum") + S + "http://zzz.i2p/" + S + I + "eepsite.png" + S +
|
||||
_x("diftracker") + S + _x("Bittorrent tracker") + S + "http://diftracker.i2p/" + S + I + "eepsite.png" + S +
|
||||
"echelon.i2p" + S + _x("I2P Applications") + S + "http://echelon.i2p/" + S + I + "eepsite.png" + S +
|
||||
_x("FAQ") + S + _x("Frequently Asked Questions") + S + "http://www.i2p2.i2p/faq" + S + I + "help.png" + S +
|
||||
_x("FAQ") + S + _x("Frequently Asked Questions") + S + "http://www.i2p2.i2p/faq" + S + I + "question.png" + S +
|
||||
_x("Forum") + S + _x("Community forum") + S + "http://forum.i2p/" + S + I + "eepsite.png" + S +
|
||||
_x("Anonymous Git Hosting") + S + _x("A public anonymous Git hosting site - supports pulling via Git and HTTP and pushing via SSH") + S + "http://git.repo.i2p/" + S + I + "git-logo.png" + S +
|
||||
"Ident " + _x("Microblog") + S + _x("Your premier microblogging service on I2P") + S + "http://id3nt.i2p/" + S + I + "ident_icon_blue.png" + S +
|
||||
_x("Javadocs") + S + _x("Technical documentation") + S + "http://i2p-javadocs.i2p/" + S + I + "book.png" + S +
|
||||
//_x("Key Server") + S + _x("OpenPGP Keyserver") + S + "http://keys.i2p/" + S + I + "book.png" + S +
|
||||
_x("Javadocs") + S + _x("Technical documentation") + S + "http://i2p-javadocs.i2p/" + S + I + "education.png" + S +
|
||||
//_x("Key Server") + S + _x("OpenPGP Keyserver") + S + "http://keys.i2p/" + S + I + "education.png" + S +
|
||||
_x("killyourtv.i2p") + S + _x("Debian and Tahoe-LAFS repositories") + S + "http://killyourtv.i2p/" + S + I + "eepsite.png" + S +
|
||||
_x("Pastebin") + S + _x("I2P Pastebin") + S + "http://pastethis.i2p/" + S + I + "eepsite.png" + S +
|
||||
"Planet I2P" + S + _x("I2P News") + S + "http://planet.i2p/" + S + I + "eepsite.png" + S +
|
||||
_x("Plugins") + S + _x("Add-on directory") + S + "http://plugins.i2p/" + S + I + "plugin.png" + S +
|
||||
_x("Postman's Tracker") + S + _x("Bittorrent tracker") + S + "http://tracker2.postman.i2p/" + S + I + "eepsite.png" + S +
|
||||
_x("Project Website") + S + _x("I2P home page") + S + "http://www.i2p2.i2p/" + S + I + "help.png" + S +
|
||||
_x("Project Website") + S + _x("I2P home page") + S + "http://www.i2p2.i2p/" + S + I + "info_rhombus.png" + S +
|
||||
"stats.i2p" + S + _x("I2P Netowrk Statistics") + S + "http://stats.i2p/cgi-bin/dashboard.cgi" + S + I + "eepsite.png" + S +
|
||||
_x("Technical Docs") + S + _x("Technical documentation") + S + "http://www.i2p2.i2p/how" + S + I + "book.png" + S +
|
||||
_x("Technical Docs") + S + _x("Technical documentation") + S + "http://www.i2p2.i2p/how" + S + I + "education.png" + S +
|
||||
_x("Trac Wiki") + S + S + "http://trac.i2p2.i2p/" + S + I + "eepsite.png" + S +
|
||||
_x("Ugha's Wiki") + S + S + "http://ugha.i2p/" + S + I + "eepsite.png" + S +
|
||||
_x("Sponge's main site") + S + _x("Seedless and the Robert BitTorrent applications") + S + "http://sponge.i2p/" + S + I + "eepsite.png" + S +
|
||||
|
@ -123,7 +123,7 @@ public class PluginUpdateChecker extends UpdateHandler {
|
||||
}
|
||||
|
||||
private void scheduleStatusClean(String msg) {
|
||||
SimpleScheduler.getInstance().addEvent(new Cleaner(msg), 20*60*1000);
|
||||
_context.simpleScheduler().addEvent(new Cleaner(msg), 20*60*1000);
|
||||
}
|
||||
|
||||
private class Cleaner implements SimpleTimer.TimedEvent {
|
||||
|
@ -98,7 +98,7 @@ public class PluginUpdateHandler extends UpdateHandler {
|
||||
}
|
||||
|
||||
private void scheduleStatusClean(String msg) {
|
||||
SimpleScheduler.getInstance().addEvent(new Cleaner(msg), 20*60*1000);
|
||||
_context.simpleScheduler().addEvent(new Cleaner(msg), 20*60*1000);
|
||||
}
|
||||
|
||||
private class Cleaner implements SimpleTimer.TimedEvent {
|
||||
|
@ -156,13 +156,13 @@ public class SummaryBarRenderer {
|
||||
|
||||
"<hr class=\"b\"><table><tr><td>" +
|
||||
|
||||
"<a href=\"/webmail\" target=\"_top\" title=\"")
|
||||
"<a href=\"/susimail/susimail\" target=\"_blank\" title=\"")
|
||||
.append(_("Anonymous webmail client"))
|
||||
.append("\">")
|
||||
.append(_("Email"))
|
||||
.append("</a>\n" +
|
||||
|
||||
"<a href=\"/torrents\" target=\"_top\" title=\"")
|
||||
"<a href=\"/i2psnark/\" target=\"_blank\" title=\"")
|
||||
.append(_("Built-in anonymous BitTorrent Client"))
|
||||
.append("\">")
|
||||
.append(_("Torrents"))
|
||||
|
@ -64,9 +64,9 @@ public class SummaryHelper extends HelperBase {
|
||||
"NewsHeadings" + S +
|
||||
"UpdateStatus" + S +
|
||||
"NetworkReachability" + S +
|
||||
"RestartStatus" + S +
|
||||
"FirewallAndReseedStatus" + S +
|
||||
"Destinations" + S +
|
||||
"RestartStatus" + S +
|
||||
"";
|
||||
|
||||
/**
|
||||
@ -748,12 +748,13 @@ public class SummaryHelper extends HelperBase {
|
||||
|
||||
public List<String> getSummaryBarSections(String page) {
|
||||
String config = "";
|
||||
if ("home".equals(page))
|
||||
if ("home".equals(page)) {
|
||||
config = _context.getProperty(PROP_SUMMARYBAR + page, DEFAULT_MINIMAL);
|
||||
else
|
||||
config = _context.getProperty(PROP_SUMMARYBAR + page, null);
|
||||
} else {
|
||||
config = _context.getProperty(PROP_SUMMARYBAR + page);
|
||||
if (config == null)
|
||||
config = _context.getProperty(PROP_SUMMARYBAR + "default", DEFAULT_FULL);
|
||||
}
|
||||
return Arrays.asList(config.split("" + S));
|
||||
}
|
||||
|
||||
|
@ -23,7 +23,7 @@
|
||||
// update disable boolean
|
||||
intl.setDisableRefresh(d);
|
||||
}
|
||||
if (!intl.getDisableRefresh())
|
||||
if (false && !intl.getDisableRefresh())
|
||||
out.print("<noscript><iframe src=\"/summaryframe.jsp" + newDelay + "\" height=\"1500\" width=\"200\" scrolling=\"auto\" frameborder=\"0\" title=\"sidepanel\"></noscript>\n");
|
||||
}
|
||||
%>
|
||||
@ -42,9 +42,9 @@
|
||||
}
|
||||
|
||||
// d and allowIFrame defined above
|
||||
if (!intl.getDisableRefresh()) {
|
||||
if (false && !intl.getDisableRefresh()) {
|
||||
out.print("</div><noscript></iframe></noscript>\n");
|
||||
} else if (allowIFrame) {
|
||||
} else if (false && allowIFrame) {
|
||||
// since we don't have an iframe this will reload the base page, and
|
||||
// the new delay will be passed to the iframe above
|
||||
out.print("<noscript><div class=\"refresh\"><form action=\"" + request.getRequestURI() + "\" method=\"POST\">\n" +
|
||||
|
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
@ -279,7 +279,7 @@ class Connection {
|
||||
void sendReset() {
|
||||
if (_disconnectScheduledOn < 0) {
|
||||
_disconnectScheduledOn = _context.clock().now();
|
||||
SimpleScheduler.getInstance().addEvent(new DisconnectEvent(), DISCONNECT_TIMEOUT);
|
||||
_context.simpleScheduler().addEvent(new DisconnectEvent(), DISCONNECT_TIMEOUT);
|
||||
}
|
||||
long now = _context.clock().now();
|
||||
if (_resetSentOn + 10*1000 > now) return; // don't send resets too fast
|
||||
@ -534,7 +534,7 @@ class Connection {
|
||||
void resetReceived() {
|
||||
if (_disconnectScheduledOn < 0) {
|
||||
_disconnectScheduledOn = _context.clock().now();
|
||||
SimpleScheduler.getInstance().addEvent(new DisconnectEvent(), DISCONNECT_TIMEOUT);
|
||||
_context.simpleScheduler().addEvent(new DisconnectEvent(), DISCONNECT_TIMEOUT);
|
||||
}
|
||||
_resetReceived = true;
|
||||
_outputStream.streamErrorOccurred(new IOException("Reset received"));
|
||||
@ -578,7 +578,7 @@ class Connection {
|
||||
if (removeFromConMgr) {
|
||||
if (_disconnectScheduledOn < 0) {
|
||||
_disconnectScheduledOn = _context.clock().now();
|
||||
SimpleScheduler.getInstance().addEvent(new DisconnectEvent(), DISCONNECT_TIMEOUT);
|
||||
_context.simpleScheduler().addEvent(new DisconnectEvent(), DISCONNECT_TIMEOUT);
|
||||
}
|
||||
}
|
||||
_connected = false;
|
||||
@ -796,7 +796,7 @@ class Connection {
|
||||
_closeSentOn = when;
|
||||
if (_disconnectScheduledOn < 0) {
|
||||
_disconnectScheduledOn = _context.clock().now();
|
||||
SimpleScheduler.getInstance().addEvent(new DisconnectEvent(), DISCONNECT_TIMEOUT);
|
||||
_context.simpleScheduler().addEvent(new DisconnectEvent(), DISCONNECT_TIMEOUT);
|
||||
}
|
||||
}
|
||||
public long getCloseReceivedOn() { return _closeReceivedOn; }
|
||||
|
@ -78,7 +78,7 @@ class ConnectionHandler {
|
||||
// also check if expiration of the head is long past for overload detection with peek() ?
|
||||
boolean success = _synQueue.offer(packet); // fail immediately if full
|
||||
if (success) {
|
||||
SimpleScheduler.getInstance().addEvent(new TimeoutSyn(packet), _acceptTimeout);
|
||||
_context.simpleScheduler().addEvent(new TimeoutSyn(packet), _acceptTimeout);
|
||||
} else {
|
||||
if (_log.shouldLog(Log.WARN))
|
||||
_log.warn("Dropping new SYN request, as the queue is full");
|
||||
|
@ -184,7 +184,7 @@ class ConnectionPacketHandler {
|
||||
// take note of congestion
|
||||
if (_log.shouldLog(Log.WARN))
|
||||
_log.warn("congestion.. dup " + packet);
|
||||
SimpleScheduler.getInstance().addEvent(new AckDup(con), con.getOptions().getSendAckDelay());
|
||||
_context.simpleScheduler().addEvent(new AckDup(con), con.getOptions().getSendAckDelay());
|
||||
//con.setNextSendTime(_context.clock().now() + con.getOptions().getSendAckDelay());
|
||||
//fastAck = true;
|
||||
} else {
|
||||
|
@ -17,7 +17,7 @@ abstract class SchedulerImpl implements TaskScheduler {
|
||||
}
|
||||
|
||||
protected void reschedule(long msToWait, Connection con) {
|
||||
SimpleScheduler.getInstance().addEvent(con.getConnectionEvent(), msToWait);
|
||||
_context.simpleScheduler().addEvent(con.getConnectionEvent(), msToWait);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -13,7 +13,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: I2P\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2012-05-25 12:35+0000\n"
|
||||
"POT-Creation-Date: 2012-07-26 19:55+0000\n"
|
||||
"PO-Revision-Date: 2012-03-11 02:03+0000\n"
|
||||
"Last-Translator: D.A. Loader <>\n"
|
||||
"Language-Team: German (http://www.transifex.net/projects/p/I2P/language/"
|
||||
@ -77,60 +77,60 @@ msgstr "unterschrieben"
|
||||
msgid "Type {0}"
|
||||
msgstr "Typ {0}"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:232
|
||||
#: ../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."
|
||||
msgstr[0] "Ein Suchergebnis in der gefilterten Liste"
|
||||
msgstr[1] "{0} Suchergebnisse in der gefilterten Liste"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:236
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:206
|
||||
#, java-format
|
||||
msgid "Filtered list contains 1 entry."
|
||||
msgid_plural "Fltered list contains {0} entries."
|
||||
msgstr[0] "Die gefilterte Liste enthält einen Eintrag."
|
||||
msgstr[1] "Die gefilterte Liste enthält {0} Einträge."
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:241
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:211
|
||||
#, java-format
|
||||
msgid "One result for search."
|
||||
msgid_plural "{0} results for search."
|
||||
msgstr[0] "Die Suche erzielte einen Treffer."
|
||||
msgstr[1] "Die Suche erzielte {0} Treffer."
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:250
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:220
|
||||
#, java-format
|
||||
msgid "Address book contains 1 entry."
|
||||
msgid_plural "Address book contains {0} entries."
|
||||
msgstr[0] "Das Adressbuch enthält einen Eintrag."
|
||||
msgstr[1] "Das Adressbuch enthält {0} Einträge."
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:266
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:236
|
||||
#, java-format
|
||||
msgid "Showing {0} of {1}"
|
||||
msgstr "Zeige {0} von {1}"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:287
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:257
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:227
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:408
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:412
|
||||
msgid "Add"
|
||||
msgstr "Hinzufügen"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:287
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:298
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:257
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:268
|
||||
#: ../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:406
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:410
|
||||
msgid "Replace"
|
||||
msgstr "Ersetzen"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:297
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:267
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:238
|
||||
#, java-format
|
||||
msgid "Host name {0} is already in address book, unchanged."
|
||||
msgstr "Der Name {0} ist bereits im Adressbuch und nicht geändert."
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:299
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:269
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:240
|
||||
#, java-format
|
||||
msgid ""
|
||||
@ -140,63 +140,63 @@ msgstr ""
|
||||
"Der Name {0} ist mit einem anderen Ziel bereits im Adressbuch. Klicken Sie "
|
||||
"auf \"Ersetzen\", um den alten Eintrag zu überschreiben!"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:312
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:282
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:253
|
||||
#, java-format
|
||||
msgid "Destination added for {0}."
|
||||
msgstr "Ziel hinzugefügt für {0}"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:314
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:284
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:255
|
||||
#, java-format
|
||||
msgid "Destination changed for {0}."
|
||||
msgstr "Ziel geändert für {0}"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:316
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:286
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:257
|
||||
msgid "Warning - host name does not end with \".i2p\""
|
||||
msgstr "Warnung - Hostname darf nicht auf \".i2p enden\""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:321
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:291
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:265
|
||||
msgid "Invalid Base 64 destination."
|
||||
msgstr "Ungültiges Basis-64 Ziel"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:327
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:297
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:271
|
||||
#, java-format
|
||||
msgid "Invalid host name \"{0}\"."
|
||||
msgstr "Ungültiger Hostname \"{0}\""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:330
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:300
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:274
|
||||
msgid "Please enter a host name and destination"
|
||||
msgstr "Bitte geben Sie einen Hostnamen und ein Ziel ein!"
|
||||
|
||||
#. clear search when deleting
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:334
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:355
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:304
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:325
|
||||
#: ../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:270
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:274
|
||||
msgid "Delete Entry"
|
||||
msgstr "Eintrag löschen"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:334
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:304
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:278
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:347
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:351
|
||||
msgid "Delete Selected"
|
||||
msgstr "Ausgewähltes löschen"
|
||||
|
||||
#. parameter is a host name
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:348
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:318
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:295
|
||||
#, java-format
|
||||
msgid "Destination {0} deleted."
|
||||
msgstr "Ziel {0} gelöscht"
|
||||
|
||||
#. parameter will always be >= 2
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:351
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:321
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:298
|
||||
#, java-format
|
||||
msgid "1 destination deleted."
|
||||
@ -204,24 +204,24 @@ msgid_plural "{0} destinations deleted."
|
||||
msgstr[0] "Ein Ziel gelöscht"
|
||||
msgstr[1] "{0} Ziele gelöscht"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:353
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:323
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:300
|
||||
msgid "No entries selected to delete."
|
||||
msgstr "Es wurden keine Einträge zum Löschen ausgewählt."
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:361
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:331
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:307
|
||||
msgid "Address book saved."
|
||||
msgstr "Adressbuch gespeichert"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:364
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:334
|
||||
msgid "ERROR: Could not write addressbook file."
|
||||
msgstr "FEHLER: Konnte Adressbuchdatei nicht schreiben."
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:369
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:339
|
||||
#: ../src/java/src/i2p/susi/dns/ConfigBean.java:148
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:311
|
||||
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:156
|
||||
#: ../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,9 +230,9 @@ msgstr ""
|
||||
"laden\"-Schalter in Ihrem Browser genutzt. Bitte neu senden!"
|
||||
|
||||
#: ../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:141
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:141
|
||||
#: ../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 "Speichern"
|
||||
|
||||
@ -241,9 +241,9 @@ msgid "Configuration saved."
|
||||
msgstr "Einstellungen gespeichert"
|
||||
|
||||
#: ../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:139
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:139
|
||||
#: ../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 "Neu laden"
|
||||
|
||||
@ -270,18 +270,18 @@ msgstr "Konnte das Ziel für {0} nicht dem Domainnamenservice {1} hinzufügen"
|
||||
msgid "Failed to delete Destination for {0} from naming service {1}"
|
||||
msgstr "Konnte das Ziel für {0} nicht aus dem Domainnamenservice {1} löschen"
|
||||
|
||||
#: ../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 ""
|
||||
"Abonnement gespeichert, aktualisiere jetzt das Adressbuch von untenstehenden "
|
||||
"Aboquellen."
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:148
|
||||
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:120
|
||||
msgid "Subscriptions saved."
|
||||
msgstr "Abonnementquellen gespeichert"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:152
|
||||
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:124
|
||||
msgid "Subscriptions reloaded."
|
||||
msgstr "Abonnementquellen neu geladen"
|
||||
|
||||
@ -289,166 +289,166 @@ msgstr "Abonnementquellen neu geladen"
|
||||
msgid "address book"
|
||||
msgstr "Adressbuch"
|
||||
|
||||
#: ../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:113
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:129
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:112
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:128
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:118
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:113
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:129
|
||||
#: ../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 "Übersicht"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:129
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:115
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:114
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:104
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:115
|
||||
#: ../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 "Adressbücher"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:131
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:117
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:116
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:106
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:117
|
||||
#: ../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 "privat"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:133
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:119
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:118
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:108
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:119
|
||||
#: ../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 "Master"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:135
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:121
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:120
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:110
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:121
|
||||
#: ../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:123
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:122
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:112
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:123
|
||||
#: ../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 "veröffentlicht"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:139
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:125
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:124
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:114
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:125
|
||||
#: ../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 "Abonnements"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:141
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:127
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:126
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:116
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:127
|
||||
#: ../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 "Einstellungen"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:145
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:130
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:149
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:134
|
||||
msgid "Address book"
|
||||
msgstr "Adressbuch"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:150
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:135
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:154
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:139
|
||||
msgid "Storage"
|
||||
msgstr "Speicherort"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:168
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:172
|
||||
msgid "Filter"
|
||||
msgstr "Filter"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:171
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:175
|
||||
msgid "other"
|
||||
msgstr "andere"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:173
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:177
|
||||
msgid "all"
|
||||
msgstr "alle"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:187
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:191
|
||||
msgid "Current filter"
|
||||
msgstr "derzeitige Filter"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:192
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:196
|
||||
msgid "clear filter"
|
||||
msgstr "Filter löschen"
|
||||
|
||||
#: ../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 "Suche"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:242
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:246
|
||||
msgid "Name"
|
||||
msgstr "Name"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:244
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:248
|
||||
msgid "Links"
|
||||
msgstr "Links"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:246
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:400
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:262
|
||||
#: ../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 "Ziel"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:282
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:286
|
||||
msgid "Mark for deletion"
|
||||
msgstr "zum Löschen markieren"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:303
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:307
|
||||
msgid "Base 32 address"
|
||||
msgstr "Adresse (Basis32)"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:307
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:311
|
||||
msgid "More information on this entry"
|
||||
msgstr "Weitere Informationen über diesen Eintrag"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:310
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:314
|
||||
msgid "details"
|
||||
msgstr "Details"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:345
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:404
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:349
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:408
|
||||
msgid "Cancel"
|
||||
msgstr "Abbruch"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:379
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:383
|
||||
msgid "This address book is empty."
|
||||
msgstr "Dieses Adressbuch ist leer."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:394
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:398
|
||||
msgid "Add new destination"
|
||||
msgstr "Füge neues Ziel hinzu"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:396
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:161
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:400
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:165
|
||||
msgid "Host Name"
|
||||
msgstr "Hostname"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:111
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:119
|
||||
msgid "configuration"
|
||||
msgstr "Einstellungen"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:143
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:155
|
||||
msgid "Hints"
|
||||
msgstr "Hinweise"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:145
|
||||
#: ../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"
|
||||
@ -458,7 +458,7 @@ msgstr ""
|
||||
"Adressbuchs - normalerweise ~/.i2p/addressbook/ (Linux) oder %APPDATA%\\I2P"
|
||||
"\\addressbook\\ (Windows)."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:147
|
||||
#: ../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."
|
||||
@ -466,7 +466,7 @@ msgstr ""
|
||||
"Falls Sie manuell Einträge zum Adressbuch hinzufügen möchten, fügen Sie "
|
||||
"diese zum privaten oder zum Master-Adressbuch hinzu!"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:148
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:160
|
||||
msgid ""
|
||||
"The router addressbook and the published addressbook are updated by the "
|
||||
"addressbook application."
|
||||
@ -474,7 +474,7 @@ msgstr ""
|
||||
"Das Router-Adressbuch und das veröffentlichte Adressbuch werden von der "
|
||||
"Adressbuch-Anwendung aktualisiert."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:150
|
||||
#: ../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."
|
||||
@ -482,7 +482,7 @@ msgstr ""
|
||||
"Falls Sie das Adressbuch veröffentlichen, erscheinen dort ALLE Ziele aus dem "
|
||||
"Master- und dem Router-Adressbuch."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:151
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:163
|
||||
msgid ""
|
||||
"Use the private addressbook for private destinations, these are not "
|
||||
"published."
|
||||
@ -490,20 +490,20 @@ msgstr ""
|
||||
"Benutzen Sie das private Adressbuch für private Ziele. Diese werden nicht "
|
||||
"veröffentlicht."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:153
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:165
|
||||
msgid "Options"
|
||||
msgstr "Optionen"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:155
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:167
|
||||
msgid "File containing the list of subscriptions URLs (no need to change)"
|
||||
msgstr ""
|
||||
"Datei mit der Liste von Abonnement-URLs (braucht nicht geändert zu werden)"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:157
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:169
|
||||
msgid "Update interval in hours"
|
||||
msgstr "Aktualisierungsintervall in Stunden"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:159
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:171
|
||||
msgid ""
|
||||
"Your public hosts.txt file (choose a path within your webserver document "
|
||||
"root)"
|
||||
@ -511,31 +511,31 @@ msgstr ""
|
||||
"Ihre öffentliche hosts.txt-Datei (Wählen Sie einen Pfad in Ihrem Webserver "
|
||||
"Wurzelverzeichnis!)"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:161
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:173
|
||||
msgid "Your hosts.txt (don't change)"
|
||||
msgstr "Ihre hosts.txt (nicht ändern)"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:163
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:175
|
||||
msgid "Your personal addressbook, these hosts will be published"
|
||||
msgstr "Ihr persönliches Adressbuch - diese Hosteinträge werden veröffentlicht"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:165
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:177
|
||||
msgid "Your private addressbook, it is never published"
|
||||
msgstr "Ihr privates Adressbuch - dieses wird nie veröffentlicht"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:167
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:179
|
||||
msgid "Port for your eepProxy (no need to change)"
|
||||
msgstr "Port zu Ihrem EepProxy (braucht nicht geändert zu werden)"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:169
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:181
|
||||
msgid "Hostname for your eepProxy (no need to change)"
|
||||
msgstr "Hostname zu Ihrem EepProxy (braucht nicht geändert zu werden)"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:171
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:183
|
||||
msgid "Whether to update the published addressbook"
|
||||
msgstr "Soll Ihr veröffentlichtes Adressbuch aktualisiert werden?"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:173
|
||||
#: ../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)"
|
||||
@ -543,7 +543,7 @@ msgstr ""
|
||||
"Datei, die die etags-Kopfzeilen der bereits aktualisierten Abonnement-URLs "
|
||||
"enthält (braucht nicht geändert zu werden)"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:175
|
||||
#: ../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)"
|
||||
@ -551,85 +551,89 @@ msgstr ""
|
||||
"Datei, welche die Zeitstempel der letzten Modifikation für jede bereits "
|
||||
"aktualisierte Abonnement-URL enthält (braucht nicht geändert zu werden)"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:177
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:189
|
||||
msgid "File to log activity to (change to /dev/null if you like)"
|
||||
msgstr ""
|
||||
"Berichte zu Aktivitäten werden in dieser Datei gespeichert. (Ändern Sie es "
|
||||
"zu /dev/null, wenn Sie möchten!)"
|
||||
|
||||
#: ../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 "Adressbuch"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:177
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:181
|
||||
msgid "Encoded Name"
|
||||
msgstr "kodierter Name"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:193
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:197
|
||||
msgid "Base 32 Address"
|
||||
msgstr "Basis32-Adresse"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:203
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:207
|
||||
msgid "Base 64 Hash"
|
||||
msgstr "Base 64 Hash"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:209
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:213
|
||||
msgid "Address Helper"
|
||||
msgstr "Adresshelfer"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:216
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:220
|
||||
msgid "link"
|
||||
msgstr "Link"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:220
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:224
|
||||
msgid "Public Key"
|
||||
msgstr "Öffentlicher Schlüssel"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:222
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:226
|
||||
msgid "ElGamal 2048 bit"
|
||||
msgstr "ElGamal 2048 bit"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:226
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:230
|
||||
msgid "Signing Key"
|
||||
msgstr "Authentifizierungsschlüssel"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:228
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:232
|
||||
msgid "DSA 1024 bit"
|
||||
msgstr "DSA 1024 bit"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:232
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:236
|
||||
msgid "Certificate"
|
||||
msgstr "Zertifikat"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:238
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:242
|
||||
msgid "Added Date"
|
||||
msgstr "Datum hinzugefügt"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:244
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:248
|
||||
msgid "Source"
|
||||
msgstr "Quelle"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:250
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:254
|
||||
msgid "Last Modified"
|
||||
msgstr "Zuletzt geändert:"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:256
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:260
|
||||
msgid "Notes"
|
||||
msgstr "Anmerkungen"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:102
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:110
|
||||
msgid "Introduction"
|
||||
msgstr "Einleitung - SusiDNS"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:120
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:132
|
||||
msgid "What is the addressbook?"
|
||||
msgstr "Was ist das Adressbuch?"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:122
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:134
|
||||
msgid "The addressbook application is part of your I2P installation."
|
||||
msgstr "Das Adressbuch ist ein Teil Ihrer I2P-Installation."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:123
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:135
|
||||
msgid ""
|
||||
"It regularly updates your hosts.txt file from distributed sources or "
|
||||
"\"subscriptions\"."
|
||||
@ -637,7 +641,7 @@ msgstr ""
|
||||
"Es aktualisiert regelmäßig Ihre hosts.txt-Datei aus verteilten Quellen oder "
|
||||
"den \"Abonnementquellen\"."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:125
|
||||
#: ../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."
|
||||
@ -645,7 +649,7 @@ msgstr ""
|
||||
"In der Standardkonfiguration besteht lediglich ein Abonnement tu www.i2p2."
|
||||
"i2p."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:126
|
||||
#: ../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."
|
||||
@ -653,7 +657,7 @@ msgstr ""
|
||||
"Anderen Seiten zu Folgen ist einfach, füge sie einfach zu deiner <a href="
|
||||
"\"subscriptions\">Subscriptions</a> Datei hinzu."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:128
|
||||
#: ../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>."
|
||||
@ -662,11 +666,11 @@ msgstr ""
|
||||
"\"http://www.i2p2.i2p/naming.html\">die Erläuterungen auf www.i2p2.i2p</a> "
|
||||
"verwiesen."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:130
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:142
|
||||
msgid "How does the addressbook application work?"
|
||||
msgstr "Wie funktioniert das Adressbuch?"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:132
|
||||
#: ../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."
|
||||
@ -674,13 +678,13 @@ msgstr ""
|
||||
"Die Adressbuch-Anwendung bezieht regelmäßig Informationen von deinen "
|
||||
"Abonnements und inkorporiert deren Inhalt in dein \"Router\"-Adressbuch."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:133
|
||||
#: ../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."
|
||||
msgstr "Dann fügt sie noch den Inhalt des \"Master\"-Adressbuches hinzu."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:134
|
||||
#: ../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."
|
||||
@ -689,7 +693,7 @@ msgstr ""
|
||||
"Routeradressbuch nun in das \"veröffentlichte\" Adressbuch geschrieben, "
|
||||
"welches öffentlich erreichbar ist, wenn du eine Eepsite betreibst."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:136
|
||||
#: ../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."
|
||||
@ -697,7 +701,7 @@ msgstr ""
|
||||
"Der Router benutzt ferner ein privates Adressbuch (nicht im Bild), welches "
|
||||
"weder veröffentlich noch mit den anderen zusammengeführt wird."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:137
|
||||
#: ../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."
|
||||
@ -705,7 +709,7 @@ msgstr ""
|
||||
"Hosts aus dem privaten Adressbuch können von dir besucht werden, ihrer "
|
||||
"Adressen werden jedoch nie an andere weitergegeben."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:138
|
||||
#: ../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."
|
||||
@ -717,21 +721,21 @@ msgstr ""
|
||||
msgid "subscriptions"
|
||||
msgstr "Abonnements"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:143
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:147
|
||||
msgid "The subscription file contains a list of i2p URLs."
|
||||
msgstr "Die Abonnementdatei enthält eine Liste von I2P-URLs."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:144
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:148
|
||||
msgid ""
|
||||
"The addressbook application regularly checks this list for new eepsites."
|
||||
msgstr ""
|
||||
"Die Adressbuchanwendung prüft diese Liste regelmäßig auf neue Eepsites."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:145
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:149
|
||||
msgid "Those URLs refer to published hosts.txt files."
|
||||
msgstr "Diese URLs verweisen auf veröffentlichte hosts.txt-Dateien."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:146
|
||||
#: ../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."
|
||||
@ -739,7 +743,7 @@ msgstr ""
|
||||
"Das Standardabonnement ist die hosts.txt-Datei von www.i2p2.i2p, welche "
|
||||
"nicht regelmäßig aktualisiert wird."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:147
|
||||
#: ../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."
|
||||
@ -747,6 +751,6 @@ msgstr ""
|
||||
"Somit ist es eine gute Idee, weitere Abonnements von Seiten mit den neuesten "
|
||||
"Adressen hinzuzufügen."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:149
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:153
|
||||
msgid "See the FAQ for a list of subscription URLs."
|
||||
msgstr "Schauen Sie in den FAQ nach einer Liste von Abonnement-URLs!"
|
||||
|
@ -5,6 +5,7 @@
|
||||
#
|
||||
# Translators:
|
||||
# blabla, 2011.
|
||||
# <blabla@trash-mail.com>, 2012.
|
||||
# Carlos Diaz <cedpren@gmail.com>, 2011.
|
||||
# foo <foo@bar>, 2009.
|
||||
# mixxy, 2011.
|
||||
@ -14,11 +15,11 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: I2P\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2012-05-25 12:34+0000\n"
|
||||
"PO-Revision-Date: 2012-03-16 19:24+0000\n"
|
||||
"Last-Translator: punkibastardo <punkibastardo@gmail.com>\n"
|
||||
"Language-Team: Spanish (Castilian) (http://www.transifex.net/projects/p/I2P/"
|
||||
"language/es/)\n"
|
||||
"POT-Creation-Date: 2012-07-26 19:45+0000\n"
|
||||
"PO-Revision-Date: 2012-07-21 20:04+0000\n"
|
||||
"Last-Translator: blabla <blabla@trash-mail.com>\n"
|
||||
"Language-Team: Spanish (http://www.transifex.com/projects/p/I2P/language/"
|
||||
"es/)\n"
|
||||
"Language: es\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
@ -78,7 +79,7 @@ msgstr "Firmado"
|
||||
msgid "Type {0}"
|
||||
msgstr "Tipo {0}"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:232
|
||||
#: ../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."
|
||||
@ -87,47 +88,47 @@ msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
"{0} resultados para la búsqueda dentro de la lista de elementos filtrados."
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:236
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:206
|
||||
#, java-format
|
||||
msgid "Filtered list contains 1 entry."
|
||||
msgid_plural "Fltered list contains {0} entries."
|
||||
msgstr[0] "La lista de elementos filtrados contiene una entrada."
|
||||
msgstr[1] "La lista de elementos filtrados contiene {0} entradas."
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:241
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:211
|
||||
#, java-format
|
||||
msgid "One result for search."
|
||||
msgid_plural "{0} results for search."
|
||||
msgstr[0] "Un resultado para la búsqueda."
|
||||
msgstr[1] "{0} resultados para la búsqueda"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:250
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:220
|
||||
#, java-format
|
||||
msgid "Address book contains 1 entry."
|
||||
msgid_plural "Address book contains {0} entries."
|
||||
msgstr[0] "La libreta de direcciones contiene una entrada."
|
||||
msgstr[1] "La libreta de direcciones contiente {0} entradas."
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:266
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:236
|
||||
#, java-format
|
||||
msgid "Showing {0} of {1}"
|
||||
msgstr "Mostrando {0} de {1}"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:287
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:257
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:227
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:408
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:412
|
||||
msgid "Add"
|
||||
msgstr "Agregar"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:287
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:298
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:257
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:268
|
||||
#: ../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:406
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:410
|
||||
msgid "Replace"
|
||||
msgstr "Reemplazar"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:297
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:267
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:238
|
||||
#, java-format
|
||||
msgid "Host name {0} is already in address book, unchanged."
|
||||
@ -135,7 +136,7 @@ msgstr ""
|
||||
"El nombre de host {0} ya se encuentra en la libreta de direcciones, "
|
||||
"exactamente igual."
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:299
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:269
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:240
|
||||
#, java-format
|
||||
msgid ""
|
||||
@ -146,63 +147,63 @@ msgstr ""
|
||||
"con una dirección de destino diferente. Haz click en \"Reemplazar\" para "
|
||||
"sobreescribirla."
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:312
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:282
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:253
|
||||
#, java-format
|
||||
msgid "Destination added for {0}."
|
||||
msgstr "Destino añadido para {0}."
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:314
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:284
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:255
|
||||
#, java-format
|
||||
msgid "Destination changed for {0}."
|
||||
msgstr "Destino cambiado para {0}."
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:316
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:286
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:257
|
||||
msgid "Warning - host name does not end with \".i2p\""
|
||||
msgstr "Advertencia - El nombre del host no termina en \".i2p\"."
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:321
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:291
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:265
|
||||
msgid "Invalid Base 64 destination."
|
||||
msgstr "Destino en Base 64 no válido"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:327
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:297
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:271
|
||||
#, java-format
|
||||
msgid "Invalid host name \"{0}\"."
|
||||
msgstr "Nombre del host inválido \"{0}\""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:330
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:300
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:274
|
||||
msgid "Please enter a host name and destination"
|
||||
msgstr "Por favor, ¡introduce un nombre de host y destino!"
|
||||
|
||||
#. clear search when deleting
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:334
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:355
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:304
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:325
|
||||
#: ../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:270
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:274
|
||||
msgid "Delete Entry"
|
||||
msgstr "Borrar entrada"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:334
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:304
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:278
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:347
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:351
|
||||
msgid "Delete Selected"
|
||||
msgstr "Eliminar seleccionados"
|
||||
|
||||
#. parameter is a host name
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:348
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:318
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:295
|
||||
#, java-format
|
||||
msgid "Destination {0} deleted."
|
||||
msgstr "Destino {0} eliminado."
|
||||
|
||||
#. parameter will always be >= 2
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:351
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:321
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:298
|
||||
#, java-format
|
||||
msgid "1 destination deleted."
|
||||
@ -210,24 +211,24 @@ msgid_plural "{0} destinations deleted."
|
||||
msgstr[0] "Una dirección de destino ha sido eliminada."
|
||||
msgstr[1] "{0} direcciones de destino han sido eliminadas."
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:353
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:323
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:300
|
||||
msgid "No entries selected to delete."
|
||||
msgstr "No hay entradas seleccionadas para eliminar."
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:361
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:331
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:307
|
||||
msgid "Address book saved."
|
||||
msgstr "La libreta de direcciones ha sido guardada."
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:364
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:334
|
||||
msgid "ERROR: Could not write addressbook file."
|
||||
msgstr "ERROR: No se pudo escribir el archivo de la libreta direcciones."
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:369
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:339
|
||||
#: ../src/java/src/i2p/susi/dns/ConfigBean.java:148
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:311
|
||||
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:156
|
||||
#: ../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."
|
||||
@ -237,9 +238,9 @@ msgstr ""
|
||||
"¡vuelve a enviarlo!"
|
||||
|
||||
#: ../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:141
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:141
|
||||
#: ../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 "Guardar"
|
||||
|
||||
@ -248,9 +249,9 @@ msgid "Configuration saved."
|
||||
msgstr "Configuración guardada."
|
||||
|
||||
#: ../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:139
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:139
|
||||
#: ../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 "Recargar"
|
||||
|
||||
@ -279,18 +280,18 @@ msgid "Failed to delete Destination for {0} from naming service {1}"
|
||||
msgstr ""
|
||||
"Error al borrar la dirección de destino {0} del servicio de nombrado {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 ""
|
||||
"Suscripciones guardadas, actualizando la libreta de direcciones a partir de "
|
||||
"las fuentes de suscripción ahora."
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:148
|
||||
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:120
|
||||
msgid "Subscriptions saved."
|
||||
msgstr "Suscripciones guardadas."
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:152
|
||||
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:124
|
||||
msgid "Subscriptions reloaded."
|
||||
msgstr "Suscripciones recargadas."
|
||||
|
||||
@ -298,166 +299,166 @@ msgstr "Suscripciones recargadas."
|
||||
msgid "address book"
|
||||
msgstr "libreta de direcciones"
|
||||
|
||||
#: ../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:113
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:129
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:112
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:128
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:118
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:113
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:129
|
||||
#: ../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 "Resumen"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:129
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:115
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:114
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:104
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:115
|
||||
#: ../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 "Libretas de direcciones"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:131
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:117
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:116
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:106
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:117
|
||||
#: ../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 "privado"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:133
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:119
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:118
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:108
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:119
|
||||
#: ../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 "principal"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:135
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:121
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:120
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:110
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:121
|
||||
#: ../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:123
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:122
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:112
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:123
|
||||
#: ../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 "publicado"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:139
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:125
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:124
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:114
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:125
|
||||
#: ../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 "Suscripciones"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:141
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:127
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:126
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:116
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:127
|
||||
#: ../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 "Configuración"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:145
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:130
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:149
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:134
|
||||
msgid "Address book"
|
||||
msgstr "Libreta de direcciones"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:150
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:135
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:154
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:139
|
||||
msgid "Storage"
|
||||
msgstr "Almacenamiento"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:168
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:172
|
||||
msgid "Filter"
|
||||
msgstr "Filtro"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:171
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:175
|
||||
msgid "other"
|
||||
msgstr "otros"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:173
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:177
|
||||
msgid "all"
|
||||
msgstr "todos"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:187
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:191
|
||||
msgid "Current filter"
|
||||
msgstr "Filtro actual"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:192
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:196
|
||||
msgid "clear filter"
|
||||
msgstr "filtro actual"
|
||||
|
||||
#: ../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 "Buscar"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:242
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:246
|
||||
msgid "Name"
|
||||
msgstr "Nombre"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:244
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:248
|
||||
msgid "Links"
|
||||
msgstr "Vínculos"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:246
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:400
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:262
|
||||
#: ../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 "Destino"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:282
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:286
|
||||
msgid "Mark for deletion"
|
||||
msgstr "Marcar para eliminar"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:303
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:307
|
||||
msgid "Base 32 address"
|
||||
msgstr "Dirección a base de 32"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:307
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:311
|
||||
msgid "More information on this entry"
|
||||
msgstr "Más información sobre esta entrada"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:310
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:314
|
||||
msgid "details"
|
||||
msgstr "detalles"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:345
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:404
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:349
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:408
|
||||
msgid "Cancel"
|
||||
msgstr "Cancelar"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:379
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:383
|
||||
msgid "This address book is empty."
|
||||
msgstr "Esta libreta de direcciones está vacía."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:394
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:398
|
||||
msgid "Add new destination"
|
||||
msgstr "Añadir nuevo destino"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:396
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:161
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:400
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:165
|
||||
msgid "Host Name"
|
||||
msgstr "Nombre de Host"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:111
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:119
|
||||
msgid "configuration"
|
||||
msgstr "configuración"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:143
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:155
|
||||
msgid "Hints"
|
||||
msgstr "Consejos"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:145
|
||||
#: ../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"
|
||||
@ -467,7 +468,7 @@ msgstr ""
|
||||
"directorio de trabajo de la libreta de direcciones, que es normalmente ~/."
|
||||
"i2p/addressbook/ (Linux) o %APPDATA%\\I2P\\addressbook\\ (Windows)."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:147
|
||||
#: ../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."
|
||||
@ -475,7 +476,7 @@ msgstr ""
|
||||
"Si deseas agregar manualmente líneas a una libreta de direcciones, añádelos "
|
||||
"a la libreta de direcciones privada o maestra."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:148
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:160
|
||||
msgid ""
|
||||
"The router addressbook and the published addressbook are updated by the "
|
||||
"addressbook application."
|
||||
@ -483,7 +484,7 @@ msgstr ""
|
||||
"La libreta de direcciones del router y la libreta de direcciones publicada "
|
||||
"son actualizadas por la aplicación libreta de direcciones."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:150
|
||||
#: ../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."
|
||||
@ -491,7 +492,7 @@ msgstr ""
|
||||
"Al publicar tu libro de direcciones, TODOS los destinos de la libreta "
|
||||
"maestra y la libreta de direcciones del router aparecen ahí."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:151
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:163
|
||||
msgid ""
|
||||
"Use the private addressbook for private destinations, these are not "
|
||||
"published."
|
||||
@ -499,21 +500,21 @@ msgstr ""
|
||||
"Utiliza la libreta de direcciones privada para destinos privados, éstos no "
|
||||
"serán publicados."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:153
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:165
|
||||
msgid "Options"
|
||||
msgstr "Opciones"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:155
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:167
|
||||
msgid "File containing the list of subscriptions URLs (no need to change)"
|
||||
msgstr ""
|
||||
"El archivo que contiene la lista de suscripciones URL (no es necesario "
|
||||
"cambiarlo)"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:157
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:169
|
||||
msgid "Update interval in hours"
|
||||
msgstr "Intervalo de actualización en horas"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:159
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:171
|
||||
msgid ""
|
||||
"Your public hosts.txt file (choose a path within your webserver document "
|
||||
"root)"
|
||||
@ -521,31 +522,31 @@ msgstr ""
|
||||
"Tu archivo hosts.txt público (¡elije una ruta dentro de la raíz de "
|
||||
"documentos de tu servidor web!)"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:161
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:173
|
||||
msgid "Your hosts.txt (don't change)"
|
||||
msgstr "Tu hosts.txt (no cambiar)"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:163
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:175
|
||||
msgid "Your personal addressbook, these hosts will be published"
|
||||
msgstr "Tu libreta de direcciones personal, estos hosts serán publicados"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:165
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:177
|
||||
msgid "Your private addressbook, it is never published"
|
||||
msgstr "Tu libreta de direcciones privada, nunca se publica"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:167
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:179
|
||||
msgid "Port for your eepProxy (no need to change)"
|
||||
msgstr "Puerto para tu eepProxy (no es necesario cambiarlo)"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:169
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:181
|
||||
msgid "Hostname for your eepProxy (no need to change)"
|
||||
msgstr "Nombre de la host para tu eepProxy (no es necesario cambiarlo)"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:171
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:183
|
||||
msgid "Whether to update the published addressbook"
|
||||
msgstr "Sea para actualizar la libreta de direcciones publicadas"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:173
|
||||
#: ../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)"
|
||||
@ -553,7 +554,7 @@ msgstr ""
|
||||
"Archivo que contiene la cabecera de los etags desde la URL de subscripciones "
|
||||
"capturada (no es necesario cambiarlo)"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:175
|
||||
#: ../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)"
|
||||
@ -561,86 +562,90 @@ msgstr ""
|
||||
"Archivo que contiene la fecha y hora de modificación para cada URL de "
|
||||
"suscripción capturada (no es necesario cambiarlo)"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:177
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:189
|
||||
msgid "File to log activity to (change to /dev/null if you like)"
|
||||
msgstr ""
|
||||
"El archivo en el que se guarda el registro de actividad (Cámbialo a /dev/"
|
||||
"null si quieres)."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:191
|
||||
msgid "Name of the theme to use (defaults to 'light')"
|
||||
msgstr "Nombre del tema escogido (por defecto: 'luminoso')"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:110
|
||||
msgid "addressbook"
|
||||
msgstr "libreta de direcciones"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:177
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:181
|
||||
msgid "Encoded Name"
|
||||
msgstr "Nombre codificado"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:193
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:197
|
||||
msgid "Base 32 Address"
|
||||
msgstr "Dirección a base de 32"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:203
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:207
|
||||
msgid "Base 64 Hash"
|
||||
msgstr "Hash en base 64"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:209
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:213
|
||||
msgid "Address Helper"
|
||||
msgstr "Manejador de direcciones"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:216
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:220
|
||||
msgid "link"
|
||||
msgstr "vínculo"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:220
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:224
|
||||
msgid "Public Key"
|
||||
msgstr "Clave pública"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:222
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:226
|
||||
msgid "ElGamal 2048 bit"
|
||||
msgstr "ElGamal de 2048 bits"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:226
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:230
|
||||
msgid "Signing Key"
|
||||
msgstr "Clave de firmado"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:228
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:232
|
||||
msgid "DSA 1024 bit"
|
||||
msgstr "DSA de 1024 bits"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:232
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:236
|
||||
msgid "Certificate"
|
||||
msgstr "Certificado"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:238
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:242
|
||||
msgid "Added Date"
|
||||
msgstr "Fecha añadida"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:244
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:248
|
||||
msgid "Source"
|
||||
msgstr "Fuente"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:250
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:254
|
||||
msgid "Last Modified"
|
||||
msgstr "Modificado por última vez"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:256
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:260
|
||||
msgid "Notes"
|
||||
msgstr "Notas"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:102
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:110
|
||||
msgid "Introduction"
|
||||
msgstr "Introducción"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:120
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:132
|
||||
msgid "What is the addressbook?"
|
||||
msgstr "¿Qué es la libreta de direcciones?"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:122
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:134
|
||||
msgid "The addressbook application is part of your I2P installation."
|
||||
msgstr ""
|
||||
"La aplicación de libreta de direcciones es parte de tu instalación de I2P."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:123
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:135
|
||||
msgid ""
|
||||
"It regularly updates your hosts.txt file from distributed sources or "
|
||||
"\"subscriptions\"."
|
||||
@ -648,7 +653,7 @@ msgstr ""
|
||||
"Actualiza constantemente su archivo hosts.txt desde fuentes distribuidas o "
|
||||
"\"suscripciones\"."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:125
|
||||
#: ../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."
|
||||
@ -656,7 +661,7 @@ msgstr ""
|
||||
"En la configuración por defecto, la libreta de direcciones sólo está "
|
||||
"suscrita a www.i2p2.i2p."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:126
|
||||
#: ../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."
|
||||
@ -664,7 +669,7 @@ msgstr ""
|
||||
"Suscribirse a otras páginas es fácil, sólo añádelas a tu archivo de <a href="
|
||||
"\"subscriptions\">subscripciones</a>."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:128
|
||||
#: ../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>."
|
||||
@ -672,11 +677,11 @@ msgstr ""
|
||||
"Para mayor información acerca del nombrado en I2P, consulta <a href=\"http://"
|
||||
"www.i2p2.i2p/naming.html\">la información general en www.i2p2.i2p</a>."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:130
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:142
|
||||
msgid "How does the addressbook application work?"
|
||||
msgstr "¿Cómo funciona la libreta de direcciones?"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:132
|
||||
#: ../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."
|
||||
@ -684,7 +689,7 @@ msgstr ""
|
||||
"La aplicación de libreta de direcciones examina tus suscripciones e "
|
||||
"incorpora su contenido a tu libreta de direcciones del \"router\"."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:133
|
||||
#: ../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."
|
||||
@ -692,7 +697,7 @@ msgstr ""
|
||||
"Luego también incluye los contenidos de tu libreta de direcciones \"principal"
|
||||
"\" en aquella del router."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:134
|
||||
#: ../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."
|
||||
@ -701,7 +706,7 @@ msgstr ""
|
||||
"contenidos a la libreta de direcciones \"publicada\", la cual estará "
|
||||
"disponible públicamente si estás corriendo un sitio i2p própio."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:136
|
||||
#: ../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."
|
||||
@ -709,7 +714,7 @@ msgstr ""
|
||||
"El router también utiliza una libreta de direcciones privada (no mostrada en "
|
||||
"la figura), la cual ni se incorpora a ninguna otra libreta ni se publica."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:137
|
||||
#: ../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."
|
||||
@ -717,7 +722,7 @@ msgstr ""
|
||||
"Puedes visitar a los hosts que aparecen en tu libreta de direcciones "
|
||||
"privada, pero sus direcciones no se distribuyen a terceros."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:138
|
||||
#: ../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."
|
||||
@ -729,22 +734,22 @@ msgstr ""
|
||||
msgid "subscriptions"
|
||||
msgstr "suscripciones"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:143
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:147
|
||||
msgid "The subscription file contains a list of i2p URLs."
|
||||
msgstr "El archivo de suscripción contiene una lista de URLs I2P."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:144
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:148
|
||||
msgid ""
|
||||
"The addressbook application regularly checks this list for new eepsites."
|
||||
msgstr ""
|
||||
"La aplicación de libreta de direcciones comprueba regularmente esta lista en "
|
||||
"busca de nuevos eepsites."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:145
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:149
|
||||
msgid "Those URLs refer to published hosts.txt files."
|
||||
msgstr "Esas URLs referencian a los archivos hosts.txt publicados."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:146
|
||||
#: ../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."
|
||||
@ -752,7 +757,7 @@ msgstr ""
|
||||
"La suscripción por defecto es el hosts.txt de www.i2p2.i2p, que se actualiza "
|
||||
"con poca frecuencia."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:147
|
||||
#: ../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."
|
||||
@ -760,7 +765,7 @@ msgstr ""
|
||||
"Por lo tanto, es una buena idea agregar suscripciones adicionales a sitios "
|
||||
"que tengan las direcciones más recientes."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:149
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:153
|
||||
msgid "See the FAQ for a list of subscription URLs."
|
||||
msgstr ""
|
||||
"Ver las preguntas frecuentes para obtener una lista de direcciones URL de "
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -2,227 +2,234 @@
|
||||
# Copyright (C) 2009 The I2P Project
|
||||
# This file is distributed under the same license as the susidns package.
|
||||
# To contribute translations, see http://www.i2p2.de/newdevelopers
|
||||
#
|
||||
#
|
||||
# Translators:
|
||||
# <ducki2p@gmail.com>, 2011.
|
||||
# Martin Svensson <digitalmannen@gmail.com>, 2011, 2012.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: I2P\n"
|
||||
"Report-Msgid-Bugs-To: https://trac.i2p2.de/\n"
|
||||
"POT-Creation-Date: 2012-03-07 00:52+0000\n"
|
||||
"PO-Revision-Date: 2012-03-09 18:23+0000\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2012-07-26 19:11+0000\n"
|
||||
"PO-Revision-Date: 2012-07-23 16:33+0000\n"
|
||||
"Last-Translator: Martin Svensson <digitalmannen@gmail.com>\n"
|
||||
"Language-Team: Swedish (Sweden) (http://www.transifex.net/projects/p/I2P/language/sv_SE/)\n"
|
||||
"Language-Team: Swedish (Sweden) (http://www.transifex.com/projects/p/I2P/"
|
||||
"language/sv_SE/)\n"
|
||||
"Language: sv_SE\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: sv_SE\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1)\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 " Värdnamn \"{0}\" innehåller ogiltigttecken {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 " Värdnamn kan inte börja med \"{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 " Värdnamn kan inte avslutas med \"{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 " Värdnamn kan inte innehålla \"{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"
|
||||
" unavailable in this JVM"
|
||||
msgstr "Värdnamnet \"{0}\" kräver konvertering till ASCII men konverterings biblioteket är inte tillgängligt i denna JVM"
|
||||
"Host name \"{0}\" requires conversion to ASCII but the conversion library is "
|
||||
"unavailable in this JVM"
|
||||
msgstr ""
|
||||
"Värdnamnet \"{0}\" kräver konvertering till ASCII men konverterings "
|
||||
"biblioteket är inte tillgängligt i denna JVM"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressBean.java:219
|
||||
#: ../src/java/src/i2p/susi/dns/AddressBean.java:218
|
||||
msgid "None"
|
||||
msgstr "Ingen"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressBean.java:227
|
||||
#: ../src/java/src/i2p/susi/dns/AddressBean.java:226
|
||||
msgid "Hashcash"
|
||||
msgstr "Hashcash"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressBean.java:229
|
||||
#: ../src/java/src/i2p/susi/dns/AddressBean.java:228
|
||||
msgid "Hidden"
|
||||
msgstr "Dold"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressBean.java:231
|
||||
#: ../src/java/src/i2p/susi/dns/AddressBean.java:230
|
||||
msgid "Signed"
|
||||
msgstr "Signerad"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressBean.java:233
|
||||
#: ../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."
|
||||
msgstr[0] "Ett resultat för sökning i filtrerlistan."
|
||||
msgstr[1] "{0} resultat för sökning i filtrerlistan ."
|
||||
|
||||
#: ../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."
|
||||
msgstr[0] "Filtrerlistan innehåller 1 post."
|
||||
msgstr[1] "Filtrerlistan innehåller {0} poster."
|
||||
|
||||
#: ../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."
|
||||
msgstr[0] "Ett resultat på sökningen."
|
||||
msgstr[1] "{0} resultat på sökningen."
|
||||
|
||||
#: ../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."
|
||||
msgstr[0] "Adressboken innehåller 1 post."
|
||||
msgstr[1] "Adressboken innehåller {0} poster."
|
||||
|
||||
#: ../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 "Visar {0} av {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:406
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:257
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:227
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:412
|
||||
msgid "Add"
|
||||
msgstr "Lägg till"
|
||||
|
||||
#: ../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:404
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:257
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:268
|
||||
#: ../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 "Ersätt "
|
||||
|
||||
#: ../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:267
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:238
|
||||
#, java-format
|
||||
msgid "Host name {0} is already in address book, unchanged."
|
||||
msgstr "Värdnamnet {0} finns redan i adressboken, oförändrat."
|
||||
|
||||
#: ../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:269
|
||||
#: ../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"
|
||||
" \"Replace\" to overwrite."
|
||||
msgstr "Värdnamnet {0} finns redan i adressboken med en annan destination. Klicka på \"Ersätt\"för att skriva över."
|
||||
"Host name {0} is already in address book with a different destination. Click "
|
||||
"\"Replace\" to overwrite."
|
||||
msgstr ""
|
||||
"Värdnamnet {0} finns redan i adressboken med en annan destination. Klicka på "
|
||||
"\"Ersätt\"för att skriva över."
|
||||
|
||||
#: ../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:282
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:253
|
||||
#, java-format
|
||||
msgid "Destination added for {0}."
|
||||
msgstr "Mål till lagt för {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:284
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:255
|
||||
#, java-format
|
||||
msgid "Destination changed for {0}."
|
||||
msgstr "Målet ändrat för {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:286
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:257
|
||||
msgid "Warning - host name does not end with \".i2p\""
|
||||
msgstr "Varning - värdnamn slutar inte med \".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:291
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:265
|
||||
msgid "Invalid Base 64 destination."
|
||||
msgstr "Ogiltigt Base 64 mål"
|
||||
|
||||
#: ../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:297
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:271
|
||||
#, java-format
|
||||
msgid "Invalid host name \"{0}\"."
|
||||
msgstr "Ogiltigt värdnamn \"{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:300
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:274
|
||||
msgid "Please enter a host name and destination"
|
||||
msgstr "Ange värdnamn och destination"
|
||||
|
||||
#. 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:268
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:304
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:325
|
||||
#: ../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 "Ta bort post"
|
||||
|
||||
#: ../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:345
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:304
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:278
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:351
|
||||
msgid "Delete Selected"
|
||||
msgstr "Radera valda"
|
||||
|
||||
#. 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:318
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:295
|
||||
#, java-format
|
||||
msgid "Destination {0} deleted."
|
||||
msgstr "mål {0} raderat."
|
||||
|
||||
#. 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:321
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:298
|
||||
#, java-format
|
||||
msgid "1 destination deleted."
|
||||
msgid_plural "{0} destinations deleted."
|
||||
msgstr[0] "1 mål raderat."
|
||||
msgstr[1] "{0} mål raderade."
|
||||
|
||||
#: ../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:323
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:300
|
||||
msgid "No entries selected to delete."
|
||||
msgstr "Inga uppgifter valda för radering."
|
||||
|
||||
#: ../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:331
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:307
|
||||
msgid "Address book saved."
|
||||
msgstr "Adressbok sparad."
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:365
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:334
|
||||
msgid "ERROR: Could not write addressbook file."
|
||||
msgstr "FEL: Kunde inte skriva till adressboks filen."
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:370
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:339
|
||||
#: ../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/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."
|
||||
msgstr "Felaktigt formulär, förmodligen för att du använde \"Bakåt \" eller \"Uppdaterings\" knappen i din webbläsare. Försök skicka igen."
|
||||
"Invalid form submission, probably because you used the \"back\" or \"reload"
|
||||
"\" button on your browser. Please resubmit."
|
||||
msgstr ""
|
||||
"Felaktigt formulär, förmodligen för att du använde \"Bakåt \" eller "
|
||||
"\"Uppdaterings\" knappen i din webbläsare. Försök skicka igen."
|
||||
|
||||
#: ../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:139
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:139
|
||||
#: ../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 "Spara"
|
||||
|
||||
@ -231,9 +238,9 @@ msgid "Configuration saved."
|
||||
msgstr "Inställningarna sparas."
|
||||
|
||||
#: ../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:137
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:137
|
||||
#: ../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 "Ladda om"
|
||||
|
||||
@ -241,456 +248,497 @@ msgstr "Ladda om"
|
||||
msgid "Configuration reloaded."
|
||||
msgstr "Konfiguration laddas om."
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:105
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:101
|
||||
#, java-format
|
||||
msgid "{0} address book in {1} database"
|
||||
msgstr "{0} adressboken i {1} databas"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:252
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:248
|
||||
msgid "Manually added via SusiDNS"
|
||||
msgstr "Manuellt tillagda via 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 "Kunde inte lägga till målet för {0} till namntjänsten {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 "Det gick inte att ta bort målet för {0} från namntjänsten {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 "Abonnemang sparade, uppdatering adressbok från abonnemangs källorna nu."
|
||||
msgstr ""
|
||||
"Abonnemang sparade, uppdatering adressbok från abonnemangs källorna nu."
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:148
|
||||
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:120
|
||||
msgid "Subscriptions saved."
|
||||
msgstr "Abonnemang sprade"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:152
|
||||
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:124
|
||||
msgid "Subscriptions reloaded."
|
||||
msgstr "Abonnemang laddas om."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:123
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:125
|
||||
msgid "address book"
|
||||
msgstr "adressboken"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:125
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:141
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:111
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:127
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:110
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:126
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:116
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:111
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:127
|
||||
#: ../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 "Översikt"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:127
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:113
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:112
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:102
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:113
|
||||
#: ../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 "Adressböcker"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:129
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:115
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:114
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:104
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:115
|
||||
#: ../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 "privat"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:131
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:117
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:116
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:106
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:117
|
||||
#: ../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 "master"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:133
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:119
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:118
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:108
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:119
|
||||
#: ../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:135
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:121
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:120
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:110
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:121
|
||||
#: ../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 "publicerad"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:137
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:123
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:122
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:112
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:123
|
||||
#: ../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 "Abonnemang"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:139
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:125
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:124
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:114
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:125
|
||||
#: ../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 "Konfiguration"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:143
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:128
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:149
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:134
|
||||
msgid "Address book"
|
||||
msgstr "Adressbok"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:148
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:133
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:154
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:139
|
||||
msgid "Storage"
|
||||
msgstr "Förvaring"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:166
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:172
|
||||
msgid "Filter"
|
||||
msgstr "Filter"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:169
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:175
|
||||
msgid "other"
|
||||
msgstr "andra"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:171
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:177
|
||||
msgid "all"
|
||||
msgstr "alla"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:185
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:191
|
||||
msgid "Current filter"
|
||||
msgstr "Nuvarande filter"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:190
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:196
|
||||
msgid "clear filter"
|
||||
msgstr "rensa filter"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:203
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:207
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:209
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:213
|
||||
msgid "Search"
|
||||
msgstr "Sök"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:240
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:246
|
||||
msgid "Name"
|
||||
msgstr "Namn"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:242
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:248
|
||||
msgid "Links"
|
||||
msgstr "Länkar"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:244
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:398
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:260
|
||||
#: ../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 "Mål"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:280
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:286
|
||||
msgid "Mark for deletion"
|
||||
msgstr "Markera för att raderas"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:301
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:307
|
||||
msgid "Base 32 address"
|
||||
msgstr "Base 32 adress"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:305
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:311
|
||||
msgid "More information on this entry"
|
||||
msgstr "Mer information om den här posten"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:308
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:314
|
||||
msgid "details"
|
||||
msgstr "detaljer"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:343
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:402
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:349
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:408
|
||||
msgid "Cancel"
|
||||
msgstr "Avbryt"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:377
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:383
|
||||
msgid "This address book is empty."
|
||||
msgstr "Denna adressbok är tom"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:392
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:398
|
||||
msgid "Add new destination"
|
||||
msgstr "Lägg till nytt mål"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:394
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:159
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:400
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:165
|
||||
msgid "Host Name"
|
||||
msgstr "Värdnamn"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:109
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:119
|
||||
msgid "configuration"
|
||||
msgstr "konfiguration"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:141
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:155
|
||||
msgid "Hints"
|
||||
msgstr "Tips"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:143
|
||||
#: ../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\\addressbook\\ (Windows)."
|
||||
msgstr "Fil och katalog sökvägar anges här i förhållande till adressboken arbetskatalog, som normalt är ~/.i2p/addressbook/ (Linux) eller %APPDATA%\\I2P\\addressbook\\ (Windows)."
|
||||
"directory, which is normally ~/.i2p/addressbook/ (Linux) or %APPDATA%\\I2P"
|
||||
"\\addressbook\\ (Windows)."
|
||||
msgstr ""
|
||||
"Fil och katalog sökvägar anges här i förhållande till adressboken "
|
||||
"arbetskatalog, som normalt är ~/.i2p/addressbook/ (Linux) eller %APPDATA%"
|
||||
"\\I2P\\addressbook\\ (Windows)."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:145
|
||||
#: ../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."
|
||||
msgstr "Om du manuellt vill lägga till rader i en adressboken, lägg till dem i den privata eller master adressboken."
|
||||
"If you want to manually add lines to an addressbook, add them to the private "
|
||||
"or master addressbooks."
|
||||
msgstr ""
|
||||
"Om du manuellt vill lägga till rader i en adressboken, lägg till dem i den "
|
||||
"privata eller master adressboken."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:146
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:160
|
||||
msgid ""
|
||||
"The router addressbook and the published addressbook are updated by the "
|
||||
"addressbook application."
|
||||
msgstr "Routerns adressbok och den publicerade adressboken uppdateras av adressboksprogrammet."
|
||||
msgstr ""
|
||||
"Routerns adressbok och den publicerade adressboken uppdateras av "
|
||||
"adressboksprogrammet."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:148
|
||||
#: ../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."
|
||||
msgstr "När du publicerar din adressbok, Kommer samtliga destinationer från master och routerns adressböcker visas där."
|
||||
msgstr ""
|
||||
"När du publicerar din adressbok, Kommer samtliga destinationer från master "
|
||||
"och routerns adressböcker visas där."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:149
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:163
|
||||
msgid ""
|
||||
"Use the private addressbook for private destinations, these are not "
|
||||
"published."
|
||||
msgstr "Använd privata adressboken för privata mål, dessa inte publiceras inte."
|
||||
msgstr ""
|
||||
"Använd privata adressboken för privata mål, dessa inte publiceras inte."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:151
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:165
|
||||
msgid "Options"
|
||||
msgstr "Alternativ"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:153
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:167
|
||||
msgid "File containing the list of subscriptions URLs (no need to change)"
|
||||
msgstr "Fil som innehåller en förteckning över prenumerations URLer (ingen anledning att ändra)"
|
||||
msgstr ""
|
||||
"Fil som innehåller en förteckning över prenumerations URLer (ingen anledning "
|
||||
"att ändra)"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:155
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:169
|
||||
msgid "Update interval in hours"
|
||||
msgstr "Uppdaterings intervall i timmar"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:157
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:171
|
||||
msgid ""
|
||||
"Your public hosts.txt file (choose a path within your webserver document "
|
||||
"root)"
|
||||
msgstr "Din publika hosts.txt fil (välj en sökväg till din webbservers dokumentrot)"
|
||||
msgstr ""
|
||||
"Din publika hosts.txt fil (välj en sökväg till din webbservers dokumentrot)"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:159
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:173
|
||||
msgid "Your hosts.txt (don't change)"
|
||||
msgstr "Din hosts.tx (ändra inte)"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:161
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:175
|
||||
msgid "Your personal addressbook, these hosts will be published"
|
||||
msgstr "Din personliga adressbok, dessa värdar kommer att publiceras"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:163
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:177
|
||||
msgid "Your private addressbook, it is never published"
|
||||
msgstr "Din privata adressbok, den publiceras aldrig"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:165
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:179
|
||||
msgid "Port for your eepProxy (no need to change)"
|
||||
msgstr "Port för din eepProxy (du behöver inte ändra)"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:167
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:181
|
||||
msgid "Hostname for your eepProxy (no need to change)"
|
||||
msgstr "Värd namn fär din eepProxy (du behöver inte ändra)"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:169
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:183
|
||||
msgid "Whether to update the published addressbook"
|
||||
msgstr "Huruvida du vill uppdatera den publicerade adressboken"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:171
|
||||
#: ../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)"
|
||||
msgstr "Fil som innehåller etags header från hämtade prenumeration URLer (du behöver inte ändra)"
|
||||
"File containing the etags header from the fetched subscription URLs (no need "
|
||||
"to change)"
|
||||
msgstr ""
|
||||
"Fil som innehåller etags header från hämtade prenumeration URLer (du behöver "
|
||||
"inte ändra)"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:173
|
||||
#: ../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)"
|
||||
msgstr "Fil som innehåller en ändring tidsstämpeln för varje hämtade prenumeration URL (behävs inte ändras)"
|
||||
"File containing the modification timestamp for each fetched subscription URL "
|
||||
"(no need to change)"
|
||||
msgstr ""
|
||||
"Fil som innehåller en ändring tidsstämpeln för varje hämtade prenumeration "
|
||||
"URL (behävs inte ändras)"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:175
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:189
|
||||
msgid "File to log activity to (change to /dev/null if you like)"
|
||||
msgstr "Fil loggaktivitet sparas till (ändra till / dev / null om du vill)"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:108
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:191
|
||||
msgid "Name of the theme to use (defaults to 'light')"
|
||||
msgstr "Namn på temat som används (förvalt som 'ljus')"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:110
|
||||
msgid "addressbook"
|
||||
msgstr "adressbok"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:175
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:181
|
||||
msgid "Encoded Name"
|
||||
msgstr "Kodat namn"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:191
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:197
|
||||
msgid "Base 32 Address"
|
||||
msgstr "Base 32 Adress"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:201
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:207
|
||||
msgid "Base 64 Hash"
|
||||
msgstr "Bas 64 Hash"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:207
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:213
|
||||
msgid "Address Helper"
|
||||
msgstr "Adress hjälp"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:214
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:220
|
||||
msgid "link"
|
||||
msgstr "länk"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:218
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:224
|
||||
msgid "Public Key"
|
||||
msgstr "Publik nyckel"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:220
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:226
|
||||
msgid "ElGamal 2048 bit"
|
||||
msgstr "ElGamal 2048 bit"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:224
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:230
|
||||
msgid "Signing Key"
|
||||
msgstr "Signeringsnyckel"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:226
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:232
|
||||
msgid "DSA 1024 bit"
|
||||
msgstr "DSA 1024 bit"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:230
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:236
|
||||
msgid "Certificate"
|
||||
msgstr "Certifikat"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:236
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:242
|
||||
msgid "Added Date"
|
||||
msgstr "Datum för tillagd"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:242
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:248
|
||||
msgid "Source"
|
||||
msgstr "Källa"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:248
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:254
|
||||
msgid "Last Modified"
|
||||
msgstr "Senast modifierad"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:254
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:260
|
||||
msgid "Notes"
|
||||
msgstr "Anteckningar"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:100
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:110
|
||||
msgid "Introduction"
|
||||
msgstr "Inledning"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:118
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:132
|
||||
msgid "What is the addressbook?"
|
||||
msgstr "Vad är adressboken?"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:120
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:134
|
||||
msgid "The addressbook application is part of your I2P installation."
|
||||
msgstr "Adressboksprogrammet en del av din I2P installation."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:121
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:135
|
||||
msgid ""
|
||||
"It regularly updates your hosts.txt file from distributed sources or "
|
||||
"\"subscriptions\"."
|
||||
msgstr "Den uppdaterar din regelbundet hosts.txt fil från distribuerade källor eller \"subscriptions\"."
|
||||
msgstr ""
|
||||
"Den uppdaterar din regelbundet hosts.txt fil från distribuerade källor eller "
|
||||
"\"subscriptions\"."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:123
|
||||
#: ../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."
|
||||
msgstr "I standardkonfigurationen prenumererar adressboken bara på www.i2p2.i2p."
|
||||
"In the default configuration, the address book is only subscribed to www."
|
||||
"i2p2.i2p."
|
||||
msgstr ""
|
||||
"I standardkonfigurationen prenumererar adressboken bara på www.i2p2.i2p."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:124
|
||||
#: ../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."
|
||||
msgstr "Att prenumerera på ytterligare siter är enkelt, lägg bara till dem i din <a href=\"subscriptions\">subscriptions</a> fil. "
|
||||
"Subscribing to additional sites is easy, just add them to your <a href="
|
||||
"\"subscriptions\">subscriptions</a> file."
|
||||
msgstr ""
|
||||
"Att prenumerera på ytterligare siter är enkelt, lägg bara till dem i din <a "
|
||||
"href=\"subscriptions\">subscriptions</a> fil. "
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:126
|
||||
#: ../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>."
|
||||
msgstr "För mer information om namngivning i I2P, se <a href=\"http://www.i2p2.i2p/naming.html\"> översikten på www.i2p2.i2p </a>."
|
||||
"For more information on naming in I2P, see <a href=\"http://www.i2p2.i2p/"
|
||||
"naming.html\">the overview on www.i2p2.i2p</a>."
|
||||
msgstr ""
|
||||
"För mer information om namngivning i I2P, se <a href=\"http://www.i2p2.i2p/"
|
||||
"naming.html\"> översikten på www.i2p2.i2p </a>."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:128
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:142
|
||||
msgid "How does the addressbook application work?"
|
||||
msgstr "Hur fungerar adressboksprogrammet?"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:130
|
||||
#: ../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."
|
||||
msgstr "Adressboksprogrammet kontaktar med jämna mellanrum dina prenumerationer och sammanfogar deras innehåll med din \"router\" adressbok."
|
||||
msgstr ""
|
||||
"Adressboksprogrammet kontaktar med jämna mellanrum dina prenumerationer och "
|
||||
"sammanfogar deras innehåll med din \"router\" adressbok."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:131
|
||||
#: ../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."
|
||||
msgstr "Då sammanfogas \"master\" adressboken med routeradressboken också."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:132
|
||||
#: ../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."
|
||||
msgstr "Om konfigurerad så skrivit router adressboken till \"published\" adressboken, som är tillgänglig om du kör en eepsite."
|
||||
"address book, which will be publicly available if you are running an eepsite."
|
||||
msgstr ""
|
||||
"Om konfigurerad så skrivit router adressboken till \"published\" "
|
||||
"adressboken, som är tillgänglig om du kör en eepsite."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:134
|
||||
#: ../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."
|
||||
msgstr "Routern använder också den privat adressbok (syns ej på bilden) som inte är samman kopplade eller publicerad."
|
||||
msgstr ""
|
||||
"Routern använder också den privat adressbok (syns ej på bilden) som inte är "
|
||||
"samman kopplade eller publicerad."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:135
|
||||
#: ../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."
|
||||
msgstr "Värdar i den privata adressboken kan nås av dig, men adresserna delas aldrig ut till andra."
|
||||
"Hosts in the private address book can be accessed by you but their addresses "
|
||||
"are never distributed to others."
|
||||
msgstr ""
|
||||
"Värdar i den privata adressboken kan nås av dig, men adresserna delas "
|
||||
"aldrig ut till andra."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:136
|
||||
#: ../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."
|
||||
msgstr "Den privata adressboken kan också användas för alias för värdar i andra adressböcker."
|
||||
"The private address book can also be used for aliases of hosts in your other "
|
||||
"address books."
|
||||
msgstr ""
|
||||
"Den privata adressboken kan också användas för alias för värdar i andra "
|
||||
"adressböcker."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:109
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:111
|
||||
msgid "subscriptions"
|
||||
msgstr "abonnemang"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:141
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:147
|
||||
msgid "The subscription file contains a list of i2p URLs."
|
||||
msgstr "Abonnemangs filen innehåller lista över I2P webbadresser."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:142
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:148
|
||||
msgid ""
|
||||
"The addressbook application regularly checks this list for new eepsites."
|
||||
msgstr "Adressboks programet kontrollerar regelbundet listan för nya eepsites."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:143
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:149
|
||||
msgid "Those URLs refer to published hosts.txt files."
|
||||
msgstr "Dessa URLer hänvisar till publicerade hosts.txt filer."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:144
|
||||
#: ../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."
|
||||
msgstr "Den förvalda prenumeration är hosts.txt från www.i2p2.i2p uppdateras sällan."
|
||||
msgstr ""
|
||||
"Den förvalda prenumeration är hosts.txt från www.i2p2.i2p uppdateras sällan."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:145
|
||||
#: ../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."
|
||||
msgstr "Så det är bra idé att lägga till ytterligare prenumerationer till sajter som har de senaste adresserna."
|
||||
msgstr ""
|
||||
"Så det är bra idé att lägga till ytterligare prenumerationer till sajter som "
|
||||
"har de senaste adresserna."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:147
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:153
|
||||
msgid "See the FAQ for a list of subscription URLs."
|
||||
msgstr "Se FAQ för en lista över prenumerations URLer."
|
||||
|
@ -14,7 +14,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: I2P\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2012-05-25 12:35+0000\n"
|
||||
"POT-Creation-Date: 2012-07-26 19:55+0000\n"
|
||||
"PO-Revision-Date: 2012-02-19 14:04+0000\n"
|
||||
"Last-Translator: D.A. Loader <>\n"
|
||||
"Language-Team: German (http://www.transifex.net/projects/p/I2P/language/"
|
||||
@ -25,428 +25,428 @@ msgstr ""
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:435
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:439
|
||||
msgid "unknown"
|
||||
msgstr "unbekannt"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:454
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:458
|
||||
msgid "Warning: no transfer encoding found, fallback to 7bit."
|
||||
msgstr "Warnung: keine Übertragungskodierung gefunden, Rückgriff auf 7-bit"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:459
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:463
|
||||
#, java-format
|
||||
msgid "No encoder found for encoding \\''{0}\\''."
|
||||
msgstr "kein Kodierer für Kodierung \\''{0}\\'' gefunden"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:465
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:469
|
||||
msgid "Warning: no charset found, fallback to US-ASCII."
|
||||
msgstr "Warnung: kein Zeichensatz gefunden; Rückgriff auf US-ASCII"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:479
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:483
|
||||
#, java-format
|
||||
msgid "Charset \\''{0}\\'' not supported."
|
||||
msgstr "Zeichensatz \\''{0}\\'' nicht unterstützt"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:483
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:487
|
||||
#, java-format
|
||||
msgid "Part ({0}) not shown, because of {1}"
|
||||
msgstr "Teil ({0}) aufgrund von {1} nicht angezeigt"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:506
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:510
|
||||
msgid "Download"
|
||||
msgstr "Herunterladen"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:506
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:510
|
||||
msgid "File is packed into a zipfile for security reasons."
|
||||
msgstr "Die Datei wurde aus Sicherheitsgründen in ein Zip-Archiv gepackt."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:506
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:510
|
||||
#, java-format
|
||||
msgid "attachment ({0})."
|
||||
msgstr "Anhang ({0})."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:510
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:514
|
||||
#, java-format
|
||||
msgid "Attachment ({0})."
|
||||
msgstr "Anhang ({0})."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:560
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:564
|
||||
msgid "Need username for authentication."
|
||||
msgstr "Benutzername zur Authentifizierung benötigt"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:564
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:568
|
||||
msgid "Need password for authentication."
|
||||
msgstr "Passwort zur Authentifizierung benötigt"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:568
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:572
|
||||
msgid "Need hostname for connect."
|
||||
msgstr "Host-Name für die Verbindung benötigt"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:573
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:577
|
||||
msgid "Need port number for pop3 connect."
|
||||
msgstr "POP3-Port für die Verbindung benötigt"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:580
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:584
|
||||
msgid "POP3 port number is not in range 0..65535."
|
||||
msgstr "Der POP3-Port liegt nicht im Bereich 0-65535."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:586
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:590
|
||||
msgid "POP3 port number is invalid."
|
||||
msgstr "ungültiger POP3-Port"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:592
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:596
|
||||
msgid "Need port number for smtp connect."
|
||||
msgstr "SMTP-Port für die SMTP-Verbindung benötigt"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:599
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:603
|
||||
msgid "SMTP port number is not in range 0..65535."
|
||||
msgstr "Der SMTP-Port liegt nicht im Bereich 0-65535."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:605
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:609
|
||||
msgid "SMTP port number is invalid."
|
||||
msgstr "ungültiger SMTP-Port"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:652
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:656
|
||||
msgid "User logged out."
|
||||
msgstr "Benutzer wurde abgemeldet"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:656
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:660
|
||||
msgid "Internal error, lost connection."
|
||||
msgstr "interner Fehler; Verbindung unterbrochen"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:752
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:756
|
||||
#, java-format
|
||||
msgid "On {0} {1} wrote:"
|
||||
msgstr "Am {0} schrieb {1}:"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:799
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:803
|
||||
msgid "begin forwarded mail"
|
||||
msgstr "Anfang weitergeleiteter Nachricht"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:821
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:825
|
||||
msgid "end forwarded mail"
|
||||
msgstr "Ende weitergeleiteter Nachricht"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:828
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1701
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:832
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1707
|
||||
msgid "Could not fetch mail body."
|
||||
msgstr "konnte den Körper der Nachricht nicht holen"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:856
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:860
|
||||
msgid "Message id not valid."
|
||||
msgstr "ungültige Nachrichten-ID"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:939
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:943
|
||||
#, java-format
|
||||
msgid "No Encoding found for {0}"
|
||||
msgstr "keine Kodierung für {0} gefunden"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:943
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:947
|
||||
#, java-format
|
||||
msgid "Could not encode data: {0}"
|
||||
msgstr "Konte Daten nicht kodieren: {0}"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:948
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:952
|
||||
#, java-format
|
||||
msgid "Error reading uploaded file: {0}"
|
||||
msgstr "Fehler beim Lesen der hochzuladenen Datei: {0}"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1026
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1030
|
||||
msgid "Error parsing download parameter."
|
||||
msgstr "Fehler beim Parsen des Download-Parameters"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1070
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1074
|
||||
msgid "Invalid pagesize number, resetting to default value."
|
||||
msgstr "ungültige Seitengröße, wird auf Standardwert zurückgesetzt"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1094
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1098
|
||||
msgid "No messages marked for deletion."
|
||||
msgstr "Keine Nachrichten zum Löschen markiert"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1114
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1118
|
||||
#, java-format
|
||||
msgid "Error deleting message: {0}"
|
||||
msgstr "Fehler beim Löschen der Nachricht: {0}"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1125
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1129
|
||||
#, java-format
|
||||
msgid "1 message deleted."
|
||||
msgid_plural "{0} messages deleted."
|
||||
msgstr[0] "Eine Nachricht gelöscht"
|
||||
msgstr[1] "{0} Nachrichten gelöscht"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1248
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1585
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1254
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1591
|
||||
msgid "Login"
|
||||
msgstr "Anmelden"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1250
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1256
|
||||
#, java-format
|
||||
msgid "1 Message"
|
||||
msgid_plural "{0} Messages"
|
||||
msgstr[0] "Eine Nachricht"
|
||||
msgstr[1] "{0} Nachrichten"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1252
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1258
|
||||
msgid "Show Message"
|
||||
msgstr "Nachricht anzeigen"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1314
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1320
|
||||
#, java-format
|
||||
msgid "Error decoding content: {0}"
|
||||
msgstr "Fehler beim Dekodieren des Inhalts: {0}"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1319
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1325
|
||||
msgid "Error decoding content: No encoder found."
|
||||
msgstr "Fehler bei der Dekodierung: kein Kodierer gefunden"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1366
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1372
|
||||
msgid "no subject"
|
||||
msgstr "kein Betreff"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1383
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1389
|
||||
msgid "Found no valid sender address."
|
||||
msgstr "Keine gültige Absenderadresse vorgefunden"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1389
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1395
|
||||
#, java-format
|
||||
msgid "Found no valid address in \\''{0}\\''."
|
||||
msgstr "keine gültige Adresse in \\''{0}\\''"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1408
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1414
|
||||
msgid "No recipients found."
|
||||
msgstr "keine Empfänger gefunden"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1415
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1421
|
||||
msgid "Quoted printable encoder not available."
|
||||
msgstr "Der angegebene druckbare Kodierer ist nicht verfügbar."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1420
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1426
|
||||
msgid "Header line encoder not available."
|
||||
msgstr "Kodierer für die Kopfzeilen nicht verfügbar"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1471
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1477
|
||||
msgid "Mail sent."
|
||||
msgstr "Mail versandt."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1510
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1516
|
||||
msgid "Send"
|
||||
msgstr "Senden"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1511
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1517
|
||||
msgid "Cancel"
|
||||
msgstr "Abbruch"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1512
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1518
|
||||
msgid "Delete Attachment"
|
||||
msgstr "Anhang löschen"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1513
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1607
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1688
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1519
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1613
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1694
|
||||
msgid "Reload Config"
|
||||
msgstr "Einstellungen neu laden"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1514
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1608
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1689
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1520
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1614
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1695
|
||||
msgid "Logout"
|
||||
msgstr "Abmelden"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1537
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1693
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1543
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1699
|
||||
msgid "From:"
|
||||
msgstr "Von:"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1538
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1544
|
||||
msgid "To:"
|
||||
msgstr "An:"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1539
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1545
|
||||
msgid "Cc:"
|
||||
msgstr "Kopie an:"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1540
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1546
|
||||
msgid "Bcc:"
|
||||
msgstr "Blindkopie an:"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1541
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1695
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1547
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1701
|
||||
msgid "Subject:"
|
||||
msgstr "Betreff:"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1542
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1548
|
||||
msgid "Bcc to self"
|
||||
msgstr "Blindkopie zurück?"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1545
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1551
|
||||
msgid "New Attachment:"
|
||||
msgstr "Neuer Anhang:"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1545
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1551
|
||||
msgid "Upload File"
|
||||
msgstr "Datei hochladen"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1551
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1557
|
||||
msgid "Attachments:"
|
||||
msgstr "Anhänge:"
|
||||
|
||||
#. current postman hq length limits 16/12, new postman version 32/32
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1574
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1580
|
||||
msgid "User"
|
||||
msgstr "Benutzer"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1575
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1581
|
||||
msgid "Password"
|
||||
msgstr "Passwort"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1580
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1586
|
||||
msgid "Host"
|
||||
msgstr "Host"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1581
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1587
|
||||
msgid "POP3-Port"
|
||||
msgstr "POP3-Port"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1582
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1588
|
||||
msgid "SMTP-Port"
|
||||
msgstr "SMTP-Port"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1585
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1591
|
||||
msgid "Reset"
|
||||
msgstr "Zurücksetzen"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1586
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1592
|
||||
msgid "Learn about I2P mail"
|
||||
msgstr "Erfahre etwas über I2P Mail"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1587
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1593
|
||||
msgid "Create Account"
|
||||
msgstr "Konto anlegen"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1599
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1605
|
||||
msgid "Really delete the marked messages?"
|
||||
msgstr "Sollen die markierten Nachrichten wirklich gelöscht werden?"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1599
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1605
|
||||
msgid "Yes, really delete them!"
|
||||
msgstr "Ja, löschen"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1601
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1680
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1607
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1686
|
||||
msgid "New"
|
||||
msgstr "Verfassen"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1602
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1681
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1608
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1687
|
||||
msgid "Reply"
|
||||
msgstr "Antworten"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1603
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1682
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1609
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1688
|
||||
msgid "Reply All"
|
||||
msgstr "Allen antworten"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1604
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1683
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1610
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1689
|
||||
msgid "Forward"
|
||||
msgstr "Weiterleiten"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1605
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1684
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1611
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1690
|
||||
msgid "Delete"
|
||||
msgstr "Löschen"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1606
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1612
|
||||
msgid "Check Mail"
|
||||
msgstr "Nachrichten abrufen"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1610
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1616
|
||||
msgid "Sender"
|
||||
msgstr "Absender"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1611
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1617
|
||||
msgid "Subject"
|
||||
msgstr "Betreff"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1612
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1618
|
||||
msgid "Date"
|
||||
msgstr "Datum"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1613
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1619
|
||||
msgid "Size"
|
||||
msgstr "Größe"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1639
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1645
|
||||
#, java-format
|
||||
msgid "1 Byte"
|
||||
msgid_plural "{0} Bytes"
|
||||
msgstr[0] "1 Byte"
|
||||
msgstr[1] "{0} Bytes"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1644
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1650
|
||||
msgid "Mark All"
|
||||
msgstr "Alles markieren"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1645
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1651
|
||||
msgid "Invert Selection"
|
||||
msgstr "Markierung umkehren"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1646
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1652
|
||||
msgid "Clear"
|
||||
msgstr "Verwerfen"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1649
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1650
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1655
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1656
|
||||
msgid "First"
|
||||
msgstr "erste"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1649
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1650
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1685
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1655
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1656
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1691
|
||||
msgid "Previous"
|
||||
msgstr "vorherige"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1651
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1657
|
||||
#, java-format
|
||||
msgid "Page {0} of {1}"
|
||||
msgstr "Seite {0} von {1}"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1653
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1654
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1659
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1660
|
||||
msgid "Last"
|
||||
msgstr "letzte"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1653
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1654
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1686
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1659
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1660
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1692
|
||||
msgid "Next"
|
||||
msgstr "nächste"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1657
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1663
|
||||
msgid "Pagesize:"
|
||||
msgstr "Seitengröße"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1658
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1664
|
||||
msgid "Set"
|
||||
msgstr "festlegen"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1668
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1674
|
||||
msgid "Really delete this message?"
|
||||
msgstr "Diese Nachricht wirklich löschen?"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1668
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1674
|
||||
msgid "Yes, really delete it!"
|
||||
msgstr "Ja, wirklich löschen"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1687
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1693
|
||||
msgid "Back to Folder"
|
||||
msgstr "Zurück zur Übersicht"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1694
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1700
|
||||
msgid "Date:"
|
||||
msgstr "Datum:"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1705
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1711
|
||||
msgid "Could not fetch mail."
|
||||
msgstr "Konnte Nachrichten nicht abrufen."
|
||||
|
@ -14,7 +14,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: I2P\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2012-05-25 12:34+0000\n"
|
||||
"POT-Creation-Date: 2012-07-26 19:46+0000\n"
|
||||
"PO-Revision-Date: 2011-12-18 10:48+0000\n"
|
||||
"Last-Translator: punkibastardo <punkibastardo@gmail.com>\n"
|
||||
"Language-Team: Spanish (Castilian) (http://www.transifex.net/projects/p/I2P/"
|
||||
@ -25,432 +25,432 @@ msgstr ""
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:435
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:439
|
||||
msgid "unknown"
|
||||
msgstr "desconocido"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:454
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:458
|
||||
msgid "Warning: no transfer encoding found, fallback to 7bit."
|
||||
msgstr ""
|
||||
"Aviso: No se encuentra codificación de transferencia, volviendo a 7 bits."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:459
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:463
|
||||
#, java-format
|
||||
msgid "No encoder found for encoding \\''{0}\\''."
|
||||
msgstr "No se ha encontrado codificador para la codificación \\''{0}''\\."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:465
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:469
|
||||
msgid "Warning: no charset found, fallback to US-ASCII."
|
||||
msgstr ""
|
||||
"Aviso: no se ha encontrado el juego de caracteres, volviendo a US-ASCII."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:479
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:483
|
||||
#, java-format
|
||||
msgid "Charset \\''{0}\\'' not supported."
|
||||
msgstr "juego de caracteres \\''{0}\\''no soportado."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:483
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:487
|
||||
#, java-format
|
||||
msgid "Part ({0}) not shown, because of {1}"
|
||||
msgstr "La parte ({0}) no se muestra, debido a {1}"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:506
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:510
|
||||
msgid "Download"
|
||||
msgstr "Descarga"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:506
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:510
|
||||
msgid "File is packed into a zipfile for security reasons."
|
||||
msgstr ""
|
||||
"El archivo está empaquetado en un archivo zip por razones de seguridad."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:506
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:510
|
||||
#, java-format
|
||||
msgid "attachment ({0})."
|
||||
msgstr "adjunto ({0})."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:510
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:514
|
||||
#, java-format
|
||||
msgid "Attachment ({0})."
|
||||
msgstr "Adjunto ({0})."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:560
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:564
|
||||
msgid "Need username for authentication."
|
||||
msgstr "Es necesario un nombre de usuario para la autenticación."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:564
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:568
|
||||
msgid "Need password for authentication."
|
||||
msgstr "Es necesaria una contraseña para la autenticación."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:568
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:572
|
||||
msgid "Need hostname for connect."
|
||||
msgstr "Es necesario un nombre de host para la conexión."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:573
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:577
|
||||
msgid "Need port number for pop3 connect."
|
||||
msgstr "Es necesario el número de puerto para conectar pop3."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:580
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:584
|
||||
msgid "POP3 port number is not in range 0..65535."
|
||||
msgstr "El puerto POP3 no está en el rango 0..65535."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:586
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:590
|
||||
msgid "POP3 port number is invalid."
|
||||
msgstr "El puerto POP3 no es válido."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:592
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:596
|
||||
msgid "Need port number for smtp connect."
|
||||
msgstr "Es necesario el número de puerto para conectar smtp."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:599
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:603
|
||||
msgid "SMTP port number is not in range 0..65535."
|
||||
msgstr "El puerto SMTP no está en el rango 0..65535."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:605
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:609
|
||||
msgid "SMTP port number is invalid."
|
||||
msgstr "El puerto SMTP no es válido."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:652
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:656
|
||||
msgid "User logged out."
|
||||
msgstr "Usuario desconectado."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:656
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:660
|
||||
msgid "Internal error, lost connection."
|
||||
msgstr "Error interno, pérdida de conexión."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:752
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:756
|
||||
#, java-format
|
||||
msgid "On {0} {1} wrote:"
|
||||
msgstr "En {0} {1} escribió:"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:799
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:803
|
||||
msgid "begin forwarded mail"
|
||||
msgstr "comenzar correo reenviado"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:821
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:825
|
||||
msgid "end forwarded mail"
|
||||
msgstr "final del correo reenviado"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:828
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1701
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:832
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1707
|
||||
msgid "Could not fetch mail body."
|
||||
msgstr "No se pudo obtener el cuerpo del correo."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:856
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:860
|
||||
msgid "Message id not valid."
|
||||
msgstr "ID del mensaje no válida."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:939
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:943
|
||||
#, java-format
|
||||
msgid "No Encoding found for {0}"
|
||||
msgstr "No se ha encontrado codificación para {0}"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:943
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:947
|
||||
#, java-format
|
||||
msgid "Could not encode data: {0}"
|
||||
msgstr "No se pudo codificar los datos: {0}"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:948
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:952
|
||||
#, java-format
|
||||
msgid "Error reading uploaded file: {0}"
|
||||
msgstr "Error al leer el archivo subido: {0}"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1026
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1030
|
||||
msgid "Error parsing download parameter."
|
||||
msgstr "Error al analizar parámetros de descarga."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1070
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1074
|
||||
msgid "Invalid pagesize number, resetting to default value."
|
||||
msgstr ""
|
||||
"Tamaño de página no válida, restableciendo los valores predeterminados."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1094
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1098
|
||||
msgid "No messages marked for deletion."
|
||||
msgstr "No hay mensajes marcados para su eliminación."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1114
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1118
|
||||
#, java-format
|
||||
msgid "Error deleting message: {0}"
|
||||
msgstr "Error al eliminar el mensaje: {0}"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1125
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1129
|
||||
#, java-format
|
||||
msgid "1 message deleted."
|
||||
msgid_plural "{0} messages deleted."
|
||||
msgstr[0] "1 mensaje eliminado."
|
||||
msgstr[1] "{0} mensajes eliminados."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1248
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1585
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1254
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1591
|
||||
msgid "Login"
|
||||
msgstr "Iniciar sesión"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1250
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1256
|
||||
#, java-format
|
||||
msgid "1 Message"
|
||||
msgid_plural "{0} Messages"
|
||||
msgstr[0] "1 Mensaje"
|
||||
msgstr[1] "{0} Mensajes"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1252
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1258
|
||||
msgid "Show Message"
|
||||
msgstr "Mostrar mensaje"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1314
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1320
|
||||
#, java-format
|
||||
msgid "Error decoding content: {0}"
|
||||
msgstr "Error al descodificar el contenido: {0}"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1319
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1325
|
||||
msgid "Error decoding content: No encoder found."
|
||||
msgstr "Error al descodificar el contenido: No se ha encontrado codificador."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1366
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1372
|
||||
msgid "no subject"
|
||||
msgstr "sin asunto"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1383
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1389
|
||||
msgid "Found no valid sender address."
|
||||
msgstr "No se ha encontrado una dirección de remitente válida."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1389
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1395
|
||||
#, java-format
|
||||
msgid "Found no valid address in \\''{0}\\''."
|
||||
msgstr "No se ha encontrado ninguna dirección válida en \\''{0}\\''."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1408
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1414
|
||||
msgid "No recipients found."
|
||||
msgstr "No se han encontrado destinatarios."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1415
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1421
|
||||
msgid "Quoted printable encoder not available."
|
||||
msgstr "El codificador imprimible citado no está disponible."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1420
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1426
|
||||
msgid "Header line encoder not available."
|
||||
msgstr "El codificador de línea de encabezado no está disponible."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1471
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1477
|
||||
msgid "Mail sent."
|
||||
msgstr "Correo enviado."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1510
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1516
|
||||
msgid "Send"
|
||||
msgstr "Enviar"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1511
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1517
|
||||
msgid "Cancel"
|
||||
msgstr "Cancelar"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1512
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1518
|
||||
msgid "Delete Attachment"
|
||||
msgstr "Eliminar datos adjuntos"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1513
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1607
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1688
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1519
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1613
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1694
|
||||
msgid "Reload Config"
|
||||
msgstr "Recargar la configuración"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1514
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1608
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1689
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1520
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1614
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1695
|
||||
msgid "Logout"
|
||||
msgstr "Desconectarse"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1537
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1693
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1543
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1699
|
||||
msgid "From:"
|
||||
msgstr "De:"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1538
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1544
|
||||
msgid "To:"
|
||||
msgstr "Para:"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1539
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1545
|
||||
msgid "Cc:"
|
||||
msgstr "Cc:"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1540
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1546
|
||||
msgid "Bcc:"
|
||||
msgstr "CCO:"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1541
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1695
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1547
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1701
|
||||
msgid "Subject:"
|
||||
msgstr "Asunto:"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1542
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1548
|
||||
msgid "Bcc to self"
|
||||
msgstr "CCO a mí mism@"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1545
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1551
|
||||
msgid "New Attachment:"
|
||||
msgstr "Nuevo Archivo adjunto:"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1545
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1551
|
||||
msgid "Upload File"
|
||||
msgstr "Subir Archivo"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1551
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1557
|
||||
msgid "Attachments:"
|
||||
msgstr "Archivos adjuntos:"
|
||||
|
||||
#. current postman hq length limits 16/12, new postman version 32/32
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1574
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1580
|
||||
msgid "User"
|
||||
msgstr "Usuario"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1575
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1581
|
||||
msgid "Password"
|
||||
msgstr "Contraseña"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1580
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1586
|
||||
msgid "Host"
|
||||
msgstr "Host"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1581
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1587
|
||||
msgid "POP3-Port"
|
||||
msgstr "Puerto-POP3"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1582
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1588
|
||||
msgid "SMTP-Port"
|
||||
msgstr "Puerto-SMTP"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1585
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1591
|
||||
msgid "Reset"
|
||||
msgstr "Cancelar"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1586
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1592
|
||||
msgid "Learn about I2P mail"
|
||||
msgstr "Aprende sobre I2P mail"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1587
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1593
|
||||
msgid "Create Account"
|
||||
msgstr "Crear una cuenta"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1599
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1605
|
||||
msgid "Really delete the marked messages?"
|
||||
msgstr "¿Realmente deseas borrar los mensajes marcados?"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1599
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1605
|
||||
msgid "Yes, really delete them!"
|
||||
msgstr "Sí, realmente eliminarlos!"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1601
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1680
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1607
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1686
|
||||
msgid "New"
|
||||
msgstr "Nuevo"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1602
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1681
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1608
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1687
|
||||
msgid "Reply"
|
||||
msgstr "Responder"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1603
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1682
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1609
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1688
|
||||
msgid "Reply All"
|
||||
msgstr "Responder a todos"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1604
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1683
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1610
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1689
|
||||
msgid "Forward"
|
||||
msgstr "Reenviar"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1605
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1684
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1611
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1690
|
||||
msgid "Delete"
|
||||
msgstr "Eliminar"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1606
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1612
|
||||
msgid "Check Mail"
|
||||
msgstr "Comprobar correo"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1610
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1616
|
||||
msgid "Sender"
|
||||
msgstr "Remitente"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1611
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1617
|
||||
msgid "Subject"
|
||||
msgstr "Asunto"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1612
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1618
|
||||
msgid "Date"
|
||||
msgstr "Fecha"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1613
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1619
|
||||
msgid "Size"
|
||||
msgstr "Tamaño"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1639
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1645
|
||||
#, java-format
|
||||
msgid "1 Byte"
|
||||
msgid_plural "{0} Bytes"
|
||||
msgstr[0] "1 Byte"
|
||||
msgstr[1] "{0} Bytes"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1644
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1650
|
||||
msgid "Mark All"
|
||||
msgstr "Marcar todos"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1645
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1651
|
||||
msgid "Invert Selection"
|
||||
msgstr "Invertir selección"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1646
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1652
|
||||
msgid "Clear"
|
||||
msgstr "Despejar"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1649
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1650
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1655
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1656
|
||||
msgid "First"
|
||||
msgstr "Primero"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1649
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1650
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1685
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1655
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1656
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1691
|
||||
msgid "Previous"
|
||||
msgstr "Anterior"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1651
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1657
|
||||
#, java-format
|
||||
msgid "Page {0} of {1}"
|
||||
msgstr "Página {0} de {1}"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1653
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1654
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1659
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1660
|
||||
msgid "Last"
|
||||
msgstr "Última"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1653
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1654
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1686
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1659
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1660
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1692
|
||||
msgid "Next"
|
||||
msgstr "Siguiente"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1657
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1663
|
||||
msgid "Pagesize:"
|
||||
msgstr "Tamaño de página:"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1658
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1664
|
||||
msgid "Set"
|
||||
msgstr "Establecer"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1668
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1674
|
||||
msgid "Really delete this message?"
|
||||
msgstr "¿Realmente deseas borrar este mensaje?"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1668
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1674
|
||||
msgid "Yes, really delete it!"
|
||||
msgstr "Sí, ¡bórralo!"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1687
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1693
|
||||
msgid "Back to Folder"
|
||||
msgstr "Volver a carpeta"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1694
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1700
|
||||
msgid "Date:"
|
||||
msgstr "Fecha:"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1705
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1711
|
||||
msgid "Could not fetch mail."
|
||||
msgstr "No se pudo descargar el correo."
|
||||
|
@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: I2P susimail\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2011-03-24 16:49+0000\n"
|
||||
"POT-Creation-Date: 2012-07-26 19:14+0000\n"
|
||||
"PO-Revision-Date: 2011-04-09 03:06+0100\n"
|
||||
"Last-Translator: magma <magma@mail.i2p>\n"
|
||||
"Language-Team: duck <duck@mail.i2p>\n"
|
||||
@ -18,424 +18,428 @@ msgstr ""
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n >= 2)\n"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:454
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:439
|
||||
msgid "unknown"
|
||||
msgstr "inconnu"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:473
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:458
|
||||
msgid "Warning: no transfer encoding found, fallback to 7bit."
|
||||
msgstr "Avertissement: pas d'encodage de transfert trouvé: retour en 7bits."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:478
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:463
|
||||
#, java-format
|
||||
msgid "No encoder found for encoding \\''{0}\\''."
|
||||
msgstr "Pas d''encodeur trouvé pour encoder \"{0}\"."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:484
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:469
|
||||
msgid "Warning: no charset found, fallback to US-ASCII."
|
||||
msgstr "Avertissement: aucun jeu de caractères trouvé, retour en ASCII-US"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:498
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:483
|
||||
#, java-format
|
||||
msgid "Charset \\''{0}\\'' not supported."
|
||||
msgstr "Jeu de caractères \\''{0}\\'' non pris en charge."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:502
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:487
|
||||
#, java-format
|
||||
msgid "Part ({0}) not shown, because of {1}"
|
||||
msgstr "Partie ({0}) non affichée car {1}"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:525
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:510
|
||||
msgid "Download"
|
||||
msgstr "Télécharger"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:525
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:510
|
||||
msgid "File is packed into a zipfile for security reasons."
|
||||
msgstr "Fichier compressé en zip par sécurité."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:525
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:510
|
||||
#, java-format
|
||||
msgid "attachment ({0})."
|
||||
msgstr "pièce jointe ({0})."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:529
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:514
|
||||
#, java-format
|
||||
msgid "Attachment ({0})."
|
||||
msgstr "Pièce jointe ({0})."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:579
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:564
|
||||
msgid "Need username for authentication."
|
||||
msgstr "Identifiant requis pour l'authentification."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:583
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:568
|
||||
msgid "Need password for authentication."
|
||||
msgstr "Mot de passe requis pour l'authentification."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:587
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:572
|
||||
msgid "Need hostname for connect."
|
||||
msgstr "Nom d'hôte requis pour la connexion."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:592
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:577
|
||||
msgid "Need port number for pop3 connect."
|
||||
msgstr "Port requis pour la connexion POP3."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:599
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:584
|
||||
msgid "POP3 port number is not in range 0..65535."
|
||||
msgstr "Le port POP3 n'est pas compris entre 0 et 65535."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:605
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:590
|
||||
msgid "POP3 port number is invalid."
|
||||
msgstr "Port POP3 incorrect."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:611
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:596
|
||||
msgid "Need port number for smtp connect."
|
||||
msgstr "Port requis pour la connexion SMTP."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:618
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:603
|
||||
msgid "SMTP port number is not in range 0..65535."
|
||||
msgstr "Le port SMTP n'est pas compris entre 0 et 65535."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:624
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:609
|
||||
msgid "SMTP port number is invalid."
|
||||
msgstr "Port SMTP incorrect."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:671
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:656
|
||||
msgid "User logged out."
|
||||
msgstr "Utilisateur déconnecté."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:675
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:660
|
||||
msgid "Internal error, lost connection."
|
||||
msgstr "Erreur interne, connexion perdue."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:771
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:756
|
||||
#, java-format
|
||||
msgid "On {0} {1} wrote:"
|
||||
msgstr "Sur {0} {1} écrit:"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:818
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:803
|
||||
msgid "begin forwarded mail"
|
||||
msgstr "tranfert du message commencé"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:840
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:825
|
||||
msgid "end forwarded mail"
|
||||
msgstr "tranfert du message terminé"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:847
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1701
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:832
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1707
|
||||
msgid "Could not fetch mail body."
|
||||
msgstr "Impossible de ramener le corps du message."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:875
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:860
|
||||
msgid "Message id not valid."
|
||||
msgstr "ID de message incorrecte."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:958
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:943
|
||||
#, java-format
|
||||
msgid "No Encoding found for {0}"
|
||||
msgstr "Pas d''encodage trouvé pour {0}"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:962
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:947
|
||||
#, java-format
|
||||
msgid "Could not encode data: {0}"
|
||||
msgstr "Impossible d''encoder les données: {0}"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:967
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:952
|
||||
#, java-format
|
||||
msgid "Error reading uploaded file: {0}"
|
||||
msgstr "Erreur de lecture du fichier envoyé: {0}"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1045
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1030
|
||||
msgid "Error parsing download parameter."
|
||||
msgstr "Erreur d'analyse des paramètres de téléchargement."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1089
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1074
|
||||
msgid "Invalid pagesize number, resetting to default value."
|
||||
msgstr "Taille de page incorrecte: réinitialisation à la valeur par défaut."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1113
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1098
|
||||
msgid "No messages marked for deletion."
|
||||
msgstr "Aucun message marqué pour suppression"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1133
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1118
|
||||
#, java-format
|
||||
msgid "Error deleting message: {0}"
|
||||
msgstr "Erreur de suppression du message: {0}"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1144
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1129
|
||||
#, java-format
|
||||
msgid "1 message deleted."
|
||||
msgid_plural "{0} messages deleted."
|
||||
msgstr[0] "{0} message supprimé"
|
||||
msgstr[1] "{0} messages supprimés"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1264
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1587
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1254
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1591
|
||||
msgid "Login"
|
||||
msgstr "Identification"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1266
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1256
|
||||
#, java-format
|
||||
msgid "1 Message"
|
||||
msgid_plural "{0} Messages"
|
||||
msgstr[0] "{0} Message"
|
||||
msgstr[1] "{0} Messages"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1268
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1258
|
||||
msgid "Show Message"
|
||||
msgstr "Afficher le message"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1325
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1320
|
||||
#, java-format
|
||||
msgid "Error decoding content: {0}"
|
||||
msgstr "Erreur de décodage de contenu: {0}"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1330
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1325
|
||||
msgid "Error decoding content: No encoder found."
|
||||
msgstr "Erreur de décodage de contenu: pas d'encodeur trouvé."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1377
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1372
|
||||
msgid "no subject"
|
||||
msgstr "pas d'objet"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1394
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1389
|
||||
msgid "Found no valid sender address."
|
||||
msgstr "Adresse d'expéditeur correcte non trouvée"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1400
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1395
|
||||
#, java-format
|
||||
msgid "Found no valid address in \\''{0}\\''."
|
||||
msgstr "Pas d''adresse correcte dans \\''{0}\\''."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1419
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1414
|
||||
msgid "No recipients found."
|
||||
msgstr "Pas de destinataire trouvé."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1426
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1421
|
||||
msgid "Quoted printable encoder not available."
|
||||
msgstr "Encodeur \"Quoted printable\" non disponible."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1431
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1426
|
||||
msgid "Header line encoder not available."
|
||||
msgstr "Ligne d'en-tête \"Encodeur\" non disponible."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1482
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1477
|
||||
msgid "Mail sent."
|
||||
msgstr "Message envoyé."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1519
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1516
|
||||
msgid "Send"
|
||||
msgstr "Envoyer"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1520
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1517
|
||||
msgid "Cancel"
|
||||
msgstr "Annuler"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1521
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1518
|
||||
msgid "Delete Attachment"
|
||||
msgstr "Supprimer la pièce jointe"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1522
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1607
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1688
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1519
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1613
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1694
|
||||
msgid "Reload Config"
|
||||
msgstr "Recharger la configuration"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1523
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1608
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1689
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1520
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1614
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1695
|
||||
msgid "Logout"
|
||||
msgstr "Déconnexion"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1546
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1693
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1543
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1699
|
||||
msgid "From:"
|
||||
msgstr "De:"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1547
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1544
|
||||
msgid "To:"
|
||||
msgstr "À:"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1548
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1545
|
||||
msgid "Cc:"
|
||||
msgstr "Cc:"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1549
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1546
|
||||
msgid "Bcc:"
|
||||
msgstr "Cci:"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1550
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1695
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1547
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1701
|
||||
msgid "Subject:"
|
||||
msgstr "Objet:"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1551
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1548
|
||||
msgid "Bcc to self"
|
||||
msgstr "Cci à moi-même"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1554
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1551
|
||||
msgid "New Attachment:"
|
||||
msgstr "Nouvelle pièce jointe:"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1554
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1551
|
||||
msgid "Upload File"
|
||||
msgstr "Envoyer le fichier"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1560
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1557
|
||||
msgid "Attachments:"
|
||||
msgstr "Pièces jointes:"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1582
|
||||
#. current postman hq length limits 16/12, new postman version 32/32
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1580
|
||||
msgid "User"
|
||||
msgstr "Utilisateur"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1583
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1581
|
||||
msgid "Password"
|
||||
msgstr "Mot de passe"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1584
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1586
|
||||
msgid "Host"
|
||||
msgstr "Hôte"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1585
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1587
|
||||
msgid "POP3-Port"
|
||||
msgstr "Port POP3"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1586
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1588
|
||||
msgid "SMTP-Port"
|
||||
msgstr "Port SMTP"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1587
|
||||
msgid "Create Account"
|
||||
msgstr "Créer un compte"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1587
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1591
|
||||
msgid "Reset"
|
||||
msgstr "Remise à zéro"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1599
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1592
|
||||
msgid "Learn about I2P mail"
|
||||
msgstr ""
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1593
|
||||
msgid "Create Account"
|
||||
msgstr "Créer un compte"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1605
|
||||
msgid "Really delete the marked messages?"
|
||||
msgstr "voulez-vous vraiment supprimer les messages marqués?"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1599
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1605
|
||||
msgid "Yes, really delete them!"
|
||||
msgstr "Oui, suppression!"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1601
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1680
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1607
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1686
|
||||
msgid "New"
|
||||
msgstr "Nouveau message"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1602
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1681
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1608
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1687
|
||||
msgid "Reply"
|
||||
msgstr "Répondre"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1603
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1682
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1609
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1688
|
||||
msgid "Reply All"
|
||||
msgstr "Répondre à tous"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1604
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1683
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1610
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1689
|
||||
msgid "Forward"
|
||||
msgstr "Transférer"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1605
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1684
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1611
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1690
|
||||
msgid "Delete"
|
||||
msgstr "Supprimer"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1606
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1612
|
||||
msgid "Check Mail"
|
||||
msgstr "Relever le courrier"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1610
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1616
|
||||
msgid "Sender"
|
||||
msgstr "De"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1611
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1617
|
||||
msgid "Subject"
|
||||
msgstr "Objet"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1612
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1618
|
||||
msgid "Date"
|
||||
msgstr "Date"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1613
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1619
|
||||
msgid "Size"
|
||||
msgstr "Taille"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1639
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1645
|
||||
#, java-format
|
||||
msgid "1 Byte"
|
||||
msgid_plural "{0} Bytes"
|
||||
msgstr[0] "{0} octet"
|
||||
msgstr[1] "{0} octets"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1644
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1650
|
||||
msgid "Mark All"
|
||||
msgstr "Tout cocher"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1645
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1651
|
||||
msgid "Invert Selection"
|
||||
msgstr "Inverser la sélection"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1646
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1652
|
||||
msgid "Clear"
|
||||
msgstr "Effacer"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1649
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1650
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1655
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1656
|
||||
msgid "First"
|
||||
msgstr "Premier"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1649
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1650
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1685
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1655
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1656
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1691
|
||||
msgid "Previous"
|
||||
msgstr "Précédent"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1651
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1657
|
||||
#, java-format
|
||||
msgid "Page {0} of {1}"
|
||||
msgstr "Page {0} sur {1}"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1653
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1654
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1659
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1660
|
||||
msgid "Last"
|
||||
msgstr "Dernier"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1653
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1654
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1686
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1659
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1660
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1692
|
||||
msgid "Next"
|
||||
msgstr "Suivant"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1657
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1663
|
||||
msgid "Pagesize:"
|
||||
msgstr "Taille de page:"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1658
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1664
|
||||
msgid "Set"
|
||||
msgstr "Définir"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1668
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1674
|
||||
msgid "Really delete this message?"
|
||||
msgstr "Voulez-vous vraiment supprimer ce message?"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1668
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1674
|
||||
msgid "Yes, really delete it!"
|
||||
msgstr "Oui, supprimer!"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1687
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1693
|
||||
msgid "Back to Folder"
|
||||
msgstr "Retour au dossier"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1694
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1700
|
||||
msgid "Date:"
|
||||
msgstr "Date:"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1705
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1711
|
||||
msgid "Could not fetch mail."
|
||||
msgstr "Impossible de ramener le courrier."
|
||||
|
||||
|
@ -9,7 +9,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: I2P\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2011-12-15 20:14+0000\n"
|
||||
"POT-Creation-Date: 2012-07-26 19:11+0000\n"
|
||||
"PO-Revision-Date: 2011-12-13 14:16+0000\n"
|
||||
"Last-Translator: Martin Svensson <digitalmannen@gmail.com>\n"
|
||||
"Language-Team: Swedish (Sweden) (http://www.transifex.net/projects/p/I2P/"
|
||||
@ -20,429 +20,429 @@ msgstr ""
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:455
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:439
|
||||
msgid "unknown"
|
||||
msgstr "okänd"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:474
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:458
|
||||
msgid "Warning: no transfer encoding found, fallback to 7bit."
|
||||
msgstr ""
|
||||
"Varning: ingen överförings kodning hittats, återgår till att använda 7bit."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:479
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:463
|
||||
#, java-format
|
||||
msgid "No encoder found for encoding \\''{0}\\''."
|
||||
msgstr "Ingen encoder hittades för kodning \\''{0}\\''."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:485
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:469
|
||||
msgid "Warning: no charset found, fallback to US-ASCII."
|
||||
msgstr "Varning: ingen teckenuppsättning hittats, återgår till US-ASCII."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:499
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:483
|
||||
#, java-format
|
||||
msgid "Charset \\''{0}\\'' not supported."
|
||||
msgstr "Teckenuppsättning \\''{0}\\' stöds inte."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:503
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:487
|
||||
#, java-format
|
||||
msgid "Part ({0}) not shown, because of {1}"
|
||||
msgstr "Del ({0}) visas inte på grund av {1}"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:526
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:510
|
||||
msgid "Download"
|
||||
msgstr "Hämta"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:526
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:510
|
||||
msgid "File is packed into a zipfile for security reasons."
|
||||
msgstr "Filen packas till zipfil av säkerhetsskäl."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:526
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:510
|
||||
#, java-format
|
||||
msgid "attachment ({0})."
|
||||
msgstr "bilaga ({0})."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:530
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:514
|
||||
#, java-format
|
||||
msgid "Attachment ({0})."
|
||||
msgstr "Bilaga ({0})."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:580
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:564
|
||||
msgid "Need username for authentication."
|
||||
msgstr "Behöver användarnamn för autentisering."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:584
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:568
|
||||
msgid "Need password for authentication."
|
||||
msgstr "Behöver lösenord för autentisering."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:588
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:572
|
||||
msgid "Need hostname for connect."
|
||||
msgstr "Behöver värd namn för att ansluta."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:593
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:577
|
||||
msgid "Need port number for pop3 connect."
|
||||
msgstr "Behöver portnummer för POP3 anslutning."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:600
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:584
|
||||
msgid "POP3 port number is not in range 0..65535."
|
||||
msgstr "POP3 portnummer är inte inom intervallet 0 .. 65535."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:606
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:590
|
||||
msgid "POP3 port number is invalid."
|
||||
msgstr "POP3 portnummer är ogiltigt"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:612
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:596
|
||||
msgid "Need port number for smtp connect."
|
||||
msgstr "Behöver portnummer för SMTP anslutning."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:619
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:603
|
||||
msgid "SMTP port number is not in range 0..65535."
|
||||
msgstr "SMTP portnumret är inte inom intervallet 0 .. 65535."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:625
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:609
|
||||
msgid "SMTP port number is invalid."
|
||||
msgstr "SMTP portnummer ör ogiltigt"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:672
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:656
|
||||
msgid "User logged out."
|
||||
msgstr "Användare loggade ut."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:676
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:660
|
||||
msgid "Internal error, lost connection."
|
||||
msgstr "Internt fel, tappade anslutningen."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:772
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:756
|
||||
#, java-format
|
||||
msgid "On {0} {1} wrote:"
|
||||
msgstr "Den {0} {1} skrev:"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:819
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:803
|
||||
msgid "begin forwarded mail"
|
||||
msgstr "börjar vidarebefordra e-post"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:841
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:825
|
||||
msgid "end forwarded mail"
|
||||
msgstr "slutar vidarebefordra e-post"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:848
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1720
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:832
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1707
|
||||
msgid "Could not fetch mail body."
|
||||
msgstr "Kunde inte hämta e-postets brödtext."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:876
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:860
|
||||
msgid "Message id not valid."
|
||||
msgstr "Meddelande id är inte giltigt"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:959
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:943
|
||||
#, java-format
|
||||
msgid "No Encoding found for {0}"
|
||||
msgstr "Ingen teckenkodning hittades för {0}"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:963
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:947
|
||||
#, java-format
|
||||
msgid "Could not encode data: {0}"
|
||||
msgstr "Kunde inte koda data: {0}"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:968
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:952
|
||||
#, java-format
|
||||
msgid "Error reading uploaded file: {0}"
|
||||
msgstr "Fel vid läsning av uppladdad fil: {0}"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1046
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1030
|
||||
msgid "Error parsing download parameter."
|
||||
msgstr "Fel vid tolkning av nedladdnings parameter."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1090
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1074
|
||||
msgid "Invalid pagesize number, resetting to default value."
|
||||
msgstr "Ogiltigt sidstorleks antal, återställer till standard värde."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1114
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1098
|
||||
msgid "No messages marked for deletion."
|
||||
msgstr "Inga meddelanden var märkta för radering"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1134
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1118
|
||||
#, java-format
|
||||
msgid "Error deleting message: {0}"
|
||||
msgstr "Fel vid raderande av meddelande: {0}"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1145
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1129
|
||||
#, java-format
|
||||
msgid "1 message deleted."
|
||||
msgid_plural "{0} messages deleted."
|
||||
msgstr[0] "1 meddelande raderart."
|
||||
msgstr[1] "{0} meddelanden raderade"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1267
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1604
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1254
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1591
|
||||
msgid "Login"
|
||||
msgstr "Logga in"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1269
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1256
|
||||
#, java-format
|
||||
msgid "1 Message"
|
||||
msgid_plural "{0} Messages"
|
||||
msgstr[0] "1 meddelande"
|
||||
msgstr[1] "{0} meddelanden"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1271
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1258
|
||||
msgid "Show Message"
|
||||
msgstr "Visa meddelande"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1333
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1320
|
||||
#, java-format
|
||||
msgid "Error decoding content: {0}"
|
||||
msgstr "Fel vid avkodning av innehåll: {0}"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1338
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1325
|
||||
msgid "Error decoding content: No encoder found."
|
||||
msgstr "Fel vid avkodning av innehåll: Ingen encoder hittades."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1385
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1372
|
||||
msgid "no subject"
|
||||
msgstr "inget ämne"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1402
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1389
|
||||
msgid "Found no valid sender address."
|
||||
msgstr "Hittade ingen giltig avsändaradress."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1408
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1395
|
||||
#, java-format
|
||||
msgid "Found no valid address in \\''{0}\\''."
|
||||
msgstr "Hittade ingen giltig adress i \\''{0}\\''."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1427
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1414
|
||||
msgid "No recipients found."
|
||||
msgstr "Inga mottagare funna"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1434
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1421
|
||||
msgid "Quoted printable encoder not available."
|
||||
msgstr "Citerad utskrivbar encoder inte tillgänglig."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1439
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1426
|
||||
msgid "Header line encoder not available."
|
||||
msgstr "Header radens encoder är inte tillgänglig."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1490
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1477
|
||||
msgid "Mail sent."
|
||||
msgstr "E-post skickat"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1529
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1516
|
||||
msgid "Send"
|
||||
msgstr "Skicka"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1530
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1517
|
||||
msgid "Cancel"
|
||||
msgstr "Avbryt"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1531
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1518
|
||||
msgid "Delete Attachment"
|
||||
msgstr "Radera bilaga"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1532
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1626
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1707
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1519
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1613
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1694
|
||||
msgid "Reload Config"
|
||||
msgstr "Ladda om konfiguration"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1533
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1627
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1708
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1520
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1614
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1695
|
||||
msgid "Logout"
|
||||
msgstr "Logga ut"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1556
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1712
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1543
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1699
|
||||
msgid "From:"
|
||||
msgstr "Från:"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1557
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1544
|
||||
msgid "To:"
|
||||
msgstr "Till:"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1558
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1545
|
||||
msgid "Cc:"
|
||||
msgstr "Cc:"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1559
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1546
|
||||
msgid "Bcc:"
|
||||
msgstr "Bcc:"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1560
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1714
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1547
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1701
|
||||
msgid "Subject:"
|
||||
msgstr "Ärende:"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1561
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1548
|
||||
msgid "Bcc to self"
|
||||
msgstr "Bcc till själv"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1564
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1551
|
||||
msgid "New Attachment:"
|
||||
msgstr "Ny bilaga:"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1564
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1551
|
||||
msgid "Upload File"
|
||||
msgstr "Ladda upp fil"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1570
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1557
|
||||
msgid "Attachments:"
|
||||
msgstr "Bilagor:"
|
||||
|
||||
#. current postman hq length limits 16/12, new postman version 32/32
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1593
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1580
|
||||
msgid "User"
|
||||
msgstr "Användare"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1594
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1581
|
||||
msgid "Password"
|
||||
msgstr "Lösenord"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1599
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1586
|
||||
msgid "Host"
|
||||
msgstr "Värd"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1600
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1587
|
||||
msgid "POP3-Port"
|
||||
msgstr "POP3-port"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1601
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1588
|
||||
msgid "SMTP-Port"
|
||||
msgstr "SMTP-port"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1604
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1591
|
||||
msgid "Reset"
|
||||
msgstr "Återställ"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1605
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1592
|
||||
msgid "Learn about I2P mail"
|
||||
msgstr "Lär mer om I2P e-post"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1606
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1593
|
||||
msgid "Create Account"
|
||||
msgstr "Skapa konto"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1618
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1605
|
||||
msgid "Really delete the marked messages?"
|
||||
msgstr "Vill du verkligen radera valda meddelanden?"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1618
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1605
|
||||
msgid "Yes, really delete them!"
|
||||
msgstr "Ja, radera dem!"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1620
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1699
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1607
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1686
|
||||
msgid "New"
|
||||
msgstr "Ny"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1621
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1700
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1608
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1687
|
||||
msgid "Reply"
|
||||
msgstr "Svara"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1622
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1701
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1609
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1688
|
||||
msgid "Reply All"
|
||||
msgstr "Svara alla"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1623
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1702
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1610
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1689
|
||||
msgid "Forward"
|
||||
msgstr "Vidarebefodera"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1624
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1703
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1611
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1690
|
||||
msgid "Delete"
|
||||
msgstr "Radera"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1625
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1612
|
||||
msgid "Check Mail"
|
||||
msgstr "Kolla e-post"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1629
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1616
|
||||
msgid "Sender"
|
||||
msgstr "Avsändare"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1630
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1617
|
||||
msgid "Subject"
|
||||
msgstr "Ärende"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1631
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1618
|
||||
msgid "Date"
|
||||
msgstr "Datum"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1632
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1619
|
||||
msgid "Size"
|
||||
msgstr "Storlek"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1658
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1645
|
||||
#, java-format
|
||||
msgid "1 Byte"
|
||||
msgid_plural "{0} Bytes"
|
||||
msgstr[0] "1 Byte"
|
||||
msgstr[1] "{0} Bytes"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1663
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1650
|
||||
msgid "Mark All"
|
||||
msgstr "Markera alla"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1664
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1651
|
||||
msgid "Invert Selection"
|
||||
msgstr "Invertera urvalet"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1665
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1652
|
||||
msgid "Clear"
|
||||
msgstr "Rensa "
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1668
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1669
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1655
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1656
|
||||
msgid "First"
|
||||
msgstr "Första"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1668
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1669
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1704
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1655
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1656
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1691
|
||||
msgid "Previous"
|
||||
msgstr "Föregående"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1670
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1657
|
||||
#, java-format
|
||||
msgid "Page {0} of {1}"
|
||||
msgstr "Sida {0} av {1}"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1672
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1673
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1659
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1660
|
||||
msgid "Last"
|
||||
msgstr "Sista"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1672
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1673
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1705
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1659
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1660
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1692
|
||||
msgid "Next"
|
||||
msgstr "Nästa"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1676
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1663
|
||||
msgid "Pagesize:"
|
||||
msgstr "Pagesize:"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1677
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1664
|
||||
msgid "Set"
|
||||
msgstr "Ställ"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1687
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1674
|
||||
msgid "Really delete this message?"
|
||||
msgstr "Vill du verkligen radera detta meddelande?"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1687
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1674
|
||||
msgid "Yes, really delete it!"
|
||||
msgstr "Ja, radera det verkligen!"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1706
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1693
|
||||
msgid "Back to Folder"
|
||||
msgstr "Tillbaka till mapp"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1713
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1700
|
||||
msgid "Date:"
|
||||
msgstr "Datum:"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1724
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1711
|
||||
msgid "Could not fetch mail."
|
||||
msgstr "Kunde inte hämta e-post."
|
||||
|
@ -24,3 +24,14 @@ build.built-by=unknown
|
||||
|
||||
# Uncomment the next line to prevent building EXEs (changing it to false will have no impact)
|
||||
#noExe=true
|
||||
|
||||
# Change this to false if you don't have gettext
|
||||
# Note that this does not prevent gettext from running if installed; to be fixed
|
||||
require.gettext=true
|
||||
|
||||
# Additional classpath if required
|
||||
#javac.classpathe=/PATH/TO/pack200.jar
|
||||
|
||||
# Optional compiler args
|
||||
# This one keeps gcj a lot quieter
|
||||
#javac.compilerargs=-warn:-unchecked,raw,unused,serial
|
||||
|
60
build.xml
60
build.xml
@ -1,21 +1,9 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<project basedir="." default="all" name="i2p">
|
||||
|
||||
<!-- Things you might want to change -->
|
||||
<!-- This keeps gcj a lot quieter -->
|
||||
<!--
|
||||
<property name="javac.compilerargs" value="-warn:-unchecked,raw,unused,serial" />
|
||||
-->
|
||||
<!-- Additional classpath. No longer required; we find pack200 classes at runtime.
|
||||
See core/java/src/net/i2p/util/FileUtil.java for more info.
|
||||
-->
|
||||
<!--
|
||||
<property name="javac.classpath" value="/PATH/TO/pack200.jar" />
|
||||
-->
|
||||
|
||||
<!-- change this to false if you don't have gettext -->
|
||||
<property name="require.gettext" value="true" />
|
||||
<!-- Include property files so that values can be easily overridden. Currently just useful for javadoc hosters -->
|
||||
<!-- Include property files so that values can be easily overridden.
|
||||
Users should create an override.properties file to make changes.
|
||||
-->
|
||||
<property file="override.properties"/>
|
||||
<property file="build.properties"/>
|
||||
|
||||
@ -125,6 +113,11 @@
|
||||
<ant dir="apps/addressbook/" target="war" />
|
||||
</target>
|
||||
|
||||
<!-- jar only (no war) for Android -->
|
||||
<target name="buildI2PTunnelJar" depends="buildStreaming" >
|
||||
<ant dir="apps/i2ptunnel/java/" target="jar" />
|
||||
</target>
|
||||
|
||||
<target name="buildI2PTunnel" depends="buildStreaming, buildJetty" >
|
||||
<ant dir="apps/i2ptunnel/java/" target="build" />
|
||||
</target>
|
||||
@ -420,9 +413,9 @@
|
||||
splitindex="true"
|
||||
doctitle="I2P Javadocs for Release ${release.number} Build ${i2p.build.number}${build.extra}"
|
||||
windowtitle="I2P Anonymous Network - Java Documentation - Version ${release.number}">
|
||||
<group title="Core SDK (i2p.jar)" packages="net.i2p:net.i2p.*:net.i2p.client:net.i2p.client.*:net.i2p.internal:net.i2p.internal.*:freenet.support.CPUInformation:org.bouncycastle.crypto:org.bouncycastle.crypto.*:gnu.crypto.*:gnu.gettext:org.xlattice.crypto.filters:com.nettgryppa.security:net.metanotion:net.metanotion.*" />
|
||||
<group title="Core SDK (i2p.jar)" packages="net.i2p:net.i2p.*:net.i2p.client:net.i2p.client.*:net.i2p.internal:net.i2p.internal.*:freenet.support.CPUInformation:org.bouncycastle.crypto:org.bouncycastle.crypto.*:gnu.crypto.*:gnu.gettext:com.nettgryppa.security:net.metanotion:net.metanotion.*" />
|
||||
<group title="Streaming Library" packages="net.i2p.client.streaming" />
|
||||
<group title="Router" packages="net.i2p.router:net.i2p.router.*:net.i2p.data.i2np:org.cybergarage.*:org.freenetproject" />
|
||||
<group title="Router" packages="net.i2p.router:net.i2p.router.*:net.i2p.data.i2np:org.cybergarage.*:org.freenetproject:org.xlattice.crypto.filters" />
|
||||
<group title="Router Console" packages="net.i2p.router.web" />
|
||||
<!-- apps and bridges starting here, alphabetical please -->
|
||||
<group title="Addressbook Application" packages="net.i2p.addressbook" />
|
||||
@ -489,11 +482,11 @@
|
||||
splitindex="true"
|
||||
doctitle="I2P Unit Test Javadocs for Release ${release.number} Build ${i2p.build.number}${build.extra}"
|
||||
windowtitle="I2P Anonymous Network - Java Documentation - Version ${release.number}">
|
||||
<group title="Core SDK" packages="net.i2p:net.i2p.*:net.i2p.client:net.i2p.client.*:net.i2p.internal:net.i2p.internal.*:freenet.support.CPUInformation:org.bouncycastle.crypto:org.bouncycastle.crypto.*:gnu.crypto.*:gnu.gettext:org.xlattice.crypto.filters:com.nettgryppa.security:net.metanotion:net.metanotion.*" />
|
||||
<group title="Router" packages="net.i2p.router:net.i2p.router.*:net.i2p.data.i2np:org.cybergarage.*:org.freenetproject" />
|
||||
<group title="Core SDK" packages="net.i2p:net.i2p.*:net.i2p.client:net.i2p.client.*:net.i2p.internal:net.i2p.internal.*:freenet.support.CPUInformation:org.bouncycastle.crypto:org.bouncycastle.crypto.*:gnu.crypto.*:gnu.gettext:org:com.nettgryppa.security:net.metanotion:net.metanotion.*" />
|
||||
<group title="Router" packages="net.i2p.router:net.i2p.router.*:net.i2p.data.i2np:org.cybergarage.*:org.freenetproject:org.xlattice.crypto.filters" />
|
||||
<sourcepath>
|
||||
<pathelement location="core/java/test" />
|
||||
<pathelement location="router/java/test" />
|
||||
<pathelement location="core/java/test/junit" />
|
||||
<pathelement location="router/java/test/junit" />
|
||||
</sourcepath>
|
||||
<classpath>
|
||||
<pathelement location="build/i2p.jar" />
|
||||
@ -1028,12 +1021,6 @@
|
||||
</exec>
|
||||
</target>
|
||||
|
||||
<target name="updateTest" depends="prepupdate">
|
||||
<ant dir="core/java/" target="jarTest" />
|
||||
<copy file="core/java/build/i2ptest.jar" todir="pkg-temp/lib" />
|
||||
<zip destfile="i2pupdate.zip" basedir="pkg-temp" />
|
||||
</target>
|
||||
|
||||
<target name="prepupdate" depends="build2, prepupdateSmall, prepConsoleDocUpdates, prepCertificates, prep-script-translation">
|
||||
<copy file="build/BOB.jar" todir="pkg-temp/lib/" />
|
||||
<copy file="build/sam.jar" todir="pkg-temp/lib/" />
|
||||
@ -1292,25 +1279,30 @@
|
||||
</target>
|
||||
<!-- end custom installers -->
|
||||
|
||||
<!-- unit tests -->
|
||||
<target name="updateTest" depends="prepupdate">
|
||||
<ant dir="core/java/" target="jarTest" />
|
||||
<copy file="core/java/build/i2ptest.jar" todir="pkg-temp/lib" />
|
||||
<zip destfile="i2pupdate.zip" basedir="pkg-temp" />
|
||||
</target>
|
||||
<target name="test" depends="buildProperties, jbigi" >
|
||||
<mkdir dir="reports/core/junit/" />
|
||||
<ant dir="core/java/" target="test" />
|
||||
</target>
|
||||
<target name="junit.report" depends="buildProperties" >
|
||||
<ant dir="core/java/" target="junit.report" />
|
||||
</target>
|
||||
<target name="clover.report" depends="buildProperties" >
|
||||
<target name="clover.report" depends="buildProperties" if="with.clover">
|
||||
<ant dir="core/java/" target="clover.report" />
|
||||
</target>
|
||||
<target name="test.report" depends="junit.report, clover.report"/>
|
||||
<target name="cobertura.report" depends="buildProperties" if="with.cobertura">
|
||||
<ant dir="core/java/" target="cobertura.report" />
|
||||
</target>
|
||||
<target name="test.report" depends="junit.report, clover.report, cobertura.report"/>
|
||||
<target name="fulltest" depends="buildProperties" >
|
||||
<ant dir="core/java/" target="fulltest" />
|
||||
<ant dir="router/java/" target="fulltest" />
|
||||
</target>
|
||||
<target name="fullclovertest" depends="buildProperties" >
|
||||
<ant dir="core/java/" target="fullclovertest" />
|
||||
<ant dir="router/java/" target="fullclovertest" />
|
||||
</target>
|
||||
<!-- end unit tests -->
|
||||
|
||||
<target name="testscripts" >
|
||||
<exec executable="tests/scripts/checkcerts.sh" failonerror="true" />
|
||||
|
@ -28,17 +28,6 @@
|
||||
</javac>
|
||||
</target>
|
||||
|
||||
<target name="compileTest">
|
||||
<mkdir dir="./build" />
|
||||
<mkdir dir="./build/obj" />
|
||||
<!-- junit classes are in ant runtime -->
|
||||
<javac srcdir="./src:./test" debug="true" source="1.5" target="1.5" deprecation="on"
|
||||
includeAntRuntime="true"
|
||||
destdir="./build/obj" >
|
||||
<compilerarg line="${javac.compilerargs}" />
|
||||
</javac>
|
||||
</target>
|
||||
|
||||
<target name="listChangedFiles" if="mtn.available" >
|
||||
<exec executable="mtn" outputproperty="workspace.changes" errorproperty="mtn.error2" failifexecutionfails="false" >
|
||||
<arg value="list" />
|
||||
@ -73,56 +62,165 @@
|
||||
</uptodate>
|
||||
</target>
|
||||
|
||||
<target name="jarTest" depends="compileTest">
|
||||
<jar destfile="./build/i2ptest.jar" basedir="./build/obj" includes="**/*.class" />
|
||||
</target>
|
||||
<target name="javadoc">
|
||||
<mkdir dir="./build" />
|
||||
<mkdir dir="./build/javadoc" />
|
||||
<javadoc sourcepath="./src:./test" destdir="./build/javadoc" packagenames="*" use="true" splitindex="true" windowtitle="I2P SDK" />
|
||||
<javadoc sourcepath="./src:./test/junit" destdir="./build/javadoc" packagenames="*" use="true" splitindex="true" windowtitle="I2P SDK" />
|
||||
</target>
|
||||
<target name="prepareTest" depends="compileTest" if="with.cobertura">
|
||||
|
||||
<!-- scala paths -->
|
||||
<target name="scala.init">
|
||||
<property name="scala-library.jar" value="${scalatest.libs}/scala-library.jar" />
|
||||
<property name="scalatest.jar" value="${scalatest.libs}/scalatest.jar" />
|
||||
<taskdef resource="scala/tools/ant/antlib.xml">
|
||||
<classpath>
|
||||
<pathelement location="${scalatest.libs}/scala-compiler.jar" />
|
||||
<pathelement location="${scala-library.jar}" />
|
||||
</classpath>
|
||||
</taskdef>
|
||||
</target>
|
||||
|
||||
<!-- unit tests -->
|
||||
<target name="scalatest.compileTest" depends="jar, scala.init">
|
||||
<mkdir dir="./build" />
|
||||
<mkdir dir="./build/obj_scala" />
|
||||
<scalac srcdir="./test/scalatest" destdir="./build/obj_scala" deprecation="on" >
|
||||
<classpath>
|
||||
<pathelement location="${scala-library.jar}" />
|
||||
<pathelement location="${scalatest.jar}" />
|
||||
<pathelement location="./build/i2p.jar" />
|
||||
</classpath>
|
||||
</scalac>
|
||||
</target>
|
||||
<target name="junit.compileTest" depends="compile">
|
||||
<mkdir dir="./build" />
|
||||
<mkdir dir="./build/obj" />
|
||||
<!-- junit and hamcrest classes should be in ant runtime -->
|
||||
<javac srcdir="./test/junit" debug="true" source="1.5" target="1.5" deprecation="on"
|
||||
includeAntRuntime="true"
|
||||
destdir="./build/obj" >
|
||||
<compilerarg line="${javac.compilerargs}" />
|
||||
</javac>
|
||||
</target>
|
||||
<target name="jarTest" depends="junit.compileTest">
|
||||
<jar destfile="./build/i2ptest.jar" basedir="./build/obj" includes="**/*.class" />
|
||||
</target>
|
||||
<!-- preparation of code coverage tool of choice -->
|
||||
<target name="prepareClover" depends="compile" if="with.clover">
|
||||
<taskdef resource="clovertasks"/>
|
||||
<mkdir dir="../../reports/core/clover" />
|
||||
<clover-setup initString="../../reports/core/clover/coverage.db"/>
|
||||
</target>
|
||||
<target name="prepareCobertura" depends="compile" if="with.cobertura">
|
||||
<taskdef classpath="${with.cobertura}" resource="tasks.properties" onerror="report" />
|
||||
<mkdir dir="./build/obj_test" />
|
||||
<cobertura-instrument todir="./build/obj_test">
|
||||
<mkdir dir="./build/obj_cobertura" />
|
||||
<delete file="./cobertura.ser" />
|
||||
<cobertura-instrument todir="./build/obj_cobertura">
|
||||
<fileset dir="./build/obj">
|
||||
<include name="**/*.class"/>
|
||||
<!-- exclude Test classes -->
|
||||
<exclude name="**/*Test.class" />
|
||||
<exclude name="**/*TestSuite.class" />
|
||||
<!-- specific excludes -->
|
||||
<exclude name="**/AllCoreTests.class" />
|
||||
<exclude name="**/stat/SimpleStatDumper.class" />
|
||||
<exclude name="**/stat/SizeMeasure.class" />
|
||||
<exclude name="**/stat/StatLogSplitter.class" />
|
||||
<!-- exclude anything not in net.i2p.* -->
|
||||
<exclude name="com/nettgryppa/**/*.class" />
|
||||
<exclude name="freenet/**/*.class" />
|
||||
<exclude name="gnu/**/*.class" />
|
||||
<exclude name="net/metanotion/**/*.class" />
|
||||
<exclude name="org/bouncycastle/**/*.class" />
|
||||
<exclude name="org/xlattice/**/*.class" />
|
||||
</fileset>
|
||||
</cobertura-instrument>
|
||||
</target>
|
||||
<target name="test" depends="clean, compileTest, prepareTest">
|
||||
<target name="prepareTest" depends="prepareClover, prepareCobertura" />
|
||||
<!-- end preparation of code coverage tool -->
|
||||
<target name="scalatest.test" depends="clean, scalatest.compileTest, prepareTest">
|
||||
<mkdir dir="../../reports/core/scalatest/" />
|
||||
<delete>
|
||||
<fileset dir="../../reports/core/scalatest">
|
||||
<include name="TEST-*.xml"/>
|
||||
</fileset>
|
||||
</delete>
|
||||
<taskdef name="scalatest" classname="org.scalatest.tools.ScalaTestAntTask">
|
||||
<classpath>
|
||||
<pathelement location="${scala-library.jar}" />
|
||||
<pathelement location="${scalatest.jar}" />
|
||||
<pathelement location="./build/obj_cobertura" />
|
||||
<pathelement location="./build/obj" />
|
||||
<pathelement location="../../build/jbigi.jar" />
|
||||
<pathelement location="${with.clover}" />
|
||||
<pathelement location="${with.cobertura}" />
|
||||
</classpath>
|
||||
</taskdef>
|
||||
<scalatest runpath="./build/obj_scala" fork="yes" maxmemory="384M">
|
||||
<tagsToExclude>
|
||||
SlowTests
|
||||
</tagsToExclude>
|
||||
<reporter type="stdout" />
|
||||
<reporter type="junitxml" directory="../../reports/core/scalatest/" />
|
||||
</scalatest>
|
||||
<!-- fetch the real hostname of this machine -->
|
||||
<exec executable="hostname" outputproperty="host.name"/>
|
||||
<!-- set if unset -->
|
||||
<property name="host.fakename" value="i2ptester" />
|
||||
<!-- replace hostname that junit inserts into reports with fake one -->
|
||||
<replace dir="../../reports/core/scalatest/" token="${host.name}" value="${host.fakename}"/>
|
||||
</target>
|
||||
<target name="junit.test" depends="clean, junit.compileTest, prepareTest">
|
||||
<mkdir dir="../../reports/core/junit/" />
|
||||
<delete>
|
||||
<fileset dir="../../reports/core/junit">
|
||||
<include name="TEST-*.xml"/>
|
||||
</fileset>
|
||||
</delete>
|
||||
<mkdir dir="../../reports/" />
|
||||
<mkdir dir="../../reports/core/" />
|
||||
<mkdir dir="../../reports/core/junit/" />
|
||||
<junit printsummary="on" fork="yes" maxmemory="384m">
|
||||
<sysproperty key="net.sourceforge.cobertura.datafile" file="./cobertura.ser" />
|
||||
<classpath>
|
||||
<pathelement path="${classpath}" />
|
||||
<pathelement location="./build/obj_test" />
|
||||
<pathelement location="${ant.home}/lib/hamcrest-core.jar" />
|
||||
<pathelement location="${ant.home}/lib/hamcrest-library.jar" />
|
||||
<pathelement location="${ant.home}/lib/hamcrest-integration.jar" />
|
||||
<pathelement location="./build/obj_cobertura" />
|
||||
<pathelement location="./build/obj" />
|
||||
<pathelement location="../../build/jbigi.jar" />
|
||||
<pathelement location="${with.clover}" />
|
||||
<pathelement location="${with.cobertura}" />
|
||||
</classpath>
|
||||
<batchtest todir="../../reports/core/junit/">
|
||||
<fileset dir="./test/">
|
||||
<fileset dir="./test/junit/">
|
||||
<include name="**/*Test.java" />
|
||||
<exclude name="**/ElGamalAESEngineTest.java" />
|
||||
<exclude name="**/StructureTest.java" />
|
||||
<!-- temporarily exclude slow tests -->
|
||||
<exclude name="**/HMACSHA256Test.java" />
|
||||
<exclude name="**/SHA1HashTest.java" />
|
||||
<exclude name="**/SHA256Test.java" />
|
||||
<exclude name="**/DataHelperTest.java" />
|
||||
<!-- end of slow tests -->
|
||||
</fileset>
|
||||
</batchtest>
|
||||
<formatter type="xml"/>
|
||||
</junit>
|
||||
<!-- fetch the real hostname of this machine -->
|
||||
<exec executable="hostname" outputproperty="host.name"/>
|
||||
<!-- set if unset -->
|
||||
<property name="host.fakename" value="i2ptester" />
|
||||
<!-- replace hostname that junit inserts into reports with fake one -->
|
||||
<replace dir="../../reports/core/junit/" token="${host.name}" value="${host.fakename}"/>
|
||||
</target>
|
||||
<target name="cobertura" depends="test" if="with.cobertura">
|
||||
<mkdir dir="../../reports/core/cobertura" />
|
||||
<cobertura-report format="xml" srcdir="./src" destdir="../../reports/core/cobertura" />
|
||||
<delete file="./cobertura.ser" />
|
||||
<target name="test" depends="scalatest.test"/>
|
||||
<!-- test reports -->
|
||||
<target name="scalatest.report">
|
||||
<junitreport todir="../../reports/core/scalatest">
|
||||
<fileset dir="../../reports/core/scalatest">
|
||||
<include name="TEST-*.xml"/>
|
||||
</fileset>
|
||||
<report format="frames" todir="../../reports/core/html/scalatest"/>
|
||||
</junitreport>
|
||||
</target>
|
||||
<target name="junit.report">
|
||||
<junitreport todir="../../reports/core/junit">
|
||||
@ -132,8 +230,25 @@
|
||||
<report format="frames" todir="../../reports/core/html/junit"/>
|
||||
</junitreport>
|
||||
</target>
|
||||
<target name="test.report" depends="junit.report"/>
|
||||
<target name="fulltest" depends="test, junit.report" />
|
||||
<target name="clover.report" depends="test" if="with.clover">
|
||||
<clover-report>
|
||||
<current outfile="../../reports/core/html/clover">
|
||||
<format type="html"/>
|
||||
</current>
|
||||
</clover-report>
|
||||
</target>
|
||||
<target name="cobertura.report" depends="test" if="with.cobertura">
|
||||
<mkdir dir="../../reports/core/cobertura" />
|
||||
<cobertura-report format="xml" srcdir="./src" destdir="../../reports/core/cobertura" />
|
||||
<mkdir dir="../../reports/core/html/cobertura" />
|
||||
<cobertura-report format="html" srcdir="./src" destdir="../../reports/core/html/cobertura" />
|
||||
<delete file="./cobertura.ser" />
|
||||
</target>
|
||||
<target name="test.report" depends="scalatest.report, clover.report, cobertura.report"/>
|
||||
<!-- end test reports -->
|
||||
<target name="fulltest" depends="test, test.report" />
|
||||
<!-- end unit tests -->
|
||||
|
||||
<target name="clean">
|
||||
<delete dir="./build" />
|
||||
</target>
|
||||
|
@ -16,7 +16,7 @@ package net.i2p;
|
||||
public class CoreVersion {
|
||||
/** deprecated */
|
||||
public final static String ID = "Monotone";
|
||||
public final static String VERSION = "0.9";
|
||||
public final static String VERSION = "0.9.1";
|
||||
|
||||
public static void main(String args[]) {
|
||||
System.out.println("I2P Core version: " + VERSION);
|
||||
|
@ -110,10 +110,10 @@ abstract class I2PSessionImpl implements I2PSession, I2CPMessageReader.I2CPMessa
|
||||
private final Object _leaseSetWait = new Object();
|
||||
|
||||
/** whether the session connection has already been closed (or not yet opened) */
|
||||
protected boolean _closed;
|
||||
protected volatile boolean _closed;
|
||||
|
||||
/** whether the session connection is in the process of being closed */
|
||||
protected boolean _closing;
|
||||
protected volatile boolean _closing;
|
||||
|
||||
/** have we received the current date from the router yet? */
|
||||
private boolean _dateReceived;
|
||||
@ -121,7 +121,7 @@ abstract class I2PSessionImpl implements I2PSession, I2CPMessageReader.I2CPMessa
|
||||
private final Object _dateReceivedLock = new Object();
|
||||
|
||||
/** whether the session connection is in the process of being opened */
|
||||
protected boolean _opening;
|
||||
protected volatile boolean _opening;
|
||||
|
||||
/** monitor for waiting until opened */
|
||||
private final Object _openingWait = new Object();
|
||||
@ -477,7 +477,7 @@ abstract class I2PSessionImpl implements I2PSession, I2CPMessageReader.I2CPMessa
|
||||
* @since 0.9.1
|
||||
*/
|
||||
private void startVerifyUsage() {
|
||||
SimpleScheduler.getInstance().addEvent(new VerifyUsage(), VERIFY_USAGE_TIME);
|
||||
_context.simpleScheduler().addEvent(new VerifyUsage(), VERIFY_USAGE_TIME);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -501,7 +501,7 @@ abstract class I2PSessionImpl implements I2PSession, I2CPMessageReader.I2CPMessa
|
||||
toCheck.clear();
|
||||
}
|
||||
toCheck.addAll(_availableMessages.keySet());
|
||||
SimpleScheduler.getInstance().addEvent(this, VERIFY_USAGE_TIME);
|
||||
_context.simpleScheduler().addEvent(this, VERIFY_USAGE_TIME);
|
||||
}
|
||||
}
|
||||
|
||||
@ -967,7 +967,7 @@ abstract class I2PSessionImpl implements I2PSession, I2CPMessageReader.I2CPMessa
|
||||
boolean close = Boolean.valueOf(_options.getProperty("i2cp.closeOnIdle")).booleanValue();
|
||||
if (reduce || close) {
|
||||
updateActivity();
|
||||
SimpleScheduler.getInstance().addEvent(new SessionIdleTimer(_context, this, reduce, close), SessionIdleTimer.MINIMUM_TIME);
|
||||
_context.simpleScheduler().addEvent(new SessionIdleTimer(_context, this, reduce, close), SessionIdleTimer.MINIMUM_TIME);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -112,6 +112,6 @@ class SessionIdleTimer implements SimpleTimer.TimedEvent {
|
||||
} else {
|
||||
nextDelay = _minimumTime - (now - lastActivity);
|
||||
}
|
||||
SimpleScheduler.getInstance().addEvent(this, nextDelay);
|
||||
_context.simpleScheduler().addEvent(this, nextDelay);
|
||||
}
|
||||
}
|
||||
|
@ -394,7 +394,8 @@ public class ElGamalAESEngine {
|
||||
*
|
||||
* @param target public key to which the data should be encrypted.
|
||||
* @param key session key to use during encryption
|
||||
* @param tagsForDelivery session tags to be associated with the key (or newKey if specified), or null
|
||||
* @param tagsForDelivery session tags to be associated with the key (or newKey if specified), or null;
|
||||
* 200 max enforced at receiver
|
||||
* @param currentTag sessionTag to use, or null if it should use ElG (i.e. new session)
|
||||
* @param newKey key to be delivered to the target, with which the tagsForDelivery should be associated, or null
|
||||
* @param paddedSize minimum size in bytes of the body after padding it (if less than the
|
||||
@ -423,6 +424,30 @@ public class ElGamalAESEngine {
|
||||
* Encrypt the data to the target using the given key and deliver the specified tags
|
||||
* No new session key
|
||||
* This is the one called from GarlicMessageBuilder and is the primary entry point.
|
||||
*
|
||||
* Re: padded size: The AES block adds at least 39 bytes of overhead to the data, and
|
||||
* that is included in the minimum size calculation.
|
||||
*
|
||||
* In the router, we always use garlic messages. A garlic message with a single
|
||||
* clove and zero data is about 84 bytes, so that's 123 bytes minimum. So any paddingSize
|
||||
* <= 128 is a no-op as every message will be at least 128 bytes
|
||||
* (Streaming, if used, adds more overhead).
|
||||
*
|
||||
* Outside the router, with a client using its own message format, the minimum size
|
||||
* is 48, so any paddingSize <= 48 is a no-op.
|
||||
*
|
||||
* Not included in the minimum is a 32-byte session tag for an existing session,
|
||||
* or a 514-byte ElGamal block and several 32-byte session tags for a new session.
|
||||
* So the returned encrypted data will be at least 32 bytes larger than paddedSize.
|
||||
*
|
||||
* @param target public key to which the data should be encrypted.
|
||||
* @param key session key to use during encryption
|
||||
* @param tagsForDelivery session tags to be associated with the key or null;
|
||||
* 200 max enforced at receiver
|
||||
* @param currentTag sessionTag to use, or null if it should use ElG (i.e. new session)
|
||||
* @param paddedSize minimum size in bytes of the body after padding it (if less than the
|
||||
* body's real size, no bytes are appended but the body is not truncated)
|
||||
*
|
||||
*/
|
||||
public byte[] encrypt(byte data[], PublicKey target, SessionKey key, Set tagsForDelivery,
|
||||
SessionTag currentTag, long paddedSize) {
|
||||
|
@ -24,14 +24,14 @@ import net.i2p.data.SessionTag;
|
||||
* unknown (and hence always forces a full ElGamal encryption for each message).
|
||||
* A more intelligent subclass should manage and persist keys and tags.
|
||||
*
|
||||
* TODO if we aren't going to use this for testing, make it abstract.
|
||||
*/
|
||||
public class SessionKeyManager {
|
||||
/** session key managers must be created through an app context */
|
||||
protected SessionKeyManager(I2PAppContext context) { // nop
|
||||
}
|
||||
|
||||
/** see above */
|
||||
private SessionKeyManager() { // nop
|
||||
/**
|
||||
* Make this public if you need a dummy SessionKeyManager for testing
|
||||
*/
|
||||
protected SessionKeyManager(I2PAppContext context) { // nop
|
||||
}
|
||||
|
||||
/**
|
||||
@ -88,6 +88,31 @@ public class SessionKeyManager {
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* How many to send, IF we need to.
|
||||
* @since 0.9.2
|
||||
*/
|
||||
public int getTagsToSend() { return 0; };
|
||||
|
||||
/**
|
||||
* @since 0.9.2
|
||||
*/
|
||||
public int getLowThreshold() { return 0; };
|
||||
|
||||
/**
|
||||
* @return true if we have less than the threshold or what we have is about to expire
|
||||
* @since 0.9.2
|
||||
*/
|
||||
public boolean shouldSendTags(PublicKey target, SessionKey key) {
|
||||
return shouldSendTags(target, key, getLowThreshold());
|
||||
}
|
||||
|
||||
/**
|
||||
* @return true if we have less than the threshold or what we have is about to expire
|
||||
* @since 0.9.2
|
||||
*/
|
||||
public boolean shouldSendTags(PublicKey target, SessionKey key, int lowThreshold) { return false; }
|
||||
|
||||
/**
|
||||
* Determine (approximately) how many available session tags for the current target
|
||||
* have been confirmed and are available
|
||||
|
@ -85,27 +85,74 @@ public class TransientSessionKeyManager extends SessionKeyManager {
|
||||
/** for debugging */
|
||||
private final AtomicInteger _rcvTagSetID = new AtomicInteger();
|
||||
private final AtomicInteger _sentTagSetID = new AtomicInteger();
|
||||
private final int _tagsToSend;
|
||||
private final int _lowThreshold;
|
||||
|
||||
/**
|
||||
* Let session tags sit around for 10 minutes before expiring them. We can now have such a large
|
||||
* Let session tags sit around for this long before expiring them. We can now have such a large
|
||||
* value since there is the persistent session key manager. This value is for outbound tags -
|
||||
* inbound tags are managed by SESSION_LIFETIME_MAX_MS
|
||||
*
|
||||
*/
|
||||
public final static long SESSION_TAG_DURATION_MS = 10 * 60 * 1000;
|
||||
private final static long SESSION_TAG_DURATION_MS = 12 * 60 * 1000;
|
||||
|
||||
/**
|
||||
* Keep unused inbound session tags around for up to 12 minutes (2 minutes longer than
|
||||
* Keep unused inbound session tags around for this long (a few minutes longer than
|
||||
* session tags are used on the outbound side so that no reasonable network lag
|
||||
* can cause failed decrypts)
|
||||
*
|
||||
*/
|
||||
public final static long SESSION_LIFETIME_MAX_MS = SESSION_TAG_DURATION_MS + 5 * 60 * 1000;
|
||||
private final static long SESSION_LIFETIME_MAX_MS = SESSION_TAG_DURATION_MS + 3 * 60 * 1000;
|
||||
|
||||
/**
|
||||
* Time to send more if we are this close to expiration
|
||||
*/
|
||||
private static final long SESSION_TAG_EXPIRATION_WINDOW = 90 * 1000;
|
||||
|
||||
/**
|
||||
* a few MB? how about 16MB!
|
||||
* This is the max size of _inboundTagSets.
|
||||
*/
|
||||
public final static int MAX_INBOUND_SESSION_TAGS = 500 * 1000; // this will consume at most a few MB
|
||||
|
||||
/**
|
||||
* This was 100 since 0.6.1.10 (50 before that). It's important because:
|
||||
* <pre>
|
||||
* - Tags are 32 bytes. So it previously added 3200 bytes to an initial message.
|
||||
* - Too many tags adds a huge overhead to short-duration connections
|
||||
* (like http, datagrams, etc.)
|
||||
* - Large messages have a much higher chance of being dropped due to
|
||||
* one of their 1KB fragments being discarded by a tunnel participant.
|
||||
* - This reduces the effective maximum datagram size because the client
|
||||
* doesn't know when tags will be bundled, so the tag size must be
|
||||
* subtracted from the maximum I2NP size or transport limit.
|
||||
* </pre>
|
||||
*
|
||||
* Issues with too small a value:
|
||||
* <pre>
|
||||
* - When tags are sent, a reply leaseset (~1KB) is always bundled.
|
||||
* Maybe don't need to bundle more than every minute or so
|
||||
* rather than every time?
|
||||
* - Does the number of tags (and the threshold of 20) limit the effective
|
||||
* streaming lib window size? Should the threshold and the number of
|
||||
* sent tags be variable based on the message rate?
|
||||
* </pre>
|
||||
*
|
||||
* We have to be very careful if we implement an adaptive scheme,
|
||||
* since the key manager is per-router, not per-local-dest.
|
||||
* Or maybe that's a bad idea, and we need to move to a per-dest manager.
|
||||
* This needs further investigation.
|
||||
*
|
||||
* So a value somewhat higher than the low threshold
|
||||
* seems appropriate.
|
||||
*
|
||||
* Use care when adjusting these values. See ConnectionOptions in streaming,
|
||||
* and TransientSessionKeyManager in crypto, for more information.
|
||||
*
|
||||
* @since 0.9.2 moved from GarlicMessageBuilder to per-SKM config
|
||||
*/
|
||||
public static final int DEFAULT_TAGS = 40;
|
||||
/** ditto */
|
||||
public static final int LOW_THRESHOLD = 30;
|
||||
|
||||
/**
|
||||
* The session key manager should only be constructed and accessed through the
|
||||
* application context. This constructor should only be used by the
|
||||
@ -113,15 +160,28 @@ public class TransientSessionKeyManager extends SessionKeyManager {
|
||||
*
|
||||
*/
|
||||
public TransientSessionKeyManager(I2PAppContext context) {
|
||||
this(context, DEFAULT_TAGS, LOW_THRESHOLD);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param tagsToSend how many to send at a time, may be lower or higher than lowThreshold. 1-128
|
||||
* @param lowThreshold below this, send more. 1-128
|
||||
* @since 0.9.2
|
||||
*/
|
||||
public TransientSessionKeyManager(I2PAppContext context, int tagsToSend, int lowThreshold) {
|
||||
super(context);
|
||||
if (tagsToSend <= 0 || tagsToSend > 128 || lowThreshold <= 0 || lowThreshold > 128)
|
||||
throw new IllegalArgumentException();
|
||||
_tagsToSend = tagsToSend;
|
||||
_lowThreshold = lowThreshold;
|
||||
_log = context.logManager().getLog(TransientSessionKeyManager.class);
|
||||
_context = context;
|
||||
_outboundSessions = new HashMap(64);
|
||||
_inboundTagSets = new HashMap(1024);
|
||||
_inboundTagSets = new HashMap(128);
|
||||
context.statManager().createRateStat("crypto.sessionTagsExpired", "How many tags/sessions are expired?", "Encryption", new long[] { 10*60*1000, 60*60*1000, 3*60*60*1000 });
|
||||
context.statManager().createRateStat("crypto.sessionTagsRemaining", "How many tags/sessions are remaining after a cleanup?", "Encryption", new long[] { 10*60*1000, 60*60*1000, 3*60*60*1000 });
|
||||
_alive = true;
|
||||
SimpleScheduler.getInstance().addEvent(new CleanupEvent(), 60*1000);
|
||||
_context.simpleScheduler().addEvent(new CleanupEvent(), 60*1000);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -143,7 +203,7 @@ public class TransientSessionKeyManager extends SessionKeyManager {
|
||||
int expired = aggressiveExpire();
|
||||
long expireTime = _context.clock().now() - beforeExpire;
|
||||
_context.statManager().addRateData("crypto.sessionTagsExpired", expired, expireTime);
|
||||
SimpleScheduler.getInstance().addEvent(this, 60*1000);
|
||||
_context.simpleScheduler().addEvent(this, 60*1000);
|
||||
}
|
||||
}
|
||||
|
||||
@ -292,6 +352,31 @@ public class TransientSessionKeyManager extends SessionKeyManager {
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* How many to send, IF we need to.
|
||||
* @return the configured value (not adjusted for current available)
|
||||
* @since 0.9.2
|
||||
*/
|
||||
@Override
|
||||
public int getTagsToSend() { return _tagsToSend; };
|
||||
|
||||
/**
|
||||
* @return the configured value
|
||||
* @since 0.9.2
|
||||
*/
|
||||
@Override
|
||||
public int getLowThreshold() { return _lowThreshold; };
|
||||
|
||||
/**
|
||||
* @return true if we have less than the threshold or what we have is about to expire
|
||||
* @since 0.9.2
|
||||
*/
|
||||
@Override
|
||||
public boolean shouldSendTags(PublicKey target, SessionKey key, int lowThreshold) {
|
||||
return getAvailableTags(target, key) < lowThreshold ||
|
||||
getAvailableTimeLeft(target, key) < SESSION_TAG_EXPIRATION_WINDOW;
|
||||
}
|
||||
|
||||
/**
|
||||
* Determine (approximately) how many available session tags for the current target
|
||||
* have been confirmed and are available
|
||||
|
@ -57,7 +57,9 @@ public class RoutingKeyGenerator {
|
||||
private volatile long _lastChanged;
|
||||
|
||||
private final static Calendar _cal = GregorianCalendar.getInstance(TimeZone.getTimeZone("GMT"));
|
||||
private final static SimpleDateFormat _fmt = new SimpleDateFormat("yyyyMMdd");
|
||||
private static final String FORMAT = "yyyyMMdd";
|
||||
private static final int LENGTH = FORMAT.length();
|
||||
private final static SimpleDateFormat _fmt = new SimpleDateFormat(FORMAT);
|
||||
|
||||
public byte[] getModData() {
|
||||
return _currentModData;
|
||||
@ -74,9 +76,7 @@ public class RoutingKeyGenerator {
|
||||
* @return true if changed
|
||||
*/
|
||||
public synchronized boolean generateDateBasedModData() {
|
||||
Date today = null;
|
||||
long now = _context.clock().now();
|
||||
synchronized (_cal) {
|
||||
_cal.setTime(new Date(now));
|
||||
_cal.set(Calendar.YEAR, _cal.get(Calendar.YEAR)); // gcj <= 4.0 workaround
|
||||
_cal.set(Calendar.DAY_OF_YEAR, _cal.get(Calendar.DAY_OF_YEAR)); // gcj <= 4.0 workaround
|
||||
@ -84,12 +84,13 @@ public class RoutingKeyGenerator {
|
||||
_cal.set(Calendar.MINUTE, 0);
|
||||
_cal.set(Calendar.SECOND, 0);
|
||||
_cal.set(Calendar.MILLISECOND, 0);
|
||||
today = _cal.getTime();
|
||||
}
|
||||
Date today = _cal.getTime();
|
||||
|
||||
String modVal = _fmt.format(today);
|
||||
byte[] mod = new byte[modVal.length()];
|
||||
for (int i = 0; i < modVal.length(); i++)
|
||||
if (modVal.length() != LENGTH)
|
||||
throw new IllegalStateException();
|
||||
byte[] mod = new byte[LENGTH];
|
||||
for (int i = 0; i < LENGTH; i++)
|
||||
mod[i] = (byte)(modVal.charAt(i) & 0xFF);
|
||||
boolean changed = !DataHelper.eq(_currentModData, mod);
|
||||
if (changed) {
|
||||
@ -112,9 +113,9 @@ public class RoutingKeyGenerator {
|
||||
*/
|
||||
public Hash getRoutingKey(Hash origKey) {
|
||||
if (origKey == null) throw new IllegalArgumentException("Original key is null");
|
||||
byte modVal[] = new byte[Hash.HASH_LENGTH + _currentModData.length];
|
||||
byte modVal[] = new byte[Hash.HASH_LENGTH + LENGTH];
|
||||
System.arraycopy(origKey.getData(), 0, modVal, 0, Hash.HASH_LENGTH);
|
||||
System.arraycopy(_currentModData, 0, modVal, Hash.HASH_LENGTH, _currentModData.length);
|
||||
System.arraycopy(_currentModData, 0, modVal, Hash.HASH_LENGTH, LENGTH);
|
||||
return SHA256Generator.getInstance().calculateHash(modVal);
|
||||
}
|
||||
|
||||
|
@ -24,6 +24,7 @@ import java.util.Set;
|
||||
import java.util.TimeZone;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.concurrent.LinkedBlockingQueue;
|
||||
import java.util.concurrent.atomic.AtomicLong;
|
||||
|
||||
import net.i2p.I2PAppContext;
|
||||
import net.i2p.data.DataHelper;
|
||||
@ -53,6 +54,10 @@ public class LogManager {
|
||||
public final static String PROP_CONSOLEBUFFERSIZE = "logger.consoleBufferSize";
|
||||
public final static String PROP_DISPLAYONSCREENLEVEL = "logger.minimumOnScreenLevel";
|
||||
public final static String PROP_DEFAULTLEVEL = "logger.defaultLevel";
|
||||
/** @since 0.9.2 */
|
||||
private static final String PROP_LOG_BUFFER_SIZE = "logger.logBufferSize";
|
||||
/** @since 0.9.2 */
|
||||
private static final String PROP_DROP = "logger.dropOnOverflow";
|
||||
public final static String PROP_RECORD_PREFIX = "logger.record.";
|
||||
|
||||
public final static String DEFAULT_FORMAT = DATE + " " + PRIORITY + " [" + THREAD + "] " + CLASS + ": " + MESSAGE;
|
||||
@ -110,16 +115,18 @@ public class LogManager {
|
||||
/** whether or not we even want to display anything on stdout */
|
||||
private boolean _displayOnScreen;
|
||||
/** how many records we want to buffer in the "recent logs" list */
|
||||
private int _consoleBufferSize;
|
||||
private int _consoleBufferSize = DEFAULT_CONSOLEBUFFERSIZE;
|
||||
/** the actual "recent logs" list */
|
||||
private final LogConsoleBuffer _consoleBuffer;
|
||||
private int _logBufferSize = MAX_BUFFER;
|
||||
private boolean _dropOnOverflow;
|
||||
private final AtomicLong _droppedRecords = new AtomicLong();
|
||||
|
||||
private boolean _alreadyNoticedMissingConfig;
|
||||
|
||||
public LogManager(I2PAppContext context) {
|
||||
_displayOnScreen = true;
|
||||
_alreadyNoticedMissingConfig = false;
|
||||
_records = new LinkedBlockingQueue(MAX_BUFFER);
|
||||
_limits = new ConcurrentHashSet();
|
||||
_logs = new ConcurrentHashMap(128);
|
||||
_defaultLimit = Log.ERROR;
|
||||
@ -127,6 +134,7 @@ public class LogManager {
|
||||
_log = getLog(LogManager.class);
|
||||
String location = context.getProperty(CONFIG_LOCATION_PROP, CONFIG_LOCATION_DEFAULT);
|
||||
setConfig(location);
|
||||
_records = new LinkedBlockingQueue(_logBufferSize);
|
||||
_consoleBuffer = new LogConsoleBuffer(_consoleBufferSize);
|
||||
// If we aren't in the router context, delay creating the LogWriter until required,
|
||||
// so it doesn't create a log directory and log files unless there is output.
|
||||
@ -243,6 +251,11 @@ public class LogManager {
|
||||
|
||||
boolean success = _records.offer(record);
|
||||
if (!success) {
|
||||
if (_dropOnOverflow) {
|
||||
// TODO use the counter in a periodic drop msg
|
||||
_droppedRecords.incrementAndGet();
|
||||
return;
|
||||
}
|
||||
// the writer waits 10 seconds *or* until we tell them to wake up
|
||||
// before rereading the config and writing out any log messages
|
||||
synchronized (_writer) {
|
||||
@ -345,15 +358,17 @@ public class LogManager {
|
||||
|
||||
try {
|
||||
String str = config.getProperty(PROP_CONSOLEBUFFERSIZE);
|
||||
if (str == null)
|
||||
_consoleBufferSize = DEFAULT_CONSOLEBUFFERSIZE;
|
||||
else
|
||||
if (str != null)
|
||||
_consoleBufferSize = Integer.parseInt(str);
|
||||
} catch (NumberFormatException nfe) {
|
||||
System.err.println("Invalid console buffer size");
|
||||
nfe.printStackTrace();
|
||||
_consoleBufferSize = DEFAULT_CONSOLEBUFFERSIZE;
|
||||
}
|
||||
} catch (NumberFormatException nfe) {}
|
||||
|
||||
try {
|
||||
String str = config.getProperty(PROP_LOG_BUFFER_SIZE);
|
||||
if (str != null)
|
||||
_logBufferSize = Integer.parseInt(str);
|
||||
} catch (NumberFormatException nfe) {}
|
||||
|
||||
_dropOnOverflow = Boolean.valueOf(config.getProperty(PROP_DROP)).booleanValue();
|
||||
|
||||
//if (_log.shouldLog(Log.DEBUG))
|
||||
// _log.debug("Log set to use the base log file as " + _baseLogfilename);
|
||||
|
@ -44,7 +44,7 @@ public class LookaheadInputStream extends FilterInputStream {
|
||||
Arrays.fill(_footerLookahead, (byte)0x00);
|
||||
int footerRead = 0;
|
||||
while (footerRead < _footerLookahead.length) {
|
||||
int read = in.read(_footerLookahead);
|
||||
int read = in.read(_footerLookahead, footerRead, _footerLookahead.length - footerRead);
|
||||
if (read == -1) throw new IOException("EOF reading the footer lookahead");
|
||||
footerRead += read;
|
||||
}
|
||||
|
@ -90,6 +90,8 @@ public class SSLEepGet extends EepGet {
|
||||
/** may be null if init failed */
|
||||
private SavingTrustManager _stm;
|
||||
|
||||
private static final boolean _isAndroid = System.getProperty("java.vendor").contains("Android");
|
||||
|
||||
/**
|
||||
* A new SSLEepGet with a new SSLState
|
||||
*/
|
||||
@ -192,12 +194,23 @@ public class SSLEepGet extends EepGet {
|
||||
String override = System.getProperty("javax.net.ssl.keyStore");
|
||||
if (override != null)
|
||||
success = loadCerts(new File(override), ks);
|
||||
if (!success)
|
||||
success = loadCerts(new File(System.getProperty("java.home"), "lib/security/jssecacerts"), ks);
|
||||
if (!success)
|
||||
success = loadCerts(new File(System.getProperty("java.home"), "lib/security/cacerts"), ks);
|
||||
if (!success) {
|
||||
if (_isAndroid) {
|
||||
// thru API 13. As of API 14 (ICS), the file is gone, but
|
||||
// ks.load(null, pw) will bring in the default certs?
|
||||
success = loadCerts(new File(System.getProperty("java.home"), "etc/security/cacerts.bks"), ks);
|
||||
} else {
|
||||
success = loadCerts(new File(System.getProperty("java.home"), "lib/security/jssecacerts"), ks);
|
||||
if (!success)
|
||||
success = loadCerts(new File(System.getProperty("java.home"), "lib/security/cacerts"), ks);
|
||||
}
|
||||
}
|
||||
|
||||
if (!success) {
|
||||
try {
|
||||
// must be initted
|
||||
ks.load(null, "changeit".toCharArray());
|
||||
} catch (Exception e) {}
|
||||
_log.error("All key store loads failed, will only load local certificates");
|
||||
} else if (_log.shouldLog(Log.INFO)) {
|
||||
int count = 0;
|
||||
|
@ -146,7 +146,7 @@ public class SimpleScheduler {
|
||||
* Same as SimpleTimer.TimedEvent but use run() instead of timeReached(), and remembers the time
|
||||
*/
|
||||
private class RunnableEvent implements Runnable {
|
||||
protected SimpleTimer.TimedEvent _timedEvent;
|
||||
protected final SimpleTimer.TimedEvent _timedEvent;
|
||||
protected long _scheduled;
|
||||
|
||||
public RunnableEvent(SimpleTimer.TimedEvent t, long timeoutMs) {
|
||||
|
@ -28,86 +28,94 @@ import net.i2p.data.Hash;
|
||||
*/
|
||||
public class DatagramTest extends TestCase {
|
||||
private I2PClient _client;
|
||||
|
||||
|
||||
public void setUp(){
|
||||
}
|
||||
|
||||
|
||||
protected void tearDown() {
|
||||
System.gc();
|
||||
}
|
||||
|
||||
|
||||
public void testDatagram() throws Exception{
|
||||
ByteArrayOutputStream out = new ByteArrayOutputStream();
|
||||
I2PClient client = I2PClientFactory.createClient();
|
||||
Destination d = client.createDestination(out);
|
||||
I2PSession session = client.createSession(new ByteArrayInputStream(out.toByteArray()), null);
|
||||
|
||||
|
||||
I2PDatagramMaker dm = new I2PDatagramMaker(session);
|
||||
byte[] dg = dm.makeI2PDatagram("What's the deal with 42?".getBytes());
|
||||
|
||||
|
||||
I2PDatagramDissector dd = new I2PDatagramDissector();
|
||||
dd.loadI2PDatagram(dg);
|
||||
byte[] x = dd.getPayload();
|
||||
assertTrue(DataHelper.eq(x, "What's the deal with 42?".getBytes()));
|
||||
|
||||
|
||||
x = dd.extractPayload();
|
||||
assertTrue(DataHelper.eq(x, "What's the deal with 42?".getBytes()));
|
||||
|
||||
|
||||
assertEquals(d, dd.getSender());
|
||||
assertEquals(d, dd.extractSender());
|
||||
|
||||
}
|
||||
|
||||
/*public void testMakeNullDatagram() throws Exception{
|
||||
|
||||
public void testMakeNullDatagram() throws Exception{
|
||||
ByteArrayOutputStream out = new ByteArrayOutputStream();
|
||||
I2PClient client = I2PClientFactory.createClient();
|
||||
Destination d = client.createDestination(out);
|
||||
I2PSession session = client.createSession(new ByteArrayInputStream(out.toByteArray()), null);
|
||||
I2PDatagramMaker dm = new I2PDatagramMaker(session);
|
||||
|
||||
|
||||
byte[] dg = dm.makeI2PDatagram(null);
|
||||
assertNull(dg);
|
||||
}*/
|
||||
|
||||
/*public void testExtractNullDatagram() throws Exception{
|
||||
}
|
||||
|
||||
public void testExtractNullDatagram() throws Exception{
|
||||
ByteArrayOutputStream out = new ByteArrayOutputStream();
|
||||
I2PClient client = I2PClientFactory.createClient();
|
||||
Destination d = client.createDestination(out);
|
||||
I2PSession session = client.createSession(new ByteArrayInputStream(out.toByteArray()), null);
|
||||
|
||||
|
||||
I2PDatagramDissector dd = new I2PDatagramDissector();
|
||||
dd.loadI2PDatagram(null);
|
||||
}*/
|
||||
|
||||
}
|
||||
|
||||
public void testBadagram() throws Exception{
|
||||
ByteArrayOutputStream out = new ByteArrayOutputStream();
|
||||
I2PClient client = I2PClientFactory.createClient();
|
||||
Destination d = client.createDestination(out);
|
||||
I2PSession session = client.createSession(new ByteArrayInputStream(out.toByteArray()), null);
|
||||
DSAEngine dsaEng = DSAEngine.getInstance();
|
||||
|
||||
|
||||
ByteArrayOutputStream dout = new ByteArrayOutputStream();
|
||||
d.writeBytes(dout);
|
||||
dsaEng.sign(Hash.FAKE_HASH.toByteArray(), session.getPrivateKey()).writeBytes(dout);
|
||||
dout.write("blah".getBytes());
|
||||
|
||||
|
||||
byte[] data = dout.toByteArray();
|
||||
I2PDatagramDissector dd = new I2PDatagramDissector();
|
||||
dd.loadI2PDatagram(data);
|
||||
|
||||
|
||||
boolean error = false;
|
||||
try{
|
||||
dd.getPayload();
|
||||
}catch(I2PInvalidDatagramException i2pide){
|
||||
error = true;
|
||||
}
|
||||
|
||||
assertTrue(error);
|
||||
|
||||
error = false;
|
||||
try{
|
||||
dd.getSender();
|
||||
}catch(I2PInvalidDatagramException i2pide){
|
||||
error = true;
|
||||
}
|
||||
|
||||
assertTrue(error);
|
||||
|
||||
error = false;
|
||||
try{
|
||||
dd.getHash();
|
||||
}catch(I2PInvalidDatagramException i2pide){
|
||||
error = true;
|
||||
}
|
||||
assertTrue(error);
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,65 @@
|
||||
package net.i2p.client.naming;
|
||||
|
||||
import static org.hamcrest.MatcherAssert.assertThat;
|
||||
import static org.hamcrest.Matchers.*;
|
||||
import junit.framework.TestCase;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Properties;
|
||||
|
||||
import net.i2p.I2PAppContext;
|
||||
import net.i2p.data.DataHelper;
|
||||
import net.i2p.data.Destination;
|
||||
|
||||
|
||||
public class BlockfileNamingServiceTest extends TestCase {
|
||||
BlockfileNamingService _bns;
|
||||
List<String> _names;
|
||||
|
||||
public void setUp() {
|
||||
I2PAppContext ctx = new I2PAppContext();
|
||||
_bns = new BlockfileNamingService(ctx);
|
||||
_names = null;
|
||||
Properties props = new Properties();
|
||||
try {
|
||||
DataHelper.loadProps(props, new File("../../installer/resources/hosts.txt"), true);
|
||||
_names = new ArrayList(props.keySet());
|
||||
Collections.shuffle(_names);
|
||||
} catch (IOException ioe) {
|
||||
_bns.shutdown();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
public void tearDown() {
|
||||
_bns.shutdown();
|
||||
File f = new File("hostsdb.blockfile");
|
||||
f.delete();
|
||||
}
|
||||
|
||||
public void testRepeatedLookup() throws Exception{
|
||||
int found = 0;
|
||||
int notfound = 0;
|
||||
int rfound = 0;
|
||||
int rnotfound = 0;
|
||||
for (String name : _names) {
|
||||
Destination dest = _bns.lookup(name);
|
||||
if (dest != null) {
|
||||
found++;
|
||||
String reverse = _bns.reverseLookup(dest);
|
||||
if (reverse != null)
|
||||
rfound++;
|
||||
else
|
||||
rnotfound++;
|
||||
} else {
|
||||
notfound++;
|
||||
}
|
||||
}
|
||||
assertEquals(0, notfound);
|
||||
assertEquals(0, rnotfound);
|
||||
}
|
||||
}
|
@ -0,0 +1,45 @@
|
||||
package net.i2p.client.naming;
|
||||
|
||||
import junit.framework.TestCase;
|
||||
|
||||
import net.i2p.I2PAppContext;
|
||||
import net.i2p.data.Destination;
|
||||
|
||||
|
||||
public class DummyNamingServiceTest extends TestCase {
|
||||
private I2PAppContext _context;
|
||||
|
||||
public void setUp() {
|
||||
_context = new I2PAppContext();
|
||||
}
|
||||
|
||||
public void testLookup() throws Exception{
|
||||
// The good b64 and b32 are the destination of www.i2p2.i2p =)
|
||||
String goodB64 = "-KR6qyfPWXoN~F3UzzYSMIsaRy4quickbrownfoxXSzUQXQdi2Af1TV2UMH3PpPuNu-GwrqihwmLSkPFg4fv4yQQY3E10VeQVuI67dn5vlan3NGMsjqxoXTSHHt7C3nX3szXK90JSoO~tRMDl1xyqtKm94-RpIyNcLXofd0H6b02683CQIjb-7JiCpDD0zharm6SU54rhdisIUVXpi1xYgg2pKVpssL~KCp7RAGzpt2rSgz~RHFsecqGBeFwJdiko-6CYW~tcBcigM8ea57LK7JjCFVhOoYTqgk95AG04-hfehnmBtuAFHWklFyFh88x6mS9sbVPvi-am4La0G0jvUJw9a3wQ67jMr6KWQ~w~bFe~FDqoZqVXl8t88qHPIvXelvWw2Y8EMSF5PJhWw~AZfoWOA5VQVYvcmGzZIEKtFGE7bgQf3rFtJ2FAtig9XXBsoLisHbJgeVb29Ew5E7bkwxvEe9NYkIqvrKvUAt1i55we0Nkt6xlEdhBqg6xXOyIAAAA";
|
||||
String goodB32 = "rjxwbsw4zjhv4zsplma6jmf5nr24e4ymvvbycd3swgiinbvg7oga.b32.i2p";
|
||||
// TODO: Come up with an actual bad b64 and b32
|
||||
String badB64 = "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
|
||||
String badB32 = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.b32.i2p";
|
||||
|
||||
DummyNamingService ns = new DummyNamingService(_context);
|
||||
|
||||
assertNull(ns.lookup(""));
|
||||
// TODO: Could this case ever come up?
|
||||
//assertNull(ns.lookup(null));
|
||||
|
||||
Destination dGoodB64 = ns.lookup(goodB64);
|
||||
assertNotNull(dGoodB64);
|
||||
// TODO: Check that the b64 is preserved.
|
||||
|
||||
Destination dGoodB32 = ns.lookup(goodB32);
|
||||
assertNotNull(dGoodB32);
|
||||
// TODO: Check that the b32 is preserved.
|
||||
|
||||
// TODO: Come up with an actual bad b64 and b32
|
||||
//assertNull(ns.lookup(badB64));
|
||||
//assertNull(ns.lookup(badB32));
|
||||
|
||||
// DummyNameService only handles b64 and b32 addresses
|
||||
assertNull(ns.lookup("www.i2p2.i2p"));
|
||||
}
|
||||
}
|
@ -0,0 +1,66 @@
|
||||
package net.i2p.client.naming;
|
||||
|
||||
import static org.hamcrest.MatcherAssert.assertThat;
|
||||
import static org.hamcrest.Matchers.*;
|
||||
import junit.framework.TestCase;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.Collections;
|
||||
|
||||
import net.i2p.I2PAppContext;
|
||||
import net.i2p.data.Destination;
|
||||
|
||||
|
||||
public class SingleFileNamingServiceTest extends TestCase {
|
||||
private I2PAppContext _context;
|
||||
|
||||
public void setUp() {
|
||||
_context = new I2PAppContext();
|
||||
}
|
||||
|
||||
public void tearDown() {
|
||||
File f = new File("testhosts.txt");
|
||||
f.delete();
|
||||
}
|
||||
|
||||
public void testAddRemoveLookup() throws Exception{
|
||||
String testB64 = "-KR6qyfPWXoN~F3UzzYSMIsaRy4quickbrownfoxXSzUQXQdi2Af1TV2UMH3PpPuNu-GwrqihwmLSkPFg4fv4yQQY3E10VeQVuI67dn5vlan3NGMsjqxoXTSHHt7C3nX3szXK90JSoO~tRMDl1xyqtKm94-RpIyNcLXofd0H6b02683CQIjb-7JiCpDD0zharm6SU54rhdisIUVXpi1xYgg2pKVpssL~KCp7RAGzpt2rSgz~RHFsecqGBeFwJdiko-6CYW~tcBcigM8ea57LK7JjCFVhOoYTqgk95AG04-hfehnmBtuAFHWklFyFh88x6mS9sbVPvi-am4La0G0jvUJw9a3wQ67jMr6KWQ~w~bFe~FDqoZqVXl8t88qHPIvXelvWw2Y8EMSF5PJhWw~AZfoWOA5VQVYvcmGzZIEKtFGE7bgQf3rFtJ2FAtig9XXBsoLisHbJgeVb29Ew5E7bkwxvEe9NYkIqvrKvUAt1i55we0Nkt6xlEdhBqg6xXOyIAAAA";
|
||||
Destination testDest = new Destination();
|
||||
testDest.fromBase64(testB64);
|
||||
String testB642 = "24SmhWiRDm-GzpV5Gq2sXhuvPpa1OihY7rkxQO4aHy5qKjr6zmEnZ3xQXdkFJJ0Z1lKy73XRmgCyys02G25Hl3cuxlZ2fNbp6KhOzlRKpOIAWFdSWZNF4Fp7sos0x-a-9fxOWnwwQ9MFcRYwixE~iCZf4JG~-Pd-MHgAuDhIX0P3~GmfUvo~9xPjof1ZsnaOV1zC0XUkHxZA5D6V0Bse~Ptfb66lPNcgBxIEntCStBAy~rTjaA3SdAufG29IRWDscpFq1-D4XPaXHnlXu7n7WdpFEM8WWd3ebUMqnq8XvLL1eqoWYzKCe3aaavC3W6~pJp8cxKl2IKrhvSFatHZ0chRg3B4~ja1Cxmw1psisplSkJqMnF921E6pury0i6GH52XAVoj4iiDY~EAvqDhzG-ThwlzTs~2JKzslwxOrD2ejd-dcKdi4i9xvi2JQ4Ib2Mw2ktaQhuAw3Y9EkqAs7oriQQN8N8dwIoYkJLfvh7ousm0iKJJvMt3s55PccM46SoAAAA";
|
||||
Destination testDest2 = new Destination();
|
||||
testDest2.fromBase64(testB642);
|
||||
|
||||
SingleFileNamingService ns = new SingleFileNamingService(_context, "testhosts.txt");
|
||||
|
||||
// testhosts.txt is empty.
|
||||
assertThat(ns.size(), is(equalTo(0)));
|
||||
assertThat(ns.getEntries(), is(equalTo(Collections.EMPTY_MAP)));
|
||||
assertThat(ns.lookup("test.i2p"), is(nullValue()));
|
||||
assertThat(ns.reverseLookup(testDest), is(nullValue()));
|
||||
|
||||
// First put should add the hostname.
|
||||
ns.put("test.i2p", testDest);
|
||||
assertThat(ns.size(), is(equalTo(1)));
|
||||
assertThat(ns.getEntries().size(), is(equalTo(1)));
|
||||
assertThat(ns.lookup("test.i2p"), is(equalTo(testDest)));
|
||||
assertThat(ns.reverseLookup(testDest), is(equalTo("test.i2p")));
|
||||
|
||||
// Second put should replace the first.
|
||||
ns.put("test.i2p", testDest2);
|
||||
assertThat(ns.size(), is(equalTo(1)));
|
||||
assertThat(ns.lookup("test.i2p"), is(equalTo(testDest2)));
|
||||
assertThat(ns.reverseLookup(testDest2), is(equalTo("test.i2p")));
|
||||
assertThat(ns.lookup("test.i2p"), is(not(equalTo(testDest))));
|
||||
assertThat(ns.reverseLookup(testDest), is(nullValue()));
|
||||
|
||||
// Removing the hostname should give an empty file again.
|
||||
ns.remove("test.i2p");
|
||||
assertThat(ns.lookup("test.i2p"), is(nullValue()));
|
||||
assertThat(ns.reverseLookup(testDest2), is(nullValue()));
|
||||
// Odd quirk - the above lookups don't update size, but getEntries() does...
|
||||
assertThat(ns.size(), is(equalTo(1)));
|
||||
assertThat(ns.getEntries(), is(equalTo(Collections.EMPTY_MAP)));
|
||||
assertThat(ns.size(), is(equalTo(0)));
|
||||
}
|
||||
}
|
@ -24,7 +24,6 @@ public class CryptoTestSuite {
|
||||
suite.addTestSuite(AESInputStreamTest.class);
|
||||
suite.addTestSuite(CryptixAESEngineTest.class);
|
||||
suite.addTestSuite(CryptixRijndael_AlgorithmTest.class);
|
||||
suite.addTestSuite(DHSessionKeyBuilderTest.class);
|
||||
suite.addTestSuite(DSATest.class);
|
||||
suite.addTestSuite(ElGamalTest.class);
|
||||
suite.addTestSuite(HMACSHA256Test.class);
|
||||
@ -35,4 +34,4 @@ public class CryptoTestSuite {
|
||||
|
||||
return suite;
|
||||
}
|
||||
}
|
||||
}
|
@ -372,8 +372,10 @@ public class ElGamalTest extends TestCase{
|
||||
|
||||
public void testYKGen(){
|
||||
RandomSource.getInstance().nextBoolean();
|
||||
I2PAppContext context = new I2PAppContext();
|
||||
YKGenerator ykgen = new YKGenerator(context);
|
||||
for (int i = 0; i < 5; i++) {
|
||||
YKGenerator.getNextYK();
|
||||
ykgen.getNextYK();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -9,41 +9,24 @@ public class DataTestSuite {
|
||||
|
||||
TestSuite suite = new TestSuite("net.i2p.data.DataTestSuite");
|
||||
|
||||
suite.addTestSuite(AbuseReasonTest.class);
|
||||
suite.addTestSuite(AbuseSeverityTest.class);
|
||||
suite.addTestSuite(Base64Test.class);
|
||||
suite.addTestSuite(BooleanTest.class);
|
||||
suite.addTestSuite(CertificateTest.class);
|
||||
suite.addTestSuite(CreateLeaseSetMessageTest.class);
|
||||
suite.addTestSuite(CreateSessionMessageTest.class);
|
||||
suite.addTestSuite(DataHelperTest.class);
|
||||
suite.addTestSuite(DataStructureImplTest.class);
|
||||
suite.addTestSuite(DateTest.class);
|
||||
suite.addTestSuite(DestinationTest.class);
|
||||
suite.addTestSuite(DestroySessionMessageTest.class);
|
||||
suite.addTestSuite(DisconnectMessageTest.class);
|
||||
suite.addTestSuite(HashTest.class);
|
||||
suite.addTestSuite(LeaseSetTest.class);
|
||||
suite.addTestSuite(LeaseTest.class);
|
||||
suite.addTestSuite(MappingTest.class);
|
||||
suite.addTestSuite(MessageIdTest.class);
|
||||
suite.addTestSuite(MessagePayloadMessageTest.class);
|
||||
suite.addTestSuite(MessageStatusMessageTest.class);
|
||||
suite.addTestSuite(PayloadTest.class);
|
||||
suite.addTestSuite(PrivateKeyTest.class);
|
||||
suite.addTestSuite(PublicKeyTest.class);
|
||||
suite.addTestSuite(ReceiveMessageBeginMessageTest.class);
|
||||
suite.addTestSuite(ReceiveMessageEndMessageTest.class);
|
||||
suite.addTestSuite(ReportAbuseMessageTest.class);
|
||||
suite.addTestSuite(RequestLeaseSetMessageTest.class);
|
||||
suite.addTestSuite(RouterAddressTest.class);
|
||||
suite.addTestSuite(RouterIdentityTest.class);
|
||||
suite.addTestSuite(RouterInfoTest.class);
|
||||
suite.addTestSuite(SendMessageMessageTest.class);
|
||||
suite.addTestSuite(SessionConfigTest.class);
|
||||
suite.addTestSuite(SessionIdTest.class);
|
||||
suite.addTestSuite(SessionKeyTest.class);
|
||||
suite.addTestSuite(SessionStatusMessageTest.class);
|
||||
suite.addTestSuite(SignatureTest.class);
|
||||
suite.addTestSuite(SigningPrivateKeyTest.class);
|
||||
suite.addTestSuite(SigningPublicKeyTest.class);
|
||||
@ -53,4 +36,4 @@ public class DataTestSuite {
|
||||
|
||||
return suite;
|
||||
}
|
||||
}
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user