merge of '04a2d141a4d20a86027b0345820c081a8460a671'
and '0c71002f6fde035669ce69ce9f263e9c231917f2'
This commit is contained in:
@ -21,7 +21,7 @@ CWD=$(pwd)
|
|||||||
TMP=/tmp
|
TMP=/tmp
|
||||||
PKG=/$TMP/package-base-i2p
|
PKG=/$TMP/package-base-i2p
|
||||||
NAME=i2p-base
|
NAME=i2p-base
|
||||||
VERSION=0.0.3
|
VERSION=0.0.4
|
||||||
BUILD=1sponge
|
BUILD=1sponge
|
||||||
ARCH=noarch
|
ARCH=noarch
|
||||||
INSTALL_DIR=opt
|
INSTALL_DIR=opt
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
i2p_start() {
|
i2p_start() {
|
||||||
# Check if router is up first!
|
# Check if router is up first!
|
||||||
/bin/su - -c "( export PATH=\"$PATH:/usr/lib/java/bin:/usr/lib/java/jre/bin\"; directory status )" > /dev/null
|
/bin/su - -c "/bin/bash -l -c '( export PATH=\"$PATH:/usr/lib/java/bin:/usr/lib/java/jre/bin\" ; directory status )'" > /dev/null
|
||||||
if [ $? -eq 0 ] ; then {
|
if [ $? -eq 0 ] ; then {
|
||||||
# I2p is already running, so tell the user.
|
# I2p is already running, so tell the user.
|
||||||
echo "I2P is already running..."
|
echo "I2P is already running..."
|
||||||
@ -14,13 +14,13 @@ i2p_start() {
|
|||||||
# Just in-case there are leftover junk in /tmp...
|
# Just in-case there are leftover junk in /tmp...
|
||||||
rm -Rf `grep /tmp/hsperfdata_root/* -le i2p` /tmp/i2p-*.tmp /tmp/router.ping
|
rm -Rf `grep /tmp/hsperfdata_root/* -le i2p` /tmp/i2p-*.tmp /tmp/router.ping
|
||||||
# Now that all junk is cleaned up, start.
|
# Now that all junk is cleaned up, start.
|
||||||
/bin/su - -c "( export PATH=\"$PATH:/usr/lib/java/bin:/usr/lib/java/jre/bin\"; directory start )"
|
/bin/su - -c "/bin/bash -l -c '( export PATH=\"$PATH:/usr/lib/java/bin:/usr/lib/java/jre/bin\" ; directory start )'"
|
||||||
}
|
}
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
i2p_stop() {
|
i2p_stop() {
|
||||||
/bin/su - -c "( export PATH=\"$PATH:/usr/lib/java/bin:/usr/lib/java/jre/bin\"; directory stop )"
|
/bin/su - -c "/bin/bash -l -c '( export PATH=\"$PATH:/usr/lib/java/bin:/usr/lib/java/jre/bin\" ; directory stop )'"
|
||||||
rm -Rf `grep /tmp/hsperfdata_root/* -le i2p` /tmp/i2p-*.tmp /tmp/router.ping
|
rm -Rf `grep /tmp/hsperfdata_root/* -le i2p` /tmp/i2p-*.tmp /tmp/router.ping
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -31,15 +31,15 @@ i2p_restart() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
i2p_status() {
|
i2p_status() {
|
||||||
/bin/su - -c "( export PATH=\"$PATH:/usr/lib/java/bin:/usr/lib/java/jre/bin\"; directory status )"
|
/bin/su - -c "/bin/bash -l -c '( export PATH=\"$PATH:/usr/lib/java/bin:/usr/lib/java/jre/bin\" ; directory status )'"
|
||||||
}
|
}
|
||||||
|
|
||||||
i2p_console() {
|
i2p_console() {
|
||||||
/bin/su - -c "( export PATH=\"$PATH:/usr/lib/java/bin:/usr/lib/java/jre/bin\"; directory console )"
|
/bin/su - -c "/bin/bash -l -c '( export PATH=\"$PATH:/usr/lib/java/bin:/usr/lib/java/jre/bin\" ; directory console )'"
|
||||||
}
|
}
|
||||||
|
|
||||||
i2p_dump() {
|
i2p_dump() {
|
||||||
/bin/su - -c "( export PATH=\"$PATH:/usr/lib/java/bin:/usr/lib/java/jre/bin\"; directory dump )"
|
/bin/su - -c "/bin/bash -l -c '( export PATH=\"$PATH:/usr/lib/java/bin:/usr/lib/java/jre/bin\" ; directory dump )'"
|
||||||
}
|
}
|
||||||
|
|
||||||
case "$1" in
|
case "$1" in
|
||||||
|
@ -7,6 +7,8 @@ package org.klomp.snark;
|
|||||||
* It is also passed from PeerState to PeerCoordinator when
|
* It is also passed from PeerState to PeerCoordinator when
|
||||||
* a piece is not completely downloaded, for example
|
* a piece is not completely downloaded, for example
|
||||||
* when the Peer disconnects or chokes.
|
* when the Peer disconnects or chokes.
|
||||||
|
*
|
||||||
|
* @since 0.8.2
|
||||||
*/
|
*/
|
||||||
class PartialPiece implements Comparable {
|
class PartialPiece implements Comparable {
|
||||||
|
|
||||||
|
@ -803,7 +803,7 @@ public class I2PSnarkServlet extends Default {
|
|||||||
ngettext("1 peer", "{0} peers", knownPeers);
|
ngettext("1 peer", "{0} peers", knownPeers);
|
||||||
else if (isRunning && knownPeers > 0)
|
else if (isRunning && knownPeers > 0)
|
||||||
statusString = "<img alt=\"\" border=\"0\" src=\"" + _imgPath + "nopeers.png\" ></td><td class=\"snarkTorrentStatus " + rowClass + "\">" + _("No Peers") +
|
statusString = "<img alt=\"\" border=\"0\" src=\"" + _imgPath + "nopeers.png\" ></td><td class=\"snarkTorrentStatus " + rowClass + "\">" + _("No Peers") +
|
||||||
": 0 / " + knownPeers ;
|
": 0" + thinsp(isDegraded) + knownPeers ;
|
||||||
else if (isRunning)
|
else if (isRunning)
|
||||||
statusString = "<img alt=\"\" border=\"0\" src=\"" + _imgPath + "nopeers.png\" ></td><td class=\"snarkTorrentStatus " + rowClass + "\">" + _("No Peers");
|
statusString = "<img alt=\"\" border=\"0\" src=\"" + _imgPath + "nopeers.png\" ></td><td class=\"snarkTorrentStatus " + rowClass + "\">" + _("No Peers");
|
||||||
else
|
else
|
||||||
|
@ -9,7 +9,7 @@ msgstr ""
|
|||||||
"Project-Id-Version: I2P i2psnark\n"
|
"Project-Id-Version: I2P i2psnark\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2010-12-12 23:30+0000\n"
|
"POT-Creation-Date: 2010-12-12 23:30+0000\n"
|
||||||
"PO-Revision-Date: 2010-12-13 01:01+0100\n"
|
"PO-Revision-Date: 2010-12-19 04:37+0100\n"
|
||||||
"Last-Translator: mixxy <m1xxy@mail.i2p>\n"
|
"Last-Translator: mixxy <m1xxy@mail.i2p>\n"
|
||||||
"Language-Team: foo <foo@bar>\n"
|
"Language-Team: foo <foo@bar>\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
@ -118,12 +118,12 @@ msgstr "Verbinde mit I2P"
|
|||||||
|
|
||||||
#: ../java/src/org/klomp/snark/SnarkManager.java:497
|
#: ../java/src/org/klomp/snark/SnarkManager.java:497
|
||||||
msgid "Error connecting to I2P - check your I2CP settings!"
|
msgid "Error connecting to I2P - check your I2CP settings!"
|
||||||
msgstr "Fehler beim Verbinden mit I2P - Kontrollieren Sie die I2CP Einstellungen!"
|
msgstr "Fehler beim Verbinden mit I2P - Kontrollieren Sie die I2CP-Einstellungen!"
|
||||||
|
|
||||||
#: ../java/src/org/klomp/snark/SnarkManager.java:506
|
#: ../java/src/org/klomp/snark/SnarkManager.java:506
|
||||||
#, java-format
|
#, java-format
|
||||||
msgid "Error: Could not add the torrent {0}"
|
msgid "Error: Could not add the torrent {0}"
|
||||||
msgstr "Fehler: Konnte den Torrent nicht hinzufügen {0}"
|
msgstr "Fehler: Konnte den Torrent \"{0}\" nicht hinzufügen"
|
||||||
|
|
||||||
#. catch this here so we don't try do delete it below
|
#. catch this here so we don't try do delete it below
|
||||||
#: ../java/src/org/klomp/snark/SnarkManager.java:528
|
#: ../java/src/org/klomp/snark/SnarkManager.java:528
|
||||||
@ -164,7 +164,7 @@ msgstr "Zu viele Dateien in \"{0}\" ({1}), wird gelöscht! "
|
|||||||
#: ../java/src/org/klomp/snark/SnarkManager.java:736
|
#: ../java/src/org/klomp/snark/SnarkManager.java:736
|
||||||
#, java-format
|
#, java-format
|
||||||
msgid "Torrent file \"{0}\" cannot end in \".torrent\", deleting it!"
|
msgid "Torrent file \"{0}\" cannot end in \".torrent\", deleting it!"
|
||||||
msgstr "Torrentdatei \"{0}\" darf nicht mit '.torrent' enden, wird gelöscht!"
|
msgstr "Torrentdatei \"{0}\" darf nicht auf '.torrent' enden, wird gelöscht!"
|
||||||
|
|
||||||
#: ../java/src/org/klomp/snark/SnarkManager.java:738
|
#: ../java/src/org/klomp/snark/SnarkManager.java:738
|
||||||
#, java-format
|
#, java-format
|
||||||
@ -269,7 +269,7 @@ msgstr "geschätzte verbleibende Zeit"
|
|||||||
#. Translators: Please keep short or translate as " "
|
#. Translators: Please keep short or translate as " "
|
||||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:293
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:293
|
||||||
msgid "ETA"
|
msgid "ETA"
|
||||||
msgstr "Fertig in"
|
msgstr "Dauer"
|
||||||
|
|
||||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:297
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:297
|
||||||
msgid "Downloaded"
|
msgid "Downloaded"
|
||||||
@ -388,7 +388,7 @@ msgstr "Datenverzeichnis wurde gelöscht: {0}"
|
|||||||
|
|
||||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:587
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:587
|
||||||
msgid "Error creating torrent - you must select a tracker"
|
msgid "Error creating torrent - you must select a tracker"
|
||||||
msgstr "Fehler beim Erstellen des Torrents - Sie müssen einen Tracker auswählen"
|
msgstr "Fehler beim Erstellen des Torrents - Sie müssen einen Tracker auswählen!"
|
||||||
|
|
||||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:602
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:602
|
||||||
#, java-format
|
#, java-format
|
||||||
@ -638,7 +638,7 @@ msgstr "Datenverzeichnis"
|
|||||||
|
|
||||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1186
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1186
|
||||||
msgid "Edit i2psnark.config and restart to change"
|
msgid "Edit i2psnark.config and restart to change"
|
||||||
msgstr "Zum Ändern bearbeite die i2psnark.config und starte neu!"
|
msgstr "Zum Ändern, bearbeite die i2psnark.config und starte neu!"
|
||||||
|
|
||||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1190
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1190
|
||||||
msgid "Auto start"
|
msgid "Auto start"
|
||||||
|
@ -8,8 +8,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: I2P i2psnark\n"
|
"Project-Id-Version: I2P i2psnark\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2010-12-12 23:30+0000\n"
|
"POT-Creation-Date: 2010-12-19 03:16+0000\n"
|
||||||
"PO-Revision-Date: 2010-12-13 00:57+0100\n"
|
"PO-Revision-Date: 2010-12-19 04:49+0100\n"
|
||||||
"Last-Translator: mixxy <m1xxy@mail.i2p>\n"
|
"Last-Translator: mixxy <m1xxy@mail.i2p>\n"
|
||||||
"Language-Team: foo <foo@bar>\n"
|
"Language-Team: foo <foo@bar>\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
@ -101,7 +101,7 @@ msgstr "Lista de rastreadores abiertos cambiada - Para aplicar ello es necesario
|
|||||||
#: ../java/src/org/klomp/snark/SnarkManager.java:438
|
#: ../java/src/org/klomp/snark/SnarkManager.java:438
|
||||||
#, java-format
|
#, java-format
|
||||||
msgid "{0} theme loaded, return to main i2psnark page to view."
|
msgid "{0} theme loaded, return to main i2psnark page to view."
|
||||||
msgstr "Cargado el tema {0}. ¡Vuelve al menú principal de i2psnark para verlo!"
|
msgstr "Tema {0} cargado. ¡Vuelve a la página principal de i2psnark para verlo!"
|
||||||
|
|
||||||
#: ../java/src/org/klomp/snark/SnarkManager.java:445
|
#: ../java/src/org/klomp/snark/SnarkManager.java:445
|
||||||
msgid "Configuration unchanged."
|
msgid "Configuration unchanged."
|
||||||
@ -264,14 +264,12 @@ msgstr "Torrent"
|
|||||||
|
|
||||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:290
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:290
|
||||||
msgid "Estimated time remaining"
|
msgid "Estimated time remaining"
|
||||||
msgstr "Tiempo restante estimado"
|
msgstr "Tiempo restante para completar la descarga"
|
||||||
|
|
||||||
# NOTE: purposely left blank to leave more room in the table header
|
|
||||||
# msgstr "Completado en"
|
|
||||||
#. Translators: Please keep short or translate as " "
|
#. Translators: Please keep short or translate as " "
|
||||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:293
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:293
|
||||||
msgid "ETA"
|
msgid "ETA"
|
||||||
msgstr " "
|
msgstr "Completado en"
|
||||||
|
|
||||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:297
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:297
|
||||||
msgid "Downloaded"
|
msgid "Downloaded"
|
||||||
@ -297,13 +295,11 @@ msgstr "Subido"
|
|||||||
msgid "Down Rate"
|
msgid "Down Rate"
|
||||||
msgstr "Tasa de descarga"
|
msgstr "Tasa de descarga"
|
||||||
|
|
||||||
# NOTE: purposely left blank to leave more room in the table header
|
|
||||||
# msgstr "Tasa de transferencia"
|
|
||||||
#. Translators: Please keep short or translate as " "
|
#. Translators: Please keep short or translate as " "
|
||||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:317
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:317
|
||||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:326
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:326
|
||||||
msgid "Rate"
|
msgid "Rate"
|
||||||
msgstr " "
|
msgstr "Tasa"
|
||||||
|
|
||||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:322
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:322
|
||||||
msgid "Up Rate"
|
msgid "Up Rate"
|
||||||
@ -795,7 +791,7 @@ msgstr "Torrent ya encolado: {0}"
|
|||||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1755
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1755
|
||||||
#, java-format
|
#, java-format
|
||||||
msgid "Failed to copy torrent file to {0}"
|
msgid "Failed to copy torrent file to {0}"
|
||||||
msgstr "No se pudo copiar el archivo torrent a {0}."
|
msgstr "No se pudo copiar el torrent a {0}."
|
||||||
|
|
||||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1759
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1759
|
||||||
#, java-format
|
#, java-format
|
||||||
@ -809,8 +805,18 @@ msgstr "Torrent no se ha podido obtener de {0}"
|
|||||||
|
|
||||||
#~ msgid " theme locked and loaded."
|
#~ msgid " theme locked and loaded."
|
||||||
#~ msgstr "tema cargado"
|
#~ msgstr "tema cargado"
|
||||||
|
#~ msgid "Hide All Attached Peers [connected/total in swarm]"
|
||||||
|
#~ msgstr "Ocultar todos los pares conectados [conectados/todos]"
|
||||||
|
#~ msgid "Show All Attached Peers [connected/total in swarm]"
|
||||||
|
#~ msgstr "Mostrar todos los pares conectados [conectados/todos]"
|
||||||
|
#~ msgid "Loaded Torrents"
|
||||||
|
#~ msgstr "Torrents"
|
||||||
#~ msgid "Estimated Download Time"
|
#~ msgid "Estimated Download Time"
|
||||||
#~ msgstr "tiempo restante de descarga"
|
#~ msgstr "tiempo restante de descarga"
|
||||||
|
#~ msgid "1"
|
||||||
|
#~ msgid_plural "{0}"
|
||||||
|
#~ msgstr[0] "{0}"
|
||||||
|
#~ msgstr[1] "{0}"
|
||||||
#~ msgid "Torrent file {0} does not exist"
|
#~ msgid "Torrent file {0} does not exist"
|
||||||
#~ msgstr "Archivo del torrent {0} no existe"
|
#~ msgstr "Archivo del torrent {0} no existe"
|
||||||
#~ msgid "Copying torrent to {0}"
|
#~ msgid "Copying torrent to {0}"
|
||||||
|
File diff suppressed because it is too large
Load Diff
864
apps/i2psnark/locale/messages_pt.po
Normal file
864
apps/i2psnark/locale/messages_pt.po
Normal file
@ -0,0 +1,864 @@
|
|||||||
|
# I2P
|
||||||
|
# Copyright (C) 2009 The I2P Project
|
||||||
|
# This file is distributed under the same license as the i2psnark package.
|
||||||
|
# To contribute translations, see http://www.i2p2.de/newdevelopers
|
||||||
|
# foo <foo@bar>, 2009.
|
||||||
|
#
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: I2P i2psnark\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2010-12-19 03:16+0000\n"
|
||||||
|
"PO-Revision-Date: 2010-12-19 04:48+0100\n"
|
||||||
|
"Last-Translator: mixxy <m1xxy@mail.i2p>\n"
|
||||||
|
"Language-Team: foo <foo@bar>\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"X-Poedit-Language: Spanish\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/SnarkManager.java:94
|
||||||
|
#, java-format
|
||||||
|
msgid "Adding torrents in {0} minutes"
|
||||||
|
msgstr "Os torrents serão adicionados em {0} minutos ..."
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/SnarkManager.java:296
|
||||||
|
#, java-format
|
||||||
|
msgid "Total uploaders limit changed to {0}"
|
||||||
|
msgstr "Limite total de subidores mudado a {0}"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/SnarkManager.java:298
|
||||||
|
#, java-format
|
||||||
|
msgid "Minimum total uploaders limit is {0}"
|
||||||
|
msgstr "O limite mínimo de subidores é {0}"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/SnarkManager.java:310
|
||||||
|
#, java-format
|
||||||
|
msgid "Up BW limit changed to {0}KBps"
|
||||||
|
msgstr "Largura de banda para a subida foi mudada para {0} kbyte/s."
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/SnarkManager.java:312
|
||||||
|
#, java-format
|
||||||
|
msgid "Minimum up bandwidth limit is {0}KBps"
|
||||||
|
msgstr "O limite mínimo da largura de banda para a subida está em {0} kbyte/s."
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/SnarkManager.java:324
|
||||||
|
#, java-format
|
||||||
|
msgid "Startup delay limit changed to {0} minutes"
|
||||||
|
msgstr "Demora do arranque mudado a {0} minutos"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/SnarkManager.java:371
|
||||||
|
msgid "I2CP and tunnel changes will take effect after stopping all torrents"
|
||||||
|
msgstr "Mudanças do I2CP e do túnel terão efeito depois de parar todos os torrents"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/SnarkManager.java:378
|
||||||
|
msgid "Disconnecting old I2CP destination"
|
||||||
|
msgstr "Desconectando anterior Destinação I2CP"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/SnarkManager.java:382
|
||||||
|
#, java-format
|
||||||
|
msgid "I2CP settings changed to {0}"
|
||||||
|
msgstr "Preferências de I2CP mudadas a {0}"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/SnarkManager.java:386
|
||||||
|
msgid "Unable to connect with the new settings, reverting to the old I2CP settings"
|
||||||
|
msgstr "Conectar-se não foi posível com as novas preferências I2CP, utilizarei as anteriores."
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/SnarkManager.java:390
|
||||||
|
msgid "Unable to reconnect with the old settings!"
|
||||||
|
msgstr "Impossível se conectar usando as preferências anteriores!"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/SnarkManager.java:392
|
||||||
|
msgid "Reconnected on the new I2CP destination"
|
||||||
|
msgstr "Conectado com a nova Destinação I2CP"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/SnarkManager.java:403
|
||||||
|
#, java-format
|
||||||
|
msgid "I2CP listener restarted for \"{0}\""
|
||||||
|
msgstr "Conexão I2CP re-estabelecida para \"{0}\""
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/SnarkManager.java:414
|
||||||
|
msgid "Enabled autostart"
|
||||||
|
msgstr "Ativado o iniciar automáticamente"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/SnarkManager.java:416
|
||||||
|
msgid "Disabled autostart"
|
||||||
|
msgstr "Desativado o iniciar automáticamente"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/SnarkManager.java:422
|
||||||
|
msgid "Enabled open trackers - torrent restart required to take effect."
|
||||||
|
msgstr "Uso de rastreadores abertos ativado - Para ter efeito é necesário reiniciar os torrents."
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/SnarkManager.java:424
|
||||||
|
msgid "Disabled open trackers - torrent restart required to take effect."
|
||||||
|
msgstr "Uso dos rastreadores abertos desativado - Para ter efeito é necesário reiniciar os torrents."
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/SnarkManager.java:431
|
||||||
|
msgid "Open Tracker list changed - torrent restart required to take effect."
|
||||||
|
msgstr "Listado de rastreadores abertos mudado - Para ter efeito é necesário reiniciar os torrents."
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/SnarkManager.java:438
|
||||||
|
#, java-format
|
||||||
|
msgid "{0} theme loaded, return to main i2psnark page to view."
|
||||||
|
msgstr "Tema {0} foi carregado. Volte no menú principal para vê-lo."
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/SnarkManager.java:445
|
||||||
|
msgid "Configuration unchanged."
|
||||||
|
msgstr "Configuração não mudada."
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/SnarkManager.java:455
|
||||||
|
#, java-format
|
||||||
|
msgid "Unable to save the config to {0}"
|
||||||
|
msgstr "Não se pode guardar a configuração em {0}."
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/SnarkManager.java:494
|
||||||
|
msgid "Connecting to I2P"
|
||||||
|
msgstr "Conectando com I2P"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/SnarkManager.java:497
|
||||||
|
msgid "Error connecting to I2P - check your I2CP settings!"
|
||||||
|
msgstr "Error ao se conectar com I2P - Verifique a sua configuração I2CP!"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/SnarkManager.java:506
|
||||||
|
#, java-format
|
||||||
|
msgid "Error: Could not add the torrent {0}"
|
||||||
|
msgstr "Error: Não se pode adicionar o torrent {0}."
|
||||||
|
|
||||||
|
#. catch this here so we don't try do delete it below
|
||||||
|
#: ../java/src/org/klomp/snark/SnarkManager.java:528
|
||||||
|
#, java-format
|
||||||
|
msgid "Cannot open \"{0}\""
|
||||||
|
msgstr "Não pode se abrir \"{0}\""
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/SnarkManager.java:541
|
||||||
|
#, java-format
|
||||||
|
msgid "Warning - Ignoring non-i2p tracker in \"{0}\", will announce to i2p open trackers only"
|
||||||
|
msgstr "Aviso - Se ignorará rastreado não I2P no \"{0}\", anunciando só aos rastreadores abertos do I2P"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/SnarkManager.java:543
|
||||||
|
#, java-format
|
||||||
|
msgid "Warning - Ignoring non-i2p tracker in \"{0}\", and open trackers are disabled, you must enable open trackers before starting the torrent!"
|
||||||
|
msgstr "Aviso - Se ignorará rastreador não I2P no \"{0}\", rastreadores abertos estão desativados. Tens que ativá-los antes de iniciar o torrent!"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/SnarkManager.java:563
|
||||||
|
#, java-format
|
||||||
|
msgid "Torrent in \"{0}\" is invalid"
|
||||||
|
msgstr "O arquivo .torrent em \"{0}\" não é válido."
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/SnarkManager.java:578
|
||||||
|
#, java-format
|
||||||
|
msgid "Torrent added and started: \"{0}\""
|
||||||
|
msgstr "Torrent adicionado e iniciado: \"{0}\""
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/SnarkManager.java:580
|
||||||
|
#, java-format
|
||||||
|
msgid "Torrent added: \"{0}\""
|
||||||
|
msgstr "Torrent adicionado: \"{0}\""
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/SnarkManager.java:734
|
||||||
|
#, java-format
|
||||||
|
msgid "Too many files in \"{0}\" ({1}), deleting it!"
|
||||||
|
msgstr "Ha arquivos demais no \"{0}\", se apagará ({1}). "
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/SnarkManager.java:736
|
||||||
|
#, java-format
|
||||||
|
msgid "Torrent file \"{0}\" cannot end in \".torrent\", deleting it!"
|
||||||
|
msgstr "O arquivo de dados do torrent \"{0}\" não pode terminar em \".torrent' e será apagado."
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/SnarkManager.java:738
|
||||||
|
#, java-format
|
||||||
|
msgid "No pieces in \"{0}\", deleting it!"
|
||||||
|
msgstr "Não ha peças no \"{0}\", se apagará."
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/SnarkManager.java:740
|
||||||
|
#, java-format
|
||||||
|
msgid "Too many pieces in \"{0}\", limit is {1}, deleting it!"
|
||||||
|
msgstr "Ha peças demais no \"{0}\" e o limite é {1}. Se apagarão."
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/SnarkManager.java:742
|
||||||
|
#, java-format
|
||||||
|
msgid "Pieces are too large in \"{0}\" ({1}B), deleting it."
|
||||||
|
msgstr "Peças no \"{0}\" são grandes demais ({1}B). Se apagarão."
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/SnarkManager.java:743
|
||||||
|
#, java-format
|
||||||
|
msgid "Limit is {0}B"
|
||||||
|
msgstr "O limite são \"{0}\"Bytes"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/SnarkManager.java:751
|
||||||
|
#, java-format
|
||||||
|
msgid "Torrents larger than {0}B are not supported yet, deleting \"{1}\""
|
||||||
|
msgstr "Torrents maiores que \"{0}\" Bytes ainda não funcionam, se apagará \"{1}\"."
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/SnarkManager.java:767
|
||||||
|
#, java-format
|
||||||
|
msgid "Error: Could not remove the torrent {0}"
|
||||||
|
msgstr "Error: Não se pode quitar o torrent \"{0}\"."
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/SnarkManager.java:794
|
||||||
|
#, java-format
|
||||||
|
msgid "Torrent stopped: \"{0}\""
|
||||||
|
msgstr "Torrent parado: \"{0}\""
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/SnarkManager.java:814
|
||||||
|
#, java-format
|
||||||
|
msgid "Torrent removed: \"{0}\""
|
||||||
|
msgstr "Torrent quitado: \"{0}\""
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/SnarkManager.java:852
|
||||||
|
#, java-format
|
||||||
|
msgid "Download finished: {0}"
|
||||||
|
msgstr "Finalizada a descarga de \"{0}\""
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/SnarkManager.java:880
|
||||||
|
msgid "Unable to connect to I2P!"
|
||||||
|
msgstr "Impossível de se conectar com I2P"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/SnarkManager.java:886
|
||||||
|
#, java-format
|
||||||
|
msgid "Unable to add {0}"
|
||||||
|
msgstr "Impossível de adicionar {0}"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:185
|
||||||
|
msgid "I2PSnark - Anonymous BitTorrent Client"
|
||||||
|
msgstr "I2PSnark - Cliente de BitTorrent Anônimo"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:198
|
||||||
|
msgid "Torrents"
|
||||||
|
msgstr "Torrents"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:201
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:208
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:977
|
||||||
|
msgid "I2PSnark"
|
||||||
|
msgstr "I2PSnark"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:205
|
||||||
|
msgid "Refresh page"
|
||||||
|
msgstr "Atualizar página"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:210
|
||||||
|
msgid "Forum"
|
||||||
|
msgstr "Foro"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:264
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1483
|
||||||
|
msgid "Status"
|
||||||
|
msgstr "Estado"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:270
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:272
|
||||||
|
msgid "Hide Peers"
|
||||||
|
msgstr "ocultar pares"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:277
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:279
|
||||||
|
msgid "Show Peers"
|
||||||
|
msgstr "mostrar pares"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:286
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1464
|
||||||
|
msgid "Torrent"
|
||||||
|
msgstr "Torrent"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:290
|
||||||
|
msgid "Estimated time remaining"
|
||||||
|
msgstr "Tempo que falta para completar"
|
||||||
|
|
||||||
|
#. Translators: Please keep short or translate as " "
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:293
|
||||||
|
msgid "ETA"
|
||||||
|
msgstr "Completado em"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:297
|
||||||
|
msgid "Downloaded"
|
||||||
|
msgstr "Descarregado"
|
||||||
|
|
||||||
|
#. Translators: Please keep short or translate as " "
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:300
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:314
|
||||||
|
msgid "RX"
|
||||||
|
msgstr "Baixado"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:304
|
||||||
|
msgid "Uploaded"
|
||||||
|
msgstr "Subido"
|
||||||
|
|
||||||
|
#. Translators: Please keep short or translate as " "
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:307
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:324
|
||||||
|
msgid "TX"
|
||||||
|
msgstr "Subido"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:312
|
||||||
|
msgid "Down Rate"
|
||||||
|
msgstr "Taça de descarga"
|
||||||
|
|
||||||
|
#. Translators: Please keep short or translate as " "
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:317
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:326
|
||||||
|
msgid "Rate"
|
||||||
|
msgstr "Tasa"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:322
|
||||||
|
msgid "Up Rate"
|
||||||
|
msgstr "Taça de subida"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:340
|
||||||
|
msgid "Stop all torrents and the I2P tunnel"
|
||||||
|
msgstr "Parar todos os torrents e o túnel I2P"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:342
|
||||||
|
msgid "Stop All"
|
||||||
|
msgstr "Parar tudos"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:351
|
||||||
|
msgid "Start all torrents and the I2P tunnel"
|
||||||
|
msgstr "Iniciar todos os torrents e o túnel I2P"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:353
|
||||||
|
msgid "Start All"
|
||||||
|
msgstr "Arrancar todos"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:372
|
||||||
|
msgid "No torrents loaded."
|
||||||
|
msgstr "Não carregado nenhum torrent"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:377
|
||||||
|
msgid "Totals"
|
||||||
|
msgstr "Total"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:379
|
||||||
|
#, java-format
|
||||||
|
msgid "1 torrent"
|
||||||
|
msgid_plural "{0} torrents"
|
||||||
|
msgstr[0] "1 torrent"
|
||||||
|
msgstr[1] "{0} torrents"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:382
|
||||||
|
#, java-format
|
||||||
|
msgid "1 connected peer"
|
||||||
|
msgid_plural "{0} connected peers"
|
||||||
|
msgstr[0] "1 par conectado"
|
||||||
|
msgstr[1] "{0} pares conectados"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:454
|
||||||
|
#, java-format
|
||||||
|
msgid "Fetching {0}"
|
||||||
|
msgstr "Buscando {0}"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:458
|
||||||
|
msgid "Invalid URL - must start with http://"
|
||||||
|
msgstr "Endereço não válido - tem que começar com http://"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:489
|
||||||
|
#, java-format
|
||||||
|
msgid "Starting up torrent {0}"
|
||||||
|
msgstr "Iniciando o torrent {0}"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:509
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:527
|
||||||
|
#, java-format
|
||||||
|
msgid "Torrent file deleted: {0}"
|
||||||
|
msgstr "Apagado o arquivo torrent: {0}"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:533
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:543
|
||||||
|
#, java-format
|
||||||
|
msgid "Data file deleted: {0}"
|
||||||
|
msgstr "Apagado o arquivo de dados: {0}"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:535
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:545
|
||||||
|
#, java-format
|
||||||
|
msgid "Data file could not be deleted: {0}"
|
||||||
|
msgstr "Não se pode apagar o arquivo de dados: {0}"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:554
|
||||||
|
#, java-format
|
||||||
|
msgid "Data dir deleted: {0}"
|
||||||
|
msgstr "Apagada a pasta de dados: {0}"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:587
|
||||||
|
msgid "Error creating torrent - you must select a tracker"
|
||||||
|
msgstr "Error ao criar o torrent - Tens que elegir um rastreador."
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:602
|
||||||
|
#, java-format
|
||||||
|
msgid "Torrent created for \"{0}\""
|
||||||
|
msgstr "Torrent criado para \"{0}\""
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:605
|
||||||
|
#, java-format
|
||||||
|
msgid "Many I2P trackers require you to register new torrents before seeding - please do so before starting \"{0}\""
|
||||||
|
msgstr "Muitos rastreadores no I2P exigem que você registre novos torrents antes de poder sembrá-los. Por favor, faça isto antes de iniciar \"{0}\"!"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:607
|
||||||
|
#, java-format
|
||||||
|
msgid "Error creating a torrent for \"{0}\""
|
||||||
|
msgstr "Error ao criar o torrent \"{0}\""
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:610
|
||||||
|
#, java-format
|
||||||
|
msgid "Cannot create a torrent for the nonexistent data: {0}"
|
||||||
|
msgstr "Não se pode criar um torrent para dados que não existam: {0}"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:613
|
||||||
|
msgid "Error creating torrent - you must enter a file or directory"
|
||||||
|
msgstr "Error ao criar o torrent - Tens que especificar um arquivo ou uma pasta."
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:616
|
||||||
|
msgid "Stopping all torrents and closing the I2P tunnel."
|
||||||
|
msgstr "Parando todos os torrents e fechando o túnel I2P"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:627
|
||||||
|
msgid "I2P tunnel closed."
|
||||||
|
msgstr "Túnel I2P fechado"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:630
|
||||||
|
msgid "Opening the I2P tunnel and starting all torrents."
|
||||||
|
msgstr "Abrendo o túnel I2P e iniciando os torrents ..."
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:759
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:764
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:770
|
||||||
|
msgid "Tracker Error"
|
||||||
|
msgstr "Error do rastreador"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:762
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:766
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:778
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:782
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:790
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:794
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:799
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:803
|
||||||
|
#, java-format
|
||||||
|
msgid "1 peer"
|
||||||
|
msgid_plural "{0} peers"
|
||||||
|
msgstr[0] "1 par"
|
||||||
|
msgstr[1] "{0} pares"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:775
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:780
|
||||||
|
msgid "Seeding"
|
||||||
|
msgstr "sembrando"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:784
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1533
|
||||||
|
msgid "Complete"
|
||||||
|
msgstr "completo"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:787
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:792
|
||||||
|
msgid "OK"
|
||||||
|
msgstr "Bien"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:796
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:801
|
||||||
|
msgid "Stalled"
|
||||||
|
msgstr "estancado"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:805
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:808
|
||||||
|
msgid "No Peers"
|
||||||
|
msgstr "sem pares"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:810
|
||||||
|
msgid "Stopped"
|
||||||
|
msgstr "detenido"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:837
|
||||||
|
#, java-format
|
||||||
|
msgid "Details at {0} tracker"
|
||||||
|
msgstr "Detalhes no rastreador {0}"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:838
|
||||||
|
msgid "Info"
|
||||||
|
msgstr "Info"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:853
|
||||||
|
msgid "View files"
|
||||||
|
msgstr "mostrar arquivos"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:855
|
||||||
|
msgid "Open file"
|
||||||
|
msgstr "abrir arquivo"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:865
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1569
|
||||||
|
msgid "Open"
|
||||||
|
msgstr "abrir"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:909
|
||||||
|
msgid "Stop the torrent"
|
||||||
|
msgstr "Parar o torrent"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:911
|
||||||
|
msgid "Stop"
|
||||||
|
msgstr "Parar"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:921
|
||||||
|
msgid "Start the torrent"
|
||||||
|
msgstr "Iniciar o torrent"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:923
|
||||||
|
msgid "Start"
|
||||||
|
msgstr "Iniciar"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:933
|
||||||
|
msgid "Remove the torrent from the active list, deleting the .torrent file"
|
||||||
|
msgstr "Retire o torrent da lista ativa, apagando o arquivo .torrent"
|
||||||
|
|
||||||
|
#. Can't figure out how to escape double quotes inside the onclick string.
|
||||||
|
#. Single quotes in translate strings with parameters must be doubled.
|
||||||
|
#. Then the remaining single quite must be escaped
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:938
|
||||||
|
#, java-format
|
||||||
|
msgid "Are you sure you want to delete the file \\''{0}.torrent\\'' (downloaded data will not be deleted) ?"
|
||||||
|
msgstr "Está seguro de que quer apagar o arquivo \\''{0}.torrent\\''? (Dados baixados não se apagarão.)"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:941
|
||||||
|
msgid "Remove"
|
||||||
|
msgstr "Quitar"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:950
|
||||||
|
msgid "Delete the .torrent file and the associated data file(s)"
|
||||||
|
msgstr "Apagar o arquivo torrent e o(s) arquivo(s) de dados pertenecentes"
|
||||||
|
|
||||||
|
#. Can't figure out how to escape double quotes inside the onclick string.
|
||||||
|
#. Single quotes in translate strings with parameters must be doubled.
|
||||||
|
#. Then the remaining single quite must be escaped
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:955
|
||||||
|
#, java-format
|
||||||
|
msgid "Are you sure you want to delete the torrent \\''{0}\\'' and all downloaded data?"
|
||||||
|
msgstr "Está seguro de que quer apagar o arquivo torrent \\''{0}\\'' e todos os dados descarregados deste torrent?"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:958
|
||||||
|
msgid "Delete"
|
||||||
|
msgstr "Apagar"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:991
|
||||||
|
msgid "Unknown"
|
||||||
|
msgstr "desconhecido"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1001
|
||||||
|
msgid "Seed"
|
||||||
|
msgstr "Sembrador"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1019
|
||||||
|
msgid "Uninteresting (The peer has no pieces we need)"
|
||||||
|
msgstr "não interessante (O par não tem peças que precisamos.)"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1021
|
||||||
|
msgid "Choked (The peer is not allowing us to request pieces)"
|
||||||
|
msgstr "sufocado (De momento o par não está nos permitindo pedir mais peças.c)"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1035
|
||||||
|
msgid "Uninterested (We have no pieces the peer needs)"
|
||||||
|
msgstr "desinteressado (Não temos as peças que o par quer.)"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1037
|
||||||
|
msgid "Choking (We are not allowing the peer to request pieces)"
|
||||||
|
msgstr "sufocando (De momento não estamos permitindo que os pares peçam mais peças)"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1092
|
||||||
|
msgid "Add Torrent"
|
||||||
|
msgstr "Adicionar um torrent"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1094
|
||||||
|
msgid "From URL"
|
||||||
|
msgstr "URL fonte:"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1097
|
||||||
|
msgid "Torrent file must originate from an I2P-based tracker"
|
||||||
|
msgstr "O arquivo torrent tem que incluir um rastreador I2P."
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1102
|
||||||
|
msgid "Add torrent"
|
||||||
|
msgstr "Adicionar torrent"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1105
|
||||||
|
#, java-format
|
||||||
|
msgid "You can also copy .torrent files to: {0}."
|
||||||
|
msgstr "Também pode copiar arquivos torrent a {0}."
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1107
|
||||||
|
msgid "Removing a .torrent will cause it to stop."
|
||||||
|
msgstr "A remoção de um arquivo .torrent fará com que ele pare."
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1131
|
||||||
|
msgid "Create Torrent"
|
||||||
|
msgstr "Criar um torrent"
|
||||||
|
|
||||||
|
#. out.write("From file: <input type=\"file\" name=\"newFile\" size=\"50\" value=\"" + newFile + "\" /><br>\n");
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1134
|
||||||
|
msgid "Data to seed"
|
||||||
|
msgstr "Dados para sembrar"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1138
|
||||||
|
msgid "File or directory to seed (must be within the specified path)"
|
||||||
|
msgstr "Arquivo ou pasta para sembrar (deve estar no caminho especificado)"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1140
|
||||||
|
msgid "Tracker"
|
||||||
|
msgstr "Rastreador"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1142
|
||||||
|
msgid "Select a tracker"
|
||||||
|
msgstr "Selecione um rastreador"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1155
|
||||||
|
msgid "or"
|
||||||
|
msgstr "ou"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1158
|
||||||
|
msgid "Specify custom tracker announce URL"
|
||||||
|
msgstr "Especifique o URL de rastreador personalizado"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1161
|
||||||
|
msgid "Create torrent"
|
||||||
|
msgstr "Criar torrent"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1180
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1317
|
||||||
|
msgid "Configuration"
|
||||||
|
msgstr "Preferências"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1184
|
||||||
|
msgid "Data directory"
|
||||||
|
msgstr "Pasta de dados"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1186
|
||||||
|
msgid "Edit i2psnark.config and restart to change"
|
||||||
|
msgstr "Para mudar, modifique o arquivo i2psnark.config e re-inície!"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1190
|
||||||
|
msgid "Auto start"
|
||||||
|
msgstr "Iniciar automáticamente"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1194
|
||||||
|
msgid "If checked, automatically start torrents that are added"
|
||||||
|
msgstr "se marcado, os torrents adicionados se iniciarão automaticamente"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1198
|
||||||
|
msgid "Theme"
|
||||||
|
msgstr "Tema"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1211
|
||||||
|
msgid "Startup delay"
|
||||||
|
msgstr "Demora do arranque"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1213
|
||||||
|
msgid "minutes"
|
||||||
|
msgstr "minutos"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1237
|
||||||
|
msgid "Total uploader limit"
|
||||||
|
msgstr "Limite global de subidores"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1240
|
||||||
|
msgid "peers"
|
||||||
|
msgstr "pares"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1244
|
||||||
|
msgid "Up bandwidth limit"
|
||||||
|
msgstr "Limite de largura de banda para a subida"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1247
|
||||||
|
msgid "Half available bandwidth recommended."
|
||||||
|
msgstr "Se recomenda a metade da largura de banda disponível."
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1249
|
||||||
|
msgid "View or change router bandwidth"
|
||||||
|
msgstr "mostrar e mudar as preferências da largura de banda do roteador"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1253
|
||||||
|
msgid "Use open trackers also"
|
||||||
|
msgstr "usar também rastreadores abertos"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1257
|
||||||
|
msgid "If checked, announce torrents to open trackers as well as the tracker listed in the torrent file"
|
||||||
|
msgstr "Se marcado, anunciar os torrents aos rastreadores abertos, assim como aos rastreadores listados no arquivo torrent"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1261
|
||||||
|
msgid "Open tracker announce URLs"
|
||||||
|
msgstr "URL(s) para anunciar aos rastreadores abertos"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1273
|
||||||
|
msgid "Inbound Settings"
|
||||||
|
msgstr "Preferências de entrada"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1279
|
||||||
|
msgid "Outbound Settings"
|
||||||
|
msgstr "Preferências de saida"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1286
|
||||||
|
msgid "I2CP host"
|
||||||
|
msgstr "Anfitrião I2CP"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1291
|
||||||
|
msgid "I2CP port"
|
||||||
|
msgstr "Porto I2CP"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1303
|
||||||
|
msgid "I2CP options"
|
||||||
|
msgstr "Opções I2CP"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1308
|
||||||
|
msgid "Save configuration"
|
||||||
|
msgstr "Guardar configuração"
|
||||||
|
|
||||||
|
#. * dummies for translation
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1325
|
||||||
|
#, java-format
|
||||||
|
msgid "1 hop"
|
||||||
|
msgid_plural "{0} hops"
|
||||||
|
msgstr[0] "1 salto"
|
||||||
|
msgstr[1] "{0} saltos"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1326
|
||||||
|
#, java-format
|
||||||
|
msgid "1 tunnel"
|
||||||
|
msgid_plural "{0} tunnels"
|
||||||
|
msgstr[0] "1 túnel"
|
||||||
|
msgstr[1] "{0} túneles"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1480
|
||||||
|
msgid "Size"
|
||||||
|
msgstr "Tamanho"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1487
|
||||||
|
msgid "Priority"
|
||||||
|
msgstr "Prioridade"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1492
|
||||||
|
msgid "Up to higher level directory"
|
||||||
|
msgstr "Subir uma herarquia"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1517
|
||||||
|
msgid "Directory"
|
||||||
|
msgstr "Pasta"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1522
|
||||||
|
msgid "Torrent not found?"
|
||||||
|
msgstr "Não achei o arquivo torrent?"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1530
|
||||||
|
msgid "File not found in torrent?"
|
||||||
|
msgstr "Arquivo não achado no torrent?"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1543
|
||||||
|
msgid "complete"
|
||||||
|
msgstr "completo"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1544
|
||||||
|
msgid "bytes remaining"
|
||||||
|
msgstr "Bytes faltando"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1595
|
||||||
|
msgid "High"
|
||||||
|
msgstr "alta"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1600
|
||||||
|
msgid "Normal"
|
||||||
|
msgstr "normal"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1605
|
||||||
|
msgid "Skip"
|
||||||
|
msgstr "Ignorar"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1614
|
||||||
|
msgid "Save priorities"
|
||||||
|
msgstr "Guardar prioridades"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1726
|
||||||
|
#, java-format
|
||||||
|
msgid "Torrent fetched from {0}"
|
||||||
|
msgstr "Torrent obtido de {0}"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1746
|
||||||
|
#, java-format
|
||||||
|
msgid "Torrent already running: {0}"
|
||||||
|
msgstr "Torrent já em marcha: {0}"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1748
|
||||||
|
#, java-format
|
||||||
|
msgid "Torrent already in the queue: {0}"
|
||||||
|
msgstr "Torrent já na cola: {0}"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1755
|
||||||
|
#, java-format
|
||||||
|
msgid "Failed to copy torrent file to {0}"
|
||||||
|
msgstr "Não se pode copiar o torrent para {0}."
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1759
|
||||||
|
#, java-format
|
||||||
|
msgid "Torrent at {0} was not valid"
|
||||||
|
msgstr "Torrent em {0} não foi válido"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1764
|
||||||
|
#, java-format
|
||||||
|
msgid "Torrent was not retrieved from {0}"
|
||||||
|
msgstr "Não se pode obter torrent de {0}"
|
||||||
|
|
||||||
|
#~ msgid " theme locked and loaded."
|
||||||
|
#~ msgstr "tema carregado"
|
||||||
|
#~ msgid "Hide All Attached Peers [connected/total in swarm]"
|
||||||
|
#~ msgstr "Ocultar todos os pares [conectados/total neste torrent]"
|
||||||
|
#~ msgid "Show All Attached Peers [connected/total in swarm]"
|
||||||
|
#~ msgstr "Mostrar todos os pares [conectados/total neste torrent]"
|
||||||
|
#~ msgid "Loaded Torrents"
|
||||||
|
#~ msgstr "Torrents carregados"
|
||||||
|
#~ msgid "Estimated Download Time"
|
||||||
|
#~ msgstr "tempo restante da descarga"
|
||||||
|
#~ msgid "1"
|
||||||
|
#~ msgid_plural "{0}"
|
||||||
|
#~ msgstr[0] "1"
|
||||||
|
#~ msgstr[1] "{0}"
|
||||||
|
#~ msgid "Torrent file {0} does not exist"
|
||||||
|
#~ msgstr "Arquivo do torrent {0} não existe"
|
||||||
|
#~ msgid "Copying torrent to {0}"
|
||||||
|
#~ msgstr "Copiando torrent para {0}"
|
||||||
|
#~ msgid "from {0}"
|
||||||
|
#~ msgstr "de {0}"
|
||||||
|
#~ msgid "Downloading"
|
||||||
|
#~ msgstr "descarregando"
|
||||||
|
#~ msgid "File"
|
||||||
|
#~ msgstr "Arquivo"
|
||||||
|
#~ msgid "FileSize"
|
||||||
|
#~ msgstr "Tamanho do arquivo"
|
||||||
|
#~ msgid "Download Status"
|
||||||
|
#~ msgstr "Estado"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
#~ msgid "size: {0}B"
|
||||||
|
#~ msgstr "Tamaño: {0}Bytes"
|
||||||
|
#~ msgid "Directory to store torrents and data"
|
||||||
|
#~ msgstr "Carpeta para guardar los archivos torrent y los datos"
|
||||||
|
#~ msgid "Do not download"
|
||||||
|
#~ msgstr "No descargues"
|
||||||
|
#~ msgid "Details"
|
||||||
|
#~ msgstr "Detalles"
|
||||||
|
#~ msgid "Cannot change the I2CP settings while torrents are active"
|
||||||
|
#~ msgstr ""
|
||||||
|
#~ "No se puede cammbiar los ajustes I2CP mientras estén activos los torrents"
|
||||||
|
#~ msgid "Non-i2p tracker in \"{0}\", deleting it from our list of trackers!"
|
||||||
|
#~ msgstr ""
|
||||||
|
#~ "Rastreador fuera de I2P en \"{0}\", borrando de la lista de rastreadores"
|
||||||
|
#~ msgid "{0} torrents"
|
||||||
|
#~ msgstr "{0} Torrents"
|
||||||
|
#~ msgid "Uninteresting"
|
||||||
|
#~ msgstr "no interesante"
|
||||||
|
#~ msgid "Choked"
|
||||||
|
#~ msgstr "frenado"
|
||||||
|
#~ msgid "Uninterested"
|
||||||
|
#~ msgstr "desinteresado"
|
||||||
|
#~ msgid "Choking"
|
||||||
|
#~ msgstr "frenando"
|
||||||
|
#~ msgid "Custom tracker URL"
|
||||||
|
#~ msgstr "URL especial del rastreador"
|
||||||
|
#~ msgid "Configure"
|
||||||
|
#~ msgstr "Ajustes"
|
||||||
|
|
@ -31,7 +31,9 @@ public class I2PTunnelClient extends I2PTunnelClientBase {
|
|||||||
public I2PTunnelClient(int localPort, String destinations, Logging l,
|
public I2PTunnelClient(int localPort, String destinations, Logging l,
|
||||||
boolean ownDest, EventDispatcher notifyThis,
|
boolean ownDest, EventDispatcher notifyThis,
|
||||||
I2PTunnel tunnel, String pkf) throws IllegalArgumentException {
|
I2PTunnel tunnel, String pkf) throws IllegalArgumentException {
|
||||||
super(localPort, ownDest, l, notifyThis, "SynSender", tunnel, pkf);
|
super(localPort, ownDest, l, notifyThis,
|
||||||
|
"Standard client on " + tunnel.listenHost + ':' + localPort,
|
||||||
|
tunnel, pkf);
|
||||||
|
|
||||||
if (waitEventValue("openBaseClientResult").equals("error")) {
|
if (waitEventValue("openBaseClientResult").equals("error")) {
|
||||||
notifyEvent("openClientResult", "error");
|
notifyEvent("openClientResult", "error");
|
||||||
|
@ -73,7 +73,7 @@ public abstract class I2PTunnelHTTPClientBase extends I2PTunnelClientBase implem
|
|||||||
_proxyList = new ArrayList(4);
|
_proxyList = new ArrayList(4);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** all auth @ince 0.8.2 */
|
/** all auth @since 0.8.2 */
|
||||||
public static final String PROP_AUTH = "proxyAuth";
|
public static final String PROP_AUTH = "proxyAuth";
|
||||||
public static final String PROP_USER = "proxyUsername";
|
public static final String PROP_USER = "proxyUsername";
|
||||||
public static final String PROP_PW = "proxyPassword";
|
public static final String PROP_PW = "proxyPassword";
|
||||||
|
@ -355,6 +355,7 @@ public class I2PTunnelHTTPServer extends I2PTunnelServer {
|
|||||||
if (_log.shouldLog(Log.DEBUG))
|
if (_log.shouldLog(Log.DEBUG))
|
||||||
_log.debug("Read the http command [" + command.toString() + "]");
|
_log.debug("Read the http command [" + command.toString() + "]");
|
||||||
|
|
||||||
|
// FIXME we probably don't need or want this in the outgoing direction
|
||||||
int trimmed = 0;
|
int trimmed = 0;
|
||||||
if (command.length() > 0) {
|
if (command.length() > 0) {
|
||||||
for (int i = 0; i < command.length(); i++) {
|
for (int i = 0; i < command.length(); i++) {
|
||||||
@ -394,7 +395,8 @@ public class I2PTunnelHTTPServer extends I2PTunnelServer {
|
|||||||
else if ("X-Accept-encoding".equalsIgnoreCase(name))
|
else if ("X-Accept-encoding".equalsIgnoreCase(name))
|
||||||
name = "X-Accept-encoding";
|
name = "X-Accept-encoding";
|
||||||
|
|
||||||
//We want to remove certain headers to improve anonymity
|
// For incoming, we remove certain headers to prevent spoofing.
|
||||||
|
// For outgoing, we remove certain headers to improve anonymity.
|
||||||
boolean skip = false;
|
boolean skip = false;
|
||||||
for (String skipHeader: skipHeaders) {
|
for (String skipHeader: skipHeaders) {
|
||||||
if (skipHeader.equalsIgnoreCase(name)) {
|
if (skipHeader.equalsIgnoreCase(name)) {
|
||||||
|
@ -9,7 +9,7 @@ msgstr ""
|
|||||||
"Project-Id-Version: I2P i2ptunnel\n"
|
"Project-Id-Version: I2P i2ptunnel\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2010-12-04 17:23+0000\n"
|
"POT-Creation-Date: 2010-12-04 17:23+0000\n"
|
||||||
"PO-Revision-Date: 2010-12-04 18:31+0100\n"
|
"PO-Revision-Date: 2010-12-19 04:36+0100\n"
|
||||||
"Last-Translator: mixxy <m1xxy@mail.i2p>\n"
|
"Last-Translator: mixxy <m1xxy@mail.i2p>\n"
|
||||||
"Language-Team: foo <foo@bar>\n"
|
"Language-Team: foo <foo@bar>\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
|
@ -8,7 +8,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: I2P i2ptunnel\n"
|
"Project-Id-Version: I2P i2ptunnel\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2010-07-04 16:39+0000\n"
|
"POT-Creation-Date: 2010-12-17 15:04+0000\n"
|
||||||
"PO-Revision-Date: 2010-06-15 14:09+0100\n"
|
"PO-Revision-Date: 2010-06-15 14:09+0100\n"
|
||||||
"Last-Translator: duck <duck@mail.i2p>\n"
|
"Last-Translator: duck <duck@mail.i2p>\n"
|
||||||
"Language-Team: duck <duck@mail.i2p>, monkeybrains <monkeybrains@mail.i2p>\n"
|
"Language-Team: duck <duck@mail.i2p>, monkeybrains <monkeybrains@mail.i2p>\n"
|
||||||
@ -17,68 +17,95 @@ msgstr ""
|
|||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Poedit-Language: Dutch\n"
|
"X-Poedit-Language: Dutch\n"
|
||||||
|
|
||||||
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:492
|
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:475
|
||||||
#, java-format
|
#, java-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"To visit the destination in your host database, click <a href=\"{0}\">here</"
|
"To visit the destination in your host database, click <a href=\"{0}\">here</"
|
||||||
"a>. To visit the conflicting addresshelper destination, click <a href=\"{1}"
|
"a>. To visit the conflicting addresshelper destination, click <a href=\"{1}"
|
||||||
"\">here</a>."
|
"\">here</a>."
|
||||||
msgstr "Om de destination in je host database te bezoeken, klik <a href=\"{0}\">here</a>. Om de conflicterende adreshelper destination te bezoeken, klik <a href=\"{1}\">here</a>."
|
msgstr ""
|
||||||
|
"Om de destination in je host database te bezoeken, klik <a href=\"{0}"
|
||||||
|
"\">hier</a>. Om de conflicterende adreshelper destination te bezoeken, klik "
|
||||||
|
"<a href=\"{1}\">hier</a>."
|
||||||
|
|
||||||
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:909
|
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:932
|
||||||
msgid ""
|
msgid ""
|
||||||
"Click a link below to look for an address helper by using a \"jump\" service:"
|
"Click a link below to look for an address helper by using a \"jump\" service:"
|
||||||
msgstr "Klik op een onderstaande link om te zoeken naar een adreshelper via een \"jump\" service:"
|
msgstr ""
|
||||||
|
"Klik op een onderstaande link om te zoeken naar een adreshelper via een "
|
||||||
|
"\"jump\" service:"
|
||||||
|
|
||||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:372
|
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:170
|
||||||
|
msgid ""
|
||||||
|
"Invalid form submission, probably because you used the 'back' or 'reload' "
|
||||||
|
"button on your browser. Please resubmit."
|
||||||
|
msgstr ""
|
||||||
|
"Ongeldige formulier verzonden, waarschijnlijk doordat je de 'back' of "
|
||||||
|
"'reload' button van je browser hebt gebruikt. Verzend opnieuw."
|
||||||
|
|
||||||
|
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:217
|
||||||
|
msgid "Configuration reloaded for all tunnels"
|
||||||
|
msgstr "Configuratie van alle tunnels opnieuw geladen"
|
||||||
|
|
||||||
|
#. and give them something to look at in any case
|
||||||
|
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:229
|
||||||
|
msgid "Starting tunnel"
|
||||||
|
msgstr "Opstarten van tunnel"
|
||||||
|
|
||||||
|
#. and give them something to look at in any case
|
||||||
|
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:242
|
||||||
|
msgid "Stopping tunnel"
|
||||||
|
msgstr "Stoppen van tunnel"
|
||||||
|
|
||||||
|
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:389
|
||||||
msgid "New Tunnel"
|
msgid "New Tunnel"
|
||||||
msgstr "Nieuwe Tunnel"
|
msgstr "Nieuwe Tunnel"
|
||||||
|
|
||||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:392
|
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:409
|
||||||
msgid "Standard client"
|
msgid "Standard client"
|
||||||
msgstr "Standaard client"
|
msgstr "Standaard client"
|
||||||
|
|
||||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:393
|
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:410
|
||||||
msgid "HTTP client"
|
msgid "HTTP client"
|
||||||
msgstr "HTTP client"
|
msgstr "HTTP client"
|
||||||
|
|
||||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:394
|
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:411
|
||||||
msgid "IRC client"
|
msgid "IRC client"
|
||||||
msgstr "IRC client"
|
msgstr "IRC client"
|
||||||
|
|
||||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:395
|
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:412
|
||||||
msgid "Standard server"
|
msgid "Standard server"
|
||||||
msgstr "Standaard server"
|
msgstr "Standaard server"
|
||||||
|
|
||||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:396
|
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:413
|
||||||
msgid "HTTP server"
|
msgid "HTTP server"
|
||||||
msgstr "HTTP server"
|
msgstr "HTTP server"
|
||||||
|
|
||||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:397
|
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:414
|
||||||
msgid "SOCKS 4/4a/5 proxy"
|
msgid "SOCKS 4/4a/5 proxy"
|
||||||
msgstr "SOCKS 4/4a/5 proxy"
|
msgstr "SOCKS 4/4a/5 proxy"
|
||||||
|
|
||||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:398
|
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:415
|
||||||
msgid "SOCKS IRC proxy"
|
msgid "SOCKS IRC proxy"
|
||||||
msgstr "SOCKS IRC proxy"
|
msgstr "SOCKS IRC proxy"
|
||||||
|
|
||||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:399
|
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:416
|
||||||
msgid "CONNECT/SSL/HTTPS proxy"
|
msgid "CONNECT/SSL/HTTPS proxy"
|
||||||
msgstr "CONNECT/SSL/HTTPS proxy"
|
msgstr "CONNECT/SSL/HTTPS proxy"
|
||||||
|
|
||||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:400
|
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:417
|
||||||
msgid "IRC server"
|
msgid "IRC server"
|
||||||
msgstr "IRC server"
|
msgstr "IRC server"
|
||||||
|
|
||||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:401
|
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:418
|
||||||
msgid "Streamr client"
|
msgid "Streamr client"
|
||||||
msgstr "Streamr client"
|
msgstr "Streamr client"
|
||||||
|
|
||||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:402
|
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:419
|
||||||
msgid "Streamr server"
|
msgid "Streamr server"
|
||||||
msgstr "Streamr server"
|
msgstr "Streamr server"
|
||||||
|
|
||||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:403
|
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:420
|
||||||
msgid "HTTP bidir"
|
msgid "HTTP bidir"
|
||||||
msgstr "HTTP bidir"
|
msgstr "HTTP bidir"
|
||||||
|
|
||||||
@ -113,7 +140,7 @@ msgstr "Type"
|
|||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:120
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:120
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:120
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:120
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:226
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:226
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:358
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:367
|
||||||
msgid "Description"
|
msgid "Description"
|
||||||
msgstr "Omschrijving"
|
msgstr "Omschrijving"
|
||||||
|
|
||||||
@ -175,294 +202,337 @@ msgstr "Tunnel Destinations"
|
|||||||
msgid "name or destination"
|
msgid "name or destination"
|
||||||
msgstr "naam of destination"
|
msgstr "naam of destination"
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:220
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:217
|
||||||
|
msgid "b32 not recommended"
|
||||||
|
msgstr "b32 niet aanbevolen"
|
||||||
|
|
||||||
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:223
|
||||||
msgid "Shared Client"
|
msgid "Shared Client"
|
||||||
msgstr "Gedeelde Client"
|
msgstr "Gedeelde Client"
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:224
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:227
|
||||||
msgid ""
|
msgid ""
|
||||||
"(Share tunnels with other clients and irc/httpclients? Change requires "
|
"(Share tunnels with other clients and irc/httpclients? Change requires "
|
||||||
"restart of client proxy)"
|
"restart of client proxy)"
|
||||||
msgstr "(Deel tunnels met andere clients en irc/httpclients? Wijziging vereist herstart van de client proxy)"
|
msgstr ""
|
||||||
|
"(Deel tunnels met andere clients en irc/httpclients? Wijziging vereist "
|
||||||
|
"herstart van de client proxy)"
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:228
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:231
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:124
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:124
|
||||||
msgid "Auto Start"
|
msgid "Auto Start"
|
||||||
msgstr "Auto Start"
|
msgstr "Auto Start"
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:232
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:235
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:128
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:128
|
||||||
msgid "(Check the Box for 'YES')"
|
msgid "(Check the Box for 'YES')"
|
||||||
msgstr "(Markeer de Box voor 'JA')"
|
msgstr "(Markeer de Box voor 'JA')"
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:234
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:237
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:249
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:258
|
||||||
msgid "Advanced networking options"
|
msgid "Advanced networking options"
|
||||||
msgstr "Geavanceerde netwerk opties"
|
msgstr "Geavanceerde netwerk opties"
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:236
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:239
|
||||||
msgid ""
|
msgid ""
|
||||||
"(NOTE: when this client proxy is configured to share tunnels, then these "
|
"(NOTE: when this client proxy is configured to share tunnels, then these "
|
||||||
"options are for all the shared proxy clients!)"
|
"options are for all the shared proxy clients!)"
|
||||||
msgstr "(OPMERKING: wanneer deze client proxy is geconfigureerd om tunnels te delen, dan zijn deze opties van toepassing voor alle gedeelde proxy clients!)"
|
msgstr ""
|
||||||
|
"(OPMERKING: wanneer deze client proxy is geconfigureerd om tunnels te delen, "
|
||||||
|
"dan zijn deze opties van toepassing voor alle gedeelde proxy clients!)"
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:238
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:241
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:251
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:260
|
||||||
msgid "Tunnel Options"
|
msgid "Tunnel Options"
|
||||||
msgstr "Tunnel Opties"
|
msgstr "Tunnel Opties"
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:240
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:243
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:253
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:262
|
||||||
msgid "Length"
|
msgid "Length"
|
||||||
msgstr "Lengte"
|
msgstr "Lengte"
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:247
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:250
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:260
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:269
|
||||||
msgid "0 hop tunnel (low anonymity, low latency)"
|
msgid "0 hop tunnel (low anonymity, low latency)"
|
||||||
msgstr "0 hop tunnel (lage anonimiteit, weinig vertraging)"
|
msgstr "0 hop tunnel (lage anonimiteit, weinig vertraging)"
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:251
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:254
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:264
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:273
|
||||||
msgid "1 hop tunnel (medium anonymity, medium latency)"
|
msgid "1 hop tunnel (medium anonymity, medium latency)"
|
||||||
msgstr "1 hop tunnel (gemiddelde anonimiteit, gemiddelde vertraging)"
|
msgstr "1 hop tunnel (gemiddelde anonimiteit, gemiddelde vertraging)"
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:255
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:258
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:268
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:277
|
||||||
msgid "2 hop tunnel (high anonymity, high latency)"
|
msgid "2 hop tunnel (high anonymity, high latency)"
|
||||||
msgstr "2 hop tunnel (hoge anonimiteit, hoge vertraging)"
|
msgstr "2 hop tunnel (hoge anonimiteit, hoge vertraging)"
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:259
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:262
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:272
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:281
|
||||||
msgid "3 hop tunnel (very high anonymity, poor performance)"
|
msgid "3 hop tunnel (very high anonymity, poor performance)"
|
||||||
msgstr "3 hop tunnel (zeer hoge anonimiteit, slechte prestatie)"
|
msgstr "3 hop tunnel (zeer hoge anonimiteit, slechte prestatie)"
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:268
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:271
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:281
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:290
|
||||||
msgid "hop tunnel (very poor performance)"
|
msgid "hop tunnel (very poor performance)"
|
||||||
msgstr "hop tunnel (zeer slechte prestatie)"
|
msgstr "hop tunnel (zeer slechte prestatie)"
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:273
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:276
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:286
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:295
|
||||||
msgid "Variance"
|
msgid "Variance"
|
||||||
msgstr "Variantie"
|
msgstr "Variantie"
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:280
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:283
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:293
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:302
|
||||||
msgid "0 hop variance (no randomisation, consistant performance)"
|
msgid "0 hop variance (no randomisation, consistant performance)"
|
||||||
msgstr "0 hop variantie (geen randomisatie, consistente prestatie)"
|
msgstr "0 hop variantie (geen randomisatie, consistente prestatie)"
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:284
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:287
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:297
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:306
|
||||||
msgid ""
|
msgid ""
|
||||||
"+ 0-1 hop variance (medium additive randomisation, subtractive performance)"
|
"+ 0-1 hop variance (medium additive randomisation, subtractive performance)"
|
||||||
msgstr "+ 0-1 hop variantie (gemiddeld toegevoegde randomisatie, minder prestatie)"
|
msgstr ""
|
||||||
|
"+ 0-1 hop variantie (gemiddeld toegevoegde randomisatie, minder prestatie)"
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:288
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:291
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:301
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:310
|
||||||
msgid ""
|
msgid ""
|
||||||
"+ 0-2 hop variance (high additive randomisation, subtractive performance)"
|
"+ 0-2 hop variance (high additive randomisation, subtractive performance)"
|
||||||
msgstr "+ 0-2 hop variantie (hoge toegevoegde randomisatie, minder prestatie)"
|
msgstr "+ 0-2 hop variantie (hoge toegevoegde randomisatie, minder prestatie)"
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:292
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:295
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:305
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:314
|
||||||
msgid "+/- 0-1 hop variance (standard randomisation, standard performance)"
|
msgid "+/- 0-1 hop variance (standard randomisation, standard performance)"
|
||||||
msgstr "+/- 0-1 hop variantie (standaard randomisatie, standaard prestatie)"
|
msgstr "+/- 0-1 hop variantie (standaard randomisatie, standaard prestatie)"
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:296
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:299
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:309
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:318
|
||||||
msgid "+/- 0-2 hop variance (not recommended)"
|
msgid "+/- 0-2 hop variance (not recommended)"
|
||||||
msgstr "+/- 0-2 hop variantie (niet aanbevolen)"
|
msgstr "+/- 0-2 hop variantie (niet aanbevolen)"
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:308
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:311
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:321
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:330
|
||||||
msgid "hop variance"
|
msgid "hop variance"
|
||||||
msgstr "hop variantie"
|
msgstr "hop variantie"
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:313
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:316
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:326
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:335
|
||||||
msgid "Count"
|
msgid "Count"
|
||||||
msgstr "Aantal"
|
msgstr "Aantal"
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:320
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:323
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:333
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:342
|
||||||
msgid "1 inbound, 1 outbound tunnel (low bandwidth usage, less reliability)"
|
msgid "1 inbound, 1 outbound tunnel (low bandwidth usage, less reliability)"
|
||||||
msgstr "1 inkomende, 1 uitgaande tunnel (laag bandbreedte gebruik, minder betrouwbaar)"
|
msgstr ""
|
||||||
|
"1 inkomende, 1 uitgaande tunnel (laag bandbreedte gebruik, minder "
|
||||||
|
"betrouwbaar)"
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:324
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:327
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:337
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:346
|
||||||
msgid ""
|
msgid ""
|
||||||
"2 inbound, 2 outbound tunnels (standard bandwidth usage, standard "
|
"2 inbound, 2 outbound tunnels (standard bandwidth usage, standard "
|
||||||
"reliability)"
|
"reliability)"
|
||||||
msgstr "2 inkomende, 2 uitgaande tunnels (standaard bandbreedte gebruik, standaard betrouwbaarheid)"
|
msgstr ""
|
||||||
|
"2 inkomende, 2 uitgaande tunnels (standaard bandbreedte gebruik, standaard "
|
||||||
|
"betrouwbaarheid)"
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:328
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:331
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:341
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:350
|
||||||
msgid ""
|
msgid ""
|
||||||
"3 inbound, 3 outbound tunnels (higher bandwidth usage, higher reliability)"
|
"3 inbound, 3 outbound tunnels (higher bandwidth usage, higher reliability)"
|
||||||
msgstr "3 inkomende, 3 uitgaande tunnels (hoge bandbreedte gebruik, hogere betrouwbaarheid)"
|
msgstr ""
|
||||||
|
"3 inkomende, 3 uitgaande tunnels (hoge bandbreedte gebruik, hogere "
|
||||||
|
"betrouwbaarheid)"
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:337
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:340
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:350
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:359
|
||||||
msgid "tunnels"
|
msgid "tunnels"
|
||||||
msgstr "tunnels"
|
msgstr "tunnels"
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:342
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:345
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:355
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:364
|
||||||
msgid "Backup Count"
|
msgid "Backup Count"
|
||||||
msgstr "Backup Aantal"
|
msgstr "Backup Aantal"
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:349
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:352
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:362
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:371
|
||||||
msgid "0 backup tunnels (0 redundancy, no added resource usage)"
|
msgid "0 backup tunnels (0 redundancy, no added resource usage)"
|
||||||
msgstr "0 backup tunnels (0 redundantie, geen additionele bronnen gebruikt)"
|
msgstr "0 backup tunnels (0 redundantie, geen additionele bronnen gebruikt)"
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:353
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:356
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:366
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:375
|
||||||
msgid "1 backup tunnel each direction (low redundancy, low resource usage)"
|
msgid "1 backup tunnel each direction (low redundancy, low resource usage)"
|
||||||
msgstr "1 backup tunnel in beide richting (lage redundantie, lage aantal bronnen gebruikt)"
|
msgstr ""
|
||||||
|
"1 backup tunnel in beide richting (lage redundantie, lage aantal bronnen "
|
||||||
|
"gebruikt)"
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:357
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:360
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:370
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:379
|
||||||
msgid ""
|
msgid ""
|
||||||
"2 backup tunnels each direction (medium redundancy, medium resource usage)"
|
"2 backup tunnels each direction (medium redundancy, medium resource usage)"
|
||||||
msgstr "2 backup tunnels in beide richting (gemiddelde redundantie, gemiddeld aantal bronnen gebruikt)"
|
msgstr ""
|
||||||
|
"2 backup tunnels in beide richting (gemiddelde redundantie, gemiddeld aantal "
|
||||||
|
"bronnen gebruikt)"
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:361
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:364
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:374
|
|
||||||
msgid "3 backup tunnels each direction (high redundancy, high resource usage)"
|
|
||||||
msgstr "3 backup tunnels in beide richting (hoge redundantie, hoog aantal bronnen gebruikt)"
|
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:370
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:383
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:383
|
||||||
|
msgid "3 backup tunnels each direction (high redundancy, high resource usage)"
|
||||||
|
msgstr ""
|
||||||
|
"3 backup tunnels in beide richting (hoge redundantie, hoog aantal bronnen "
|
||||||
|
"gebruikt)"
|
||||||
|
|
||||||
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:373
|
||||||
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:392
|
||||||
msgid "backup tunnels"
|
msgid "backup tunnels"
|
||||||
msgstr "backup tunnels"
|
msgstr "backup tunnels"
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:377
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:380
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:390
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:399
|
||||||
msgid "Profile"
|
msgid "Profile"
|
||||||
msgstr "Profiel"
|
msgstr "Profiel"
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:384
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:387
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:397
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:406
|
||||||
msgid "interactive connection"
|
msgid "interactive connection"
|
||||||
msgstr "interactieve connectie"
|
msgstr "interactieve connectie"
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:388
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:391
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:401
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:410
|
||||||
msgid "bulk connection (downloads/websites/BT)"
|
msgid "bulk connection (downloads/websites/BT)"
|
||||||
msgstr "bulk connection (downloads/websites/BT)"
|
msgstr "bulk connection (downloads/websites/BT)"
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:390
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:393
|
||||||
msgid "Delay Connect"
|
msgid "Delay Connect"
|
||||||
msgstr "Vertraagde Connectie"
|
msgstr "Vertraagde Connectie"
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:394
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:397
|
||||||
msgid "for request/response connections"
|
msgid "for request/response connections"
|
||||||
msgstr "voor request/response connecties"
|
msgstr "voor request/response connecties"
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:398
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:401
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:405
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:414
|
||||||
msgid "I2CP Options"
|
msgid "I2CP Options"
|
||||||
msgstr "I2CP Opties"
|
msgstr "I2CP Opties"
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:400
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:403
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:146
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:146
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:407
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:416
|
||||||
msgid "Host"
|
msgid "Host"
|
||||||
msgstr "Host"
|
msgstr "Host"
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:404
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:407
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:152
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:152
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:411
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:420
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:244
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:244
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:266
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:266
|
||||||
msgid "Port"
|
msgid "Port"
|
||||||
msgstr "Poort"
|
msgstr "Poort"
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:410
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:413
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:443
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:452
|
||||||
msgid "Reduce tunnel quantity when idle"
|
msgid "Reduce tunnel quantity when idle"
|
||||||
msgstr "Verminder tunnel aantal wanneer in rust"
|
msgstr "Verminder tunnel aantal wanneer in rust"
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:412
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:415
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:426
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:429
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:434
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:437
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:446
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:449
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:456
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:459
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:417
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:479
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:433
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:493
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:445
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:426
|
||||||
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:442
|
||||||
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:454
|
||||||
msgid "Enable"
|
msgid "Enable"
|
||||||
msgstr "Ingeschakeld"
|
msgstr "Ingeschakeld"
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:416
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:419
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:449
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:458
|
||||||
msgid "Reduced tunnel count"
|
msgid "Reduced tunnel count"
|
||||||
msgstr "Verminder tunnel aantal"
|
msgstr "Verminder tunnel aantal"
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:420
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:423
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:440
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:443
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:453
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:462
|
||||||
msgid "Idle minutes"
|
msgid "Idle minutes"
|
||||||
msgstr "Rust minuten"
|
msgstr "Rust minuten"
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:424
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:427
|
||||||
msgid "Close tunnels when idle"
|
msgid "Close tunnels when idle"
|
||||||
msgstr "Sluit tunnels wanneer in rust"
|
msgstr "Sluit tunnels wanneer in rust"
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:430
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:433
|
||||||
msgid "New Keys on Reopen"
|
msgid "New Keys on Reopen"
|
||||||
msgstr "Nieuwe Sleutels bij Heropenen"
|
msgstr "Nieuwe Sleutels bij Heropenen"
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:438
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:441
|
||||||
msgid "Disable"
|
msgid "Disable"
|
||||||
msgstr "Uitgeschakeld"
|
msgstr "Uitgeschakeld"
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:444
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:447
|
||||||
msgid "Delay tunnel open until required"
|
msgid "Delay tunnel open until required"
|
||||||
msgstr "Vertraag tunnel opening totdat het nodig is"
|
msgstr "Vertraag tunnel opening totdat het nodig is"
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:454
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:457
|
||||||
msgid "Persistent private key"
|
msgid "Persistent private key"
|
||||||
msgstr "Persistente private sleutel"
|
msgstr "Persistente private sleutel"
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:460
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:463
|
||||||
msgid "File"
|
msgid "File"
|
||||||
msgstr "Bestand"
|
msgstr "Bestand"
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:464
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:467
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:235
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:235
|
||||||
msgid "Local destination"
|
msgid "Local destination"
|
||||||
msgstr "Lokale destination"
|
msgstr "Lokale destination"
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:468
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:471
|
||||||
msgid "(if known)"
|
msgid "(if known)"
|
||||||
msgstr "(indien bekend)"
|
msgstr "(indien bekend)"
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:472
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:477
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:489
|
msgid "Local Authorization"
|
||||||
|
msgstr "Lokale Autorisatie"
|
||||||
|
|
||||||
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:483
|
||||||
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:497
|
||||||
|
msgid "Username"
|
||||||
|
msgstr "Gebruikersnaam"
|
||||||
|
|
||||||
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:487
|
||||||
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:501
|
||||||
|
msgid "Password"
|
||||||
|
msgstr "Wachtwoord"
|
||||||
|
|
||||||
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:491
|
||||||
|
msgid "Outproxy Authorization"
|
||||||
|
msgstr "Uitgaande Proxy Autorisatie"
|
||||||
|
|
||||||
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:507
|
||||||
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:498
|
||||||
msgid "Custom options"
|
msgid "Custom options"
|
||||||
msgstr "Aangepaste opties"
|
msgstr "Aangepaste opties"
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:476
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:511
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:493
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:502
|
||||||
msgid ""
|
msgid ""
|
||||||
"NOTE: If tunnel is currently running, most changes will not take effect "
|
"NOTE: If tunnel is currently running, most changes will not take effect "
|
||||||
"until tunnel is stopped and restarted."
|
"until tunnel is stopped and restarted."
|
||||||
msgstr "OPMERKING: Indien de tunnel op dit moment draait, zullen de meeste wijzigingen pas effect hebben na het stoppen en herstarten van de tunnel."
|
msgstr ""
|
||||||
|
"OPMERKING: Indien de tunnel op dit moment draait, zullen de meeste "
|
||||||
|
"wijzigingen pas effect hebben na het stoppen en herstarten van de tunnel."
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:478
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:513
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:495
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:504
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr "Annuleer"
|
msgstr "Annuleer"
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:482
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:517
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:499
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:508
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "Verwijder"
|
msgstr "Verwijder"
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:484
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:519
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:501
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:510
|
||||||
msgid "Save"
|
msgid "Save"
|
||||||
msgstr "Opslaan"
|
msgstr "Opslaan"
|
||||||
|
|
||||||
@ -494,72 +564,76 @@ msgstr "Private sleutel bestand"
|
|||||||
msgid "Add to local addressbook"
|
msgid "Add to local addressbook"
|
||||||
msgstr "Toevoegen aan lokaal adresboek"
|
msgstr "Toevoegen aan lokaal adresboek"
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:415
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:252
|
||||||
|
msgid "Hostname Signature"
|
||||||
|
msgstr "Hostnaam Handtekening"
|
||||||
|
|
||||||
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:424
|
||||||
msgid "Encrypt Leaseset"
|
msgid "Encrypt Leaseset"
|
||||||
msgstr "Versleutel Leaseset"
|
msgstr "Versleutel Leaseset"
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:421
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:430
|
||||||
msgid "Encryption Key"
|
msgid "Encryption Key"
|
||||||
msgstr "Encryptie Sleutel"
|
msgstr "Encryptie Sleutel"
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:425
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:434
|
||||||
msgid "Generate New Key"
|
msgid "Generate New Key"
|
||||||
msgstr "Genereer Nieuwe Sleutel"
|
msgstr "Genereer Nieuwe Sleutel"
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:427
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:436
|
||||||
msgid "Generate"
|
msgid "Generate"
|
||||||
msgstr "Genereer"
|
msgstr "Genereer"
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:429
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:438
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:487
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:496
|
||||||
msgid "(Tunnel must be stopped first)"
|
msgid "(Tunnel must be stopped first)"
|
||||||
msgstr "(Tunnel moet eerst gestopt worden)"
|
msgstr "(Tunnel moet eerst gestopt worden)"
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:431
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:440
|
||||||
msgid "Restricted Access List"
|
msgid "Restricted Access List"
|
||||||
msgstr "Beperkte Toegangs Lijst"
|
msgstr "Beperkte Toegangs Lijst"
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:437
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:446
|
||||||
msgid "Access List"
|
msgid "Access List"
|
||||||
msgstr "Toegangs Lijst"
|
msgstr "Toegangs Lijst"
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:441
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:450
|
||||||
msgid "(Restrict to these clients only)"
|
msgid "(Restrict to these clients only)"
|
||||||
msgstr "(Beperkt tot slechts deze clients)"
|
msgstr "(Beperkt tot slechts deze clients)"
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:457
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:466
|
||||||
msgid "New Certificate type"
|
msgid "New Certificate type"
|
||||||
msgstr "Nieuw Certificaat type"
|
msgstr "Nieuw Certificaat type"
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:459
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:468
|
||||||
msgid "None"
|
msgid "None"
|
||||||
msgstr "Geen"
|
msgstr "Geen"
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:463
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:472
|
||||||
msgid "Hashcash (effort)"
|
msgid "Hashcash (effort)"
|
||||||
msgstr "Hashcash (effort)"
|
msgstr "Hashcash (effort)"
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:469
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:478
|
||||||
msgid "Hashcash Calc Time"
|
msgid "Hashcash Calc Time"
|
||||||
msgstr "Hashcash Reken Tijd"
|
msgstr "Hashcash Reken Tijd"
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:471
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:480
|
||||||
msgid "Estimate"
|
msgid "Estimate"
|
||||||
msgstr "Inschatten"
|
msgstr "Inschatten"
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:473
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:482
|
||||||
msgid "Hidden"
|
msgid "Hidden"
|
||||||
msgstr "Verborgen"
|
msgstr "Verborgen"
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:477
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:486
|
||||||
msgid "Signed (signed by)"
|
msgid "Signed (signed by)"
|
||||||
msgstr "Ondertekend (ondertekend door)"
|
msgstr "Ondertekend (ondertekend door)"
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:483
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:492
|
||||||
msgid "Modify Certificate"
|
msgid "Modify Certificate"
|
||||||
msgstr "Wijzig Certificaat"
|
msgstr "Wijzig Certificaat"
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:485
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:494
|
||||||
msgid "Modify"
|
msgid "Modify"
|
||||||
msgstr "Wijzig"
|
msgstr "Wijzig"
|
||||||
|
|
||||||
@ -654,12 +728,12 @@ msgid "New server tunnel"
|
|||||||
msgstr "Nieuwe server tunnel"
|
msgstr "Nieuwe server tunnel"
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:236
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:236
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:368
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:377
|
||||||
msgid "Standard"
|
msgid "Standard"
|
||||||
msgstr "Standaard"
|
msgstr "Standaard"
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:238
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:238
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:370
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:379
|
||||||
msgid "Create"
|
msgid "Create"
|
||||||
msgstr "Creëer"
|
msgstr "Creëer"
|
||||||
|
|
||||||
@ -676,14 +750,18 @@ msgstr "Interface"
|
|||||||
msgid "Standby"
|
msgid "Standby"
|
||||||
msgstr "Stand-by"
|
msgstr "Stand-by"
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:346
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:344
|
||||||
msgid "Outproxy"
|
msgid "Outproxy"
|
||||||
msgstr "Uitgaande proxy"
|
msgstr "Uitgaande proxy"
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:350
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:348
|
||||||
msgid "Destination"
|
msgid "Destination"
|
||||||
msgstr "Destination"
|
msgstr "Destination"
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:366
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:362
|
||||||
|
msgid "none"
|
||||||
|
msgstr "geen"
|
||||||
|
|
||||||
|
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:375
|
||||||
msgid "New client tunnel"
|
msgid "New client tunnel"
|
||||||
msgstr "Nieuwe client tunnel"
|
msgstr "Nieuwe client tunnel"
|
||||||
|
352
apps/jetty/java/src/org/mortbay/util/FileResource.java
Normal file
352
apps/jetty/java/src/org/mortbay/util/FileResource.java
Normal file
@ -0,0 +1,352 @@
|
|||||||
|
// ========================================================================
|
||||||
|
// $Id: FileResource.java,v 1.31 2006/01/04 13:55:31 gregwilkins Exp $
|
||||||
|
// Copyright 1996-2004 Mort Bay Consulting Pty. Ltd.
|
||||||
|
// ------------------------------------------------------------------------
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
// ========================================================================
|
||||||
|
package org.mortbay.util;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.FileInputStream;
|
||||||
|
import java.io.FileOutputStream;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.InputStream;
|
||||||
|
import java.io.OutputStream;
|
||||||
|
import java.net.MalformedURLException;
|
||||||
|
import java.net.URI;
|
||||||
|
import java.net.URISyntaxException;
|
||||||
|
import java.net.URL;
|
||||||
|
import java.net.URLConnection;
|
||||||
|
import java.security.Permission;
|
||||||
|
|
||||||
|
import org.apache.commons.logging.Log;
|
||||||
|
import org.mortbay.log.LogFactory;
|
||||||
|
|
||||||
|
|
||||||
|
/* ------------------------------------------------------------ */
|
||||||
|
/** File Resource.
|
||||||
|
*
|
||||||
|
* Handle resources of implied or explicit file type.
|
||||||
|
* This class can check for aliasing in the filesystem (eg case
|
||||||
|
* insensitivity). By default this is turned on if the platform does
|
||||||
|
* not have the "/" path separator, or it can be controlled with the
|
||||||
|
* "org.mortbay.util.FileResource.checkAliases" system parameter.
|
||||||
|
*
|
||||||
|
* If alias checking is turned on, then aliased resources are
|
||||||
|
* treated as if they do not exist, nor can they be created.
|
||||||
|
*
|
||||||
|
* @version $Revision: 1.31 $
|
||||||
|
* @author Greg Wilkins (gregw)
|
||||||
|
*/
|
||||||
|
public class FileResource extends URLResource
|
||||||
|
{
|
||||||
|
private static Log log = LogFactory.getLog(Credential.class);
|
||||||
|
private static boolean __checkAliases;
|
||||||
|
static
|
||||||
|
{
|
||||||
|
__checkAliases=
|
||||||
|
"true".equalsIgnoreCase
|
||||||
|
(System.getProperty("org.mortbay.util.FileResource.checkAliases","true"));
|
||||||
|
|
||||||
|
if (__checkAliases)
|
||||||
|
log.info("Checking Resource aliases");
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ------------------------------------------------------------ */
|
||||||
|
private File _file;
|
||||||
|
private transient URL _alias=null;
|
||||||
|
private transient boolean _aliasChecked=false;
|
||||||
|
|
||||||
|
/* ------------------------------------------------------------------------------- */
|
||||||
|
/** setCheckAliases.
|
||||||
|
* @param checkAliases True of resource aliases are to be checked for (eg case insensitivity or 8.3 short names) and treated as not found.
|
||||||
|
*/
|
||||||
|
public static void setCheckAliases(boolean checkAliases)
|
||||||
|
{
|
||||||
|
__checkAliases=checkAliases;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ------------------------------------------------------------------------------- */
|
||||||
|
/** getCheckAliases.
|
||||||
|
* @return True of resource aliases are to be checked for (eg case insensitivity or 8.3 short names) and treated as not found.
|
||||||
|
*/
|
||||||
|
public static boolean getCheckAliases()
|
||||||
|
{
|
||||||
|
return __checkAliases;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------------------- */
|
||||||
|
FileResource(URL url)
|
||||||
|
throws IOException, URISyntaxException
|
||||||
|
{
|
||||||
|
super(url,null);
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
// Try standard API to convert URL to file.
|
||||||
|
_file =new File(new URI(url.toString()));
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
LogSupport.ignore(log,e);
|
||||||
|
try
|
||||||
|
{
|
||||||
|
// Assume that File.toURL produced unencoded chars. So try
|
||||||
|
// encoding them.
|
||||||
|
String urls=
|
||||||
|
"file:"+org.mortbay.util.URI.encodePath(url.toString().substring(5));
|
||||||
|
_file =new File(new URI(urls));
|
||||||
|
}
|
||||||
|
catch (Exception e2)
|
||||||
|
{
|
||||||
|
LogSupport.ignore(log,e2);
|
||||||
|
|
||||||
|
// Still can't get the file. Doh! try good old hack!
|
||||||
|
checkConnection();
|
||||||
|
Permission perm = _connection.getPermission();
|
||||||
|
_file = new File(perm==null?url.getFile():perm.getName());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_file.isDirectory() && !_urlString.endsWith("/"))
|
||||||
|
_urlString=_urlString+"/";
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------------------- */
|
||||||
|
FileResource(URL url, URLConnection connection, File file)
|
||||||
|
{
|
||||||
|
super(url,connection);
|
||||||
|
_file=file;
|
||||||
|
if (_file.isDirectory() && !_urlString.endsWith("/"))
|
||||||
|
_urlString=_urlString+"/";
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------------------- */
|
||||||
|
public Resource addPath(String path)
|
||||||
|
throws IOException,MalformedURLException
|
||||||
|
{
|
||||||
|
FileResource r=null;
|
||||||
|
|
||||||
|
if (!isDirectory())
|
||||||
|
{
|
||||||
|
r=(FileResource)super.addPath(path);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
path = org.mortbay.util.URI.canonicalPath(path);
|
||||||
|
|
||||||
|
// treat all paths being added as relative
|
||||||
|
String rel=path;
|
||||||
|
if (path.startsWith("/"))
|
||||||
|
rel = path.substring(1);
|
||||||
|
|
||||||
|
File newFile = new File(_file,rel.replace('/', File.separatorChar));
|
||||||
|
r=new FileResource(newFile.toURI().toURL(),null,newFile);
|
||||||
|
}
|
||||||
|
|
||||||
|
String encoded=org.mortbay.util.URI.encodePath(path);
|
||||||
|
int expected=r._urlString.length()-encoded.length();
|
||||||
|
int index = r._urlString.lastIndexOf(encoded, expected);
|
||||||
|
|
||||||
|
if (expected!=index && ((expected-1)!=index || path.endsWith("/") || !r.isDirectory()))
|
||||||
|
{
|
||||||
|
r._alias=r._url;
|
||||||
|
r._aliasChecked=true;
|
||||||
|
}
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* ------------------------------------------------------------ */
|
||||||
|
public URL getAlias()
|
||||||
|
{
|
||||||
|
if (__checkAliases) {
|
||||||
|
if (!_aliasChecked)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
String abs=_file.getAbsolutePath();
|
||||||
|
String can=_file.getCanonicalPath();
|
||||||
|
|
||||||
|
if (abs.length()!=can.length() || !abs.equals(can))
|
||||||
|
_alias=new File(can).toURI().toURL();
|
||||||
|
|
||||||
|
_aliasChecked=true;
|
||||||
|
|
||||||
|
if (_alias!=null && log.isDebugEnabled())
|
||||||
|
{
|
||||||
|
log.debug("ALIAS abs="+abs);
|
||||||
|
log.debug("ALIAS can="+can);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch(Exception e)
|
||||||
|
{
|
||||||
|
log.warn(LogSupport.EXCEPTION,e);
|
||||||
|
return getURL();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else return null;
|
||||||
|
return _alias;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------------------- */
|
||||||
|
/**
|
||||||
|
* Returns true if the resource exists.
|
||||||
|
*/
|
||||||
|
public boolean exists()
|
||||||
|
{
|
||||||
|
return _file.exists();
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------------------- */
|
||||||
|
/**
|
||||||
|
* Returns the last modified time
|
||||||
|
*/
|
||||||
|
public long lastModified()
|
||||||
|
{
|
||||||
|
return _file.lastModified();
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------------------- */
|
||||||
|
/**
|
||||||
|
* Returns true if the respresenetd resource is a container/directory.
|
||||||
|
*/
|
||||||
|
public boolean isDirectory()
|
||||||
|
{
|
||||||
|
return _file.isDirectory();
|
||||||
|
}
|
||||||
|
|
||||||
|
/* --------------------------------------------------------- */
|
||||||
|
/**
|
||||||
|
* Return the length of the resource
|
||||||
|
*/
|
||||||
|
public long length()
|
||||||
|
{
|
||||||
|
return _file.length();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* --------------------------------------------------------- */
|
||||||
|
/**
|
||||||
|
* Returns the name of the resource
|
||||||
|
*/
|
||||||
|
public String getName()
|
||||||
|
{
|
||||||
|
return _file.getAbsolutePath();
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ------------------------------------------------------------ */
|
||||||
|
/**
|
||||||
|
* Returns an File representing the given resource or NULL if this
|
||||||
|
* is not possible.
|
||||||
|
*/
|
||||||
|
public File getFile()
|
||||||
|
{
|
||||||
|
return _file;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* --------------------------------------------------------- */
|
||||||
|
/**
|
||||||
|
* Returns an input stream to the resource
|
||||||
|
*/
|
||||||
|
public InputStream getInputStream() throws IOException
|
||||||
|
{
|
||||||
|
return new FileInputStream(_file);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* --------------------------------------------------------- */
|
||||||
|
/**
|
||||||
|
* Returns an output stream to the resource
|
||||||
|
*/
|
||||||
|
public OutputStream getOutputStream()
|
||||||
|
throws java.io.IOException, SecurityException
|
||||||
|
{
|
||||||
|
return new FileOutputStream(_file);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* --------------------------------------------------------- */
|
||||||
|
/**
|
||||||
|
* Deletes the given resource
|
||||||
|
*/
|
||||||
|
public boolean delete()
|
||||||
|
throws SecurityException
|
||||||
|
{
|
||||||
|
return _file.delete();
|
||||||
|
}
|
||||||
|
|
||||||
|
/* --------------------------------------------------------- */
|
||||||
|
/**
|
||||||
|
* Rename the given resource
|
||||||
|
*/
|
||||||
|
public boolean renameTo( Resource dest)
|
||||||
|
throws SecurityException
|
||||||
|
{
|
||||||
|
if( dest instanceof FileResource)
|
||||||
|
return _file.renameTo( ((FileResource)dest)._file);
|
||||||
|
else
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* --------------------------------------------------------- */
|
||||||
|
/**
|
||||||
|
* Returns a list of resources contained in the given resource
|
||||||
|
*/
|
||||||
|
public String[] list()
|
||||||
|
{
|
||||||
|
String[] list =_file.list();
|
||||||
|
if (list==null)
|
||||||
|
return null;
|
||||||
|
for (int i=list.length;i-->0;)
|
||||||
|
{
|
||||||
|
if (new File(_file,list[i]).isDirectory() &&
|
||||||
|
!list[i].endsWith("/"))
|
||||||
|
list[i]+="/";
|
||||||
|
}
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ------------------------------------------------------------ */
|
||||||
|
/** Encode according to this resource type.
|
||||||
|
* File URIs are encoded.
|
||||||
|
* @param uri URI to encode.
|
||||||
|
* @return The uri unchanged.
|
||||||
|
*/
|
||||||
|
public String encode(String uri)
|
||||||
|
{
|
||||||
|
return uri;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ------------------------------------------------------------ */
|
||||||
|
/**
|
||||||
|
* @param o
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public boolean equals( Object o)
|
||||||
|
{
|
||||||
|
if (this == o)
|
||||||
|
return true;
|
||||||
|
|
||||||
|
if (null == o || ! (o instanceof FileResource))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
FileResource f=(FileResource)o;
|
||||||
|
return f._file == _file || (null != _file && _file.equals(f._file));
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ------------------------------------------------------------ */
|
||||||
|
/**
|
||||||
|
* @return the hashcode.
|
||||||
|
*/
|
||||||
|
public int hashCode()
|
||||||
|
{
|
||||||
|
return null == _file ? super.hashCode() : _file.hashCode();
|
||||||
|
}
|
||||||
|
}
|
@ -392,7 +392,7 @@ public abstract class Resource implements Serializable
|
|||||||
buf.append(path);
|
buf.append(path);
|
||||||
buf.append("\">");
|
buf.append("\">");
|
||||||
buf.append(StringUtil.replace(StringUtil.replace(ls[i],"<","<"),">",">"));
|
buf.append(StringUtil.replace(StringUtil.replace(ls[i],"<","<"),">",">"));
|
||||||
buf.append(" ");
|
buf.append("</A> ");
|
||||||
buf.append("</TD><TD ALIGN=right>");
|
buf.append("</TD><TD ALIGN=right>");
|
||||||
buf.append(item.length());
|
buf.append(item.length());
|
||||||
buf.append(" bytes </TD><TD>");
|
buf.append(" bytes </TD><TD>");
|
||||||
|
995
apps/jetty/java/src/org/mortbay/util/URI.java
Normal file
995
apps/jetty/java/src/org/mortbay/util/URI.java
Normal file
@ -0,0 +1,995 @@
|
|||||||
|
// ========================================================================
|
||||||
|
// $Id: URI.java,v 1.40 2009/05/16 02:02:00 gregwilkins Exp $
|
||||||
|
// Copyright 199-2004 Mort Bay Consulting Pty. Ltd.
|
||||||
|
// ------------------------------------------------------------------------
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
// ========================================================================
|
||||||
|
package org.mortbay.util;
|
||||||
|
|
||||||
|
import java.io.UnsupportedEncodingException;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
import org.apache.commons.logging.Log;
|
||||||
|
import org.mortbay.log.LogFactory;
|
||||||
|
|
||||||
|
/* ------------------------------------------------------------ */
|
||||||
|
/** URI Holder.
|
||||||
|
* This class assists with the decoding and encoding or HTTP URI's.
|
||||||
|
* It differs from the java.net.URL class as it does not provide
|
||||||
|
* communications ability, but it does assist with query string
|
||||||
|
* formatting.
|
||||||
|
* <P>ISO_8859_1 encoding is used by default for % encoded characters. This
|
||||||
|
* may be overridden with the org.mortbay.util.URI.charset system property.
|
||||||
|
* @see UrlEncoded
|
||||||
|
* @version $Id: URI.java,v 1.40 2009/05/16 02:02:00 gregwilkins Exp $
|
||||||
|
* @author Greg Wilkins (gregw)
|
||||||
|
*/
|
||||||
|
public class URI
|
||||||
|
implements Cloneable
|
||||||
|
{
|
||||||
|
private static Log log = LogFactory.getLog(URI.class);
|
||||||
|
|
||||||
|
public static final String __CHARSET=System.getProperty("org.mortbay.util.URI.charset",StringUtil.__UTF_8);
|
||||||
|
public static final boolean __CHARSET_IS_DEFAULT=__CHARSET.equals(StringUtil.__UTF_8);
|
||||||
|
|
||||||
|
/* ------------------------------------------------------------ */
|
||||||
|
private String _uri;
|
||||||
|
private String _scheme;
|
||||||
|
private String _host;
|
||||||
|
private int _port;
|
||||||
|
private String _path;
|
||||||
|
private String _encodedPath;
|
||||||
|
private String _query;
|
||||||
|
private UrlEncoded _parameters;
|
||||||
|
private boolean _dirty;
|
||||||
|
private static String unreserved = "/0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_.~";
|
||||||
|
private static String reserved = "!*'();:@&=+$,?%#[]";
|
||||||
|
private static String hexchars = "0123456789ABCDEF";
|
||||||
|
|
||||||
|
/* ------------------------------------------------------------ */
|
||||||
|
/** Copy Constructor .
|
||||||
|
* @param uri
|
||||||
|
*/
|
||||||
|
public URI(URI uri)
|
||||||
|
throws IllegalArgumentException
|
||||||
|
{
|
||||||
|
_uri=uri.toString();
|
||||||
|
_scheme=uri._scheme;
|
||||||
|
_host=uri._host;
|
||||||
|
_port=uri._port;
|
||||||
|
_path=uri._path;
|
||||||
|
_encodedPath=uri._encodedPath;
|
||||||
|
_query=uri._query;
|
||||||
|
if (uri._parameters!=null)
|
||||||
|
_parameters=(UrlEncoded)uri._parameters.clone();
|
||||||
|
_dirty=false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ------------------------------------------------------------ */
|
||||||
|
/** Construct from a String.
|
||||||
|
* The string must contain a URI path, but optionaly may contain a
|
||||||
|
* scheme, host, port and query string.
|
||||||
|
*
|
||||||
|
* @param uri [scheme://host[:port]]/path[?query]
|
||||||
|
*/
|
||||||
|
public URI(String uri)
|
||||||
|
throws IllegalArgumentException
|
||||||
|
{
|
||||||
|
setURI(uri);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ------------------------------------------------------------ */
|
||||||
|
public void setURI(String uri)
|
||||||
|
throws IllegalArgumentException
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
_uri=uri;
|
||||||
|
_scheme=null;
|
||||||
|
_host=null;
|
||||||
|
_port=0;
|
||||||
|
_path=null;
|
||||||
|
_encodedPath=null;
|
||||||
|
_query=null;
|
||||||
|
if (_parameters!=null)
|
||||||
|
_parameters.clear();
|
||||||
|
|
||||||
|
// Scan _uri for host, port, path & query
|
||||||
|
int maxi=uri.length()-1;
|
||||||
|
int mark=0;
|
||||||
|
int state=0;
|
||||||
|
int i=0;
|
||||||
|
|
||||||
|
if (maxi==0 || uri.charAt(0)=='/' && uri.charAt(1)!='/')
|
||||||
|
{
|
||||||
|
state=3;
|
||||||
|
_scheme=null;
|
||||||
|
_host=null;
|
||||||
|
_port=0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
for (i=0;state<3 && i<=maxi;i++)
|
||||||
|
{
|
||||||
|
char c=uri.charAt(i);
|
||||||
|
switch(state)
|
||||||
|
{
|
||||||
|
case 0: // looking for scheme or path
|
||||||
|
if (c==':' &&
|
||||||
|
uri.charAt(i+1)=='/' &&
|
||||||
|
uri.charAt(i+2)=='/')
|
||||||
|
{
|
||||||
|
// found end of scheme & start of host
|
||||||
|
_scheme=uri.substring(mark,i);
|
||||||
|
i+=2;
|
||||||
|
mark=i+1;
|
||||||
|
state=1;
|
||||||
|
}
|
||||||
|
else if (i==0 && c=='/')
|
||||||
|
{
|
||||||
|
// Found path
|
||||||
|
state=3;
|
||||||
|
}
|
||||||
|
else if (i==0 && c=='*')
|
||||||
|
{
|
||||||
|
state=5;
|
||||||
|
_path="*";
|
||||||
|
_encodedPath="*";
|
||||||
|
}
|
||||||
|
continue;
|
||||||
|
|
||||||
|
case 1: // Get host & look for port or path
|
||||||
|
if (c==':')
|
||||||
|
{
|
||||||
|
// found port
|
||||||
|
_host=uri.substring(mark,i);
|
||||||
|
mark=i+1;
|
||||||
|
state=2;
|
||||||
|
}
|
||||||
|
else if (c=='/')
|
||||||
|
{
|
||||||
|
// found path
|
||||||
|
_host=uri.substring(mark,i);
|
||||||
|
mark=i;
|
||||||
|
state=3;
|
||||||
|
}
|
||||||
|
continue;
|
||||||
|
|
||||||
|
case 2: // Get port & look for path
|
||||||
|
if (c=='/')
|
||||||
|
{
|
||||||
|
_port=TypeUtil.parseInt(uri,mark,i-mark,10);
|
||||||
|
mark=i;
|
||||||
|
state=3;
|
||||||
|
}
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// State 3 - Get path & look for query
|
||||||
|
_query=null;
|
||||||
|
for (i++;i<=maxi;i++)
|
||||||
|
{
|
||||||
|
char c=uri.charAt(i);
|
||||||
|
if (c=='?')
|
||||||
|
{
|
||||||
|
// Found query
|
||||||
|
_encodedPath=uri.substring(mark,i);
|
||||||
|
_path=decodePath(_encodedPath);
|
||||||
|
|
||||||
|
mark=i+1;
|
||||||
|
state=4;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// complete last state
|
||||||
|
switch(state)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
_dirty=false;
|
||||||
|
_encodedPath=_uri;
|
||||||
|
_path=decodePath(_encodedPath);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 1:
|
||||||
|
_dirty=true;
|
||||||
|
_encodedPath="/";
|
||||||
|
_path=_encodedPath;
|
||||||
|
_host=uri.substring(mark);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 2:
|
||||||
|
_dirty=true;
|
||||||
|
_encodedPath="/";
|
||||||
|
_path=_encodedPath;
|
||||||
|
_port=TypeUtil.parseInt(uri,mark,-1,10);
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
_dirty=(mark==maxi);
|
||||||
|
_encodedPath=uri.substring(mark);
|
||||||
|
_path=decodePath(_encodedPath);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 4:
|
||||||
|
_dirty=false;
|
||||||
|
if (mark<=maxi)
|
||||||
|
_query=uri.substring(mark);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 5:
|
||||||
|
_dirty=false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_query!=null && _query.length()>0)
|
||||||
|
{
|
||||||
|
if (_parameters==null)
|
||||||
|
_parameters= new UrlEncoded();
|
||||||
|
else
|
||||||
|
_parameters.clear();
|
||||||
|
_parameters.decode(_query,__CHARSET);
|
||||||
|
|
||||||
|
}
|
||||||
|
else
|
||||||
|
_query=null;
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
LogSupport.ignore(log,e);
|
||||||
|
throw new IllegalArgumentException("Malformed URI '"+uri+
|
||||||
|
"' : "+e.toString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ------------------------------------------------------------ */
|
||||||
|
/** Is the URI an absolute URL?
|
||||||
|
* @return True if the URI has a scheme or host
|
||||||
|
*/
|
||||||
|
public boolean isAbsolute()
|
||||||
|
{
|
||||||
|
return _scheme!=null || _host!=null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ------------------------------------------------------------ */
|
||||||
|
/** Get the uri scheme.
|
||||||
|
* @return the URI scheme
|
||||||
|
*/
|
||||||
|
public String getScheme()
|
||||||
|
{
|
||||||
|
return _scheme;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ------------------------------------------------------------ */
|
||||||
|
/** Set the uri scheme.
|
||||||
|
* @param scheme the uri scheme
|
||||||
|
*/
|
||||||
|
public void setScheme(String scheme)
|
||||||
|
{
|
||||||
|
_scheme=scheme;
|
||||||
|
_dirty=true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ------------------------------------------------------------ */
|
||||||
|
/** Get the uri host.
|
||||||
|
* @return the URI host
|
||||||
|
*/
|
||||||
|
public String getHost()
|
||||||
|
{
|
||||||
|
return _host;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ------------------------------------------------------------ */
|
||||||
|
/** Set the uri host.
|
||||||
|
* @param host the uri host
|
||||||
|
*/
|
||||||
|
public void setHost(String host)
|
||||||
|
{
|
||||||
|
_host=host;
|
||||||
|
_dirty=true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ------------------------------------------------------------ */
|
||||||
|
/** Get the uri port.
|
||||||
|
* @return the URI port
|
||||||
|
*/
|
||||||
|
public int getPort()
|
||||||
|
{
|
||||||
|
return _port;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ------------------------------------------------------------ */
|
||||||
|
/** Set the uri port.
|
||||||
|
* A port of 0 implies use the default port.
|
||||||
|
* @param port the uri port
|
||||||
|
*/
|
||||||
|
public void setPort(int port)
|
||||||
|
{
|
||||||
|
_port=port;
|
||||||
|
_dirty=true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ------------------------------------------------------------ */
|
||||||
|
/** Get the uri path.
|
||||||
|
* @return the URI path
|
||||||
|
*/
|
||||||
|
public String getPath()
|
||||||
|
{
|
||||||
|
return _path;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ------------------------------------------------------------ */
|
||||||
|
/** Get the encoded uri path.
|
||||||
|
* @return the URI path
|
||||||
|
*/
|
||||||
|
public String getEncodedPath()
|
||||||
|
{
|
||||||
|
return _encodedPath;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ------------------------------------------------------------ */
|
||||||
|
/** Set the uri path.
|
||||||
|
* @param path the URI path
|
||||||
|
*/
|
||||||
|
public void setPath(String path)
|
||||||
|
{
|
||||||
|
_path=path;
|
||||||
|
_encodedPath=encodePath(_path);
|
||||||
|
_dirty=true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* ------------------------------------------------------------ */
|
||||||
|
/** Get the uri query String.
|
||||||
|
* @return the URI query string
|
||||||
|
*/
|
||||||
|
public String getQuery()
|
||||||
|
{
|
||||||
|
if (_dirty && _parameters!=null)
|
||||||
|
{
|
||||||
|
_query = _parameters.encode(__CHARSET);
|
||||||
|
if (_query!=null && _query.length()==0)
|
||||||
|
_query=null;
|
||||||
|
}
|
||||||
|
return _query;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ------------------------------------------------------------ */
|
||||||
|
/** Set the uri query String.
|
||||||
|
* @param query the URI query string
|
||||||
|
*/
|
||||||
|
public void setQuery(String query)
|
||||||
|
{
|
||||||
|
_query=query;
|
||||||
|
|
||||||
|
if (_parameters!=null)
|
||||||
|
_parameters.clear();
|
||||||
|
else if (query!=null)
|
||||||
|
_parameters=new UrlEncoded();
|
||||||
|
|
||||||
|
if (query!=null)
|
||||||
|
_parameters.decode(query,__CHARSET);
|
||||||
|
|
||||||
|
cleanURI();
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ------------------------------------------------------------ */
|
||||||
|
/** Get the uri query _parameters names.
|
||||||
|
* @return Unmodifiable set of URI query _parameters names
|
||||||
|
*/
|
||||||
|
public Set getParameterNames()
|
||||||
|
{
|
||||||
|
if (_parameters==null)
|
||||||
|
return Collections.EMPTY_SET;
|
||||||
|
return _parameters.keySet();
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ------------------------------------------------------------ */
|
||||||
|
/** Get the uri query _parameters.
|
||||||
|
* @return the URI query _parameters
|
||||||
|
*/
|
||||||
|
public MultiMap getParameters()
|
||||||
|
{
|
||||||
|
if (_parameters==null)
|
||||||
|
_parameters=new UrlEncoded();
|
||||||
|
_dirty=true;
|
||||||
|
return _parameters;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ------------------------------------------------------------ */
|
||||||
|
/** Get the uri query _parameters.
|
||||||
|
* @return the URI query _parameters in an unmodifiable map.
|
||||||
|
*/
|
||||||
|
public Map getUnmodifiableParameters()
|
||||||
|
{
|
||||||
|
if (_parameters==null)
|
||||||
|
return Collections.EMPTY_MAP;
|
||||||
|
return Collections.unmodifiableMap(_parameters);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ------------------------------------------------------------ */
|
||||||
|
/** Add the uri query _parameters to a MultiMap
|
||||||
|
*/
|
||||||
|
public void putParametersTo(MultiMap map)
|
||||||
|
{
|
||||||
|
if (_parameters!=null && _parameters.size()>0)
|
||||||
|
map.putAll(_parameters);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ------------------------------------------------------------ */
|
||||||
|
/** Clear the URI _parameters.
|
||||||
|
*/
|
||||||
|
public void clearParameters()
|
||||||
|
{
|
||||||
|
if (_parameters!=null)
|
||||||
|
{
|
||||||
|
_dirty=true;
|
||||||
|
_parameters.clear();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ------------------------------------------------------------ */
|
||||||
|
/** Add encoded _parameters.
|
||||||
|
* @param encoded A HTTP encoded string of _parameters: e.g.. "a=1&b=2"
|
||||||
|
*/
|
||||||
|
public void put(String encoded)
|
||||||
|
{
|
||||||
|
UrlEncoded params = new UrlEncoded(encoded);
|
||||||
|
put(params);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ------------------------------------------------------------ */
|
||||||
|
/** Add name value pair to the uri query _parameters.
|
||||||
|
* @param name name of value
|
||||||
|
* @param value The value, which may be a multi valued list or
|
||||||
|
* String array.
|
||||||
|
*/
|
||||||
|
public Object put(Object name, Object value)
|
||||||
|
{
|
||||||
|
return getParameters().put(name,value);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ------------------------------------------------------------ */
|
||||||
|
/** Add dictionary to the uri query _parameters.
|
||||||
|
*/
|
||||||
|
public void put(Map values)
|
||||||
|
{
|
||||||
|
getParameters().putAll(values);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ------------------------------------------------------------ */
|
||||||
|
/** Get named value
|
||||||
|
*/
|
||||||
|
public String get(String name)
|
||||||
|
{
|
||||||
|
if (_parameters==null)
|
||||||
|
return null;
|
||||||
|
return (String)_parameters.get(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ------------------------------------------------------------ */
|
||||||
|
/** Get named multiple values.
|
||||||
|
* @param name The parameter name
|
||||||
|
* @return Umodifiable list of values or null
|
||||||
|
*/
|
||||||
|
public List getValues(String name)
|
||||||
|
{
|
||||||
|
if (_parameters==null)
|
||||||
|
return null;
|
||||||
|
return _parameters.getValues(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ------------------------------------------------------------ */
|
||||||
|
/** Remove named value
|
||||||
|
*/
|
||||||
|
public void remove(String name)
|
||||||
|
{
|
||||||
|
if (_parameters!=null)
|
||||||
|
{
|
||||||
|
_dirty=
|
||||||
|
_parameters.remove(name)!=null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ------------------------------------------------------------ */
|
||||||
|
/** @return the URI string encoded.
|
||||||
|
*/
|
||||||
|
public String toString()
|
||||||
|
{
|
||||||
|
if (_dirty)
|
||||||
|
{
|
||||||
|
getQuery();
|
||||||
|
cleanURI();
|
||||||
|
}
|
||||||
|
return _uri;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ------------------------------------------------------------ */
|
||||||
|
private void cleanURI()
|
||||||
|
{
|
||||||
|
StringBuffer buf = new StringBuffer(_uri.length()*2);
|
||||||
|
synchronized(buf)
|
||||||
|
{
|
||||||
|
if (_scheme!=null)
|
||||||
|
{
|
||||||
|
buf.append(_scheme);
|
||||||
|
buf.append("://");
|
||||||
|
buf.append(_host);
|
||||||
|
if (_port>0)
|
||||||
|
{
|
||||||
|
buf.append(':');
|
||||||
|
buf.append(_port);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
buf.append(_encodedPath);
|
||||||
|
|
||||||
|
if (_query!=null && _query.length()>0)
|
||||||
|
{
|
||||||
|
buf.append('?');
|
||||||
|
buf.append(_query);
|
||||||
|
}
|
||||||
|
_uri=buf.toString();
|
||||||
|
_dirty=false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* ------------------------------------------------------------ */
|
||||||
|
/** Encode a URI path.
|
||||||
|
* This is the same encoding offered by URLEncoder, except that
|
||||||
|
* the '/' character is not encoded.
|
||||||
|
* @param path The path the encode
|
||||||
|
* @return The encoded path
|
||||||
|
*/
|
||||||
|
public static String encodePath(String path)
|
||||||
|
{
|
||||||
|
if (path==null || path.length()==0)
|
||||||
|
return path;
|
||||||
|
|
||||||
|
StringBuffer buf = encodePath(null,path);
|
||||||
|
return buf==null?path:buf.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ------------------------------------------------------------ */
|
||||||
|
/** Encode a URI path.
|
||||||
|
* @param path The path the encode
|
||||||
|
* @param buf StringBuffer to encode path into (or null)
|
||||||
|
* @return The StringBuffer or null if no substitutions required.
|
||||||
|
*/
|
||||||
|
public static StringBuffer encodePath(StringBuffer buf, String path)
|
||||||
|
{
|
||||||
|
// Convert path to native first.
|
||||||
|
byte[] b = null;
|
||||||
|
/*
|
||||||
|
try {
|
||||||
|
b = path.getBytes(__CHARSET);
|
||||||
|
} catch(UnsupportedEncodingException ex) {
|
||||||
|
return null; // Shouldn't be possible.
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
b = path.getBytes();
|
||||||
|
StringBuffer x = new StringBuffer(b.length);
|
||||||
|
for(int i=0; i<b.length; i++) {
|
||||||
|
x.append((char)(b[i]&0xff));
|
||||||
|
}
|
||||||
|
String _path = new String(x);
|
||||||
|
if(buf == null) {
|
||||||
|
loop:
|
||||||
|
for(int i = 0; i < _path.length(); i++) {
|
||||||
|
char c = _path.charAt(i);
|
||||||
|
String cs = "" + c;
|
||||||
|
if(reserved.contains(cs) || !unreserved.contains(cs)) {
|
||||||
|
buf = new StringBuffer(_path.length() << 1);
|
||||||
|
break loop;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(buf == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
synchronized(buf) {
|
||||||
|
for(int i = 0; i < _path.length(); i++) {
|
||||||
|
char c = _path.charAt(i);
|
||||||
|
String cs = "" + c;
|
||||||
|
if(reserved.contains(cs) || !unreserved.contains(cs)) {
|
||||||
|
if((c & 0xff) == c) {
|
||||||
|
buf.append(gethex(c & 0xff));
|
||||||
|
} else {
|
||||||
|
buf.append(gethex((c >> 8) & 0xff));
|
||||||
|
buf.append(gethex(c & 0xff));
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
buf.append(c);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return buf;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param decimal value not greater than 255.
|
||||||
|
* @return a percent sign followed by two hexadecimal digits.
|
||||||
|
*/
|
||||||
|
private static String gethex(int decimal) {
|
||||||
|
return new String("%" + hexchars.charAt(decimal >> 4) + hexchars.charAt(decimal & 0xF));
|
||||||
|
}
|
||||||
|
/* ------------------------------------------------------------ */
|
||||||
|
/** Encode a URI path.
|
||||||
|
* @param path The path the encode
|
||||||
|
* @param buf StringBuffer to encode path into (or null)
|
||||||
|
* @param encode String of characters to encode. % is always encoded.
|
||||||
|
* @return The StringBuffer or null if no substitutions required.
|
||||||
|
*/
|
||||||
|
public static StringBuffer encodeString(StringBuffer buf,
|
||||||
|
String path,
|
||||||
|
String encode)
|
||||||
|
{
|
||||||
|
if (buf==null)
|
||||||
|
{
|
||||||
|
loop:
|
||||||
|
for (int i=0;i<path.length();i++)
|
||||||
|
{
|
||||||
|
char c=path.charAt(i);
|
||||||
|
if (c=='%' || encode.indexOf(c)>=0)
|
||||||
|
{
|
||||||
|
buf=new StringBuffer(path.length()<<1);
|
||||||
|
break loop;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (buf==null)
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
synchronized(buf)
|
||||||
|
{
|
||||||
|
for (int i=0;i<path.length();i++)
|
||||||
|
{
|
||||||
|
char c=path.charAt(i);
|
||||||
|
if (c=='%' || encode.indexOf(c)>=0)
|
||||||
|
{
|
||||||
|
buf.append('%');
|
||||||
|
StringUtil.append(buf,(byte)(0xff&c),16);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
buf.append(c);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return buf;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ------------------------------------------------------------ */
|
||||||
|
/* Decode a URI path.
|
||||||
|
* @param path The path the encode
|
||||||
|
* @param buf StringBuffer to encode path into
|
||||||
|
*/
|
||||||
|
public static String decodePath(String path)
|
||||||
|
{
|
||||||
|
int len=path.length();
|
||||||
|
byte[] bytes=null;
|
||||||
|
int n=0;
|
||||||
|
boolean noDecode=true;
|
||||||
|
|
||||||
|
for (int i=0;i<len;i++)
|
||||||
|
{
|
||||||
|
char c = path.charAt(i);
|
||||||
|
|
||||||
|
byte b = (byte)(0xff & c);
|
||||||
|
|
||||||
|
if (c=='%' && (i+2)<len)
|
||||||
|
{
|
||||||
|
noDecode=false;
|
||||||
|
b=(byte)(0xff&TypeUtil.parseInt(path,i+1,2,16));
|
||||||
|
i+=2;
|
||||||
|
}
|
||||||
|
else if (bytes==null)
|
||||||
|
{
|
||||||
|
n++;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (bytes==null)
|
||||||
|
{
|
||||||
|
noDecode=false;
|
||||||
|
bytes=new byte[len];
|
||||||
|
for (int j=0;j<n;j++)
|
||||||
|
bytes[j]=(byte)(0xff & path.charAt(j));
|
||||||
|
}
|
||||||
|
|
||||||
|
bytes[n++]=b;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (noDecode)
|
||||||
|
return path;
|
||||||
|
|
||||||
|
/*
|
||||||
|
try
|
||||||
|
{
|
||||||
|
return new String(bytes,0,n,__CHARSET);
|
||||||
|
}
|
||||||
|
catch(UnsupportedEncodingException e)
|
||||||
|
{
|
||||||
|
log.warn(LogSupport.EXCEPTION,e);
|
||||||
|
return new String(bytes,0,n);
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
return new String(bytes,0,n);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ------------------------------------------------------------ */
|
||||||
|
/** Clone URI.
|
||||||
|
* @return cloned URI
|
||||||
|
*/
|
||||||
|
public Object clone()
|
||||||
|
throws CloneNotSupportedException
|
||||||
|
{
|
||||||
|
URI u = (URI)super.clone();
|
||||||
|
if (_parameters!=null)
|
||||||
|
u._parameters=(UrlEncoded)_parameters.clone();
|
||||||
|
_dirty=false;
|
||||||
|
|
||||||
|
return u;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* ------------------------------------------------------------ */
|
||||||
|
/** Add two URI path segments.
|
||||||
|
* Handles null and empty paths, path and query params (eg ?a=b or
|
||||||
|
* ;JSESSIONID=xxx) and avoids duplicate '/'
|
||||||
|
* @param p1 URI path segment
|
||||||
|
* @param p2 URI path segment
|
||||||
|
* @return Legally combined path segments.
|
||||||
|
*/
|
||||||
|
public static String addPaths(String p1, String p2)
|
||||||
|
{
|
||||||
|
if (p1==null || p1.length()==0)
|
||||||
|
{
|
||||||
|
if (p2==null || p2.length()==0)
|
||||||
|
return p1;
|
||||||
|
return p2;
|
||||||
|
}
|
||||||
|
if (p2==null || p2.length()==0)
|
||||||
|
return p1;
|
||||||
|
|
||||||
|
int split=p1.indexOf(';');
|
||||||
|
if (split<0)
|
||||||
|
split=p1.indexOf('?');
|
||||||
|
if (split==0)
|
||||||
|
return p2+p1;
|
||||||
|
if (split<0)
|
||||||
|
split=p1.length();
|
||||||
|
|
||||||
|
StringBuffer buf = new StringBuffer(p1.length()+p2.length()+2);
|
||||||
|
buf.append(p1);
|
||||||
|
|
||||||
|
if (buf.charAt(split-1)=='/')
|
||||||
|
{
|
||||||
|
if (p2.startsWith("/"))
|
||||||
|
{
|
||||||
|
buf.deleteCharAt(split-1);
|
||||||
|
buf.insert(split-1,p2);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
buf.insert(split,p2);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (p2.startsWith("/"))
|
||||||
|
buf.insert(split,p2);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
buf.insert(split,'/');
|
||||||
|
buf.insert(split+1,p2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return buf.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ------------------------------------------------------------ */
|
||||||
|
/** Return the parent Path.
|
||||||
|
* Treat a URI like a directory path and return the parent directory.
|
||||||
|
*/
|
||||||
|
public static String parentPath(String p)
|
||||||
|
{
|
||||||
|
if (p==null || "/".equals(p))
|
||||||
|
return null;
|
||||||
|
int slash=p.lastIndexOf('/',p.length()-2);
|
||||||
|
if (slash>=0)
|
||||||
|
return p.substring(0,slash+1);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ------------------------------------------------------------ */
|
||||||
|
/** Strip parameters from a path.
|
||||||
|
* Return path upto any semicolon parameters.
|
||||||
|
*/
|
||||||
|
public static String stripPath(String path)
|
||||||
|
{
|
||||||
|
if (path==null)
|
||||||
|
return null;
|
||||||
|
int semi=path.indexOf(';');
|
||||||
|
if (semi<0)
|
||||||
|
return path;
|
||||||
|
return path.substring(0,semi);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ------------------------------------------------------------ */
|
||||||
|
/** Convert a path to a cananonical form.
|
||||||
|
* All instances of "." and ".." are factored out. Null is returned
|
||||||
|
* if the path tries to .. above it's root.
|
||||||
|
* @param path
|
||||||
|
* @return path or null.
|
||||||
|
*/
|
||||||
|
public static String canonicalPath(String path)
|
||||||
|
{
|
||||||
|
if (path==null || path.length()==0)
|
||||||
|
return path;
|
||||||
|
|
||||||
|
int end=path.length();
|
||||||
|
int start = path.lastIndexOf('/', end);
|
||||||
|
|
||||||
|
search:
|
||||||
|
while (end>0)
|
||||||
|
{
|
||||||
|
switch(end-start)
|
||||||
|
{
|
||||||
|
case 2: // possible single dot
|
||||||
|
if (path.charAt(start+1)!='.')
|
||||||
|
break;
|
||||||
|
break search;
|
||||||
|
case 3: // possible double dot
|
||||||
|
if (path.charAt(start+1)!='.' || path.charAt(start+2)!='.')
|
||||||
|
break;
|
||||||
|
break search;
|
||||||
|
}
|
||||||
|
|
||||||
|
end=start;
|
||||||
|
start=path.lastIndexOf('/',end-1);
|
||||||
|
}
|
||||||
|
|
||||||
|
// If we have checked the entire string
|
||||||
|
if (start>=end)
|
||||||
|
return path;
|
||||||
|
|
||||||
|
StringBuffer buf = new StringBuffer(path);
|
||||||
|
int delStart=-1;
|
||||||
|
int delEnd=-1;
|
||||||
|
int skip=0;
|
||||||
|
|
||||||
|
while (end>0)
|
||||||
|
{
|
||||||
|
switch(end-start)
|
||||||
|
{
|
||||||
|
case 2: // possible single dot
|
||||||
|
if (buf.charAt(start+1)!='.')
|
||||||
|
{
|
||||||
|
if (skip>0 && --skip==0)
|
||||||
|
{
|
||||||
|
delStart=start>=0?start:0;
|
||||||
|
if(delStart>0 && delEnd==buf.length() && buf.charAt(delEnd-1)=='.')
|
||||||
|
delStart++;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(start<0 && buf.length()>2 && buf.charAt(1)=='/' && buf.charAt(2)=='/')
|
||||||
|
break;
|
||||||
|
|
||||||
|
if(delEnd<0)
|
||||||
|
delEnd=end;
|
||||||
|
delStart=start;
|
||||||
|
if (delStart<0 || delStart==0&&buf.charAt(delStart)=='/')
|
||||||
|
{
|
||||||
|
delStart++;
|
||||||
|
if (delEnd<buf.length() && buf.charAt(delEnd)=='/')
|
||||||
|
delEnd++;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (end==buf.length())
|
||||||
|
delStart++;
|
||||||
|
|
||||||
|
end=start--;
|
||||||
|
while (start>=0 && buf.charAt(start)!='/')
|
||||||
|
start--;
|
||||||
|
continue;
|
||||||
|
|
||||||
|
case 3: // possible double dot
|
||||||
|
if (buf.charAt(start+1)!='.' || buf.charAt(start+2)!='.')
|
||||||
|
{
|
||||||
|
if (skip>0 && --skip==0)
|
||||||
|
{ delStart=start>=0?start:0;
|
||||||
|
if(delStart>0 && delEnd==buf.length() && buf.charAt(delEnd-1)=='.')
|
||||||
|
delStart++;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
delStart=start;
|
||||||
|
if (delEnd<0)
|
||||||
|
delEnd=end;
|
||||||
|
|
||||||
|
skip++;
|
||||||
|
end=start--;
|
||||||
|
while (start>=0 && buf.charAt(start)!='/')
|
||||||
|
start--;
|
||||||
|
continue;
|
||||||
|
|
||||||
|
default:
|
||||||
|
if (skip>0 && --skip==0)
|
||||||
|
{
|
||||||
|
delStart=start>=0?start:0;
|
||||||
|
if(delEnd==buf.length() && buf.charAt(delEnd-1)=='.')
|
||||||
|
delStart++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Do the delete
|
||||||
|
if (skip<=0 && delStart>=0 && delStart>=0)
|
||||||
|
{
|
||||||
|
buf.delete(delStart,delEnd);
|
||||||
|
delStart=delEnd=-1;
|
||||||
|
if (skip>0)
|
||||||
|
delEnd=end;
|
||||||
|
}
|
||||||
|
|
||||||
|
end=start--;
|
||||||
|
while (start>=0 && buf.charAt(start)!='/')
|
||||||
|
start--;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Too many ..
|
||||||
|
if (skip>0)
|
||||||
|
return null;
|
||||||
|
|
||||||
|
// Do the delete
|
||||||
|
if (delEnd>=0)
|
||||||
|
buf.delete(delStart,delEnd);
|
||||||
|
|
||||||
|
return buf.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ------------------------------------------------------------ */
|
||||||
|
/**
|
||||||
|
* @param uri URI
|
||||||
|
* @return True if the uri has a scheme
|
||||||
|
*/
|
||||||
|
public static boolean hasScheme(String uri)
|
||||||
|
{
|
||||||
|
for (int i=0;i<uri.length();i++)
|
||||||
|
{
|
||||||
|
char c=uri.charAt(i);
|
||||||
|
if (c==':')
|
||||||
|
return true;
|
||||||
|
if (!(c>='a'&&c<='z' ||
|
||||||
|
c>='A'&&c<='Z' ||
|
||||||
|
(i>0 &&(c>='0'&&c<='9' ||
|
||||||
|
c=='.' ||
|
||||||
|
c=='+' ||
|
||||||
|
c=='-'))
|
||||||
|
))
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -267,7 +267,7 @@ public class SummaryBarRenderer {
|
|||||||
.append(":</b></td><td align=\"right\">");
|
.append(":</b></td><td align=\"right\">");
|
||||||
int active = _helper.getActivePeers();
|
int active = _helper.getActivePeers();
|
||||||
buf.append(active)
|
buf.append(active)
|
||||||
.append(" / ")
|
.append(SummaryHelper.THINSP)
|
||||||
.append(Math.max(active, _helper.getActiveProfiles()))
|
.append(Math.max(active, _helper.getActiveProfiles()))
|
||||||
.append("</td></tr>\n" +
|
.append("</td></tr>\n" +
|
||||||
|
|
||||||
@ -351,7 +351,7 @@ public class SummaryBarRenderer {
|
|||||||
"<table>\n" +
|
"<table>\n" +
|
||||||
|
|
||||||
"<tr><td align=\"left\"><b>")
|
"<tr><td align=\"left\"><b>")
|
||||||
.append(_("1 sec")) // formatDuration2() would say 1000 ms
|
.append(DataHelper.formatDuration2(3 * 1000)) // lie and say 3 sec since 1 sec would appear as 1000 ms
|
||||||
.append(":</b></td><td align=\"right\">")
|
.append(":</b></td><td align=\"right\">")
|
||||||
.append(_helper.getSecondKBps())
|
.append(_helper.getSecondKBps())
|
||||||
.append("Bps</td></tr>\n");
|
.append("Bps</td></tr>\n");
|
||||||
@ -376,7 +376,7 @@ public class SummaryBarRenderer {
|
|||||||
.append(_("Used"))
|
.append(_("Used"))
|
||||||
.append(":</b></td><td align=\"right\">")
|
.append(":</b></td><td align=\"right\">")
|
||||||
.append(_helper.getInboundTransferred())
|
.append(_helper.getInboundTransferred())
|
||||||
.append(" / ")
|
.append(SummaryHelper.THINSP)
|
||||||
.append(_helper.getOutboundTransferred())
|
.append(_helper.getOutboundTransferred())
|
||||||
.append("</td></tr></table>\n" +
|
.append("</td></tr></table>\n" +
|
||||||
|
|
||||||
|
@ -29,6 +29,11 @@ import net.i2p.stat.RateStat;
|
|||||||
* the summary sections on the router console.
|
* the summary sections on the router console.
|
||||||
*/
|
*/
|
||||||
public class SummaryHelper extends HelperBase {
|
public class SummaryHelper extends HelperBase {
|
||||||
|
|
||||||
|
// Opera 10.63 doesn't have the char, TODO check UA
|
||||||
|
//static final String THINSP = " / ";
|
||||||
|
static final String THINSP = " / ";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Retrieve the shortened 4 character ident for the router located within
|
* Retrieve the shortened 4 character ident for the router located within
|
||||||
* the current JVM at the given context.
|
* the current JVM at the given context.
|
||||||
@ -321,7 +326,7 @@ public class SummaryHelper extends HelperBase {
|
|||||||
fmt = new DecimalFormat("#0.0");
|
fmt = new DecimalFormat("#0.0");
|
||||||
else
|
else
|
||||||
fmt = new DecimalFormat("#0.00");
|
fmt = new DecimalFormat("#0.00");
|
||||||
return fmt.format(in) + " / " + fmt.format(out) + " " +
|
return fmt.format(in) + THINSP + fmt.format(out) + " " +
|
||||||
(mega ? 'M' : 'K');
|
(mega ? 'M' : 'K');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -9,7 +9,7 @@ msgstr ""
|
|||||||
"Project-Id-Version: I2P routerconsole\n"
|
"Project-Id-Version: I2P routerconsole\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2010-12-12 23:29+0000\n"
|
"POT-Creation-Date: 2010-12-12 23:29+0000\n"
|
||||||
"PO-Revision-Date: 2010-12-13 01:17+0100\n"
|
"PO-Revision-Date: 2010-12-19 04:36+0100\n"
|
||||||
"Last-Translator: mixxy <m1xxy@mail.i2p>\n"
|
"Last-Translator: mixxy <m1xxy@mail.i2p>\n"
|
||||||
"Language-Team: echelon <echelon@mail.i2p>, Sperreingang <sperrbezirk@mail.i2p>\n"
|
"Language-Team: echelon <echelon@mail.i2p>, Sperreingang <sperrbezirk@mail.i2p>\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
@ -1759,7 +1759,7 @@ msgstr "zum Schlüsselbund hinzugefügt"
|
|||||||
|
|
||||||
#: ../java/src/net/i2p/router/web/ConfigKeyringHandler.java:36
|
#: ../java/src/net/i2p/router/web/ConfigKeyringHandler.java:36
|
||||||
msgid "Invalid destination or key"
|
msgid "Invalid destination or key"
|
||||||
msgstr "Ungültiges Ziel oder Schlüssel"
|
msgstr "ungültiges Ziel oder Schlüssel"
|
||||||
|
|
||||||
#: ../java/src/net/i2p/router/web/ConfigKeyringHandler.java:41
|
#: ../java/src/net/i2p/router/web/ConfigKeyringHandler.java:41
|
||||||
msgid "removed from keyring"
|
msgid "removed from keyring"
|
||||||
@ -1771,7 +1771,7 @@ msgstr "nicht im Schlüsselbund gefunden"
|
|||||||
|
|
||||||
#: ../java/src/net/i2p/router/web/ConfigKeyringHandler.java:45
|
#: ../java/src/net/i2p/router/web/ConfigKeyringHandler.java:45
|
||||||
msgid "Invalid destination"
|
msgid "Invalid destination"
|
||||||
msgstr "Ungültiges Ziel"
|
msgstr "ungültiges Ziel"
|
||||||
|
|
||||||
#: ../java/src/net/i2p/router/web/ConfigLoggingHandler.java:82
|
#: ../java/src/net/i2p/router/web/ConfigLoggingHandler.java:82
|
||||||
msgid "Log overrides updated"
|
msgid "Log overrides updated"
|
||||||
@ -2000,7 +2000,7 @@ msgstr "gesperrt bis zum Neustart"
|
|||||||
#: ../java/src/net/i2p/router/web/ConfigPeerHandler.java:38
|
#: ../java/src/net/i2p/router/web/ConfigPeerHandler.java:38
|
||||||
#: ../java/src/net/i2p/router/web/ConfigPeerHandler.java:59
|
#: ../java/src/net/i2p/router/web/ConfigPeerHandler.java:59
|
||||||
msgid "Invalid peer"
|
msgid "Invalid peer"
|
||||||
msgstr "Ungültiger Teilnehmer"
|
msgstr "ungültiger Teilnehmer"
|
||||||
|
|
||||||
#: ../java/src/net/i2p/router/web/ConfigPeerHandler.java:28
|
#: ../java/src/net/i2p/router/web/ConfigPeerHandler.java:28
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:317
|
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:317
|
||||||
@ -2022,11 +2022,11 @@ msgstr "Teilnehmer-Boni anpassen"
|
|||||||
|
|
||||||
#: ../java/src/net/i2p/router/web/ConfigPeerHandler.java:47
|
#: ../java/src/net/i2p/router/web/ConfigPeerHandler.java:47
|
||||||
msgid "Bad speed value"
|
msgid "Bad speed value"
|
||||||
msgstr "Ungültige Geschwindigkeitsangabe"
|
msgstr "ungültige Geschwindigkeitsangabe"
|
||||||
|
|
||||||
#: ../java/src/net/i2p/router/web/ConfigPeerHandler.java:52
|
#: ../java/src/net/i2p/router/web/ConfigPeerHandler.java:52
|
||||||
msgid "Bad capacity value"
|
msgid "Bad capacity value"
|
||||||
msgstr "Ungültiger Wert zur Kapazität"
|
msgstr "ungültiger Wert für die Kapazität"
|
||||||
|
|
||||||
#. Normal browsers send value, IE sends button label
|
#. Normal browsers send value, IE sends button label
|
||||||
#: ../java/src/net/i2p/router/web/ConfigRestartBean.java:32
|
#: ../java/src/net/i2p/router/web/ConfigRestartBean.java:32
|
||||||
@ -2510,7 +2510,7 @@ msgstr "Datei nicht gefunden"
|
|||||||
|
|
||||||
#: ../java/src/net/i2p/router/web/LogsHelper.java:52
|
#: ../java/src/net/i2p/router/web/LogsHelper.java:52
|
||||||
msgid "No log messages"
|
msgid "No log messages"
|
||||||
msgstr "Keine Ereignisse"
|
msgstr "keine Ereignisse"
|
||||||
|
|
||||||
#: ../java/src/net/i2p/router/web/NetDbRenderer.java:80
|
#: ../java/src/net/i2p/router/web/NetDbRenderer.java:80
|
||||||
msgid "Network Database RouterInfo Lookup"
|
msgid "Network Database RouterInfo Lookup"
|
||||||
@ -2544,11 +2544,11 @@ msgstr "LeaseSet"
|
|||||||
|
|
||||||
#: ../java/src/net/i2p/router/web/NetDbRenderer.java:133
|
#: ../java/src/net/i2p/router/web/NetDbRenderer.java:133
|
||||||
msgid "Local"
|
msgid "Local"
|
||||||
msgstr "Lokal"
|
msgstr "lokal"
|
||||||
|
|
||||||
#: ../java/src/net/i2p/router/web/NetDbRenderer.java:135
|
#: ../java/src/net/i2p/router/web/NetDbRenderer.java:135
|
||||||
msgid "Unpublished"
|
msgid "Unpublished"
|
||||||
msgstr "Unveröffentlicht"
|
msgstr "unveröffentlicht"
|
||||||
|
|
||||||
#: ../java/src/net/i2p/router/web/NetDbRenderer.java:136
|
#: ../java/src/net/i2p/router/web/NetDbRenderer.java:136
|
||||||
#: ../java/src/net/i2p/router/web/NetDbRenderer.java:143
|
#: ../java/src/net/i2p/router/web/NetDbRenderer.java:143
|
||||||
@ -2685,12 +2685,12 @@ msgstr "NTCP und SSU mit Hilfsrouter"
|
|||||||
#: ../java/src/net/i2p/router/web/NewsFetcher.java:93
|
#: ../java/src/net/i2p/router/web/NewsFetcher.java:93
|
||||||
#, java-format
|
#, java-format
|
||||||
msgid "News last updated {0} ago."
|
msgid "News last updated {0} ago."
|
||||||
msgstr "Nachrichten wurden vor {0} aktualisiert"
|
msgstr "Zeit seit letzter Aktualisierung der Nachrichten: {0}"
|
||||||
|
|
||||||
#: ../java/src/net/i2p/router/web/NewsFetcher.java:99
|
#: ../java/src/net/i2p/router/web/NewsFetcher.java:99
|
||||||
#, java-format
|
#, java-format
|
||||||
msgid "News last checked {0} ago."
|
msgid "News last checked {0} ago."
|
||||||
msgstr "Vor {0} wurde auf neue Nachrichten geprüft"
|
msgstr "Zeit seit letzter Prüfung auf neue Nachrichten: {0}"
|
||||||
|
|
||||||
#: ../java/src/net/i2p/router/web/PluginUpdateChecker.java:77
|
#: ../java/src/net/i2p/router/web/PluginUpdateChecker.java:77
|
||||||
#, java-format
|
#, java-format
|
||||||
@ -3178,7 +3178,7 @@ msgstr "innerhalb dieser Periode, welche vor {0} endete."
|
|||||||
|
|
||||||
#: ../java/src/net/i2p/router/web/StatsGenerator.java:204
|
#: ../java/src/net/i2p/router/web/StatsGenerator.java:204
|
||||||
msgid "No events"
|
msgid "No events"
|
||||||
msgstr "Keine Ereignisse"
|
msgstr "keine Ereignisse"
|
||||||
|
|
||||||
#: ../java/src/net/i2p/router/web/StatsGenerator.java:210
|
#: ../java/src/net/i2p/router/web/StatsGenerator.java:210
|
||||||
msgid "Average event count"
|
msgid "Average event count"
|
||||||
|
5211
apps/routerconsole/locale/messages_es.po
Normal file
5211
apps/routerconsole/locale/messages_es.po
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -9,7 +9,7 @@ msgstr ""
|
|||||||
"Project-Id-Version: I2P susidns\n"
|
"Project-Id-Version: I2P susidns\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2010-11-08 18:21+0000\n"
|
"POT-Creation-Date: 2010-11-08 18:21+0000\n"
|
||||||
"PO-Revision-Date: 2010-11-09 01:52+0100\n"
|
"PO-Revision-Date: 2010-12-19 04:36+0100\n"
|
||||||
"Last-Translator: mixxy <m1xxy@mail.i2p>\n"
|
"Last-Translator: mixxy <m1xxy@mail.i2p>\n"
|
||||||
"Language-Team: foo <foo@bar>\n"
|
"Language-Team: foo <foo@bar>\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
|
@ -8,7 +8,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: I2P susidns\n"
|
"Project-Id-Version: I2P susidns\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2010-07-05 22:40+0000\n"
|
"POT-Creation-Date: 2010-12-17 15:05+0000\n"
|
||||||
"PO-Revision-Date: 2010-06-15 11:22+0100\n"
|
"PO-Revision-Date: 2010-06-15 11:22+0100\n"
|
||||||
"Last-Translator: duck <duck@mail.i2p>\n"
|
"Last-Translator: duck <duck@mail.i2p>\n"
|
||||||
"Language-Team: duck <duck@mail.i2p>, monkeybrains <monkeybrains@mail.i2p>\n"
|
"Language-Team: duck <duck@mail.i2p>, monkeybrains <monkeybrains@mail.i2p>\n"
|
||||||
@ -17,63 +17,63 @@ msgstr ""
|
|||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Poedit-Language: Dutch\n"
|
"X-Poedit-Language: Dutch\n"
|
||||||
|
|
||||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:199
|
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:200
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:193
|
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:193
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:197
|
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:197
|
||||||
msgid "Search"
|
msgid "Search"
|
||||||
msgstr "Zoek"
|
msgstr "Zoek"
|
||||||
|
|
||||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:203
|
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:204
|
||||||
msgid "Search within filtered list"
|
msgid "Search within filtered list"
|
||||||
msgstr "Zoek binnen gefilterde lijst"
|
msgstr "Zoek binnen gefilterde lijst"
|
||||||
|
|
||||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:205
|
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:206
|
||||||
msgid "Filtered list"
|
msgid "Filtered list"
|
||||||
msgstr "Gefilterde lijst"
|
msgstr "Gefilterde lijst"
|
||||||
|
|
||||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:209
|
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:210
|
||||||
msgid "no matches"
|
msgid "no matches"
|
||||||
msgstr "geen resultaten"
|
msgstr "geen resultaten"
|
||||||
|
|
||||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:212
|
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:213
|
||||||
msgid "Addressbook"
|
msgid "Addressbook"
|
||||||
msgstr "Adresboek"
|
msgstr "Adresboek"
|
||||||
|
|
||||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:214
|
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:215
|
||||||
msgid "contains no entries"
|
msgid "contains no entries"
|
||||||
msgstr "bevat geen items"
|
msgstr "bevat geen items"
|
||||||
|
|
||||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:216
|
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:217
|
||||||
msgid "contains 1 entry"
|
msgid "contains 1 entry"
|
||||||
msgstr "bevat 1 item"
|
msgstr "bevat 1 item"
|
||||||
|
|
||||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:218
|
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:219
|
||||||
#, java-format
|
#, java-format
|
||||||
msgid "contains {0} entries"
|
msgid "contains {0} entries"
|
||||||
msgstr "bevat {0} items"
|
msgstr "bevat {0} items"
|
||||||
|
|
||||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:228
|
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:229
|
||||||
#, java-format
|
#, java-format
|
||||||
msgid "Showing {0} of {1}"
|
msgid "Showing {0} of {1}"
|
||||||
msgstr "Toon {0} van {1}"
|
msgstr "Toon {0} van {1}"
|
||||||
|
|
||||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:259
|
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:260
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:368
|
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:368
|
||||||
msgid "Add"
|
msgid "Add"
|
||||||
msgstr "Toevoegen"
|
msgstr "Toevoegen"
|
||||||
|
|
||||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:259
|
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:260
|
||||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:264
|
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:265
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:366
|
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:366
|
||||||
msgid "Replace"
|
msgid "Replace"
|
||||||
msgstr "Vervang"
|
msgstr "Vervang"
|
||||||
|
|
||||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:263
|
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:264
|
||||||
#, java-format
|
#, java-format
|
||||||
msgid "Host name {0} is already in addressbook, unchanged."
|
msgid "Host name {0} is already in addressbook, unchanged."
|
||||||
msgstr "Host naam {0} is al in het adresboek, ongewijzigd."
|
msgstr "Host naam {0} is al in het adresboek, ongewijzigd."
|
||||||
|
|
||||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:265
|
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:266
|
||||||
#, java-format
|
#, java-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Host name {0} is already in addressbook with a different destination. Click "
|
"Host name {0} is already in addressbook with a different destination. Click "
|
||||||
@ -82,50 +82,50 @@ msgstr ""
|
|||||||
"Host naam {0} is al in het adresboek met een andere destination. Klik op "
|
"Host naam {0} is al in het adresboek met een andere destination. Klik op "
|
||||||
"\"Vervang\" om te overschrijven."
|
"\"Vervang\" om te overschrijven."
|
||||||
|
|
||||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:277
|
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:278
|
||||||
#, java-format
|
#, java-format
|
||||||
msgid "Destination added for {0}."
|
msgid "Destination added for {0}."
|
||||||
msgstr "Destination toegevoegd voor {0}."
|
msgstr "Destination toegevoegd voor {0}."
|
||||||
|
|
||||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:279
|
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:280
|
||||||
#, java-format
|
#, java-format
|
||||||
msgid "Destination changed for {0}."
|
msgid "Destination changed for {0}."
|
||||||
msgstr "Destination gewijzigd voor {0}."
|
msgstr "Destination gewijzigd voor {0}."
|
||||||
|
|
||||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:284
|
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:285
|
||||||
msgid "Invalid Base 64 destination."
|
msgid "Invalid Base 64 destination."
|
||||||
msgstr "Ongeldige Base 64 destination."
|
msgstr "Ongeldige Base 64 destination."
|
||||||
|
|
||||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:288
|
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:289
|
||||||
msgid "Please enter a host name and destination"
|
msgid "Please enter a host name and destination"
|
||||||
msgstr "Voer een host naam en destination in"
|
msgstr "Voer een host naam en destination in"
|
||||||
|
|
||||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:292
|
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:293
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:314
|
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:314
|
||||||
msgid "Delete Selected"
|
msgid "Delete Selected"
|
||||||
msgstr "Verwijderen Selectie"
|
msgstr "Verwijderen Selectie"
|
||||||
|
|
||||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:302
|
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:303
|
||||||
#, java-format
|
#, java-format
|
||||||
msgid "Destination {0} deleted."
|
msgid "Destination {0} deleted."
|
||||||
msgstr "Destination {0} verwijderd."
|
msgstr "Destination {0} verwijderd."
|
||||||
|
|
||||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:304
|
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:305
|
||||||
#, java-format
|
#, java-format
|
||||||
msgid "{0} destinations deleted."
|
msgid "{0} destinations deleted."
|
||||||
msgstr "{0} destinations verwijderd."
|
msgstr "{0} destinations verwijderd."
|
||||||
|
|
||||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:310
|
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:311
|
||||||
msgid "Addressbook saved."
|
msgid "Addressbook saved."
|
||||||
msgstr "Adresboek opgeslagen."
|
msgstr "Adresboek opgeslagen."
|
||||||
|
|
||||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:313
|
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:314
|
||||||
msgid "ERROR: Could not write addressbook file."
|
msgid "ERROR: Could not write addressbook file."
|
||||||
msgstr "ERROR: Kan het adresboek bestand niet wegschrijven."
|
msgstr "ERROR: Kan het adresboek bestand niet wegschrijven."
|
||||||
|
|
||||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:318
|
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:319
|
||||||
#: ../src/java/src/i2p/susi/dns/ConfigBean.java:148
|
#: ../src/java/src/i2p/susi/dns/ConfigBean.java:148
|
||||||
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:150
|
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:151
|
||||||
msgid ""
|
msgid ""
|
||||||
"Invalid form submission, probably because you used the \"back\" or \"reload"
|
"Invalid form submission, probably because you used the \"back\" or \"reload"
|
||||||
"\" button on your browser. Please resubmit."
|
"\" button on your browser. Please resubmit."
|
||||||
@ -134,7 +134,7 @@ msgstr ""
|
|||||||
"\"vernieuw\" knop in je browser hebt gebruikt. Probeer opnieuw te verzenden."
|
"\"vernieuw\" knop in je browser hebt gebruikt. Probeer opnieuw te verzenden."
|
||||||
|
|
||||||
#: ../src/java/src/i2p/susi/dns/ConfigBean.java:139
|
#: ../src/java/src/i2p/susi/dns/ConfigBean.java:139
|
||||||
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:129
|
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:130
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:130
|
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:130
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:130
|
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:130
|
||||||
msgid "Save"
|
msgid "Save"
|
||||||
@ -145,7 +145,7 @@ msgid "Configuration saved."
|
|||||||
msgstr "Configuratie opgeslagen."
|
msgstr "Configuratie opgeslagen."
|
||||||
|
|
||||||
#: ../src/java/src/i2p/susi/dns/ConfigBean.java:142
|
#: ../src/java/src/i2p/susi/dns/ConfigBean.java:142
|
||||||
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:144
|
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:145
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:128
|
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:128
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:128
|
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:128
|
||||||
msgid "Reload"
|
msgid "Reload"
|
||||||
@ -160,18 +160,18 @@ msgstr "Configuratie herladen."
|
|||||||
#. Fetching from the addressbook servlet
|
#. Fetching from the addressbook servlet
|
||||||
#. with the correct parameters will kick off a
|
#. with the correct parameters will kick off a
|
||||||
#. config reload and fetch.
|
#. config reload and fetch.
|
||||||
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:138
|
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:139
|
||||||
msgid ""
|
msgid ""
|
||||||
"Subscriptions saved, updating addressbook from subscription sources now."
|
"Subscriptions saved, updating addressbook from subscription sources now."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Subscriptions opgeslagen, adresboek wordt nu vernieuwd van de subscription "
|
"Subscriptions opgeslagen, adresboek wordt nu vernieuwd van de subscription "
|
||||||
"bronnen."
|
"bronnen."
|
||||||
|
|
||||||
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:142
|
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:143
|
||||||
msgid "Subscriptions saved."
|
msgid "Subscriptions saved."
|
||||||
msgstr "Subscriptions opgeslagen."
|
msgstr "Subscriptions opgeslagen."
|
||||||
|
|
||||||
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:146
|
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:147
|
||||||
msgid "Subscriptions reloaded."
|
msgid "Subscriptions reloaded."
|
||||||
msgstr "Subscriptions herladen."
|
msgstr "Subscriptions herladen."
|
||||||
|
|
||||||
|
@ -529,7 +529,7 @@
|
|||||||
|
|
||||||
<!-- readme and proxy error page files, initialNews.xml files, GeoIP files, and flag icons -->
|
<!-- readme and proxy error page files, initialNews.xml files, GeoIP files, and flag icons -->
|
||||||
<target name="prepConsoleDocs" depends="prepConsoleDocUpdates, prepgeoupdate" >
|
<target name="prepConsoleDocs" depends="prepConsoleDocUpdates, prepgeoupdate" >
|
||||||
<copy todir="pkg-temp/docs/" >
|
<copy todir="pkg-temp/docs/initialNews/">
|
||||||
<fileset dir="installer/resources/initialNews/" />
|
<fileset dir="installer/resources/initialNews/" />
|
||||||
</copy>
|
</copy>
|
||||||
</target>
|
</target>
|
||||||
|
@ -16,7 +16,7 @@ package net.i2p;
|
|||||||
public class CoreVersion {
|
public class CoreVersion {
|
||||||
/** deprecated */
|
/** deprecated */
|
||||||
public final static String ID = "Monotone";
|
public final static String ID = "Monotone";
|
||||||
public final static String VERSION = "0.8.1";
|
public final static String VERSION = "0.8.2";
|
||||||
|
|
||||||
public static void main(String args[]) {
|
public static void main(String args[]) {
|
||||||
System.out.println("I2P Core version: " + VERSION);
|
System.out.println("I2P Core version: " + VERSION);
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
* 2010-12-22 0.8.2 released
|
||||||
|
|
||||||
2010-12-13 dr|z3d
|
2010-12-13 dr|z3d
|
||||||
* Console themes: Midnight & Classic renovations.
|
* Console themes: Midnight & Classic renovations.
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
<info>
|
<info>
|
||||||
<appname>i2p</appname>
|
<appname>i2p</appname>
|
||||||
<appversion>0.8.1</appversion>
|
<appversion>0.8.2</appversion>
|
||||||
<authors>
|
<authors>
|
||||||
<author name="I2P" email="http://forum.i2p2.de/"/>
|
<author name="I2P" email="http://forum.i2p2.de/"/>
|
||||||
</authors>
|
</authors>
|
||||||
|
@ -1,25 +1,24 @@
|
|||||||
<!--
|
<!--
|
||||||
<i2p.news date="$Date: 2010-11-15 00:00:00 $">
|
<i2p.news date="$Date: 2010-12-22 00:00:00 $">
|
||||||
<i2p.release version="0.8.1" date="2010/11/15" minVersion="0.6" />
|
<i2p.release version="0.8.2" date="2010/12/22" minVersion="0.6" />
|
||||||
-->
|
-->
|
||||||
<div lang="en">
|
<div lang="en">
|
||||||
<h3>2010-11-15: <b>0.8.1 <a href="http://www.i2p2.i2p/release-0.8.1.html">Released</a></b></h3>
|
<h3>2010-12-22: <b>0.8.2 <a href="http://www.i2p2.i2p/release-0.8.2.html">Released</a></b></h3>
|
||||||
<p>
|
<p>
|
||||||
The 0.8.1 release contains the usual collection of bug fixes,
|
The 0.8.2 release includes extensive bug fixes and theme updates in the router and in i2psnark.
|
||||||
and a newly colorful i2psnark theme by dr|zed.
|
There are also optimizations to reduce memory usage in i2psnark.
|
||||||
For increased security, files created by the router will now be readable only by the owner (mode 600).
|
The HTTP and SOCKS proxies now support local and remote authorization.
|
||||||
As usual, upgrading is recommended.
|
As usual, upgrading is recommended.
|
||||||
</p><p>
|
</p><p>
|
||||||
We have updated all our <a href="http://www.i2p2.i2p/how">technical specifications</a>
|
I2P will be at 27C3 in Berlin the week of the December 27th.
|
||||||
and <a href="http://docs.i2p2.de/javadoc/">Javadocs</a>, check them out.
|
Look for the I2P people there and ask for I2P stickers!
|
||||||
|
</p><p>
|
||||||
Please help grow the network!
|
Please help grow the network.
|
||||||
Say hello to the volunteers on the <a href="irc://127.0.0.1:6668/i2p-help">#i2p-help IRC channel</a>.
|
Say hello to the volunteers on the <a href="irc://127.0.0.1:6668/i2p-help">#i2p-help IRC channel</a>.
|
||||||
Give the
|
<a href="http://www.i2p2.i2p/getinvolved.html">Get involved</a>,
|
||||||
developers feedback on <a href="irc://127.0.0.1:6668/i2p">IRC #i2p</a> or <a href="http://forum.i2p">forum.i2p</a>
|
|
||||||
and <a href="http://www.i2p2.i2p/getinvolved.html">get involved</a>,
|
|
||||||
spread the word,
|
spread the word,
|
||||||
and <a href="http://www.i2p2.i2p/donate.html">donate</a>!
|
and <a href="http://www.i2p2.i2p/donate.html">donate</a>!
|
||||||
|
If you find a bug, please enter a report on <a href="http://trac.i2p2.i2p/report/1">trac</a>.
|
||||||
We are still looking for volunteers to work on new and existing translations.
|
We are still looking for volunteers to work on new and existing translations.
|
||||||
Please volunteer on <a href="irc://127.0.0.1:6668/i2p">IRC #i2p</a>.
|
Please volunteer on <a href="irc://127.0.0.1:6668/i2p">IRC #i2p</a>.
|
||||||
</p>
|
</p>
|
||||||
|
@ -11,17 +11,17 @@ Proxy-Connection: close
|
|||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div class=logo>
|
<div class=logo>
|
||||||
<a href="http://127.0.0.1:7657/index.jsp" title="Router Console"><img src="http://proxy.i2p/themes/console/images/i2plogo.png" alt="I2P Router Console" border="0"></a><hr>
|
<a href="http://127.0.0.1:7657/index.jsp" title="Routerkonsole"><img src="http://proxy.i2p/themes/console/images/i2plogo.png" alt="I2P Router Console" border="0"></a><hr>
|
||||||
<a href="http://127.0.0.1:7657/config.jsp">Configuratie</a> <a href="http://127.0.0.1:7657/help.jsp">Help</a> <a href="http://127.0.0.1:7657/susidns/">Adresboek</a>
|
<a href="http://127.0.0.1:7657/config.jsp">Einstellungen</a> <a href="http://127.0.0.1:7657/help.jsp">Hilfe</a> <a href="http://127.0.0.1:7657/susidns/">Adressbuch</a>
|
||||||
</div>
|
</div>
|
||||||
<div class=warning id=warning>
|
<div class=warning id=warning>
|
||||||
<h3>Warnung: Zielkonflikt</h3>
|
<h3>Warnung: Zielkonflikt</h3>
|
||||||
Dier Adresshelperverweis, dem Sie folgen wollen, verwendet für diesen Hostnamen ein anderes kryptographisches Ziel
|
Der Adresshelferverweis, dem Sie folgen wollen, verwendet für diesen Hostnamen ein anderes kryptographisches Ziel
|
||||||
als im zugehörigen Eintrag in Ihrem Routeradressbuch angegeben.
|
als im zugehörigen Eintrag in Ihrem Routeradressbuch angegeben.
|
||||||
Jemand könnte versuchen, fälschlicherweise eine andere Eepseite als die gesuchte auszugeben.
|
Jemand könnte versuchen, fälschlicherweise eine andere als die gesuchte Eepseite auszugeben.
|
||||||
Möglicherweise haben aber die betreiber beider Eepseiten auch nur zufällig denselben Namen ausgewählt.
|
Möglicherweise haben aber die betreiber beider Eepseiten nur zufällig denselben Namen ausgewählt.
|
||||||
<p>
|
<p>
|
||||||
Diesen Konflikt können sie lösen, indem Sie entscheiden, welchem Ziel Sie trauen, das gesuchte zu sein,
|
Diesen Konflikt können Sie lösen, indem Sie entscheiden, welchem Ziel Sie trauen, das gesuchte zu sein,
|
||||||
und dann entweder den Verweis des Adresshelfers verwerfen, den Eintrag in Ihrem Routeradressbuch löschen,
|
und dann entweder den Verweis des Adresshelfers verwerfen, den Eintrag in Ihrem Routeradressbuch löschen,
|
||||||
oder beiden Zielen unterschiedliche Namen zuweisen.
|
oder beiden Zielen unterschiedliche Namen zuweisen.
|
||||||
<p>
|
<p>
|
||||||
|
@ -13,11 +13,11 @@ Proxy-Connection: close
|
|||||||
<body>
|
<body>
|
||||||
<div class=warning id=warning>
|
<div class=warning id=warning>
|
||||||
<h3>Autorisierung für den I2P-HTTP-Proxy erforderlich</h3>
|
<h3>Autorisierung für den I2P-HTTP-Proxy erforderlich</h3>
|
||||||
Dieser Proxy ist eingestellt, Zugang nur für gültige Kombinationen aus einem Benutzernamen und einem Passwort zuzulasseen.
|
Dieser Proxy ist so eingestellt, dass er Zugang nur für gültige Kombinationen aus einem Benutzernamen und einem Passwort zulässt.
|
||||||
Bitte geben Sie Ihren Benutzernamen und Passwort an, überprüfen Sie Ihre
|
Bitte geben Sie Ihren Benutzernamen und Passwort an bzw. überprüfen Sie Ihre
|
||||||
<a href="http://127.0.0.1:7657/advancedconfig.jsp">Routereinstellungen</a>
|
<a href="http://127.0.0.1:7657/advancedconfig.jsp">Routereinstellungen</a>
|
||||||
oder Ihre
|
oder Ihre
|
||||||
<a href="http://127.0.0.1:7657/i2ptunnel/index.jsp">I2PTunnel-Einstellungen</a>!
|
<a href="http://127.0.0.1:7657/i2ptunnel/index.jsp">I2PTunnel-Einstellungen</a>!
|
||||||
Um das Autrorsierungserfordernis zu aufzuheben, entfernen Sie
|
Um das Autorsierungserfordernis aufzuheben, entfernen Sie
|
||||||
<code>i2ptunnel.proxy.auth=basic</code> aus der betreffenden Tunneleinstellung, stoppen Sie den HTTP-Proxy-Tunnel dann und starten Sie ihn neu!
|
<code>i2ptunnel.proxy.auth=basic</code> aus der betreffenden Tunneleinstellung, stoppen Sie den HTTP-Proxy-Tunnel dann und starten Sie ihn neu!
|
||||||
</div>
|
</div>
|
||||||
|
@ -19,5 +19,5 @@ Proxy-Connection: close
|
|||||||
Die Eepseite war nicht erreichbar.
|
Die Eepseite war nicht erreichbar.
|
||||||
Sie ist vielleicht offline, es gibt eine Überlast oder Verstopfung im Netz,
|
Sie ist vielleicht offline, es gibt eine Überlast oder Verstopfung im Netz,
|
||||||
oder Ihr Router ist noch nicht gut ins Netzwerk integriert.
|
oder Ihr Router ist noch nicht gut ins Netzwerk integriert.
|
||||||
Versuchen Sie ein <a href="javascript: window.location.reload()">Neuladen</a>!
|
Versuchen Sie, die Seite <a href="javascript: window.location.reload()">erneut zu laden</a>!
|
||||||
<hr><b>Konnte das folgende Ziel nicht finden:</b><BR><BR>
|
<hr><b>Konnte das folgende Ziel nicht finden:</b><BR><BR>
|
||||||
|
@ -12,12 +12,12 @@ Proxy-Connection: close
|
|||||||
<body>
|
<body>
|
||||||
<div class=logo>
|
<div class=logo>
|
||||||
<a href="http://127.0.0.1:7657/index.jsp" title="Routerkonsole"><img src="http://proxy.i2p/themes/console/images/i2plogo.png" alt="I2P-Routerkonsole" border="0"></a><hr>
|
<a href="http://127.0.0.1:7657/index.jsp" title="Routerkonsole"><img src="http://proxy.i2p/themes/console/images/i2plogo.png" alt="I2P-Routerkonsole" border="0"></a><hr>
|
||||||
<a href="http://127.0.0.1:7657/config.jsp">Einstellungen</a> <a href="http://127.0.0.1:7657/help.jsp">Help</a> <a href="http://127.0.0.1:7657/susidns/">Adressbuch</a>
|
<a href="http://127.0.0.1:7657/config.jsp">Einstellungen</a> <a href="http://127.0.0.1:7657/help.jsp">Hilfe</a> <a href="http://127.0.0.1:7657/susidns/">Adressbuch</a>
|
||||||
</div>
|
</div>
|
||||||
<div class=warning id=warning>
|
<div class=warning id=warning>
|
||||||
<h3>Warnung: ungültiges Eepseiten-Ziel</h3>
|
<h3>Warnung: ungültiges Eepseiten-Ziel</h3>
|
||||||
Das angegebene Eepseiten-Ziel ist nicht gültig,
|
Das angegebene Eepseiten-Ziel ist nicht gültig,
|
||||||
oder auf andere Art nicht erreichbar. Vielleicht habe Sie eine falsche BASIS64-Zeichenkette kopiert
|
oder auf andere Art nicht erreichbar. Vielleicht haben Sie eine falsche BASIS64-Zeichenkette kopiert
|
||||||
oder Sie folgten einem ungültigen Verweis. Möglicherweise ist auch der I2P-Host offline.
|
oder Sie folgten einem ungültigen Verweis. Möglicherweise ist auch der I2P-Host offline.
|
||||||
Versuchen Sie ein <a href="javascript: window.location.reload()">Neuladen</a>.
|
Versuchen Sie, die Seite <a href="javascript: window.location.reload()">erneut zu laden</a>!
|
||||||
<hr><b>Konnte das folgende Ziel nicht finden:</b><BR><BR>
|
<hr><b>Konnte das folgende Ziel nicht finden:</b><BR><BR>
|
||||||
|
@ -5,7 +5,7 @@ Connection: close
|
|||||||
Proxy-Connection: close
|
Proxy-Connection: close
|
||||||
|
|
||||||
<html><head>
|
<html><head>
|
||||||
<title>I2P-Warnung: Eepsite unbekannt</title>
|
<title>I2P-Warnung: Eepseite unbekannt</title>
|
||||||
<link rel="shortcut icon" href="http://proxy.i2p/themes/console/images/favicon.ico" >
|
<link rel="shortcut icon" href="http://proxy.i2p/themes/console/images/favicon.ico" >
|
||||||
<link href="http://proxy.i2p/themes/console/default/console.css" rel="stylesheet" type="text/css" >
|
<link href="http://proxy.i2p/themes/console/default/console.css" rel="stylesheet" type="text/css" >
|
||||||
</head>
|
</head>
|
||||||
@ -16,7 +16,7 @@ Proxy-Connection: close
|
|||||||
</div>
|
</div>
|
||||||
<div class=warning id=warning>
|
<div class=warning id=warning>
|
||||||
<h3>Warnung: Eepseite nicht im Adressbuch gefunden</h3>
|
<h3>Warnung: Eepseite nicht im Adressbuch gefunden</h3>
|
||||||
Die Eepseite konnte in nicht im Adressbuch des Routers gefunden werden.
|
Die Eepseite konnte nicht im Adressbuch des Routers gefunden werden.
|
||||||
Überprüfen Sie den Link oder finden Sie eine BASIS64-Adresse!
|
Überprüfen Sie den Link oder finden Sie eine BASIS64-Adresse!
|
||||||
Wenn Sie eine BASIS64-Adresse haben, fügen Sie diese unter folgendem Link zu Ihrer userhosts.txt hinzu:
|
Wenn Sie eine BASIS64-Adresse haben, fügen Sie diese unter folgendem Link zu Ihrer userhosts.txt hinzu:
|
||||||
<a href="http://127.0.0.1:7657/susidns/addressbook.jsp?book=master">SusiDNS</a>,
|
<a href="http://127.0.0.1:7657/susidns/addressbook.jsp?book=master">SusiDNS</a>,
|
||||||
|
@ -17,11 +17,11 @@ Proxy-Connection: close
|
|||||||
<div class=warning id=warning>
|
<div class=warning id=warning>
|
||||||
<h3>Warnung: I2P-Proxy nicht gefunden</h3>
|
<h3>Warnung: I2P-Proxy nicht gefunden</h3>
|
||||||
Der WWW-Outproxy wurde nicht gefunden.
|
Der WWW-Outproxy wurde nicht gefunden.
|
||||||
Er ist offline, das Netz ist überlastet oder verstopft,
|
Er ist offline, das Netz überlastet oder verstopft,
|
||||||
oder Ihr Router ist noch nicht gut ins Netzwerk integriert.
|
oder Ihr Router ist noch nicht gut ins Netzwerk integriert.
|
||||||
Versuchen Sie ein <a href="javascript: parent.window.location.reload()">Neuladen</a>
|
Laden Sie die Seite <a href="javascript: parent.window.location.reload()">neu</a>!
|
||||||
da dies eine erneute zufällige Auswahl des Outproxys aus der von Ihnen <a href="http://127.0.0.1:7657/i2ptunnel/index.jsp">hier</a> vorgegebenen Liste trifft
|
Dies trifft eine erneute zufällige Auswahl des Outproxys aus der von Ihnen <a href="http://127.0.0.1:7657/i2ptunnel/index.jsp">hier</a> vorgegebenen Liste
|
||||||
(falls mehr als einer angegeben ist)!
|
(falls mehr als einer angegeben ist).
|
||||||
Wenn das Problem weiterhin bestehen sollte, passen Sie die Liste Ihrer Outproxys
|
Sollte das Problem weiterhin bestehen, passen Sie die Liste Ihrer Outproxys
|
||||||
<a href="http://127.0.0.1:7657/i2ptunnel/edit.jsp?tunnel=0">hier</a> an!
|
<a href="http://127.0.0.1:7657/i2ptunnel/edit.jsp?tunnel=0">hier</a> an!
|
||||||
<hr><b>Konnte das folgende Ziel nicht finden:</b><BR><BR>
|
<hr><b>Konnte das folgende Ziel nicht finden:</b><BR><BR>
|
||||||
|
@ -18,6 +18,6 @@ Proxy-Connection: close
|
|||||||
</div>
|
</div>
|
||||||
------------------------------>
|
------------------------------>
|
||||||
<div class=warning id=warning>
|
<div class=warning id=warning>
|
||||||
<h3>Fehler: Lokaler Zugriff</h3>
|
<h3>Fehler: lokaler Zugriff</h3>
|
||||||
Ihr Browser ist fehlkonfiguriert. Benutzen Sie diesen Proxy nicht, um auf lokale Ziele wie die I2P-Routerkonsole, localhost oder LAN-Ziele zuzugreifen!
|
Ihr Browser ist fehlkonfiguriert: Benutzen Sie diesen Proxy nicht, um auf lokale Ziele wie die I2P-Routerkonsole, localhost oder LAN-Ziele zuzugreifen!
|
||||||
</div>
|
</div>
|
||||||
|
@ -16,5 +16,5 @@ Proxy-Connection: close
|
|||||||
</div>
|
</div>
|
||||||
<div class=warning id=warning>
|
<div class=warning id=warning>
|
||||||
<h3>Warnung: Kein Outproxy eingerichtet</h3>
|
<h3>Warnung: Kein Outproxy eingerichtet</h3>
|
||||||
Sie haben eine Seite außerhalb des I2P-Netzes angefordert, jedoch ist kein HTTP-Outproxy eingerichtet. Bitte richten sie einen Outproxy in I2PTunnel ein!
|
Sie haben eine Seite außerhalb des I2P-Netzes angefordert, jedoch ist kein HTTP-Outproxy eingerichtet. Bitte richten Sie einen Outproxy in der Sektion I2PTunnel ein!
|
||||||
</div>
|
</div>
|
||||||
|
@ -5,7 +5,7 @@ Connection: close
|
|||||||
Proxy-Connection: close
|
Proxy-Connection: close
|
||||||
|
|
||||||
<html><head>
|
<html><head>
|
||||||
<title>I2P-Warnung: nicht HTTP-Protokoll</title>
|
<title>I2P-Warnung: kein HTTP-Protokoll</title>
|
||||||
<link rel="shortcut icon" href="http://proxy.i2p/themes/console/images/favicon.ico" >
|
<link rel="shortcut icon" href="http://proxy.i2p/themes/console/images/favicon.ico" >
|
||||||
<link href="http://proxy.i2p/themes/console/default/console.css" rel="stylesheet" type="text/css" >
|
<link href="http://proxy.i2p/themes/console/default/console.css" rel="stylesheet" type="text/css" >
|
||||||
</head>
|
</head>
|
||||||
@ -15,7 +15,7 @@ Proxy-Connection: close
|
|||||||
<a href="http://127.0.0.1:7657/config.jsp">Einstellungen</a> <a href="http://127.0.0.1:7657/help.jsp">Hilfe</a> <a href="http://127.0.0.1:7657/susidns/">Adressbuch</a>
|
<a href="http://127.0.0.1:7657/config.jsp">Einstellungen</a> <a href="http://127.0.0.1:7657/help.jsp">Hilfe</a> <a href="http://127.0.0.1:7657/susidns/">Adressbuch</a>
|
||||||
</div>
|
</div>
|
||||||
<div class=warning id=warning>
|
<div class=warning id=warning>
|
||||||
<h3>Warnung: nicht HTTP-Protokoll</h3>
|
<h3>Warnung: kein HTTP-Protokoll</h3>
|
||||||
Die Anfrage verwendet ein falsches Protokoll.
|
Die Anfrage verwendet ein falsches Protokoll.
|
||||||
I2Ps HTTP-Proxy unterstützt AUSSCHLIEßLICH Anfragen des HTTP-Protokolls ( http:// ). Andere Protokolle wie https:// und ftp:// sind nicht erlaubt.
|
I2Ps HTTP-Proxy unterstützt AUSSCHLIEßLICH Anfragen des HTTP-Protokolls ( http:// ). Andere Protokolle wie https:// und ftp:// sind nicht erlaubt.
|
||||||
</div>
|
</div>
|
||||||
|
@ -1,15 +1,15 @@
|
|||||||
<div lang="en">
|
<div lang="en">
|
||||||
<div align="right">
|
<div align="right">
|
||||||
<div class="langbox" align="right">
|
<div class="langbox" align="right">
|
||||||
<a href="/index.jsp?lang=en"><img src="/flags.jsp?c=us" title="English" alt="English"></a>
|
<a href="/?lang=en"><img src="/flags.jsp?c=us" title="English" alt="English"></a>
|
||||||
<a href="/index.jsp?lang=zh"><img src="/flags.jsp?c=cn" title="中文" alt="中文"></a>
|
<a href="/?lang=zh"><img src="/flags.jsp?c=cn" title="中文" alt="中文"></a>
|
||||||
<a href="/index.jsp?lang=de"><img src="/flags.jsp?c=de" title="Deutsch" alt="Deutsch"></a>
|
<a href="/?lang=de"><img src="/flags.jsp?c=de" title="Deutsch" alt="Deutsch"></a>
|
||||||
<a href="/index.jsp?lang=fr"><img src="/flags.jsp?c=fr" title="Français" alt="Français"></a>
|
<a href="/?lang=fr"><img src="/flags.jsp?c=fr" title="Français" alt="Français"></a>
|
||||||
<a href="/index.jsp?lang=es"><img src="/flags.jsp?c=es" title="Español" alt="Español"></a>
|
<a href="/?lang=es"><img src="/flags.jsp?c=es" title="Español" alt="Español"></a>
|
||||||
<a href="/index.jsp?lang=pt"><img src="/flags.jsp?c=pt" title="Português" alt="Português"></a>
|
<a href="/?lang=pt"><img src="/flags.jsp?c=pt" title="Português" alt="Português"></a>
|
||||||
<a href="/index.jsp?lang=nl"><img src="/flags.jsp?c=nl" title="Nederlands" alt="Nederlands"></a>
|
<a href="/?lang=nl"><img src="/flags.jsp?c=nl" title="Nederlands" alt="Nederlands"></a>
|
||||||
<a href="/index.jsp?lang=ru"><img src="/flags.jsp?c=ru" title="Русский" alt="Русский"></a>
|
<a href="/?lang=ru"><img src="/flags.jsp?c=ru" title="Русский" alt="Русский"></a>
|
||||||
<a href="/index.jsp?lang=sv"><img src="/flags.jsp?c=se" title="Svenska" alt="Svenska"></a></div>
|
<a href="/?lang=sv"><img src="/flags.jsp?c=se" title="Svenska" alt="Svenska"></a></div>
|
||||||
</div>
|
</div>
|
||||||
</div><a name="top"></a>
|
</div><a name="top"></a>
|
||||||
<div class="welcome"><h2>Welcome to the Invisible Internet</h2></div>
|
<div class="welcome"><h2>Welcome to the Invisible Internet</h2></div>
|
||||||
@ -20,23 +20,23 @@
|
|||||||
<h3>Services on I2P</h3>
|
<h3>Services on I2P</h3>
|
||||||
<ul class="links">
|
<ul class="links">
|
||||||
|
|
||||||
<li class="tidylist"><b>Invisible Internet & Public Web Browsing</b><br>On I2P you can access anonymous websites (aka eepsites) and other services (e.g. ssh over I2P, IRC, Jabber etc.) in addition to being able to host your own services. You can also access the normal web anonymously via I2P's built-in web proxy (aka outproxy).<a href="http://www.i2p2.de/htproxyports.html" target="_blank">Configure your browser</a> to use the <a href="http://proxy.i2p" target="_blank">HTTP proxy</a> at <code>127.0.0.1 port 4444</code>, then browse to an eepsite or a normal, unencrypted <code>http://</code> address. For a pre-configured browser, you may wish to try <a href="http://echelon.i2p/i2pfox/">I2PFox</a>, a custom build of Firefox security hardened and tailored especially for I2P. If you wish to disable or change outproxy access to the normal internet, remove or modify the outproxy entry for <code>false.i2p</code> under the <i>Outproxies</i> option in the <a href="/i2ptunnel/edit?tunnel=0" target="_blank">I2P HTTP Proxy Tunnel Editor</a>. In the Sites of Interest section <a href="#eepsites">below</a>, we list a few of the sites hosted on I2P.</li>
|
<li class="tidylist"><b>Invisible Internet & Public Web Browsing</b><br>On I2P you can access anonymous websites (eepsites) and other services (e.g. ssh over I2P, IRC, Jabber etc.) in addition to being able to host your own services. You can also access the normal web anonymously via I2P's built-in web proxy (outproxy). <a href="http://www.i2p2.de/htproxyports.html" target="_blank">Configure your browser</a> to use the HTTP proxy at <code>127.0.0.1 port 4444</code>, then browse to an eepsite or a normal, unencrypted <code>http://</code> address. For a pre-configured browser, you may wish to try <a href="http://echelon.i2p/i2pfox/">I2PFox</a>, a custom build of Firefox security hardened and tailored especially for I2P. If you wish to disable or change outproxy access to the normal internet, remove or modify the outproxy entry for <code>false.i2p</code> under the <i>Outproxies</i> option in the <a href="/i2ptunnel/edit?tunnel=0" target="_blank">I2P HTTP Proxy Tunnel Editor</a>. In the "Sites of Interest" section <a href="#eepsites">below</a>, we list a few of the sites hosted on I2P.</li>
|
||||||
|
|
||||||
<li class="tidylist"><b>Anonymous E-Mail</b><br>Postman's I2P-based mail system can be accessed either via <a href="../../../../../../susimail/">I2P's built-in webmail</a>
|
<li class="tidylist"><b>Anonymous E-Mail</b><br>Postman's I2P-based mail system can be accessed either via <a href="/susimail/susimail">I2P's built-in mail client</a>
|
||||||
(aka susimail) or using any mail client that supports smtp and pop3.
|
(susimail) or using any mail client that supports smtp and pop3.
|
||||||
Accounts can send and receive mail from the normal internet. For an
|
Accounts can send and receive mail from the normal internet. For an
|
||||||
account, visit <a href="http://hq.postman.i2p/" target="_blank">hq.postman.i2p</a>. Additionally, <a href="http://i2pbote.i2p/" target="_blank">I2P-Bote</a> is a new serverless, end-to-end encrypted e-mail system providing a web
|
account, visit <a href="http://hq.postman.i2p/" target="_blank">hq.postman.i2p</a>. Additionally, <a href="http://i2pbote.i2p/" target="_blank">I2P-Bote</a> is a new serverless, end-to-end encrypted e-mail system providing a web
|
||||||
interface and an integrated addressbook. It is developed by HungryHobo
|
interface and an integrated addressbook. It is developed by HungryHobo
|
||||||
and can be installed as a <a href="readme.html#plugins">plugin</a>.</li>
|
and can be installed as a <a href="#plugins">plugin</a>.</li>
|
||||||
|
|
||||||
<li class="tidylist"><b>Anonymous File Transfer</b><br><a href="/i2psnark" target="_blank">I2PSnark</a> is integrated into I2P, providing anonymous, encrypted <a href="https://secure.wikimedia.org/wikipedia/en/wiki/BitTorrent_%28protocol%29" target="_blank">BitTorrent</a> transfers. In addition, Sponge develops a bittorrent client called <a href="http://bob.i2p/Robert.html">Robert</a> written in Python. There is also a port of <a href="http://www.emule-project.net/" target="_blank">eMule</a> to I2P called <a href="http://echelon.i2p/imule">iMule</a> [Needs developers!], an anonymous, secure implementation of a <a href="https://secure.wikimedia.org/wikipedia/en/wiki/Gnutella" target="_blank">Gnutella network</a>, accessible using <a href="http://echelon.i2p/i2phex/" target="_blank">I2Phex</a> [maintained by Complication, seeking new developers!], and additional facilities including browser-based file hosting etc.</li>
|
<li class="tidylist"><b>Anonymous File Transfer</b><br><a href="/i2psnark/" target="_blank">I2PSnark</a> is integrated into I2P, providing anonymous, encrypted <a href="https://secure.wikimedia.org/wikipedia/en/wiki/BitTorrent_%28protocol%29" target="_blank">BitTorrent</a> transfers. In addition, Sponge develops a bittorrent client called <a href="http://bob.i2p/Robert.html">Robert</a> written in Python. There is also a port of <a href="http://www.emule-project.net/" target="_blank">eMule</a> to I2P called <a href="http://echelon.i2p/imule/">iMule</a> [Needs developers!], an anonymous, secure implementation of a <a href="https://secure.wikimedia.org/wikipedia/en/wiki/Gnutella" target="_blank">Gnutella network</a>, accessible using <a href="http://echelon.i2p/i2phex/" target="_blank">I2Phex</a> [maintained by Complication, seeking new developers!], and additional facilities including browser-based file hosting.</li>
|
||||||
<li class="tidylist"><b>Anonymous Chat</b><br>Start your IRC client (e.g. Chatzilla, Pidgin, XChat)
|
<li class="tidylist"><b>Anonymous Chat</b><br>Start your IRC client (e.g. Chatzilla, Pidgin, XChat)
|
||||||
and connect to the <a href="irc://127.0.0.1:6668/i2p">server</a> at <code>127.0.0.1 port 6668</code>. You do not need to configure a proxy in your IRC client; I2P provides you with a local IRC tunnel (configured in your IRC client as an IRC server or remote host). Your local I2P IRC tunnel on <code>localhost:6668</code> will direct you to one of two IRC servers hosted on I2P by Postman and Badger, but neither you nor they know where the other is, and your mom, ISP or government is unable to intercept your conversation! Once you're there, <code>#i2p-help</code>,<code>#i2p</code>,<code>#i2p-chat</code> and <code>#i2p-dev</code> are just a few of the available channels you may wish to /join. There's also an I2P-based <a href="http://echelon.i2p/qti2pmessenger">Instant Messenger</a> for unmonitorable and uncensorable anonymous chat, as well as alternative IRC servers, Jabber servers, website-based chat etc. And of course you're entirely free to run your own servers over I2P in whatever flavor you choose, or if you're a developer write your own <a href="http://www.i2p2.de/applications.html" target="_blank">I2P applications</a> (both <a href="https://secure.wikimedia.org/wikipedia/en/wiki/User_Datagram_Protocol" target="_blanK">udp</a> and <a href="https://secure.wikimedia.org/wikipedia/en/wiki/Transmission_Control_Protocol" target="_blank">tcp</a> protocols are <a href="http://www.i2p2.i2p/techintro.html#op.transport" target="_blank">provisioned</a>), and <a href="http://www.i2p2.de/streaming.html" target="_blank">realtime streaming</a> is also possible. We also provide full access to the <a href="http://docs.i2p2.de/javadoc/" target="_blank"> java-based api</a>.</li>
|
and connect to the <a href="irc://127.0.0.1:6668/i2p">server</a> at <code>127.0.0.1 port 6668</code>. You do not need to configure a proxy in your IRC client; I2P provides you with a local IRC tunnel (configured in your IRC client as an IRC server or remote host). Your local I2P IRC tunnel on <code>localhost:6668</code> will direct you to one of two IRC servers hosted on I2P by Postman and Badger, but neither you nor they know where the other is, and your mom, ISP or government is unable to intercept your conversation! Once you're there, <code>#i2p-help</code>,<code>#i2p</code>,<code>#i2p-chat</code> and <code>#i2p-dev</code> are just a few of the available channels you may wish to /join. There's also an I2P-based <a href="http://echelon.i2p/qti2pmessenger/">Instant Messenger</a> for unmonitorable and uncensorable anonymous chat, as well as alternative IRC servers, Jabber servers, website-based chat, and more. And of course you're entirely free to run your own servers over I2P in whatever flavor you choose, or if you're a developer write your own <a href="http://www.i2p2.i2p/applications.html" target="_blank">I2P applications</a> (both <a href="https://secure.wikimedia.org/wikipedia/en/wiki/User_Datagram_Protocol" target="_blanK">UDP</a> and <a href="https://secure.wikimedia.org/wikipedia/en/wiki/Transmission_Control_Protocol" target="_blank">TCP</a> protocols are <a href="http://www.i2p2.i2p/techintro.html#op.transport" target="_blank">provisioned</a>), and <a href="http://www.i2p2.i2p/streaming.html" target="_blank">realtime streaming</a> is also possible. We also provide full access to the <a href="http://docs.i2p2.de/javadoc/" target="_blank"> java-based api</a>.</li>
|
||||||
<li class="tidylist"><b>Forums & Blogging</b><br>If you're looking to run your own blog or forum, you might be interested in <a href="http://syndie.i2p2.de/" target="_blank">Syndie</a>, a distributed forum and blogging platform for I2P [Needs developers!]. There's also an I2P plugin port of the Java-based <a href="http://pebble.sourceforge.net/" target="_blank">pebble</a> blogging platform ported to I2P by zzz, available on <a href="http://i2plugins.i2p" target="_blank">i2plugins.i2p</a>. And, of course, all normal blogging, forum and cms software will run over I2P, though you're advised to take extra precautions with security when setting up and to keep all associated software (e.g. Php, MySql, Python, Apache) up to date and locked-down! Also, there are quite a few community run forums on I2P in various languages; see <a href="#eepsites">below</a> for some suggestions.</li>
|
<li class="tidylist"><b>Forums & Blogging</b><br>If you're looking to run your own blog or forum, you might be interested in <a href="http://syndie.i2p2.de/" target="_blank">Syndie</a>, a distributed forum and blogging platform for I2P [Needs developers!]. There's also an I2P plugin port of the Java-based <a href="http://pebble.sourceforge.net/" target="_blank">pebble</a> blogging platform ported to I2P by zzz, available on <a href="http://i2plugins.i2p/" target="_blank">i2plugins.i2p</a>. And, of course, all normal blogging, forum and cms software will run over I2P, though you're advised to take extra precautions with security when setting up and to keep all associated software (e.g. Php, MySql, Python, Apache) up to date and locked-down! Also, there are quite a few community run forums on I2P in various languages; see <a href="#eepsites">below</a> for some suggestions.</li>
|
||||||
<a name="plugins"></a><li class="tidylist"><b>Plugins for I2P</b><br>Extend the usefulness of I2P by installing plugins… blogging, chatting, file sharing and other plugins have already been written or ported and await your <a href="http://i2plugins.i2p/plugins/" target="_blank">installation</a>! Browse the plugins and related info at <a href="http://i2plugins.i2p" target="_blank">i2plugins.i2p</a>. If you're a <a href="http://i2plugins.i2p/developers/" target="_blank">developer</a>, a complete language-agnostic framework for writing your own plugins is provided with <a href="http://www.i2p2.i2p/plugins.html" target="_blank">documentation</a>; I2P plugins can be coded in any language.</li>
|
<a name="plugins"></a><li class="tidylist"><b>Plugins for I2P</b><br>Extend the usefulness of I2P by installing plugins… blogging, chatting, file sharing and other plugins have already been written or ported and await your <a href="http://i2plugins.i2p/plugins/" target="_blank">installation</a>! Browse the plugins and related info at <a href="http://i2plugins.i2p/" target="_blank">i2plugins.i2p</a>. If you're a <a href="http://i2plugins.i2p/developers/" target="_blank">developer</a>, a complete language-agnostic framework for writing your own plugins is provided with <a href="http://www.i2p2.i2p/plugins.html" target="_blank">documentation</a>; I2P plugins can be coded in any language.</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<h3>Anonymous Encrypted Webserving on I2P</h3>
|
<h3>Anonymous Encrypted Web Hosting on I2P</h3>
|
||||||
<ul class="links">
|
<ul class="links">
|
||||||
|
|
||||||
<li class="tidylist"><b>Ready to Roll!</b><br>I2P comes with a built-in, ready-to-go web server for hosting your own anonymous website (eepsite) on the I2P network: a <a href="http://jetty.mortbay.org/" target="_blank">Jetty</a> instance listening on <a href="http://127.0.0.1:7658/" target="_blank">http://127.0.0.1:7658/</a>. To host your own content,
|
<li class="tidylist"><b>Ready to Roll!</b><br>I2P comes with a built-in, ready-to-go web server for hosting your own anonymous website (eepsite) on the I2P network: a <a href="http://jetty.mortbay.org/" target="_blank">Jetty</a> instance listening on <a href="http://127.0.0.1:7658/" target="_blank">http://127.0.0.1:7658/</a>. To host your own content,
|
||||||
@ -47,23 +47,23 @@ and can be installed as a <a href="readme.html#plugins">plugin</a>.</li>
|
|||||||
<li class="tidylist"><b>Start Your Tunnel</b><br>
|
<li class="tidylist"><b>Start Your Tunnel</b><br>
|
||||||
After starting up, your pre-configured <a href="/i2ptunnel/" target="_blank">I2P Webserver Tunnel</a>,
|
After starting up, your pre-configured <a href="/i2ptunnel/" target="_blank">I2P Webserver Tunnel</a>,
|
||||||
your eepsite will be visible (but not discoverable) to others. Detailed instructions for starting
|
your eepsite will be visible (but not discoverable) to others. Detailed instructions for starting
|
||||||
your eepsite, registering an .i2p domain and promoting your site to others are accessible via your own I2P websever on <a href="http://127.0.0.1:7658/help/" target="_blank">http://127.0.0.1:7658/help/</a>.</li></ul>
|
your eepsite, registering an .i2p domain and promoting your site to others are accessible via your own I2P webserver on <a href="http://127.0.0.1:7658/help/" target="_blank">http://127.0.0.1:7658/help/</a>.</li></ul>
|
||||||
|
|
||||||
<a name="eepsites"></a>
|
<a name="eepsites"></a>
|
||||||
<h3>I2P-Hosted Sites of Interest</h3>
|
<h3>I2P-Hosted Sites of Interest</h3>
|
||||||
<ul class="links">
|
<ul class="links">
|
||||||
<li class="tidylist"><b>Invisible Internet Project (I2P) Official Website</b><br><a href="http://www.i2p2.i2p/" target="_blank">www.i2p2.i2p</a> and
|
<li class="tidylist"><b>Invisible Internet Project (I2P) Official Website</b><br><a href="http://www.i2p2.i2p/" target="_blank">www.i2p2.i2p</a> and
|
||||||
its mirror <a href="http://i2p-projekt.i2p" target="_blank">i2p-projekt.i2p</a>: Secure and
|
its mirror <a href="http://i2p-projekt.i2p/" target="_blank">i2p-projekt.i2p</a>: Secure and
|
||||||
anonymous connections to <a href="http://www.i2p2.de/" target="_blank">www.i2p2.de</a>. There's also an official mirror running on <a href="http://geti2p.net" target="_blank">geti2p.net</a>. If you want to know more about how I2P works or how you can participate, this is your first port of call!</li>
|
anonymous connections to <a href="http://www.i2p2.de/" target="_blank">www.i2p2.de</a>. There's also an official mirror running on <a href="http://geti2p.net/" target="_blank">geti2p.net</a>. If you want to know more about how I2P works or how you can participate, this is your first port of call!</li>
|
||||||
<li class="tidylist"><b>I2P Community Forums</b><br><a href="http://forum.i2p/" target="_blank">forum.i2p</a>: A secure
|
<li class="tidylist"><b>I2P Community Forums</b><br><a href="http://forum.i2p/" target="_blank">forum.i2p</a>: A secure
|
||||||
and anonymous connection to <a href="http://forum.i2p2.de/" target="_blank">forum.i2p2.de</a>, an online forum community where developers and users alike discuss problems and ideas relating to I2P and associated topics, and <a href="http://zzz.i2p" target="_blank">zzz's developer forums</a> for both end users and developers.</li>
|
and anonymous connection to <a href="http://forum.i2p2.de/" target="_blank">forum.i2p2.de</a>, an online forum community where developers and users alike discuss problems and ideas relating to I2P and associated topics, and <a href="http://zzz.i2p/" target="_blank">zzz's developer forums</a> for both end users and developers.</li>
|
||||||
<li class="tidylist"><b>I2P Anonymous Pastebin</b><br><a href="http://paste.i2p2.i2p" target="_blank">paste.i2p2.i2p</a>: Secure and
|
<li class="tidylist"><b>I2P Anonymous Pastebin</b><br><a href="http://paste.i2p2.i2p/" target="_blank">paste.i2p2.i2p</a>: Secure and
|
||||||
anonymous paste service allowing anonymous text and text-based code sharing over I2P.</li>
|
anonymous paste service allowing anonymous text and text-based code sharing over I2P.</li>
|
||||||
<li class="tidylist"><b>Echelon's I2P Resources</b><br><a href="http://echelon.i2p" target="_blank">echelon.i2p</a>: I2P software
|
<li class="tidylist"><b>Echelon's I2P Resources</b><br><a href="http://echelon.i2p/" target="_blank">echelon.i2p</a>: I2P software
|
||||||
archive with source code (where permissible), information about I2P, including a <a href="http://echelon.i2p/I2Pguide/index.html" target="_blank">beginner's guide</a> & pre-release developer builds of I2P for the adventurous to try.</li>
|
archive with source code (where permissible), information about I2P, including a <a href="http://echelon.i2p/I2Pguide/index.html" target="_blank">beginner's guide</a> and pre-release developer builds of I2P for the adventurous to try.</li>
|
||||||
<li class="tidylist"><b>Ugha's Wiki</b><br><a href="http://ugha.i2p/" target="_blank">ugha.i2p</a>: An open wiki that anyone can edit with plenty of information about I2P, help for beginners, additional links into the network etc.</li>
|
<li class="tidylist"><b>Ugha's Wiki</b><br><a href="http://ugha.i2p/" target="_blank">ugha.i2p</a>: An open wiki that anyone can edit with plenty of information about I2P, help for beginners, additional links into the network, and more.</li>
|
||||||
<li class="tidylist"><b>I2P-to-Freenet Proxy</b><br><a href="http://fproxy.tino.i2p" target="_blank">fproxy.tino.i2p</a>:
|
<li class="tidylist"><b>I2P-to-Freenet Proxy</b><br><a href="http://fproxy.tino.i2p/" target="_blank">fproxy.tino.i2p</a>:
|
||||||
Peer into the file sharing world of the <a href="http://freenetproject.org/" target="_blank">Freenet</a> darknet with Tino's I2P-to-Freenet proxy.</li>
|
Peer into the world of the <a href="http://freenetproject.org/" target="_blank">Freenet</a> network with Tino's I2P-to-Freenet proxy.</li>
|
||||||
<li class="tidylist"><b>The Planet (on I2P)</b><br><a href="http://planet.i2p/" target="_blank">planet.i2p</a>: An RSS aggregator site that takes news and events from around I2P and publishes them all in one place. A good site to visit to see the community at work!</li>
|
<li class="tidylist"><b>The Planet (on I2P)</b><br><a href="http://planet.i2p/" target="_blank">planet.i2p</a>: An RSS aggregator site that takes news and events from around I2P and publishes them all in one place. A good site to visit to see the community at work!</li>
|
||||||
<li class="tidylist"><b>Eepsite Search Engine</b><br><a href="http://eepsites.i2p/" target="_blank">eepsites.i2p</a>: An
|
<li class="tidylist"><b>Eepsite Search Engine</b><br><a href="http://eepsites.i2p/" target="_blank">eepsites.i2p</a>: An
|
||||||
anonymously-hosted eepsite search engine.</li>
|
anonymously-hosted eepsite search engine.</li>
|
||||||
@ -88,7 +88,7 @@ If you're behind a prohibitive firewall but have unrestricted outbound access, I
|
|||||||
you cannot see any eepsites at all (not even <a href="http://www.i2p2.i2p/" target="_blank">www.i2p2.i2p</a>),
|
you cannot see any eepsites at all (not even <a href="http://www.i2p2.i2p/" target="_blank">www.i2p2.i2p</a>),
|
||||||
make sure your browser's proxy is set to access http traffic (<i>not</i> https, <i>not</i> socks) via <code>127.0.0.1 port 4444</code>. If you need some help, there's <a href="http://www.i2p2.i2p/htproxyports.html" target="_blank">a guide</a> to configuring your browser for I2P use, also <a href="http://www.i2p2.de/htproxyports.html" target="_blank">available</a> on the normal web. </li>
|
make sure your browser's proxy is set to access http traffic (<i>not</i> https, <i>not</i> socks) via <code>127.0.0.1 port 4444</code>. If you need some help, there's <a href="http://www.i2p2.i2p/htproxyports.html" target="_blank">a guide</a> to configuring your browser for I2P use, also <a href="http://www.i2p2.de/htproxyports.html" target="_blank">available</a> on the normal web. </li>
|
||||||
|
|
||||||
<li class="tidylist"><b>Check Your Logs</b><br><a href="/logs">Logs</a> may help resolve a problem. You may wish to paste excerpts in a <a href="http://forum.i2p/viewforum.php?f=10" target="_blank">forum</a> for help, or perhaps <a href="http://paste.i2p2.i2p" target="_blank">paste</a> it instead and reference the link on IRC for help.</li>
|
<li class="tidylist"><b>Check Your Logs</b><br><a href="/logs">Logs</a> may help resolve a problem. You may wish to paste excerpts in a <a href="http://forum.i2p/viewforum.php?f=10" target="_blank">forum</a> for help, or perhaps <a href="http://paste.i2p2.i2p/" target="_blank">paste</a> it instead and reference the link on IRC for help.</li>
|
||||||
<li class="tidylist"><b>Verify Java is Up to Date</b><br>Ensure your Java is up to date [version 1.6 recommended and required for some features]. If you don't have Java installed, you probably want some implementation of the JRE (<a href="https://secure.wikimedia.org/wikipedia/en/wiki/JRE" target="_blank">Java Runtime Engine</a>); if you're a developer, the <a href="https://secure.wikimedia.org/wikipedia/en/wiki/Java_SDK" target="_blank">SDK</a> may also be of interest, and possibly <a href="http://ant.apache.org/" target="_blank">Apache Ant</a> which we use to build the I2P Java binaries.
|
<li class="tidylist"><b>Verify Java is Up to Date</b><br>Ensure your Java is up to date [version 1.6 recommended and required for some features]. If you don't have Java installed, you probably want some implementation of the JRE (<a href="https://secure.wikimedia.org/wikipedia/en/wiki/JRE" target="_blank">Java Runtime Engine</a>); if you're a developer, the <a href="https://secure.wikimedia.org/wikipedia/en/wiki/Java_SDK" target="_blank">SDK</a> may also be of interest, and possibly <a href="http://ant.apache.org/" target="_blank">Apache Ant</a> which we use to build the I2P Java binaries.
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
@ -96,16 +96,16 @@ If you're behind a prohibitive firewall but have unrestricted outbound access, I
|
|||||||
|
|
||||||
<li class="tidylist"><b>Enable Universal Plug and Play (UPnP)</b><br>Your modem or router may support <a href="https://secure.wikimedia.org/wikipedia/en/wiki/Universal_Plug_and_Play" target="_blank">Universal Plug & Play</a> (UPnP), which permits automatic port forwarding. Ensure UPnP support for I2P is enabled on the <a href="/config">config page</a>, then try to activate UPnP on your modem/router and possibly your computer also. Now try restarting the <a href="/">I2P router</a>. If successful, I2P should report "Network: OK" in the side panel once the I2P router completes initial connectivity tests.
|
<li class="tidylist"><b>Enable Universal Plug and Play (UPnP)</b><br>Your modem or router may support <a href="https://secure.wikimedia.org/wikipedia/en/wiki/Universal_Plug_and_Play" target="_blank">Universal Plug & Play</a> (UPnP), which permits automatic port forwarding. Ensure UPnP support for I2P is enabled on the <a href="/config">config page</a>, then try to activate UPnP on your modem/router and possibly your computer also. Now try restarting the <a href="/">I2P router</a>. If successful, I2P should report "Network: OK" in the side panel once the I2P router completes initial connectivity tests.
|
||||||
</li>
|
</li>
|
||||||
<li class="tidylist"><b>Port Forwarding</b><br>Open <a href="/config">I2P's port</a> on your modem, router and/or firewall(s) for better connectivity (ideally both UDP and TCP). More information on how to go about port forwarding can be found at <a href="http://portforward.com" target="_blank">portforward.com</a>, in addition to our forums and IRC channels listed below. Note that I2P does not support connecting to the internet via an http or socks proxy [patches welcome!], though you can connect to proxies via I2P itself once connected to the network.
|
<li class="tidylist"><b>Port Forwarding</b><br>Open <a href="/config">I2P's port</a> on your modem, router and/or firewall(s) for better connectivity (ideally both UDP and TCP). More information on how to go about port forwarding can be found at <a href="http://portforward.com/" target="_blank">portforward.com</a>, in addition to our forums and IRC channels listed below. Note that I2P does not support connecting to the internet via an http or socks proxy [patches welcome!], though you can connect to proxies via I2P itself once connected to the network.
|
||||||
</li>
|
</li>
|
||||||
<li class="tidylist"><b>Getting Support Online</b><br>You may also want
|
<li class="tidylist"><b>Getting Support Online</b><br>You may also want
|
||||||
to review the information on the <a href="http://www.i2p2.i2p/" target="_blank">I2P website</a>,
|
to review the information on the <a href="http://www.i2p2.i2p/" target="_blank">I2P website</a>,
|
||||||
post up messages to the <a href="http://forum.i2p2.de/" target="_blank">I2P discussion forum</a>,
|
post messages to the <a href="http://forum.i2p2.i2p/" target="_blank">I2P discussion forum</a>,
|
||||||
or swing by
|
or swing by
|
||||||
<a href="irc://127.0.0.1:6668/i2p-help">#i2p-help</a>, <a href="irc://127.0.0.1:6668/i2p">#i2p</a> or <a href="irc://127.0.0.1:6668/i2p-chat">#i2p-chat</a> on I2P's internal IRC network (<code>irc.postman.i2p</code> or <code>irc.freshcoffee.i2p</code>). These channels are also available outside of I2P's encrypted, anonymous network via <a href="irc://irc.freenode.net/i2p">Freenode IRC</a>.</li>
|
<a href="irc://127.0.0.1:6668/i2p-help">#i2p-help</a>, <a href="irc://127.0.0.1:6668/i2p">#i2p</a> or <a href="irc://127.0.0.1:6668/i2p-chat">#i2p-chat</a> on I2P's internal IRC network (<code>irc.postman.i2p</code> or <code>irc.freshcoffee.i2p</code>). These channels are also available outside of I2P's encrypted, anonymous network via <a href="irc://irc.freenode.net/i2p">Freenode IRC</a>.</li>
|
||||||
|
|
||||||
<li class="tidylist"><b>Reporting Bugs</b><br>If you'd like to report a bug, please file a ticket on <a href="http://trac.i2p2.i2p" target="_blank">trac.i2p2.i2p</a>. For developer-related discussions, please visit <a href="http://zzz.i2p" target="_blank">zzz's developer forums</a> or come and visit the <a href="irc://127.0.0.1:6668/i2p-dev">developer channel</a> on I2P's IRC network. Developers can browse source at <a href="http://stats.i2p/cgi-bin/viewmtn/" target="_blank">zzz's mtn repository viewer</a>, <a href="http://i2host.i2p/cgi-bin/view/branch/changes/i2p.i2p" target="_blank">Sponge's instance</a>, or via <a href="http://trac.i2p2.i2p/browser" target="_blank">trac.i2p2.i2p</a>. We primarily use <a href="http://www.i2p2.i2p/monotone.html" target="_blank">monotone</a> to manage our source code.</li>
|
<li class="tidylist"><b>Reporting Bugs</b><br>If you'd like to report a bug, please file a ticket on <a href="http://trac.i2p2.i2p/" target="_blank">trac.i2p2.i2p</a>. For developer-related discussions, please visit <a href="http://zzz.i2p/" target="_blank">zzz's developer forums</a> or come and visit the <a href="irc://127.0.0.1:6668/i2p-dev">developer channel</a> on I2P's IRC network. Developers can browse source at <a href="http://stats.i2p/cgi-bin/viewmtn/" target="_blank">zzz's mtn repository viewer</a>, <a href="http://i2host.i2p/cgi-bin/view/branch/changes/i2p.i2p" target="_blank">Sponge's instance</a>, or via <a href="http://trac.i2p2.i2p/browser" target="_blank">trac.i2p2.i2p</a>. We primarily use <a href="http://www.i2p2.i2p/monotone.html" target="_blank">monotone</a> to manage our source code.</li>
|
||||||
|
|
||||||
<li class="tidylist"><b>Get Involved!</b><br>I2P is developed and maintained mostly through unfunded, voluntary participation by community members. We're happy to accept <a href="http://www.i2p2.i2p/donate.html" target="_blank">donations</a>, which go into essential hosting and administrative costs. We have <a href="http://www.i2p2.i2p/bounties.html" target="_blank">cash bounties</a> for aspects of I2P for developers looking for incentives to participate, and we're always looking for more <a href="http://www.i2p2.i2p/newdevelopers.html" target="_blank">Java coders</a>, <a href="http://www.i2p2.i2p/newtranslators.html" target="_blank">translators</a>, promoters and users to help I2P grow. The bigger the I2P network, the more everyone benefits, so simply telling all your friends about I2P (and lending a hand with the installation and setup where needed) is a big help. For further info on how you can participate visit the <a href="http://www.i2p2.i2p/getinvolved.html" target="_blank">volunteers page</a> on the website.</li>
|
<li class="tidylist"><b>Get Involved!</b><br>I2P is developed and maintained mostly through unfunded, voluntary participation by community members. We're happy to accept <a href="http://www.i2p2.i2p/donate.html" target="_blank">donations</a>, which go into essential hosting and administrative costs. We have <a href="http://www.i2p2.i2p/bounties.html" target="_blank">cash bounties</a> for aspects of I2P for developers looking for incentives to participate, and we're always looking for more <a href="http://www.i2p2.i2p/newdevelopers.html" target="_blank">Java coders</a>, <a href="http://www.i2p2.i2p/newtranslators.html" target="_blank">translators</a>, promoters and users to help I2P grow. The bigger the I2P network, the more everyone benefits, so simply telling all your friends about I2P (and lending a hand with the installation and setup where needed) is a big help. For further info on how you can participate, visit the <a href="http://www.i2p2.i2p/getinvolved.html" target="_blank">volunteers page</a> on the website.</li>
|
||||||
</ul><div class="topness"><a href="#top">[Return to Top]</a></div>
|
</ul><div class="topness"><a href="#top">[Return to Top]</a></div>
|
||||||
<div class="footnote"><hr>Document updated: December 2010.</div>
|
<div class="footnote"><hr>Document updated: December 2010.</div>
|
||||||
|
@ -24,7 +24,7 @@
|
|||||||
<li><a href="http://eepsites.i2p/">eepsites.i2p</a>: anonym gehostete Suchseite für Eepseiten</li>
|
<li><a href="http://eepsites.i2p/">eepsites.i2p</a>: anonym gehostete Suchseite für Eepseiten</li>
|
||||||
<li><a href="http://ugha.i2p/">ugha.i2p</a>: Ugha's Eepseite, ein öffentliches Wiki mit vielen Links</li>
|
<li><a href="http://ugha.i2p/">ugha.i2p</a>: Ugha's Eepseite, ein öffentliches Wiki mit vielen Links</li>
|
||||||
<li><a href="http://fproxy.tino.i2p">fproxy.tino.i2p</a>: ein Freenet-Proxy</li>
|
<li><a href="http://fproxy.tino.i2p">fproxy.tino.i2p</a>: ein Freenet-Proxy</li>
|
||||||
<li><a href="http://echelon.i2p">echelon.i2p</a>: Softwarearchiv und Informationen zu I2P (mit BitTorrent-Klienten, iMule, I2PFox, I2P-Messenger, ...)</li>
|
<li><a href="http://echelon.i2p">echelon.i2p</a>: Softwarearchiv und Informationen zu I2P (mit BitTorrent-Klienten, iMule, I2PFox, I2P-Messenger, …)</li>
|
||||||
<li><a href="http://paste.i2p2.i2p">paste.i2p2.i2p</a>: anonymer Pastebin</li>
|
<li><a href="http://paste.i2p2.i2p">paste.i2p2.i2p</a>: anonymer Pastebin</li>
|
||||||
</ul><br />
|
</ul><br />
|
||||||
Es gibt viele andere Eepseiten - folge einfach den Links, die du findest,
|
Es gibt viele andere Eepseiten - folge einfach den Links, die du findest,
|
||||||
|
@ -110,7 +110,7 @@ div.warning h3 {
|
|||||||
border: 0;
|
border: 0;
|
||||||
border-bottom: 5px solid #fb7;
|
border-bottom: 5px solid #fb7;
|
||||||
padding-bottom: 10px;
|
padding-bottom: 10px;
|
||||||
background: #ffd;
|
background:none #FFFFDD !important;
|
||||||
padding-left: 0;
|
padding-left: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -378,7 +378,6 @@ div.wideload p !important {
|
|||||||
|
|
||||||
div.news {
|
div.news {
|
||||||
margin: -1px 1px 0 200px;
|
margin: -1px 1px 0 200px;
|
||||||
padding: -10px 0px 8px 0px;
|
|
||||||
background: #ffffc0;
|
background: #ffffc0;
|
||||||
border: 1px solid #89f;
|
border: 1px solid #89f;
|
||||||
border-bottom: 1px solid #89f;
|
border-bottom: 1px solid #89f;
|
||||||
@ -389,6 +388,7 @@ div.news {
|
|||||||
padding-bottom: 8px;
|
padding-bottom: 8px;
|
||||||
padding-left: 10px;
|
padding-left: 10px;
|
||||||
padding-right: 10px;
|
padding-right: 10px;
|
||||||
|
padding: 0 10px 3px 10px;
|
||||||
font-size: 7pt;
|
font-size: 7pt;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -407,6 +407,10 @@ div.news li {
|
|||||||
text-transform: capitalize;
|
text-transform: capitalize;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
div.news h3 {
|
||||||
|
text-align: left !important;
|
||||||
|
}
|
||||||
|
|
||||||
div.news p {
|
div.news p {
|
||||||
color: #330;
|
color: #330;
|
||||||
font-size: 9pt;
|
font-size: 9pt;
|
||||||
@ -441,7 +445,7 @@ div.news hr {
|
|||||||
background: #cc7;
|
background: #cc7;
|
||||||
height: 1px;
|
height: 1px;
|
||||||
border: 0px solid #cc7;
|
border: 0px solid #cc7;
|
||||||
margin: 20px 0 0 0;
|
margin: 10px 0 2px 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.confignav {
|
div.confignav {
|
||||||
|
@ -71,7 +71,8 @@ button {
|
|||||||
}
|
}
|
||||||
|
|
||||||
textarea {
|
textarea {
|
||||||
border: 1px solid #ddddc0;
|
border: 1px solid #aaf;
|
||||||
|
min-height: 40px;
|
||||||
}
|
}
|
||||||
|
|
||||||
br {
|
br {
|
||||||
|
@ -273,13 +273,13 @@ div.warning {
|
|||||||
/* console error messages */
|
/* console error messages */
|
||||||
|
|
||||||
div.sorry {
|
div.sorry {
|
||||||
margin: 15px 15px 10px 215px;
|
margin: -1px 5px 10px 205px;
|
||||||
padding: 20px 20px 20px 75px;
|
padding: 20px 20px 20px 75px;
|
||||||
background: #020;
|
background: #020;
|
||||||
border: 1px solid #494;
|
border: 1px solid #494;
|
||||||
-moz-border-radius: 4px;
|
-moz-border-radius: 0 0 4px 4px;
|
||||||
-khtml-border-radius: 4px;
|
-khtml-border-radius: 0 0 4px 4px;
|
||||||
border-radius: 4px;
|
border-radius: 0 0 4px 4px;
|
||||||
text-align: justify;
|
text-align: justify;
|
||||||
background-image:url("images/errortriangle.png");
|
background-image:url("images/errortriangle.png");
|
||||||
background-position:15px center;
|
background-position:15px center;
|
||||||
@ -322,7 +322,7 @@ div.main textarea {
|
|||||||
|
|
||||||
div.news {
|
div.news {
|
||||||
margin: -1px 5px 0px 205px;
|
margin: -1px 5px 0px 205px;
|
||||||
padding: 5px 30px 10px 30px;
|
padding: 5px 30px 5px 30px;
|
||||||
border: 1px solid #494;
|
border: 1px solid #494;
|
||||||
background: #000;
|
background: #000;
|
||||||
background: #000 url("images/news.png")no-repeat scroll bottom right;
|
background: #000 url("images/news.png")no-repeat scroll bottom right;
|
||||||
@ -344,11 +344,20 @@ div.news li {
|
|||||||
text-align: justify;
|
text-align: justify;
|
||||||
list-style: url('images/info_dark.png');
|
list-style: url('images/info_dark.png');
|
||||||
list-style: none;
|
list-style: none;
|
||||||
margin: 0 10px 0 0px;
|
margin: 0;
|
||||||
padding: 5px 5px 5px 0;
|
padding: 5px 5px 5px 0;
|
||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
word-wrap: break-word;
|
word-wrap: break-word;
|
||||||
color: #494;
|
color: #494;
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 9.5pt;
|
||||||
|
border-bottom: 1px dotted #494;
|
||||||
|
margin-bottom: 5px;
|
||||||
|
text-transform: capitalize;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.news h3 {
|
||||||
|
text-align: left !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.news h4 {
|
div.news h4 {
|
||||||
@ -358,7 +367,7 @@ div.news h4 {
|
|||||||
padding: 0 0 0px 0;
|
padding: 0 0 0px 0;
|
||||||
margin: 5px 0 10px 0;
|
margin: 5px 0 10px 0;
|
||||||
font-size: 10pt;
|
font-size: 10pt;
|
||||||
opacity: 0.8;
|
opacity: 1;
|
||||||
text-transform: capitalize;
|
text-transform: capitalize;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -372,10 +381,15 @@ div.news p {
|
|||||||
margin-top: -5px;
|
margin-top: -5px;
|
||||||
font-size: 8.5pt;
|
font-size: 8.5pt;
|
||||||
color: #EE9;
|
color: #EE9;
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.news p:nth-child(n+1) {
|
||||||
|
margin-top: 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.news hr {
|
div.news hr {
|
||||||
margin: -2px 0 5px 0;
|
margin: 8px 0 3px 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.confignav {
|
div.confignav {
|
||||||
@ -557,11 +571,11 @@ div.main li {
|
|||||||
word-wrap: break-word;
|
word-wrap: break-word;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
div.main li b {
|
div.main li b {
|
||||||
color: #b70 !important;
|
color: #b70 !important;
|
||||||
letter-spacing: 0.07em;
|
letter-spacing: 0.07em;
|
||||||
font-size: 9.5pt;
|
font-size: 9pt;
|
||||||
line-height: 200%;
|
|
||||||
text-shadow: 0 1px 1px #700;
|
text-shadow: 0 1px 1px #700;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -575,7 +589,7 @@ div.main li b {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.tidylist:last-child {
|
.tidylist:last-child {
|
||||||
padding-bottom: 15px;
|
padding-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.tidylist code {
|
.tidylist code {
|
||||||
@ -638,6 +652,14 @@ a:hover{
|
|||||||
list-style-image: url("images/link.png") !important;
|
list-style-image: url("images/link.png") !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.links b{
|
||||||
|
color: #b70 !important;
|
||||||
|
letter-spacing: 0.07em;
|
||||||
|
font-size: 9.5pt;
|
||||||
|
line-height: 165%;
|
||||||
|
text-shadow: 0 1px 1px #700;
|
||||||
|
}
|
||||||
|
|
||||||
p {
|
p {
|
||||||
text-align: justify;
|
text-align: justify;
|
||||||
line-height: 160%;
|
line-height: 160%;
|
||||||
|
@ -76,6 +76,10 @@ button {
|
|||||||
|
|
||||||
textarea {
|
textarea {
|
||||||
border: 1px solid #494;
|
border: 1px solid #494;
|
||||||
|
color: #fff;
|
||||||
|
background: #020;
|
||||||
|
margin-left: 4px;
|
||||||
|
margin-right: 5px !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
br {
|
br {
|
||||||
|
Binary file not shown.
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
@ -346,7 +346,7 @@ div.main textarea {
|
|||||||
|
|
||||||
div.news {
|
div.news {
|
||||||
margin: 0px 10px 5px 207px;
|
margin: 0px 10px 5px 207px;
|
||||||
padding: 10px 25px 7px 25px;
|
padding: 7px 20px 7px 20px;
|
||||||
border: 1px solid #447;
|
border: 1px solid #447;
|
||||||
color: #224;
|
color: #224;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
@ -364,7 +364,14 @@ div.news p {
|
|||||||
font-size: 9pt;
|
font-size: 9pt;
|
||||||
text-align: justify !important;
|
text-align: justify !important;
|
||||||
line-height: 120%;
|
line-height: 120%;
|
||||||
|
margin-top: -7px;
|
||||||
|
padding: 0 15px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
div.news h3 {
|
||||||
|
text-align: left !important;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
div.news a:link{
|
div.news a:link{
|
||||||
color: #a30;
|
color: #a30;
|
||||||
@ -389,7 +396,7 @@ div.news hr{
|
|||||||
color: #225;
|
color: #225;
|
||||||
background: #225;
|
background: #225;
|
||||||
height: 1px;
|
height: 1px;
|
||||||
border: 0px dotted #779;
|
border: 0px dotted #225;
|
||||||
margin: 10px 0 5px;
|
margin: 10px 0 5px;
|
||||||
/* -moz-box-shadow: 0px -1px 1px 1px #ffe;*/
|
/* -moz-box-shadow: 0px -1px 1px 1px #ffe;*/
|
||||||
opacity: 0.6;
|
opacity: 0.6;
|
||||||
@ -398,7 +405,7 @@ div.news hr{
|
|||||||
div.news li {
|
div.news li {
|
||||||
text-align: justify;
|
text-align: justify;
|
||||||
list-style: none;
|
list-style: none;
|
||||||
margin: 10px 0 20px 0 !important;
|
margin: 5px 0 16px 0 !important;
|
||||||
vertical-align: bottom;
|
vertical-align: bottom;
|
||||||
border: 1px solid #113;
|
border: 1px solid #113;
|
||||||
border-left: 5px solid #113;
|
border-left: 5px solid #113;
|
||||||
@ -411,6 +418,12 @@ div.news li {
|
|||||||
background: #ffe url('images/header.png') center center repeat-x;
|
background: #ffe url('images/header.png') center center repeat-x;
|
||||||
-moz-box-shadow: 0 1px 1px 1px rgba(176, 176, 216, 0.4);
|
-moz-box-shadow: 0 1px 1px 1px rgba(176, 176, 216, 0.4);
|
||||||
-moz-box-shadow: 0 1px 1px 1px rgba(176, 176, 216, 0.4);
|
-moz-box-shadow: 0 1px 1px 1px rgba(176, 176, 216, 0.4);
|
||||||
|
font-weight: bold;
|
||||||
|
text-transform: capitalize;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.news li:first-child {
|
||||||
|
margin-top: 10px !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -759,7 +772,6 @@ h2 {
|
|||||||
margin: 15px 0px 15px 0 !important;
|
margin: 15px 0px 15px 0 !important;
|
||||||
-moz-box-shadow: 0 1px 1px 1px rgba(176, 176, 216, 0.4);
|
-moz-box-shadow: 0 1px 1px 1px rgba(176, 176, 216, 0.4);
|
||||||
word-wrap: break-word;
|
word-wrap: break-word;
|
||||||
text-transform: uppercase;
|
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -782,8 +794,6 @@ h3 {
|
|||||||
-moz-border-radius: 0 4px 4px 0;
|
-moz-border-radius: 0 4px 4px 0;
|
||||||
-khtml-border-radius: 0 4px 4px 0;
|
-khtml-border-radius: 0 4px 4px 0;
|
||||||
background: #ffe url('images/header.png') center center repeat-x !important;
|
background: #ffe url('images/header.png') center center repeat-x !important;
|
||||||
text-transform: uppercase;
|
|
||||||
text-shadow: 0px 0px 1px #77f;
|
|
||||||
font-size: 11pt;
|
font-size: 11pt;
|
||||||
color: #000;
|
color: #000;
|
||||||
-moz-box-shadow: 0 1px 1px 1px rgba(176, 176, 216, 0.4);
|
-moz-box-shadow: 0 1px 1px 1px rgba(176, 176, 216, 0.4);
|
||||||
@ -856,7 +866,7 @@ button:active{
|
|||||||
}
|
}
|
||||||
|
|
||||||
.langbox img {
|
.langbox img {
|
||||||
opacity: 0.7 !important;
|
opacity: 0.8 !important;
|
||||||
-moz-box-shadow: 0 0 1px #447;
|
-moz-box-shadow: 0 0 1px #447;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1149,7 +1159,7 @@ div.footnote {
|
|||||||
text-align: right;
|
text-align: right;
|
||||||
color: #447;
|
color: #447;
|
||||||
font-size: 7pt;
|
font-size: 7pt;
|
||||||
margin-top: -10px;
|
margin-bottom: -5px !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.footnote hr{
|
div.footnote hr{
|
||||||
|
@ -47,7 +47,6 @@ h4 {
|
|||||||
margin: 5px 0 15px 0;
|
margin: 5px 0 15px 0;
|
||||||
padding: 5px 10px;
|
padding: 5px 10px;
|
||||||
background: #eef url(images/header.png) repeat-x center center;
|
background: #eef url(images/header.png) repeat-x center center;
|
||||||
text-transform: uppercase;
|
|
||||||
letter-spacing: 0.08em;
|
letter-spacing: 0.08em;
|
||||||
-moz-box-shadow: inset 0px 0px 4px 0px #bbf;
|
-moz-box-shadow: inset 0px 0px 4px 0px #bbf;
|
||||||
-moz-border-radius: 4px;
|
-moz-border-radius: 4px;
|
||||||
@ -78,6 +77,9 @@ button {
|
|||||||
|
|
||||||
textarea {
|
textarea {
|
||||||
border: 1px solid #9999ff;
|
border: 1px solid #9999ff;
|
||||||
|
color: #001;
|
||||||
|
background: #ddf;
|
||||||
|
border: 1px solid #44d;
|
||||||
}
|
}
|
||||||
|
|
||||||
br {
|
br {
|
||||||
|
@ -114,7 +114,7 @@ div.warning h3 {
|
|||||||
font-variant: small-caps;
|
font-variant: small-caps;
|
||||||
text-transform: capitalize;
|
text-transform: capitalize;
|
||||||
font-size: 12.5pt;
|
font-size: 12.5pt;
|
||||||
background: none;
|
background: none !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* console error messages */
|
/* console error messages */
|
||||||
@ -428,6 +428,11 @@ div.news li {
|
|||||||
font-size: 10pt;
|
font-size: 10pt;
|
||||||
color: #eef;
|
color: #eef;
|
||||||
text-transform: capitalize;
|
text-transform: capitalize;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.news h3 {
|
||||||
|
text-align: left !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.news p {
|
div.news p {
|
||||||
@ -464,11 +469,11 @@ div.news hr {
|
|||||||
background: #99f;
|
background: #99f;
|
||||||
height: 1px;
|
height: 1px;
|
||||||
border: 0px solid #99f;
|
border: 0px solid #99f;
|
||||||
margin: 20px 0 2px 0;
|
margin: 10px 0 2px 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.confignav {
|
div.confignav {
|
||||||
padding: 15px 0;
|
padding: 14px 0 15px;
|
||||||
background: #000018;
|
background: #000018;
|
||||||
margin: -16px -16px 0 -16px;
|
margin: -16px -16px 0 -16px;
|
||||||
border: 1px solid #99f;
|
border: 1px solid #99f;
|
||||||
@ -552,7 +557,7 @@ h1 {
|
|||||||
text-shadow: 0px 0px 2px rgba(255, 255, 255, 0.4);
|
text-shadow: 0px 0px 2px rgba(255, 255, 255, 0.4);
|
||||||
text-align: center;
|
text-align: center;
|
||||||
border: 1px solid #99f;
|
border: 1px solid #99f;
|
||||||
padding: 16px 10px 16px 10px;
|
padding: 15px 10px;
|
||||||
margin: 5px 5px 0 200px;
|
margin: 5px 5px 0 200px;
|
||||||
line-height: 93%;
|
line-height: 93%;
|
||||||
text-transform: uppercase;
|
text-transform: uppercase;
|
||||||
@ -816,8 +821,7 @@ p {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.links b {
|
.links b {
|
||||||
margin-bottom: 25px !important;
|
line-height: 170%;
|
||||||
line-height: 250%;
|
|
||||||
letter-spacing: 0.12em !important;
|
letter-spacing: 0.12em !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -943,10 +947,11 @@ div.footnote {
|
|||||||
text-align: right;
|
text-align: right;
|
||||||
color: #99f;
|
color: #99f;
|
||||||
font-size: 7pt;
|
font-size: 7pt;
|
||||||
|
margin-bottom: -5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.footnote hr{
|
div.footnote hr{
|
||||||
margin: 15px 0 5px 0 !important;
|
margin: 15px 0 3px 0 !important;
|
||||||
color: #99f;
|
color: #99f;
|
||||||
background: #99f;
|
background: #99f;
|
||||||
height: 1px;
|
height: 1px;
|
||||||
|
Binary file not shown.
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 7.9 KiB |
@ -18,10 +18,10 @@ public class RouterVersion {
|
|||||||
/** deprecated */
|
/** deprecated */
|
||||||
public final static String ID = "Monotone";
|
public final static String ID = "Monotone";
|
||||||
public final static String VERSION = CoreVersion.VERSION;
|
public final static String VERSION = CoreVersion.VERSION;
|
||||||
public final static long BUILD = 37;
|
public final static long BUILD = 0;
|
||||||
|
|
||||||
/** for example "-test" */
|
/** for example "-test" */
|
||||||
public final static String EXTRA = "-rc";
|
public final static String EXTRA = "";
|
||||||
public final static String FULL_VERSION = VERSION + "-" + BUILD + EXTRA;
|
public final static String FULL_VERSION = VERSION + "-" + BUILD + EXTRA;
|
||||||
public static void main(String args[]) {
|
public static void main(String args[]) {
|
||||||
System.out.println("I2P Router version: " + FULL_VERSION);
|
System.out.println("I2P Router version: " + FULL_VERSION);
|
||||||
|
@ -181,7 +181,7 @@ public class Reseeder {
|
|||||||
if (defaulted && !SSLDisable) {
|
if (defaulted && !SSLDisable) {
|
||||||
// put the non-SSL at the end of the SSL
|
// put the non-SSL at the end of the SSL
|
||||||
List<String> URLList2 = new ArrayList();
|
List<String> URLList2 = new ArrayList();
|
||||||
tok = new StringTokenizer(DEFAULT_SSL_SEED_URL, " ,");
|
tok = new StringTokenizer(DEFAULT_SEED_URL, " ,");
|
||||||
while (tok.hasMoreTokens())
|
while (tok.hasMoreTokens())
|
||||||
URLList2.add(tok.nextToken().trim());
|
URLList2.add(tok.nextToken().trim());
|
||||||
Collections.shuffle(URLList2);
|
Collections.shuffle(URLList2);
|
||||||
|
@ -63,6 +63,10 @@ public class NTCPTransport extends TransportImpl {
|
|||||||
private long _lastBadSkew;
|
private long _lastBadSkew;
|
||||||
private static final long[] RATES = { 10*60*1000 };
|
private static final long[] RATES = { 10*60*1000 };
|
||||||
|
|
||||||
|
// Opera doesn't have the char, TODO check UA
|
||||||
|
//private static final String THINSP = " / ";
|
||||||
|
private static final String THINSP = " / ";
|
||||||
|
|
||||||
public NTCPTransport(RouterContext ctx) {
|
public NTCPTransport(RouterContext ctx) {
|
||||||
super(ctx);
|
super(ctx);
|
||||||
|
|
||||||
@ -740,7 +744,7 @@ public class NTCPTransport extends TransportImpl {
|
|||||||
buf.append("<img src=\"/themes/console/images/outbound.png\" alt=\"Outbound\" title=\"").append(_("Outbound")).append("\"/>");
|
buf.append("<img src=\"/themes/console/images/outbound.png\" alt=\"Outbound\" title=\"").append(_("Outbound")).append("\"/>");
|
||||||
buf.append("</td><td class=\"cells\" align=\"right\">");
|
buf.append("</td><td class=\"cells\" align=\"right\">");
|
||||||
buf.append(DataHelper.formatDuration2(con.getTimeSinceReceive()));
|
buf.append(DataHelper.formatDuration2(con.getTimeSinceReceive()));
|
||||||
buf.append(" / ").append(DataHelper.formatDuration2(con.getTimeSinceSend()));
|
buf.append(THINSP).append(DataHelper.formatDuration2(con.getTimeSinceSend()));
|
||||||
buf.append("</td><td class=\"cells\" align=\"right\">");
|
buf.append("</td><td class=\"cells\" align=\"right\">");
|
||||||
if (con.getTimeSinceReceive() < 10*1000) {
|
if (con.getTimeSinceReceive() < 10*1000) {
|
||||||
buf.append(formatRate(con.getRecvRate()/1024));
|
buf.append(formatRate(con.getRecvRate()/1024));
|
||||||
@ -748,7 +752,7 @@ public class NTCPTransport extends TransportImpl {
|
|||||||
} else {
|
} else {
|
||||||
buf.append(formatRate(0));
|
buf.append(formatRate(0));
|
||||||
}
|
}
|
||||||
buf.append(" / ");
|
buf.append(THINSP);
|
||||||
if (con.getTimeSinceSend() < 10*1000) {
|
if (con.getTimeSinceSend() < 10*1000) {
|
||||||
buf.append(formatRate(con.getSendRate()/1024));
|
buf.append(formatRate(con.getSendRate()/1024));
|
||||||
bpsSend += con.getSendRate();
|
bpsSend += con.getSendRate();
|
||||||
@ -785,7 +789,7 @@ public class NTCPTransport extends TransportImpl {
|
|||||||
if (!peers.isEmpty()) {
|
if (!peers.isEmpty()) {
|
||||||
// buf.append("<tr> <td colspan=\"11\"><hr></td></tr>\n");
|
// buf.append("<tr> <td colspan=\"11\"><hr></td></tr>\n");
|
||||||
buf.append("<tr class=\"tablefooter\"><td align=\"center\"><b>").append(peers.size()).append(' ').append(_("peers")).append("</b></td><td> </td><td> ");
|
buf.append("<tr class=\"tablefooter\"><td align=\"center\"><b>").append(peers.size()).append(' ').append(_("peers")).append("</b></td><td> </td><td> ");
|
||||||
buf.append("</td><td align=\"center\"><b>").append(formatRate(bpsRecv/1024)).append(" / ").append(formatRate(bpsSend/1024)).append("</b>");
|
buf.append("</td><td align=\"center\"><b>").append(formatRate(bpsRecv/1024)).append(THINSP).append(formatRate(bpsSend/1024)).append("</b>");
|
||||||
buf.append("</td><td align=\"center\"><b>").append(DataHelper.formatDuration2(totalUptime/peers.size()));
|
buf.append("</td><td align=\"center\"><b>").append(DataHelper.formatDuration2(totalUptime/peers.size()));
|
||||||
buf.append("</b></td><td align=\"center\"><b>").append(DataHelper.formatDuration2(offsetTotal*1000/peers.size()));
|
buf.append("</b></td><td align=\"center\"><b>").append(DataHelper.formatDuration2(offsetTotal*1000/peers.size()));
|
||||||
buf.append("</b></td><td align=\"center\"><b>").append(totalSend).append("</b></td><td align=\"center\"><b>").append(totalRecv);
|
buf.append("</b></td><td align=\"center\"><b>").append(totalSend).append("</b></td><td align=\"center\"><b>").append(totalRecv);
|
||||||
|
@ -170,6 +170,10 @@ public class UDPTransport extends TransportImpl implements TimedWeightedPriority
|
|||||||
private static final int TRANSIENT_FAIL_BID = 8;
|
private static final int TRANSIENT_FAIL_BID = 8;
|
||||||
private final TransportBid[] _cachedBid;
|
private final TransportBid[] _cachedBid;
|
||||||
|
|
||||||
|
// Opera doesn't have the char, TODO check UA
|
||||||
|
//private static final String THINSP = " / ";
|
||||||
|
private static final String THINSP = " / ";
|
||||||
|
|
||||||
public UDPTransport(RouterContext ctx) {
|
public UDPTransport(RouterContext ctx) {
|
||||||
super(ctx);
|
super(ctx);
|
||||||
_context = ctx;
|
_context = ctx;
|
||||||
@ -1982,7 +1986,7 @@ public class UDPTransport extends TransportImpl implements TimedWeightedPriority
|
|||||||
|
|
||||||
buf.append("<td class=\"cells\" align=\"right\">");
|
buf.append("<td class=\"cells\" align=\"right\">");
|
||||||
buf.append(DataHelper.formatDuration2(idleIn));
|
buf.append(DataHelper.formatDuration2(idleIn));
|
||||||
buf.append("&thinsp/ ");
|
buf.append(THINSP);
|
||||||
buf.append(DataHelper.formatDuration2(idleOut));
|
buf.append(DataHelper.formatDuration2(idleOut));
|
||||||
buf.append("</td>");
|
buf.append("</td>");
|
||||||
|
|
||||||
@ -1991,7 +1995,7 @@ public class UDPTransport extends TransportImpl implements TimedWeightedPriority
|
|||||||
|
|
||||||
buf.append("<td class=\"cells\" align=\"right\" nowrap>");
|
buf.append("<td class=\"cells\" align=\"right\" nowrap>");
|
||||||
buf.append(formatKBps(recvBps));
|
buf.append(formatKBps(recvBps));
|
||||||
buf.append(" / ");
|
buf.append(THINSP);
|
||||||
buf.append(formatKBps(sendBps));
|
buf.append(formatKBps(sendBps));
|
||||||
//buf.append(" K/s");
|
//buf.append(" K/s");
|
||||||
//buf.append(formatKBps(peer.getReceiveACKBps()));
|
//buf.append(formatKBps(peer.getReceiveACKBps()));
|
||||||
@ -2017,9 +2021,9 @@ public class UDPTransport extends TransportImpl implements TimedWeightedPriority
|
|||||||
buf.append("<td class=\"cells\" align=\"right\">");
|
buf.append("<td class=\"cells\" align=\"right\">");
|
||||||
buf.append(sendWindow/1024);
|
buf.append(sendWindow/1024);
|
||||||
buf.append("K");
|
buf.append("K");
|
||||||
buf.append(" / ").append(peer.getConcurrentSends());
|
buf.append(THINSP).append(peer.getConcurrentSends());
|
||||||
buf.append(" / ").append(peer.getConcurrentSendWindow());
|
buf.append(THINSP).append(peer.getConcurrentSendWindow());
|
||||||
buf.append(" / ").append(peer.getConsecutiveSendRejections());
|
buf.append(THINSP).append(peer.getConsecutiveSendRejections());
|
||||||
buf.append("</td>");
|
buf.append("</td>");
|
||||||
|
|
||||||
buf.append("<td class=\"cells\" align=\"right\">");
|
buf.append("<td class=\"cells\" align=\"right\">");
|
||||||
@ -2042,7 +2046,7 @@ public class UDPTransport extends TransportImpl implements TimedWeightedPriority
|
|||||||
buf.append("</td>");
|
buf.append("</td>");
|
||||||
|
|
||||||
buf.append("<td class=\"cells\" align=\"right\">");
|
buf.append("<td class=\"cells\" align=\"right\">");
|
||||||
buf.append(peer.getMTU()).append(" / ").append(peer.getReceiveMTU());
|
buf.append(peer.getMTU()).append(THINSP).append(peer.getReceiveMTU());
|
||||||
|
|
||||||
//.append('/');
|
//.append('/');
|
||||||
//buf.append(peer.getMTUIncreases()).append('/');
|
//buf.append(peer.getMTUIncreases()).append('/');
|
||||||
@ -2102,7 +2106,7 @@ public class UDPTransport extends TransportImpl implements TimedWeightedPriority
|
|||||||
// buf.append("<tr><td colspan=\"16\"><hr></td></tr>\n");
|
// buf.append("<tr><td colspan=\"16\"><hr></td></tr>\n");
|
||||||
buf.append("<tr class=\"tablefooter\"> <td colspan=\"3\" align=\"left\"><b>").append(_("SUMMARY")).append("</b></td>" +
|
buf.append("<tr class=\"tablefooter\"> <td colspan=\"3\" align=\"left\"><b>").append(_("SUMMARY")).append("</b></td>" +
|
||||||
"<td align=\"center\" nowrap><b>");
|
"<td align=\"center\" nowrap><b>");
|
||||||
buf.append(formatKBps(bpsIn)).append(" / ").append(formatKBps(bpsOut));
|
buf.append(formatKBps(bpsIn)).append(THINSP).append(formatKBps(bpsOut));
|
||||||
long x = numPeers > 0 ? uptimeMsTotal/numPeers : 0;
|
long x = numPeers > 0 ? uptimeMsTotal/numPeers : 0;
|
||||||
buf.append("</b></td>" +
|
buf.append("</b></td>" +
|
||||||
"<td align=\"center\"><b>").append(DataHelper.formatDuration2(x));
|
"<td align=\"center\"><b>").append(DataHelper.formatDuration2(x));
|
||||||
|
Reference in New Issue
Block a user