forked from I2P_Developers/i2p.i2p
propagate from branch 'i2p.i2p' (head b7ee04ecc7a594239e977b25a52ebdabadce558e)
to branch 'i2p.i2p.zzz.jetty6' (head 2cd4a4dae8b87b9ed2128d83aff1b39e3a818556)
This commit is contained in:
@ -20,6 +20,7 @@ source_lang = en
|
|||||||
trans.ar = apps/routerconsole/locale/messages_ar.po
|
trans.ar = apps/routerconsole/locale/messages_ar.po
|
||||||
trans.da = apps/routerconsole/locale/messages_da.po
|
trans.da = apps/routerconsole/locale/messages_da.po
|
||||||
trans.de = apps/routerconsole/locale/messages_de.po
|
trans.de = apps/routerconsole/locale/messages_de.po
|
||||||
|
trans.et_EE = apps/routerconsole/locale/messages_ee.po
|
||||||
trans.es = apps/routerconsole/locale/messages_es.po
|
trans.es = apps/routerconsole/locale/messages_es.po
|
||||||
trans.fi = apps/routerconsole/locale/messages_fi.po
|
trans.fi = apps/routerconsole/locale/messages_fi.po
|
||||||
trans.fr = apps/routerconsole/locale/messages_fr.po
|
trans.fr = apps/routerconsole/locale/messages_fr.po
|
||||||
|
28
LICENSE.txt
28
LICENSE.txt
@ -2,7 +2,7 @@ This product includes both public domain code and licensed code as described bel
|
|||||||
For all code, unless otherwise stated in the appropriate license, the following applies:
|
For all code, unless otherwise stated in the appropriate license, the following applies:
|
||||||
|
|
||||||
|
|
||||||
NO WARRANTY
|
NO WARRANTY
|
||||||
|
|
||||||
BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||||
@ -92,34 +92,34 @@ Installer:
|
|||||||
See licenses/LICENSE-Launch4j.txt (in binary packages)
|
See licenses/LICENSE-Launch4j.txt (in binary packages)
|
||||||
See installer/lib/launch4j/LICENSE.txt (in source packages)
|
See installer/lib/launch4j/LICENSE.txt (in source packages)
|
||||||
The following projects are used by Launch4j...
|
The following projects are used by Launch4j...
|
||||||
MinGW binutils (http://www.mingw.org/)
|
MinGW binutils (http://www.mingw.org/)
|
||||||
|
|
||||||
Commons BeanUtils (http://jakarta.apache.org/commons/beanutils/)
|
Commons BeanUtils (http://jakarta.apache.org/commons/beanutils/)
|
||||||
|
|
||||||
Commons Logging (http://jakarta.apache.org/commons/logging/)
|
Commons Logging (http://jakarta.apache.org/commons/logging/)
|
||||||
See licenses/LICENSE-Apache2.0.txt
|
See licenses/LICENSE-Apache2.0.txt
|
||||||
See licenses/NOTICE-Commons-Logging.txt
|
See licenses/NOTICE-Commons-Logging.txt
|
||||||
|
|
||||||
XStream (http://xstream.codehaus.org/)
|
XStream (http://xstream.codehaus.org/)
|
||||||
Copyright (c) 2003-2004, Joe Walnes
|
Copyright (c) 2003-2004, Joe Walnes
|
||||||
See licenses/LICENSE-XStream.txt
|
See licenses/LICENSE-XStream.txt
|
||||||
|
|
||||||
JGoodies Forms (http://www.jgoodies.com/freeware/forms/)
|
JGoodies Forms (http://www.jgoodies.com/freeware/forms/)
|
||||||
Copyright (c) 2002-2004 JGoodies Karsten Lentzsch. All rights reserved.
|
Copyright (c) 2002-2004 JGoodies Karsten Lentzsch. All rights reserved.
|
||||||
See licenses/LICENSE-JGoodies-Forms.txt
|
See licenses/LICENSE-JGoodies-Forms.txt
|
||||||
|
|
||||||
JGoodies Looks (http://www.jgoodies.com/freeware/looks/)
|
JGoodies Looks (http://www.jgoodies.com/freeware/looks/)
|
||||||
Copyright (c) 2003 JGoodies Karsten Lentzsch. All rights reserved.
|
Copyright (c) 2003 JGoodies Karsten Lentzsch. All rights reserved.
|
||||||
See licenses/LICENSE-JGoodies-Looks.txt
|
See licenses/LICENSE-JGoodies-Looks.txt
|
||||||
|
|
||||||
Foxtrot (http://foxtrot.sourceforge.net/)
|
Foxtrot (http://foxtrot.sourceforge.net/)
|
||||||
Copyright (c) 2002, Simone Bordet & Marco Cravero. All rights reserved.
|
Copyright (c) 2002, Simone Bordet & Marco Cravero. All rights reserved.
|
||||||
See licenses/LICENSE-Foxtrot.txt
|
See licenses/LICENSE-Foxtrot.txt
|
||||||
|
|
||||||
Nuvola Icon Theme (http://www.icon-king.com)
|
Nuvola Icon Theme (http://www.icon-king.com)
|
||||||
See licenses/LICENSE-LGPLv2.1.txt
|
See licenses/LICENSE-LGPLv2.1.txt
|
||||||
|
|
||||||
Forms were created using Abeille Forms Designer (https://abeille.dev.java.net/)
|
Forms were created using Abeille Forms Designer (https://abeille.dev.java.net/)
|
||||||
|
|
||||||
Izpack 4.3.0:
|
Izpack 4.3.0:
|
||||||
Copyright (c) 2001-2008 Julien Ponge
|
Copyright (c) 2001-2008 Julien Ponge
|
||||||
@ -127,7 +127,7 @@ Installer:
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
Java Service Wrapper Community Edition 32-bit 3.5.9:
|
Java Service Wrapper Community Edition 32-bit 3.5.13:
|
||||||
Copyright (C) 1999-2011 Tanuki Software, Ltd. All Rights Reserved.
|
Copyright (C) 1999-2011 Tanuki Software, Ltd. All Rights Reserved.
|
||||||
See licenses/LICENSE-Wrapper.txt
|
See licenses/LICENSE-Wrapper.txt
|
||||||
|
|
||||||
@ -135,10 +135,6 @@ Java Service Wrapper Community Edition 32-bit 3.5.9:
|
|||||||
Jbigi Libraries (jbigi.jar):
|
Jbigi Libraries (jbigi.jar):
|
||||||
JNI code public domain.
|
JNI code public domain.
|
||||||
|
|
||||||
GMP 4.1.3 / 4.1.4:
|
|
||||||
Copyright 1991, 1996, 1999, 2000 Free Software Foundation, Inc.
|
|
||||||
See licenses/LICENSE-LGPLv2.1.txt
|
|
||||||
|
|
||||||
GMP 4.3.2 / 5.0.2:
|
GMP 4.3.2 / 5.0.2:
|
||||||
Copyright 1991, 1996, 1999, 2000, 2007 Free Software Foundation, Inc.
|
Copyright 1991, 1996, 1999, 2000, 2007 Free Software Foundation, Inc.
|
||||||
See licenses/LICENSE-LGPLv3.txt
|
See licenses/LICENSE-LGPLv3.txt
|
||||||
@ -198,7 +194,7 @@ Applications:
|
|||||||
Flag icons:
|
Flag icons:
|
||||||
- Jersey and EU flag icons: public domain, courtesy Xrmap flag
|
- Jersey and EU flag icons: public domain, courtesy Xrmap flag
|
||||||
collection http://www.arvernes.com/wiki/index.php/Xrmap
|
collection http://www.arvernes.com/wiki/index.php/Xrmap
|
||||||
- Guernsey flag from the Open Clip Art Library, released into the public domain
|
- Guernsey and Isle of Man flags from the Open Clip Art Library, released into the public domain
|
||||||
- All other flag icons: public domain, courtesy mjames@gmail.com http://www.famfamfam.com/
|
- All other flag icons: public domain, courtesy mjames@gmail.com http://www.famfamfam.com/
|
||||||
Silk icons: See licenses/LICENSE-SilkIcons.txt
|
Silk icons: See licenses/LICENSE-SilkIcons.txt
|
||||||
|
|
||||||
|
@ -614,7 +614,8 @@ public class Storage
|
|||||||
} catch (Exception ex) {
|
} catch (Exception ex) {
|
||||||
ex.printStackTrace();
|
ex.printStackTrace();
|
||||||
}
|
}
|
||||||
} }
|
}
|
||||||
|
}
|
||||||
_filterNameCache.put(name, rv);
|
_filterNameCache.put(name, rv);
|
||||||
return rv;
|
return rv;
|
||||||
}
|
}
|
||||||
|
@ -2073,9 +2073,11 @@ private static class FetchAndAdd implements Runnable {
|
|||||||
// buf.append("<input type=\"hidden\" name=\"p\" value=\"").append(peerParam).append("\" >\n");
|
// buf.append("<input type=\"hidden\" name=\"p\" value=\"").append(peerParam).append("\" >\n");
|
||||||
buf.append(_("Torrent was not retrieved from {0}", urlify(_url)));
|
buf.append(_("Torrent was not retrieved from {0}", urlify(_url)));
|
||||||
String link = _url.replace("&", "&").replace(" ", "%20").replace(":", "%3A").replace("/", "%2F");
|
String link = _url.replace("&", "&").replace(" ", "%20").replace(":", "%3A").replace("/", "%2F");
|
||||||
|
/**** FIXME ticket #575
|
||||||
buf.append(" - [<a href=\"/i2psnark/?newURL=").append(link).append("#add\" >");
|
buf.append(" - [<a href=\"/i2psnark/?newURL=").append(link).append("#add\" >");
|
||||||
buf.append(_("Retry"));
|
buf.append(_("Retry"));
|
||||||
buf.append("</a>]");
|
buf.append("</a>]");
|
||||||
|
****/
|
||||||
_manager.addMessage(buf.toString());
|
_manager.addMessage(buf.toString());
|
||||||
}
|
}
|
||||||
} finally {
|
} finally {
|
||||||
|
@ -14,9 +14,9 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: I2P\n"
|
"Project-Id-Version: I2P\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2011-12-12 11:15+0000\n"
|
"POT-Creation-Date: 2011-12-27 22:38+0000\n"
|
||||||
"PO-Revision-Date: 2011-10-07 01:47+0000\n"
|
"PO-Revision-Date: 2011-12-18 10:52+0000\n"
|
||||||
"Last-Translator: blabla <blabla@trash-mail.com>\n"
|
"Last-Translator: punkibastardo <punkibastardo@gmail.com>\n"
|
||||||
"Language-Team: Spanish (Castilian) (http://www.transifex.net/projects/p/I2P/"
|
"Language-Team: Spanish (Castilian) (http://www.transifex.net/projects/p/I2P/"
|
||||||
"team/es/)\n"
|
"team/es/)\n"
|
||||||
"Language: es\n"
|
"Language: es\n"
|
||||||
@ -171,7 +171,7 @@ msgstr "No se puede abrir \"{0}\""
|
|||||||
#: ../java/src/org/klomp/snark/SnarkManager.java:661
|
#: ../java/src/org/klomp/snark/SnarkManager.java:661
|
||||||
#: ../java/src/org/klomp/snark/SnarkManager.java:737
|
#: ../java/src/org/klomp/snark/SnarkManager.java:737
|
||||||
#: ../java/src/org/klomp/snark/SnarkManager.java:792
|
#: ../java/src/org/klomp/snark/SnarkManager.java:792
|
||||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2035
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2036
|
||||||
#, java-format
|
#, java-format
|
||||||
msgid "Torrent with this info hash is already running: {0}"
|
msgid "Torrent with this info hash is already running: {0}"
|
||||||
msgstr "Ya hay un Torrent con este hash: {0}."
|
msgstr "Ya hay un Torrent con este hash: {0}."
|
||||||
@ -202,7 +202,7 @@ msgid "Torrent in \"{0}\" is invalid"
|
|||||||
msgstr "El archivo .torrent en \"{0}\" no es válido."
|
msgstr "El archivo .torrent en \"{0}\" no es válido."
|
||||||
|
|
||||||
#: ../java/src/org/klomp/snark/SnarkManager.java:699
|
#: ../java/src/org/klomp/snark/SnarkManager.java:699
|
||||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2057
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2058
|
||||||
#, java-format
|
#, java-format
|
||||||
msgid "ERROR - Out of memory, cannot create torrent from {0}"
|
msgid "ERROR - Out of memory, cannot create torrent from {0}"
|
||||||
msgstr "ERROR - Falta de memoria, no se puede crear un torrent de {0}."
|
msgstr "ERROR - Falta de memoria, no se puede crear un torrent de {0}."
|
||||||
@ -357,10 +357,10 @@ msgstr "Foro"
|
|||||||
|
|
||||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:251
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:251
|
||||||
msgid "Click \"Add torrent\" button to fetch torrent"
|
msgid "Click \"Add torrent\" button to fetch torrent"
|
||||||
msgstr ""
|
msgstr "Click en el botón \"Añadir torrent\" para cargar un torrent"
|
||||||
|
|
||||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:290
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:290
|
||||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1778
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1779
|
||||||
msgid "Status"
|
msgid "Status"
|
||||||
msgstr "Estado"
|
msgstr "Estado"
|
||||||
|
|
||||||
@ -462,9 +462,8 @@ msgstr[0] "1 par conectado"
|
|||||||
msgstr[1] "{0} pares conectados"
|
msgstr[1] "{0} pares conectados"
|
||||||
|
|
||||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:498
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:498
|
||||||
#, fuzzy
|
|
||||||
msgid "Opening the I2P tunnel"
|
msgid "Opening the I2P tunnel"
|
||||||
msgstr "Detener todos los torrents y el túnel I2P"
|
msgstr "Abriendo el túnel I2P"
|
||||||
|
|
||||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:505
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:505
|
||||||
#, java-format
|
#, java-format
|
||||||
@ -573,7 +572,7 @@ msgstr "sembrando"
|
|||||||
|
|
||||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:852
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:852
|
||||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1724
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1724
|
||||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1829
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1830
|
||||||
msgid "Complete"
|
msgid "Complete"
|
||||||
msgstr "completo"
|
msgstr "completo"
|
||||||
|
|
||||||
@ -911,7 +910,7 @@ msgstr "Finalización"
|
|||||||
|
|
||||||
#. else unknown
|
#. else unknown
|
||||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1726
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1726
|
||||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1775
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1776
|
||||||
msgid "Size"
|
msgid "Size"
|
||||||
msgstr "Tamaño"
|
msgstr "Tamaño"
|
||||||
|
|
||||||
@ -931,71 +930,79 @@ msgstr "Tamaño de las partes"
|
|||||||
msgid "Magnet link"
|
msgid "Magnet link"
|
||||||
msgstr "Enlace de magnet"
|
msgstr "Enlace de magnet"
|
||||||
|
|
||||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1773
|
#. We don't have the hash of the torrent file
|
||||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1812
|
#. buf.append("<br>").append(_("Maggot link")).append(": <a href=\"").append(MAGGOT).append(hex).append(':').append(hex).append("\">")
|
||||||
|
#. .append(MAGGOT).append(hex).append(':').append(hex).append("</a>");
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1762
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Torrent file"
|
||||||
|
msgstr "Detalles del torrent"
|
||||||
|
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1774
|
||||||
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1813
|
||||||
msgid "Directory"
|
msgid "Directory"
|
||||||
msgstr "Carpeta"
|
msgstr "Carpeta"
|
||||||
|
|
||||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1782
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1783
|
||||||
msgid "Priority"
|
msgid "Priority"
|
||||||
msgstr "Prioridad"
|
msgstr "Prioridad"
|
||||||
|
|
||||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1787
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1788
|
||||||
msgid "Up to higher level directory"
|
msgid "Up to higher level directory"
|
||||||
msgstr "Subir una herarquía"
|
msgstr "Subir una herarquía"
|
||||||
|
|
||||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1817
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1818
|
||||||
msgid "Torrent not found?"
|
msgid "Torrent not found?"
|
||||||
msgstr "¿No se encotró el archivo torrent?"
|
msgstr "¿No se encotró el archivo torrent?"
|
||||||
|
|
||||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1826
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1827
|
||||||
msgid "File not found in torrent?"
|
msgid "File not found in torrent?"
|
||||||
msgstr "¿Archivo no encontrado en el torrent?"
|
msgstr "¿Archivo no encontrado en el torrent?"
|
||||||
|
|
||||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1839
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1840
|
||||||
msgid "complete"
|
msgid "complete"
|
||||||
msgstr "completo"
|
msgstr "completo"
|
||||||
|
|
||||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1840
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1841
|
||||||
msgid "bytes remaining"
|
msgid "bytes remaining"
|
||||||
msgstr "Bytes faltando"
|
msgstr "Bytes faltando"
|
||||||
|
|
||||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1865
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1866
|
||||||
msgid "Open"
|
msgid "Open"
|
||||||
msgstr "abrir"
|
msgstr "abrir"
|
||||||
|
|
||||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1891
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1892
|
||||||
msgid "High"
|
msgid "High"
|
||||||
msgstr "alta"
|
msgstr "alta"
|
||||||
|
|
||||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1896
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1897
|
||||||
msgid "Normal"
|
msgid "Normal"
|
||||||
msgstr "normal"
|
msgstr "normal"
|
||||||
|
|
||||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1901
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1902
|
||||||
msgid "Skip"
|
msgid "Skip"
|
||||||
msgstr "dejar de lado"
|
msgstr "dejar de lado"
|
||||||
|
|
||||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1910
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1911
|
||||||
msgid "Save priorities"
|
msgid "Save priorities"
|
||||||
msgstr "Guardar prioridades"
|
msgstr "Guardar prioridades"
|
||||||
|
|
||||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2026
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2027
|
||||||
#, java-format
|
#, java-format
|
||||||
msgid "Torrent fetched from {0}"
|
msgid "Torrent fetched from {0}"
|
||||||
msgstr "Torrent obtenido desde {0}"
|
msgstr "Torrent obtenido desde {0}"
|
||||||
|
|
||||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2047
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2048
|
||||||
#, java-format
|
#, java-format
|
||||||
msgid "Torrent already running: {0}"
|
msgid "Torrent already running: {0}"
|
||||||
msgstr "Torrent ya en marcha: {0}"
|
msgstr "Torrent ya en marcha: {0}"
|
||||||
|
|
||||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2049
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2050
|
||||||
#, java-format
|
#, java-format
|
||||||
msgid "Torrent already in the queue: {0}"
|
msgid "Torrent already in the queue: {0}"
|
||||||
msgstr "Torrent ya encolado: {0}"
|
msgstr "Torrent ya encolado: {0}"
|
||||||
|
|
||||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2055
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2056
|
||||||
#, java-format
|
#, java-format
|
||||||
msgid "Torrent at {0} was not valid"
|
msgid "Torrent at {0} was not valid"
|
||||||
msgstr "Torrent en {0} no era válido"
|
msgstr "Torrent en {0} no era válido"
|
||||||
@ -1004,11 +1011,11 @@ msgstr "Torrent en {0} no era válido"
|
|||||||
#. String peerParam = req.getParameter("p");
|
#. String peerParam = req.getParameter("p");
|
||||||
#. if (peerParam != null)
|
#. if (peerParam != null)
|
||||||
#. buf.append("<input type=\"hidden\" name=\"p\" value=\"").append(peerParam).append("\" >\n");
|
#. buf.append("<input type=\"hidden\" name=\"p\" value=\"").append(peerParam).append("\" >\n");
|
||||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2069
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2070
|
||||||
#, java-format
|
#, java-format
|
||||||
msgid "Torrent was not retrieved from {0}"
|
msgid "Torrent was not retrieved from {0}"
|
||||||
msgstr "El torrent no se ha podido obtener de {0}."
|
msgstr "El torrent no se ha podido obtener de {0}."
|
||||||
|
|
||||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2072
|
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2073
|
||||||
msgid "Retry"
|
msgid "Retry"
|
||||||
msgstr ""
|
msgstr "Reintentar"
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -8,8 +8,12 @@ import net.i2p.apps.systray.UrlLauncher;
|
|||||||
import net.i2p.router.Router;
|
import net.i2p.router.Router;
|
||||||
import net.i2p.router.RouterContext;
|
import net.i2p.router.RouterContext;
|
||||||
import net.i2p.router.startup.ClientAppConfig;
|
import net.i2p.router.startup.ClientAppConfig;
|
||||||
|
import net.i2p.util.Log;
|
||||||
|
|
||||||
import org.tanukisoftware.wrapper.WrapperManager;
|
import org.tanukisoftware.wrapper.WrapperManager;
|
||||||
|
import org.tanukisoftware.wrapper.event.WrapperControlEvent;
|
||||||
|
import org.tanukisoftware.wrapper.event.WrapperEvent;
|
||||||
|
import org.tanukisoftware.wrapper.event.WrapperEventListener;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handler to deal with form submissions from the service config form and act
|
* Handler to deal with form submissions from the service config form and act
|
||||||
@ -18,6 +22,10 @@ import org.tanukisoftware.wrapper.WrapperManager;
|
|||||||
*/
|
*/
|
||||||
public class ConfigServiceHandler extends FormHandler {
|
public class ConfigServiceHandler extends FormHandler {
|
||||||
|
|
||||||
|
private static WrapperEventListener _signalHandler;
|
||||||
|
|
||||||
|
private static final String PROP_GRACEFUL_HUP = "router.gracefulHUP";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Register two shutdown hooks, one to rekey and/or tell the wrapper we are stopping,
|
* Register two shutdown hooks, one to rekey and/or tell the wrapper we are stopping,
|
||||||
* and a final one to tell the wrapper we are stopped.
|
* and a final one to tell the wrapper we are stopped.
|
||||||
@ -127,6 +135,79 @@ public class ConfigServiceHandler extends FormHandler {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Register a handler for signals,
|
||||||
|
* so we can handle HUP from the wrapper (non-Windows only)
|
||||||
|
*
|
||||||
|
* @since 0.8.13
|
||||||
|
*/
|
||||||
|
synchronized static void registerSignalHandler(RouterContext ctx) {
|
||||||
|
if (ctx.hasWrapper() && _signalHandler == null &&
|
||||||
|
!System.getProperty("os.name").startsWith("Win")) {
|
||||||
|
_signalHandler = new SignalHandler(ctx);
|
||||||
|
long mask = WrapperEventListener.EVENT_FLAG_CONTROL;
|
||||||
|
WrapperManager.addWrapperEventListener(_signalHandler, mask);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Unregister the handler for signals
|
||||||
|
*
|
||||||
|
* @since 0.8.13
|
||||||
|
*/
|
||||||
|
public synchronized static void unregisterSignalHandler() {
|
||||||
|
if (_signalHandler != null) {
|
||||||
|
WrapperManager.removeWrapperEventListener(_signalHandler);
|
||||||
|
_signalHandler = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Catch signals.
|
||||||
|
* The wrapper will potentially forward HUP, USR1, and USR2.
|
||||||
|
* But USR1 and USR2 are used by the JVM GC and cannot be trapped.
|
||||||
|
* So we will only get HUP.
|
||||||
|
*
|
||||||
|
* @since 0.8.13
|
||||||
|
*/
|
||||||
|
private static class SignalHandler implements WrapperEventListener {
|
||||||
|
private final RouterContext _ctxt;
|
||||||
|
|
||||||
|
public SignalHandler(RouterContext ctx) {
|
||||||
|
_ctxt = ctx;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void fired(WrapperEvent event) {
|
||||||
|
if (!(event instanceof WrapperControlEvent))
|
||||||
|
return;
|
||||||
|
WrapperControlEvent wce = (WrapperControlEvent) event;
|
||||||
|
Log log = _ctxt.logManager().getLog(ConfigServiceHandler.class);
|
||||||
|
if (log.shouldLog(Log.WARN))
|
||||||
|
log.warn("Got signal: " + wce.getControlEventName());
|
||||||
|
int sig = wce.getControlEvent();
|
||||||
|
switch (sig) {
|
||||||
|
case WrapperManager.WRAPPER_CTRL_HUP_EVENT:
|
||||||
|
if (_ctxt.getBooleanProperty(PROP_GRACEFUL_HUP)) {
|
||||||
|
wce.consume();
|
||||||
|
if (!(_ctxt.router().gracefulShutdownInProgress() ||
|
||||||
|
_ctxt.router().isFinalShutdownInProgress())) {
|
||||||
|
System.err.println("WARN: Graceful shutdown initiated by SIGHUP");
|
||||||
|
log.logAlways(Log.WARN, "Graceful shutdown initiated by SIGHUP");
|
||||||
|
registerWrapperNotifier(_ctxt, Router.EXIT_GRACEFUL, false);
|
||||||
|
_ctxt.router().shutdownGracefully();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
log.log(Log.CRIT, "Hard shutdown initiated by SIGHUP");
|
||||||
|
// JVM will call ShutdownHook if we don't do it ourselves
|
||||||
|
//wce.consume();
|
||||||
|
//registerWrapperNotifier(_ctxt, Router.EXIT_HARD, false);
|
||||||
|
//_ctxt.router().shutdown(Router.EXIT_HARD);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void processForm() {
|
protected void processForm() {
|
||||||
if (_action == null) return;
|
if (_action == null) return;
|
||||||
@ -194,6 +275,7 @@ public class ConfigServiceHandler extends FormHandler {
|
|||||||
addFormError(_("Warning: unable to install the service") + " - " + ioe.getMessage());
|
addFormError(_("Warning: unable to install the service") + " - " + ioe.getMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void uninstallService() {
|
private void uninstallService() {
|
||||||
try {
|
try {
|
||||||
Runtime.getRuntime().exec("uninstall_i2p_service_winnt.bat");
|
Runtime.getRuntime().exec("uninstall_i2p_service_winnt.bat");
|
||||||
|
@ -53,14 +53,14 @@ public class ConfigUIHelper extends HelperBase {
|
|||||||
* Any language-specific flag added to the icon set must be
|
* Any language-specific flag added to the icon set must be
|
||||||
* added to the top-level build.xml for the updater.
|
* added to the top-level build.xml for the updater.
|
||||||
*/
|
*/
|
||||||
private static final String langs[] = {"ar", "da", "de", "en", "es", "fi",
|
private static final String langs[] = {"ar", "da", "de", "ee", "en", "es", "fi",
|
||||||
"fr", "it", "nl", "pl", "pt", "ru",
|
"fr", "it", "nl", "pl", "pt", "ru",
|
||||||
"sv", "uk", "vi", "zh"};
|
"sv", "uk", "vi", "zh"};
|
||||||
private static final String flags[] = {"lang_ar", "dk", "de", "us", "es", "fi",
|
private static final String flags[] = {"lang_ar", "dk", "de", "ee", "us", "es", "fi",
|
||||||
"fr", "it", "nl", "pl", "pt", "ru",
|
"fr", "it", "nl", "pl", "pt", "ru",
|
||||||
"se", "ua", "vn", "cn"};
|
"se", "ua", "vn", "cn"};
|
||||||
private static final String xlangs[] = {_x("Arabic"), _x("Danish"),
|
private static final String xlangs[] = {_x("Arabic"), _x("Danish"),
|
||||||
_x("German"), _x("English"), _x("Spanish"),_x("Finnish"),
|
_x("German"), _x("Estonian"), _x("English"), _x("Spanish"), _x("Finnish"),
|
||||||
_x("French"), _x("Italian"), _x("Dutch"), _x("Polish"),
|
_x("French"), _x("Italian"), _x("Dutch"), _x("Polish"),
|
||||||
_x("Portuguese"), _x("Russian"), _x("Swedish"),
|
_x("Portuguese"), _x("Russian"), _x("Swedish"),
|
||||||
_x("Ukrainian"), _x("Vietnamese"), _x("Chinese")};
|
_x("Ukrainian"), _x("Vietnamese"), _x("Chinese")};
|
||||||
|
@ -10,7 +10,7 @@ import org.mortbay.jetty.Server;
|
|||||||
public class LogsHelper extends HelperBase {
|
public class LogsHelper extends HelperBase {
|
||||||
public LogsHelper() {}
|
public LogsHelper() {}
|
||||||
|
|
||||||
/** @since 0.8.11 */
|
/** @since 0.8.12 */
|
||||||
public String getJettyVersion() {
|
public String getJettyVersion() {
|
||||||
return Server.getVersion();
|
return Server.getVersion();
|
||||||
}
|
}
|
||||||
|
@ -376,9 +376,8 @@ public class NetDbRenderer {
|
|||||||
int cost = addr.getCost();
|
int cost = addr.getCost();
|
||||||
if (!((style.equals("SSU") && cost == 5) || (style.equals("NTCP") && cost == 10)))
|
if (!((style.equals("SSU") && cost == 5) || (style.equals("NTCP") && cost == 10)))
|
||||||
buf.append('[').append(_("cost")).append('=').append("" + cost).append("] ");
|
buf.append('[').append(_("cost")).append('=').append("" + cost).append("] ");
|
||||||
Properties p = new OrderedProperties();
|
Map p = addr.getOptionsMap();
|
||||||
p.putAll(addr.getOptions());
|
for (Map.Entry e : (Set<Map.Entry>) p.entrySet()) {
|
||||||
for (Map.Entry e : p.entrySet()) {
|
|
||||||
String name = (String) e.getKey();
|
String name = (String) e.getKey();
|
||||||
String val = (String) e.getValue();
|
String val = (String) e.getValue();
|
||||||
buf.append('[').append(_(DataHelper.stripHTML(name))).append('=').append(DataHelper.stripHTML(val)).append("] ");
|
buf.append('[').append(_(DataHelper.stripHTML(name))).append('=').append(DataHelper.stripHTML(val)).append("] ");
|
||||||
@ -387,9 +386,10 @@ public class NetDbRenderer {
|
|||||||
buf.append("</td></tr>\n");
|
buf.append("</td></tr>\n");
|
||||||
if (full) {
|
if (full) {
|
||||||
buf.append("<tr><td>" + _("Stats") + ": <br><code>");
|
buf.append("<tr><td>" + _("Stats") + ": <br><code>");
|
||||||
for (Iterator iter = info.getOptions().keySet().iterator(); iter.hasNext(); ) {
|
Map p = info.getOptionsMap();
|
||||||
String key = (String)iter.next();
|
for (Map.Entry e : (Set<Map.Entry>) p.entrySet()) {
|
||||||
String val = info.getOption(key);
|
String key = (String) e.getKey();
|
||||||
|
String val = (String) e.getValue();
|
||||||
buf.append(DataHelper.stripHTML(key)).append(" = ").append(DataHelper.stripHTML(val)).append("<br>\n");
|
buf.append(DataHelper.stripHTML(key)).append(" = ").append(DataHelper.stripHTML(val)).append("<br>\n");
|
||||||
}
|
}
|
||||||
buf.append("</code></td></tr>\n");
|
buf.append("</code></td></tr>\n");
|
||||||
@ -412,7 +412,7 @@ public class NetDbRenderer {
|
|||||||
if (style.equals("NTCP")) {
|
if (style.equals("NTCP")) {
|
||||||
rv |= NTCP;
|
rv |= NTCP;
|
||||||
} else if (style.equals("SSU")) {
|
} else if (style.equals("SSU")) {
|
||||||
if (addr.getOptions().getProperty("iport0") != null)
|
if (addr.getOption("iport0") != null)
|
||||||
rv |= SSUI;
|
rv |= SSUI;
|
||||||
else
|
else
|
||||||
rv |= SSU;
|
rv |= SSU;
|
||||||
|
@ -17,6 +17,7 @@ import java.util.Properties;
|
|||||||
import java.util.StringTokenizer;
|
import java.util.StringTokenizer;
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
|
|
||||||
|
import net.i2p.CoreVersion;
|
||||||
import net.i2p.I2PAppContext;
|
import net.i2p.I2PAppContext;
|
||||||
import net.i2p.data.DataHelper;
|
import net.i2p.data.DataHelper;
|
||||||
import net.i2p.router.Job;
|
import net.i2p.router.Job;
|
||||||
@ -27,6 +28,7 @@ import net.i2p.util.ConcurrentHashSet;
|
|||||||
import net.i2p.util.FileUtil;
|
import net.i2p.util.FileUtil;
|
||||||
import net.i2p.util.Log;
|
import net.i2p.util.Log;
|
||||||
import net.i2p.util.Translate;
|
import net.i2p.util.Translate;
|
||||||
|
import net.i2p.util.VersionComparator;
|
||||||
|
|
||||||
import org.mortbay.jetty.handler.ContextHandlerCollection;
|
import org.mortbay.jetty.handler.ContextHandlerCollection;
|
||||||
|
|
||||||
@ -95,6 +97,41 @@ public class PluginStarter implements Runnable {
|
|||||||
log.error("Cannot start nonexistent plugin: " + appName);
|
log.error("Cannot start nonexistent plugin: " + appName);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Properties props = pluginProperties(ctx, appName);
|
||||||
|
String minVersion = ConfigClientsHelper.stripHTML(props, "min-i2p-version");
|
||||||
|
if (minVersion != null &&
|
||||||
|
(new VersionComparator()).compare(CoreVersion.VERSION, minVersion) < 0) {
|
||||||
|
String foo = "Plugin " + appName + " requires I2P version " + minVersion + " or higher";
|
||||||
|
log.error(foo);
|
||||||
|
throw new Exception(foo);
|
||||||
|
}
|
||||||
|
|
||||||
|
minVersion = ConfigClientsHelper.stripHTML(props, "min-java-version");
|
||||||
|
if (minVersion != null &&
|
||||||
|
(new VersionComparator()).compare(System.getProperty("java.version"), minVersion) < 0) {
|
||||||
|
String foo = "Plugin " + appName + " requires Java version " + minVersion + " or higher";
|
||||||
|
log.error(foo);
|
||||||
|
throw new Exception(foo);
|
||||||
|
}
|
||||||
|
|
||||||
|
String jVersion = LogsHelper.jettyVersion();
|
||||||
|
minVersion = ConfigClientsHelper.stripHTML(props, "min-jetty-version");
|
||||||
|
if (minVersion != null &&
|
||||||
|
(new VersionComparator()).compare(minVersion, jVersion) > 0) {
|
||||||
|
String foo = "Plugin " + appName + " requires Jetty version " + minVersion + " or higher";
|
||||||
|
log.error(foo);
|
||||||
|
throw new Exception(foo);
|
||||||
|
}
|
||||||
|
|
||||||
|
String maxVersion = ConfigClientsHelper.stripHTML(props, "max-jetty-version");
|
||||||
|
if (maxVersion != null &&
|
||||||
|
(new VersionComparator()).compare(maxVersion, jVersion) < 0) {
|
||||||
|
String foo = "Plugin " + appName + " requires Jetty version " + maxVersion + " or lower";
|
||||||
|
log.error(foo);
|
||||||
|
throw new Exception(foo);
|
||||||
|
}
|
||||||
|
|
||||||
if (log.shouldLog(Log.INFO))
|
if (log.shouldLog(Log.INFO))
|
||||||
log.info("Starting plugin: " + appName);
|
log.info("Starting plugin: " + appName);
|
||||||
|
|
||||||
@ -113,8 +150,8 @@ public class PluginStarter implements Runnable {
|
|||||||
// load and start things in clients.config
|
// load and start things in clients.config
|
||||||
File clientConfig = new File(pluginDir, "clients.config");
|
File clientConfig = new File(pluginDir, "clients.config");
|
||||||
if (clientConfig.exists()) {
|
if (clientConfig.exists()) {
|
||||||
Properties props = new Properties();
|
Properties cprops = new Properties();
|
||||||
DataHelper.loadProps(props, clientConfig);
|
DataHelper.loadProps(cprops, clientConfig);
|
||||||
List<ClientAppConfig> clients = ClientAppConfig.getClientApps(clientConfig);
|
List<ClientAppConfig> clients = ClientAppConfig.getClientApps(clientConfig);
|
||||||
runClientApps(ctx, pluginDir, clients, "start");
|
runClientApps(ctx, pluginDir, clients, "start");
|
||||||
}
|
}
|
||||||
@ -123,7 +160,7 @@ public class PluginStarter implements Runnable {
|
|||||||
ContextHandlerCollection server = WebAppStarter.getConsoleServer();
|
ContextHandlerCollection server = WebAppStarter.getConsoleServer();
|
||||||
if (server != null) {
|
if (server != null) {
|
||||||
File consoleDir = new File(pluginDir, "console");
|
File consoleDir = new File(pluginDir, "console");
|
||||||
Properties props = RouterConsoleRunner.webAppProperties(consoleDir.getAbsolutePath());
|
Properties wprops = RouterConsoleRunner.webAppProperties(consoleDir.getAbsolutePath());
|
||||||
File webappDir = new File(consoleDir, "webapps");
|
File webappDir = new File(consoleDir, "webapps");
|
||||||
String fileNames[] = webappDir.list(RouterConsoleRunner.WarFilenameFilter.instance());
|
String fileNames[] = webappDir.list(RouterConsoleRunner.WarFilenameFilter.instance());
|
||||||
if (fileNames != null) {
|
if (fileNames != null) {
|
||||||
@ -138,7 +175,7 @@ public class PluginStarter implements Runnable {
|
|||||||
log.error("Skipping duplicate webapp " + warName + " in plugin " + appName);
|
log.error("Skipping duplicate webapp " + warName + " in plugin " + appName);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
String enabled = props.getProperty(RouterConsoleRunner.PREFIX + warName + ENABLED);
|
String enabled = wprops.getProperty(RouterConsoleRunner.PREFIX + warName + ENABLED);
|
||||||
if (! "false".equals(enabled)) {
|
if (! "false".equals(enabled)) {
|
||||||
if (log.shouldLog(Log.INFO))
|
if (log.shouldLog(Log.INFO))
|
||||||
log.info("Starting webapp: " + warName);
|
log.info("Starting webapp: " + warName);
|
||||||
@ -181,7 +218,6 @@ public class PluginStarter implements Runnable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// add summary bar link
|
// add summary bar link
|
||||||
Properties props = pluginProperties(ctx, appName);
|
|
||||||
String name = ConfigClientsHelper.stripHTML(props, "consoleLinkName_" + Messages.getLanguage(ctx));
|
String name = ConfigClientsHelper.stripHTML(props, "consoleLinkName_" + Messages.getLanguage(ctx));
|
||||||
if (name == null)
|
if (name == null)
|
||||||
name = ConfigClientsHelper.stripHTML(props, "consoleLinkName");
|
name = ConfigClientsHelper.stripHTML(props, "consoleLinkName");
|
||||||
|
@ -334,6 +334,21 @@ public class PluginUpdateHandler extends UpdateHandler {
|
|||||||
statusDone("<b>" + _("Plugin update requires installed plugin version {0} or lower", maxVersion) + "</b>");
|
statusDone("<b>" + _("Plugin update requires installed plugin version {0} or lower", maxVersion) + "</b>");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
oldVersion = LogsHelper.jettyVersion();
|
||||||
|
minVersion = ConfigClientsHelper.stripHTML(props, "min-jetty-version");
|
||||||
|
if (minVersion != null &&
|
||||||
|
(new VersionComparator()).compare(minVersion, oldVersion) > 0) {
|
||||||
|
to.delete();
|
||||||
|
statusDone("<b>" + _("Plugin requires Jetty version {0} or higher", minVersion) + "</b>");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
maxVersion = ConfigClientsHelper.stripHTML(props, "max-jetty-version");
|
||||||
|
if (maxVersion != null &&
|
||||||
|
(new VersionComparator()).compare(maxVersion, oldVersion) < 0) {
|
||||||
|
to.delete();
|
||||||
|
statusDone("<b>" + _("Plugin requires Jetty version {0} or lower", maxVersion) + "</b>");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// check if it is running first?
|
// check if it is running first?
|
||||||
try {
|
try {
|
||||||
|
@ -477,6 +477,7 @@ public class RouterConsoleRunner {
|
|||||||
ctx.addShutdownTask(new NewsShutdown(fetcher, newsThread));
|
ctx.addShutdownTask(new NewsShutdown(fetcher, newsThread));
|
||||||
// stat summarizer registers its own hook
|
// stat summarizer registers its own hook
|
||||||
ctx.addShutdownTask(new ServerShutdown());
|
ctx.addShutdownTask(new ServerShutdown());
|
||||||
|
ConfigServiceHandler.registerSignalHandler(ctx);
|
||||||
} // else log CRIT ?
|
} // else log CRIT ?
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -41,6 +41,7 @@
|
|||||||
<a href="/?lang=zh&consoleNonce=<%=consoleNonce%>"><img height="11" width="16" style="padding: 0 2px;" src="/flags.jsp?c=cn" title="中文" alt="中文"></a>
|
<a href="/?lang=zh&consoleNonce=<%=consoleNonce%>"><img height="11" width="16" style="padding: 0 2px;" src="/flags.jsp?c=cn" title="中文" alt="中文"></a>
|
||||||
<a href="/?lang=da&consoleNonce=<%=consoleNonce%>"><img height="11" width="16" style="padding: 0 2px;" src="/flags.jsp?c=dk" title="Danish" alt="Danish"></a>
|
<a href="/?lang=da&consoleNonce=<%=consoleNonce%>"><img height="11" width="16" style="padding: 0 2px;" src="/flags.jsp?c=dk" title="Danish" alt="Danish"></a>
|
||||||
<a href="/?lang=de&consoleNonce=<%=consoleNonce%>"><img height="11" width="16" style="padding: 0 2px;" src="/flags.jsp?c=de" title="Deutsch" alt="Deutsch"></a>
|
<a href="/?lang=de&consoleNonce=<%=consoleNonce%>"><img height="11" width="16" style="padding: 0 2px;" src="/flags.jsp?c=de" title="Deutsch" alt="Deutsch"></a>
|
||||||
|
<a href="/?lang=ee&consoleNonce=<%=consoleNonce%>"><img height="11" width="16" style="padding: 0 2px;" src="/flags.jsp?c=ee" title="Eesti" alt="Eesti"></a>
|
||||||
<a href="/?lang=es&consoleNonce=<%=consoleNonce%>"><img height="11" width="16" style="padding: 0 2px;" src="/flags.jsp?c=es" title="Español" alt="Español"></a>
|
<a href="/?lang=es&consoleNonce=<%=consoleNonce%>"><img height="11" width="16" style="padding: 0 2px;" src="/flags.jsp?c=es" title="Español" alt="Español"></a>
|
||||||
<a href="/?lang=fi&consoleNonce=<%=consoleNonce%>"><img height="11" width="16" style="padding: 0 2px;" src="/flags.jsp?c=fi" title="Suomi" alt="Suomi"></a>
|
<a href="/?lang=fi&consoleNonce=<%=consoleNonce%>"><img height="11" width="16" style="padding: 0 2px;" src="/flags.jsp?c=fi" title="Suomi" alt="Suomi"></a>
|
||||||
<a href="/?lang=fr&consoleNonce=<%=consoleNonce%>"><img height="11" width="16" style="padding: 0 2px;" src="/flags.jsp?c=fr" title="Français" alt="Français"></a><br>
|
<a href="/?lang=fr&consoleNonce=<%=consoleNonce%>"><img height="11" width="16" style="padding: 0 2px;" src="/flags.jsp?c=fr" title="Français" alt="Français"></a><br>
|
||||||
|
6100
apps/routerconsole/locale/messages_ee.po
Normal file
6100
apps/routerconsole/locale/messages_ee.po
Normal file
File diff suppressed because it is too large
Load Diff
@ -15,9 +15,9 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: I2P\n"
|
"Project-Id-Version: I2P\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2011-12-12 11:15+0000\n"
|
"POT-Creation-Date: 2011-12-27 22:37+0000\n"
|
||||||
"PO-Revision-Date: 2011-12-02 01:53+0000\n"
|
"PO-Revision-Date: 2011-12-18 10:51+0000\n"
|
||||||
"Last-Translator: blabla <blabla@trash-mail.com>\n"
|
"Last-Translator: punkibastardo <punkibastardo@gmail.com>\n"
|
||||||
"Language-Team: Spanish (Castilian) (http://www.transifex.net/projects/p/I2P/"
|
"Language-Team: Spanish (Castilian) (http://www.transifex.net/projects/p/I2P/"
|
||||||
"team/es/)\n"
|
"team/es/)\n"
|
||||||
"Language: es\n"
|
"Language: es\n"
|
||||||
@ -34,7 +34,7 @@ msgstr ""
|
|||||||
#. {0,number,####} prevents 1234 from being output as 1,234 in the English locale.
|
#. {0,number,####} prevents 1234 from being output as 1,234 in the English locale.
|
||||||
#. If you want the digit separator in your locale, translate as {0}.
|
#. If you want the digit separator in your locale, translate as {0}.
|
||||||
#. alternates: msec, msecs
|
#. alternates: msec, msecs
|
||||||
#: ../../../core/java/src/net/i2p/data/DataHelper.java:1261
|
#: ../../../core/java/src/net/i2p/data/DataHelper.java:1348
|
||||||
#, java-format
|
#, java-format
|
||||||
msgid "1 ms"
|
msgid "1 ms"
|
||||||
msgid_plural "{0,number,####} ms"
|
msgid_plural "{0,number,####} ms"
|
||||||
@ -43,7 +43,7 @@ msgstr[1] "{0,number,####} ms"
|
|||||||
|
|
||||||
#. seconds
|
#. seconds
|
||||||
#. alternates: secs, sec. 'seconds' is probably too long.
|
#. alternates: secs, sec. 'seconds' is probably too long.
|
||||||
#: ../../../core/java/src/net/i2p/data/DataHelper.java:1265
|
#: ../../../core/java/src/net/i2p/data/DataHelper.java:1352
|
||||||
#, java-format
|
#, java-format
|
||||||
msgid "1 sec"
|
msgid "1 sec"
|
||||||
msgid_plural "{0} sec"
|
msgid_plural "{0} sec"
|
||||||
@ -52,7 +52,7 @@ msgstr[1] "{0} s"
|
|||||||
|
|
||||||
#. minutes
|
#. minutes
|
||||||
#. alternates: mins, min. 'minutes' is probably too long.
|
#. alternates: mins, min. 'minutes' is probably too long.
|
||||||
#: ../../../core/java/src/net/i2p/data/DataHelper.java:1269
|
#: ../../../core/java/src/net/i2p/data/DataHelper.java:1356
|
||||||
#, java-format
|
#, java-format
|
||||||
msgid "1 min"
|
msgid "1 min"
|
||||||
msgid_plural "{0} min"
|
msgid_plural "{0} min"
|
||||||
@ -61,61 +61,61 @@ msgstr[1] "{0} min"
|
|||||||
|
|
||||||
#. hours
|
#. hours
|
||||||
#. alternates: hrs, hr., hrs.
|
#. alternates: hrs, hr., hrs.
|
||||||
#: ../../../core/java/src/net/i2p/data/DataHelper.java:1273
|
#: ../../../core/java/src/net/i2p/data/DataHelper.java:1360
|
||||||
#, java-format
|
#, java-format
|
||||||
msgid "1 hour"
|
msgid "1 hour"
|
||||||
msgid_plural "{0} hours"
|
msgid_plural "{0} hours"
|
||||||
msgstr[0] "1 hora"
|
msgstr[0] "1 hora"
|
||||||
msgstr[1] "{0} horas"
|
msgstr[1] "{0} horas"
|
||||||
|
|
||||||
#: ../../../core/java/src/net/i2p/data/DataHelper.java:1275
|
#: ../../../core/java/src/net/i2p/data/DataHelper.java:1362
|
||||||
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:315
|
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:315
|
||||||
msgid "n/a"
|
msgid "n/a"
|
||||||
msgstr "n/d"
|
msgstr "n/d"
|
||||||
|
|
||||||
#. days
|
#. days
|
||||||
#: ../../../core/java/src/net/i2p/data/DataHelper.java:1278
|
#: ../../../core/java/src/net/i2p/data/DataHelper.java:1365
|
||||||
#, java-format
|
#, java-format
|
||||||
msgid "1 day"
|
msgid "1 day"
|
||||||
msgid_plural "{0} days"
|
msgid_plural "{0} days"
|
||||||
msgstr[0] "1 día"
|
msgstr[0] "1 día"
|
||||||
msgstr[1] "{0} días"
|
msgstr[1] "{0} días"
|
||||||
|
|
||||||
#: ../../../router/java/src/net/i2p/router/Blocklist.java:124
|
#: ../../../router/java/src/net/i2p/router/Blocklist.java:128
|
||||||
#, java-format
|
#, java-format
|
||||||
msgid "Banned by router hash: {0}"
|
msgid "Banned by router hash: {0}"
|
||||||
msgstr "Baneado por el hash del router: {0}"
|
msgstr "Baneado por el hash del router: {0}"
|
||||||
|
|
||||||
#: ../../../router/java/src/net/i2p/router/Blocklist.java:126
|
#: ../../../router/java/src/net/i2p/router/Blocklist.java:130
|
||||||
msgid "Banned by router hash"
|
msgid "Banned by router hash"
|
||||||
msgstr "baneado por hash del router"
|
msgstr "baneado por hash del router"
|
||||||
|
|
||||||
#. Temporary reason, until the job finishes
|
#. Temporary reason, until the job finishes
|
||||||
#: ../../../router/java/src/net/i2p/router/Blocklist.java:683
|
#: ../../../router/java/src/net/i2p/router/Blocklist.java:681
|
||||||
#: ../../../router/java/src/net/i2p/router/Blocklist.java:756
|
#: ../../../router/java/src/net/i2p/router/Blocklist.java:754
|
||||||
#, java-format
|
#, java-format
|
||||||
msgid "IP banned by blocklist.txt entry {0}"
|
msgid "IP banned by blocklist.txt entry {0}"
|
||||||
msgstr "IP baneada por la blocklist.txt: {0}"
|
msgstr "IP baneada por la blocklist.txt: {0}"
|
||||||
|
|
||||||
#: ../../../router/java/src/net/i2p/router/Blocklist.java:794
|
#: ../../../router/java/src/net/i2p/router/Blocklist.java:793
|
||||||
msgid "IPs Banned Until Restart"
|
msgid "IPs Banned Until Restart"
|
||||||
msgstr "IPs prohibidas hasta el reinicio"
|
msgstr "IPs prohibidas hasta el reinicio"
|
||||||
|
|
||||||
#: ../../../router/java/src/net/i2p/router/Blocklist.java:818
|
#: ../../../router/java/src/net/i2p/router/Blocklist.java:817
|
||||||
msgid "IPs Permanently Banned"
|
msgid "IPs Permanently Banned"
|
||||||
msgstr "IPs permanentemente prohibidas"
|
msgstr "IPs permanentemente prohibidas"
|
||||||
|
|
||||||
#: ../../../router/java/src/net/i2p/router/Blocklist.java:820
|
#: ../../../router/java/src/net/i2p/router/Blocklist.java:819
|
||||||
#: ../java/src/net/i2p/router/web/TunnelRenderer.java:74
|
#: ../java/src/net/i2p/router/web/TunnelRenderer.java:74
|
||||||
msgid "From"
|
msgid "From"
|
||||||
msgstr "De"
|
msgstr "De"
|
||||||
|
|
||||||
#: ../../../router/java/src/net/i2p/router/Blocklist.java:822
|
#: ../../../router/java/src/net/i2p/router/Blocklist.java:821
|
||||||
#: ../java/src/net/i2p/router/web/TunnelRenderer.java:75
|
#: ../java/src/net/i2p/router/web/TunnelRenderer.java:75
|
||||||
msgid "To"
|
msgid "To"
|
||||||
msgstr "A"
|
msgstr "A"
|
||||||
|
|
||||||
#: ../../../router/java/src/net/i2p/router/Blocklist.java:858
|
#: ../../../router/java/src/net/i2p/router/Blocklist.java:857
|
||||||
#: ../java/src/net/i2p/router/web/ShitlistRenderer.java:47
|
#: ../java/src/net/i2p/router/web/ShitlistRenderer.java:47
|
||||||
#: ../java/src/net/i2p/router/web/SummaryHelper.java:410
|
#: ../java/src/net/i2p/router/web/SummaryHelper.java:410
|
||||||
msgid "none"
|
msgid "none"
|
||||||
@ -128,9 +128,8 @@ msgstr "ninguno"
|
|||||||
#: ../../../router/java/src/net/i2p/router/RouterThrottleImpl.java:82
|
#: ../../../router/java/src/net/i2p/router/RouterThrottleImpl.java:82
|
||||||
#: ../../../router/java/src/net/i2p/router/RouterThrottleImpl.java:124
|
#: ../../../router/java/src/net/i2p/router/RouterThrottleImpl.java:124
|
||||||
#: ../../../router/java/src/net/i2p/router/RouterThrottleImpl.java:524
|
#: ../../../router/java/src/net/i2p/router/RouterThrottleImpl.java:524
|
||||||
#, fuzzy
|
|
||||||
msgid "Rejecting tunnels: Starting up"
|
msgid "Rejecting tunnels: Starting up"
|
||||||
msgstr "rechazando túneles: apagando"
|
msgstr "Rechazando túneles: Iniciando"
|
||||||
|
|
||||||
#: ../../../router/java/src/net/i2p/router/RouterThrottleImpl.java:177
|
#: ../../../router/java/src/net/i2p/router/RouterThrottleImpl.java:177
|
||||||
msgid "Rejecting tunnels: High message delay"
|
msgid "Rejecting tunnels: High message delay"
|
||||||
@ -250,25 +249,25 @@ msgstr "Entrada de la NetDb"
|
|||||||
msgid "No transports (hidden or starting up?)"
|
msgid "No transports (hidden or starting up?)"
|
||||||
msgstr "No hay transportes (oculto o iniciando?)"
|
msgstr "No hay transportes (oculto o iniciando?)"
|
||||||
|
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:450
|
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:448
|
||||||
msgid "Unreachable on any transport"
|
msgid "Unreachable on any transport"
|
||||||
msgstr "Inalcanzable en cualquier transporte"
|
msgstr "Inalcanzable en cualquier transporte"
|
||||||
|
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:499
|
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:497
|
||||||
msgid "Router Transport Addresses"
|
msgid "Router Transport Addresses"
|
||||||
msgstr "Direcciones de transporte del router "
|
msgstr "Direcciones de transporte del router "
|
||||||
|
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:504
|
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:502
|
||||||
#, java-format
|
#, java-format
|
||||||
msgid "{0} is used for outbound connections only"
|
msgid "{0} is used for outbound connections only"
|
||||||
msgstr "{0} se utiliza sólo para conexiones salientes"
|
msgstr "{0} se utiliza sólo para conexiones salientes"
|
||||||
|
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:518
|
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:516
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/error500_jsp.java:137
|
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/error500_jsp.java:137
|
||||||
msgid "Help"
|
msgid "Help"
|
||||||
msgstr "Ayuda"
|
msgstr "Ayuda"
|
||||||
|
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:519
|
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:517
|
||||||
msgid ""
|
msgid ""
|
||||||
"Your transport connection limits are automatically set based on your "
|
"Your transport connection limits are automatically set based on your "
|
||||||
"configured bandwidth."
|
"configured bandwidth."
|
||||||
@ -276,7 +275,7 @@ msgstr ""
|
|||||||
"Los límites de conexiones de transporte se ajustan automáticamente basándose "
|
"Los límites de conexiones de transporte se ajustan automáticamente basándose "
|
||||||
"en el ancho de banda configurado."
|
"en el ancho de banda configurado."
|
||||||
|
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:521
|
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:519
|
||||||
msgid ""
|
msgid ""
|
||||||
"To override these limits, add the settings i2np.ntcp.maxConnections=nnn and "
|
"To override these limits, add the settings i2np.ntcp.maxConnections=nnn and "
|
||||||
"i2np.udp.maxConnections=nnn on the advanced configuration page."
|
"i2np.udp.maxConnections=nnn on the advanced configuration page."
|
||||||
@ -285,12 +284,12 @@ msgstr ""
|
|||||||
"maxConnections = nnn y i2np.udp.maxConnections = nnn en la página de "
|
"maxConnections = nnn y i2np.udp.maxConnections = nnn en la página de "
|
||||||
"configuración avanzada."
|
"configuración avanzada."
|
||||||
|
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:523
|
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:521
|
||||||
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:259
|
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:259
|
||||||
msgid "Definitions"
|
msgid "Definitions"
|
||||||
msgstr "Definiciones"
|
msgstr "Definiciones"
|
||||||
|
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:524
|
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:522
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:729
|
#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:729
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1953
|
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1953
|
||||||
#: ../java/src/net/i2p/router/web/ConfigPeerHandler.java:24
|
#: ../java/src/net/i2p/router/web/ConfigPeerHandler.java:24
|
||||||
@ -301,78 +300,78 @@ msgstr "Definiciones"
|
|||||||
msgid "Peer"
|
msgid "Peer"
|
||||||
msgstr "Par"
|
msgstr "Par"
|
||||||
|
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:524
|
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:522
|
||||||
msgid "The remote peer, identified by router hash"
|
msgid "The remote peer, identified by router hash"
|
||||||
msgstr "El par remoto, identificado por el hash del router"
|
msgstr "El par remoto, identificado por el hash del router"
|
||||||
|
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:525
|
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:523
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:730
|
#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:730
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1957
|
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1957
|
||||||
msgid "Dir"
|
msgid "Dir"
|
||||||
msgstr "Dir"
|
msgstr "Dir"
|
||||||
|
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:526
|
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:524
|
||||||
msgid "Inbound connection"
|
msgid "Inbound connection"
|
||||||
msgstr "Conexión entrante"
|
msgstr "Conexión entrante"
|
||||||
|
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:528
|
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:526
|
||||||
msgid "Outbound connection"
|
msgid "Outbound connection"
|
||||||
msgstr "Conexión saliente"
|
msgstr "Conexión saliente"
|
||||||
|
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:530
|
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:528
|
||||||
msgid "They offered to introduce us (help other peers traverse our firewall)"
|
msgid "They offered to introduce us (help other peers traverse our firewall)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Se han ofrecido a introducirnos (a ayudar a otros pares a atravesar nuestro "
|
"Se han ofrecido a introducirnos (a ayudar a otros pares a atravesar nuestro "
|
||||||
"cortafuegos)"
|
"cortafuegos)"
|
||||||
|
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:532
|
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:530
|
||||||
msgid "We offered to introduce them (help other peers traverse their firewall)"
|
msgid "We offered to introduce them (help other peers traverse their firewall)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Nos hemos ofrecido a introducirlos (a ayudar a otros compañeros a atravesar "
|
"Nos hemos ofrecido a introducirlos (a ayudar a otros compañeros a atravesar "
|
||||||
"su cortafuegos)"
|
"su cortafuegos)"
|
||||||
|
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:533
|
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:531
|
||||||
msgid "How long since a packet has been received / sent"
|
msgid "How long since a packet has been received / sent"
|
||||||
msgstr "Cuánto tiempo hace que un paquete ha sido recibido / enviado"
|
msgstr "Cuánto tiempo hace que un paquete ha sido recibido / enviado"
|
||||||
|
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:533
|
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:531
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:731
|
#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:731
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1958
|
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1958
|
||||||
msgid "Idle"
|
msgid "Idle"
|
||||||
msgstr "inactivo"
|
msgstr "inactivo"
|
||||||
|
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:534
|
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:532
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:732
|
#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:732
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1963
|
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1963
|
||||||
#: ../java/src/net/i2p/router/web/TunnelRenderer.java:164
|
#: ../java/src/net/i2p/router/web/TunnelRenderer.java:164
|
||||||
msgid "In/Out"
|
msgid "In/Out"
|
||||||
msgstr "Entrante/Saliente"
|
msgstr "Entrante/Saliente"
|
||||||
|
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:534
|
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:532
|
||||||
msgid "The smoothed inbound / outbound transfer rate (KBytes per second)"
|
msgid "The smoothed inbound / outbound transfer rate (KBytes per second)"
|
||||||
msgstr "Tasa de transferencia de entrada / salida (KBytes por segundo)"
|
msgstr "Tasa de transferencia de entrada / salida (KBytes por segundo)"
|
||||||
|
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:535
|
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:533
|
||||||
msgid "How long ago this connection was established"
|
msgid "How long ago this connection was established"
|
||||||
msgstr "Cuánto tiempo hace que se estableció esta conexión"
|
msgstr "Cuánto tiempo hace que se estableció esta conexión"
|
||||||
|
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:535
|
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:533
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:733
|
#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:733
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1968
|
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1968
|
||||||
msgid "Up"
|
msgid "Up"
|
||||||
msgstr "Subida"
|
msgstr "Subida"
|
||||||
|
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:536
|
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:534
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:734
|
#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:734
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1970
|
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1970
|
||||||
msgid "Skew"
|
msgid "Skew"
|
||||||
msgstr "Desincronización"
|
msgstr "Desincronización"
|
||||||
|
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:536
|
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:534
|
||||||
msgid "The difference between the peer's clock and your own"
|
msgid "The difference between the peer's clock and your own"
|
||||||
msgstr "La diferencia entre el reloj del par y el tuyo"
|
msgstr "La diferencia entre el reloj del par y el tuyo"
|
||||||
|
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:537
|
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:535
|
||||||
msgid ""
|
msgid ""
|
||||||
"The congestion window, which is how many bytes can be sent without an "
|
"The congestion window, which is how many bytes can be sent without an "
|
||||||
"acknowledgement"
|
"acknowledgement"
|
||||||
@ -380,40 +379,40 @@ msgstr ""
|
|||||||
"El rango de congestión, que es la cantidad de bytes que se pueden enviar sin "
|
"El rango de congestión, que es la cantidad de bytes que se pueden enviar sin "
|
||||||
"recibir confirmación"
|
"recibir confirmación"
|
||||||
|
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:538
|
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:536
|
||||||
msgid "The number of sent messages awaiting acknowledgement"
|
msgid "The number of sent messages awaiting acknowledgement"
|
||||||
msgstr "El número de mensajes enviados a la espera de confirmación"
|
msgstr "El número de mensajes enviados a la espera de confirmación"
|
||||||
|
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:539
|
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:537
|
||||||
msgid "The maximum number of concurrent messages to send"
|
msgid "The maximum number of concurrent messages to send"
|
||||||
msgstr "El número máximo de mensajes simultáneos para enviar"
|
msgstr "El número máximo de mensajes simultáneos para enviar"
|
||||||
|
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:540
|
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:538
|
||||||
msgid "The number of pending sends which exceed congestion window"
|
msgid "The number of pending sends which exceed congestion window"
|
||||||
msgstr "El número de envíos pendientes que superen el rango de congestión"
|
msgstr "El número de envíos pendientes que superen el rango de congestión"
|
||||||
|
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:541
|
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:539
|
||||||
msgid "The slow start threshold"
|
msgid "The slow start threshold"
|
||||||
msgstr "El umbral de incicio lento"
|
msgstr "El umbral de incicio lento"
|
||||||
|
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:542
|
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:540
|
||||||
msgid "The round trip time in milliseconds"
|
msgid "The round trip time in milliseconds"
|
||||||
msgstr "El tiempo de ida y vuelta en milisegundos"
|
msgstr "El tiempo de ida y vuelta en milisegundos"
|
||||||
|
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:543
|
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:541
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1980
|
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1980
|
||||||
msgid "Dev"
|
msgid "Dev"
|
||||||
msgstr "Desv"
|
msgstr "Desv"
|
||||||
|
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:543
|
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:541
|
||||||
msgid "The standard deviation of the round trip time in milliseconds"
|
msgid "The standard deviation of the round trip time in milliseconds"
|
||||||
msgstr "La desviación estándar del tiempo de ida y vuelta en milisegundos"
|
msgstr "La desviación estándar del tiempo de ida y vuelta en milisegundos"
|
||||||
|
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:544
|
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:542
|
||||||
msgid "The retransmit timeout in milliseconds"
|
msgid "The retransmit timeout in milliseconds"
|
||||||
msgstr "El tiempo de vencimiento de la retransmisión en milisegundos"
|
msgstr "El tiempo de vencimiento de la retransmisión en milisegundos"
|
||||||
|
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:545
|
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:543
|
||||||
msgid ""
|
msgid ""
|
||||||
"Current maximum send packet size / estimated maximum receive packet size "
|
"Current maximum send packet size / estimated maximum receive packet size "
|
||||||
"(bytes)"
|
"(bytes)"
|
||||||
@ -421,115 +420,115 @@ msgstr ""
|
|||||||
"Tamaño máximo actual de envío de paquetes / tamaño máximo estimado de "
|
"Tamaño máximo actual de envío de paquetes / tamaño máximo estimado de "
|
||||||
"paquetes entrantes (bytes)"
|
"paquetes entrantes (bytes)"
|
||||||
|
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:546
|
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:544
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:735
|
#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:735
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1987
|
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1987
|
||||||
msgid "TX"
|
msgid "TX"
|
||||||
msgstr "TX"
|
msgstr "TX"
|
||||||
|
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:546
|
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:544
|
||||||
msgid "The total number of packets sent to the peer"
|
msgid "The total number of packets sent to the peer"
|
||||||
msgstr "El número total de paquetes enviados al par"
|
msgstr "El número total de paquetes enviados al par"
|
||||||
|
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:547
|
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:545
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:736
|
#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:736
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1989
|
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1989
|
||||||
msgid "RX"
|
msgid "RX"
|
||||||
msgstr "RX"
|
msgstr "RX"
|
||||||
|
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:547
|
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:545
|
||||||
msgid "The total number of packets received from the peer"
|
msgid "The total number of packets received from the peer"
|
||||||
msgstr "El número total de paquetes recibidos del par"
|
msgstr "El número total de paquetes recibidos del par"
|
||||||
|
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:548
|
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:546
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1992
|
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1992
|
||||||
msgid "Dup TX"
|
msgid "Dup TX"
|
||||||
msgstr "TX dup"
|
msgstr "TX dup"
|
||||||
|
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:548
|
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:546
|
||||||
msgid "The total number of packets retransmitted to the peer"
|
msgid "The total number of packets retransmitted to the peer"
|
||||||
msgstr "El número total de paquetes retransmitidos al par"
|
msgstr "El número total de paquetes retransmitidos al par"
|
||||||
|
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:549
|
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:547
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1994
|
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1994
|
||||||
msgid "Dup RX"
|
msgid "Dup RX"
|
||||||
msgstr "RX dup"
|
msgstr "RX dup"
|
||||||
|
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:549
|
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:547
|
||||||
msgid "The total number of duplicate packets received from the peer"
|
msgid "The total number of duplicate packets received from the peer"
|
||||||
msgstr "El número total de paquetes duplicados recibidos de los pares"
|
msgstr "El número total de paquetes duplicados recibidos de los pares"
|
||||||
|
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:423
|
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:437
|
||||||
#: ../java/src/net/i2p/router/web/ConfigNavHelper.java:19
|
#: ../java/src/net/i2p/router/web/ConfigNavHelper.java:19
|
||||||
msgid "Service"
|
msgid "Service"
|
||||||
msgstr "Servicio"
|
msgstr "Servicio"
|
||||||
|
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:425
|
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:439
|
||||||
msgid "WAN Common Interface Configuration"
|
msgid "WAN Common Interface Configuration"
|
||||||
msgstr "Configuración de la interfaz común WAN"
|
msgstr "Configuración de la interfaz común WAN"
|
||||||
|
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:426
|
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:440
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:432
|
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:446
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:442
|
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:456
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:447
|
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:461
|
||||||
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:86
|
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:86
|
||||||
msgid "Status"
|
msgid "Status"
|
||||||
msgstr "Estado"
|
msgstr "Estado"
|
||||||
|
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:427
|
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:441
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:433
|
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:447
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:443
|
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:457
|
||||||
msgid "Type"
|
msgid "Type"
|
||||||
msgstr "Tipo"
|
msgstr "Tipo"
|
||||||
|
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:428
|
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:442
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:434
|
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:448
|
||||||
msgid "Upstream"
|
msgid "Upstream"
|
||||||
msgstr "Corriente de subida"
|
msgstr "Corriente de subida"
|
||||||
|
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:429
|
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:443
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:435
|
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:449
|
||||||
msgid "Downstream"
|
msgid "Downstream"
|
||||||
msgstr "Corriente de descarga"
|
msgstr "Corriente de descarga"
|
||||||
|
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:431
|
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:445
|
||||||
msgid "WAN PPP Connection"
|
msgid "WAN PPP Connection"
|
||||||
msgstr "Conexión WAN PPP"
|
msgstr "Conexión WAN PPP"
|
||||||
|
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:436
|
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:450
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:444
|
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:458
|
||||||
msgid "External IP"
|
msgid "External IP"
|
||||||
msgstr "IP externa"
|
msgstr "IP externa"
|
||||||
|
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:438
|
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:452
|
||||||
msgid "Layer 3 Forwarding"
|
msgid "Layer 3 Forwarding"
|
||||||
msgstr "Transmisión en capa 3"
|
msgstr "Transmisión en capa 3"
|
||||||
|
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:439
|
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:453
|
||||||
msgid "Default Connection Service"
|
msgid "Default Connection Service"
|
||||||
msgstr "Servicio de conexión por defecto"
|
msgstr "Servicio de conexión por defecto"
|
||||||
|
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:441
|
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:455
|
||||||
msgid "WAN IP Connection"
|
msgid "WAN IP Connection"
|
||||||
msgstr "Conexión IP WAN"
|
msgstr "Conexión IP WAN"
|
||||||
|
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:446
|
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:460
|
||||||
msgid "WAN Ethernet Link Configuration"
|
msgid "WAN Ethernet Link Configuration"
|
||||||
msgstr "Configuración del link Ethernet WAN"
|
msgstr "Configuración del link Ethernet WAN"
|
||||||
|
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:459
|
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:473
|
||||||
msgid "Found Device"
|
msgid "Found Device"
|
||||||
msgstr "Dispositivo encontrado"
|
msgstr "Dispositivo encontrado"
|
||||||
|
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:461
|
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:475
|
||||||
msgid "Subdevice"
|
msgid "Subdevice"
|
||||||
msgstr "Subdispositivo"
|
msgstr "Subdispositivo"
|
||||||
|
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:482
|
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:496
|
||||||
msgid "UPnP Status"
|
msgid "UPnP Status"
|
||||||
msgstr "Estado UPnP"
|
msgstr "Estado UPnP"
|
||||||
|
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:485
|
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:499
|
||||||
msgid ""
|
msgid ""
|
||||||
"UPnP has been disabled; Do you have more than one UPnP Internet Gateway "
|
"UPnP has been disabled; Do you have more than one UPnP Internet Gateway "
|
||||||
"Device on your LAN ?"
|
"Device on your LAN ?"
|
||||||
@ -537,26 +536,26 @@ msgstr ""
|
|||||||
"UPnP se ha deshabilitado; ¿Tienes más de un dispositivo pasarela UPnP en tu "
|
"UPnP se ha deshabilitado; ¿Tienes más de un dispositivo pasarela UPnP en tu "
|
||||||
"red local?"
|
"red local?"
|
||||||
|
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:488
|
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:502
|
||||||
msgid "UPnP has not found any UPnP-aware, compatible device on your LAN."
|
msgid "UPnP has not found any UPnP-aware, compatible device on your LAN."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"UPnP no ha encontrado ningún dispositivo UPnP compatible en tu red local."
|
"UPnP no ha encontrado ningún dispositivo UPnP compatible en tu red local."
|
||||||
|
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:496
|
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:510
|
||||||
#, java-format
|
#, java-format
|
||||||
msgid "The current external IP address reported by UPnP is {0}"
|
msgid "The current external IP address reported by UPnP is {0}"
|
||||||
msgstr "La dirección IP externa reportada por UPnP es {0}."
|
msgstr "La dirección IP externa reportada por UPnP es {0}."
|
||||||
|
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:498
|
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:512
|
||||||
msgid "The current external IP address is not available."
|
msgid "The current external IP address is not available."
|
||||||
msgstr "La dirección IP externa no está disponible."
|
msgstr "La dirección IP externa no está disponible."
|
||||||
|
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:502
|
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:516
|
||||||
#, java-format
|
#, java-format
|
||||||
msgid "UPnP reports the maximum downstream bit rate is {0}bits/sec"
|
msgid "UPnP reports the maximum downstream bit rate is {0}bits/sec"
|
||||||
msgstr "UPnP informa que la tasa máxima de bits entrantes es {0}bits/seg."
|
msgstr "UPnP informa que la tasa máxima de bits entrantes es {0}bits/seg."
|
||||||
|
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:504
|
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:518
|
||||||
#, java-format
|
#, java-format
|
||||||
msgid "UPnP reports the maximum upstream bit rate is {0}bits/sec"
|
msgid "UPnP reports the maximum upstream bit rate is {0}bits/sec"
|
||||||
msgstr "UPnP informa que la tasa máxima de bits salientes es {0}bits/seg."
|
msgstr "UPnP informa que la tasa máxima de bits salientes es {0}bits/seg."
|
||||||
@ -564,12 +563,12 @@ msgstr "UPnP informa que la tasa máxima de bits salientes es {0}bits/seg."
|
|||||||
#. {0} is TCP or UDP
|
#. {0} is TCP or UDP
|
||||||
#. {1,number,#####} prevents 12345 from being output as 12,345 in the English locale.
|
#. {1,number,#####} prevents 12345 from being output as 12,345 in the English locale.
|
||||||
#. If you want the digit separator in your locale, translate as {1}.
|
#. If you want the digit separator in your locale, translate as {1}.
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:513
|
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:527
|
||||||
#, java-format
|
#, java-format
|
||||||
msgid "{0} port {1,number,#####} was successfully forwarded by UPnP."
|
msgid "{0} port {1,number,#####} was successfully forwarded by UPnP."
|
||||||
msgstr "{0} puerto {1,number,#####} fue enviado con éxito por UPnP."
|
msgstr "{0} puerto {1,number,#####} fue enviado con éxito por UPnP."
|
||||||
|
|
||||||
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:515
|
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:529
|
||||||
#, java-format
|
#, java-format
|
||||||
msgid "{0} port {1,number,#####} was not forwarded by UPnP."
|
msgid "{0} port {1,number,#####} was not forwarded by UPnP."
|
||||||
msgstr "{0} puerto {1,number,#####} no fue transmitido por UPnP."
|
msgstr "{0} puerto {1,number,#####} no fue transmitido por UPnP."
|
||||||
@ -3063,12 +3062,11 @@ msgstr "Noticias chequeadas hace {0}."
|
|||||||
|
|
||||||
#: ../java/src/net/i2p/router/web/NewsFetcher.java:149
|
#: ../java/src/net/i2p/router/web/NewsFetcher.java:149
|
||||||
msgid "Hide news"
|
msgid "Hide news"
|
||||||
msgstr ""
|
msgstr "Esconder noticias"
|
||||||
|
|
||||||
#: ../java/src/net/i2p/router/web/NewsFetcher.java:152
|
#: ../java/src/net/i2p/router/web/NewsFetcher.java:152
|
||||||
#, fuzzy
|
|
||||||
msgid "Show news"
|
msgid "Show news"
|
||||||
msgstr "Mostrar túneles"
|
msgstr "Mostrar noticias"
|
||||||
|
|
||||||
#: ../java/src/net/i2p/router/web/PluginUpdateChecker.java:77
|
#: ../java/src/net/i2p/router/web/PluginUpdateChecker.java:77
|
||||||
#, java-format
|
#, java-format
|
||||||
@ -3648,9 +3646,8 @@ msgid "Anonymous webmail client"
|
|||||||
msgstr "Cliente webmail anónimo"
|
msgstr "Cliente webmail anónimo"
|
||||||
|
|
||||||
#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:69
|
#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:69
|
||||||
#, fuzzy
|
|
||||||
msgid "Email"
|
msgid "Email"
|
||||||
msgstr "Webmail"
|
msgstr "Email"
|
||||||
|
|
||||||
#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:73
|
#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:73
|
||||||
msgid "Built-in anonymous BitTorrent Client"
|
msgid "Built-in anonymous BitTorrent Client"
|
||||||
@ -3661,9 +3658,8 @@ msgid "Torrents"
|
|||||||
msgstr "Torrents"
|
msgstr "Torrents"
|
||||||
|
|
||||||
#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:79
|
#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:79
|
||||||
#, fuzzy
|
|
||||||
msgid "Local web server"
|
msgid "Local web server"
|
||||||
msgstr "Servidor web I2P"
|
msgstr "Servidor web local"
|
||||||
|
|
||||||
#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:89
|
#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:89
|
||||||
msgid "Configure I2P Router"
|
msgid "Configure I2P Router"
|
||||||
@ -3813,9 +3809,8 @@ msgid "Help with firewall configuration"
|
|||||||
msgstr "Ayuda con la configuración del cortafuegos"
|
msgstr "Ayuda con la configuración del cortafuegos"
|
||||||
|
|
||||||
#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:314
|
#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:314
|
||||||
#, fuzzy
|
|
||||||
msgid "Check network connection and NAT/firewall"
|
msgid "Check network connection and NAT/firewall"
|
||||||
msgstr "ERR-No hay pares activos, Compruebe la conexión de red y cortafuegos"
|
msgstr "Comprobar conexión de red y NAT/cortafuegos"
|
||||||
|
|
||||||
#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:334
|
#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:334
|
||||||
msgid "Reseed"
|
msgid "Reseed"
|
||||||
@ -4010,7 +4005,7 @@ msgstr "ahora"
|
|||||||
|
|
||||||
#: ../java/src/net/i2p/router/web/TunnelRenderer.java:43
|
#: ../java/src/net/i2p/router/web/TunnelRenderer.java:43
|
||||||
#: ../java/src/net/i2p/router/web/TunnelRenderer.java:65
|
#: ../java/src/net/i2p/router/web/TunnelRenderer.java:65
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/logs_jsp.java:321
|
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/logs_jsp.java:323
|
||||||
msgid "configure"
|
msgid "configure"
|
||||||
msgstr "configurar"
|
msgstr "configurar"
|
||||||
|
|
||||||
@ -4411,9 +4406,8 @@ msgid "itag2"
|
|||||||
msgstr "itag2"
|
msgstr "itag2"
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:120
|
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:120
|
||||||
#, fuzzy
|
|
||||||
msgid "configure bandwidth"
|
msgid "configure bandwidth"
|
||||||
msgstr "Configurar ancho de banda del enrutador I2P"
|
msgstr "Configurar ancho de banda"
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:231
|
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:231
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configadvanced_jsp.java:232
|
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configadvanced_jsp.java:232
|
||||||
@ -4525,9 +4519,8 @@ msgid "Enable"
|
|||||||
msgstr "Activar"
|
msgstr "Activar"
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:270
|
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:270
|
||||||
#, fuzzy
|
|
||||||
msgid "I2P Bandwidth Configuration"
|
msgid "I2P Bandwidth Configuration"
|
||||||
msgstr "Ajustes de Estadísticas I2P"
|
msgstr "Configuración de ancho de banda I2P"
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:325
|
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:325
|
||||||
msgid "Bandwidth limiter"
|
msgid "Bandwidth limiter"
|
||||||
@ -4596,9 +4589,8 @@ msgstr ""
|
|||||||
"ayudas a la red."
|
"ayudas a la red."
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:384
|
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:384
|
||||||
#, fuzzy
|
|
||||||
msgid "Advanced network configuration page"
|
msgid "Advanced network configuration page"
|
||||||
msgstr "Configuración I2P avanzada"
|
msgstr "Página de configuración de red avanzada"
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:386
|
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:386
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configadvanced_jsp.java:332
|
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configadvanced_jsp.java:332
|
||||||
@ -4830,9 +4822,8 @@ msgid "Configure I2P Logging Options"
|
|||||||
msgstr "Configurar las opciones de registro I2P"
|
msgstr "Configurar las opciones de registro I2P"
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:330
|
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:330
|
||||||
#, fuzzy
|
|
||||||
msgid "Log file"
|
msgid "Log file"
|
||||||
msgstr "Nombre de archivo del registro"
|
msgstr "Archivo de registro"
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:334
|
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:334
|
||||||
msgid "(the symbol '@' will be replaced during log rotation)"
|
msgid "(the symbol '@' will be replaced during log rotation)"
|
||||||
@ -6081,7 +6072,7 @@ msgid "I2P Version and Running Environment"
|
|||||||
msgstr "Versión I2P y entorno de ejecución"
|
msgstr "Versión I2P y entorno de ejecución"
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/error500_jsp.java:205
|
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/error500_jsp.java:205
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/logs_jsp.java:313
|
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/logs_jsp.java:315
|
||||||
msgid ""
|
msgid ""
|
||||||
"Note that system information, log timestamps, and log messages may provide "
|
"Note that system information, log timestamps, and log messages may provide "
|
||||||
"clues to your location; please review everything you include in a bug report."
|
"clues to your location; please review everything you include in a bug report."
|
||||||
@ -6143,15 +6134,15 @@ msgstr "registros"
|
|||||||
msgid "I2P Router Logs"
|
msgid "I2P Router Logs"
|
||||||
msgstr "Registros del Router I2P"
|
msgstr "Registros del Router I2P"
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/logs_jsp.java:315
|
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/logs_jsp.java:317
|
||||||
msgid "Critical Logs"
|
msgid "Critical Logs"
|
||||||
msgstr "Registros críticos"
|
msgstr "Registros críticos"
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/logs_jsp.java:319
|
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/logs_jsp.java:321
|
||||||
msgid "Router Logs"
|
msgid "Router Logs"
|
||||||
msgstr "Registros del router"
|
msgstr "Registros del router"
|
||||||
|
|
||||||
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/logs_jsp.java:325
|
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/logs_jsp.java:327
|
||||||
msgid "Service (Wrapper) Logs"
|
msgid "Service (Wrapper) Logs"
|
||||||
msgstr "Registros de servicio (Wrapper)"
|
msgstr "Registros de servicio (Wrapper)"
|
||||||
|
|
||||||
@ -6229,27 +6220,3 @@ msgstr "Perfil del par"
|
|||||||
#, java-format
|
#, java-format
|
||||||
msgid "Profile for peer {0}"
|
msgid "Profile for peer {0}"
|
||||||
msgstr "Perfil del par {0}"
|
msgstr "Perfil del par {0}"
|
||||||
|
|
||||||
#~ msgid "Anonymous resident webserver"
|
|
||||||
#~ msgstr "Servidor web residente anónimo "
|
|
||||||
|
|
||||||
#~ msgid "Webserver"
|
|
||||||
#~ msgstr "ServidorWeb"
|
|
||||||
|
|
||||||
#~ msgid "Check NAT/firewall"
|
|
||||||
#~ msgstr "Comprobar NAT/cortafuegos"
|
|
||||||
|
|
||||||
#~ msgid "Tunnel Counts By Peer"
|
|
||||||
#~ msgstr "Cantidad de túneles por par"
|
|
||||||
|
|
||||||
#~ msgid "% of total"
|
|
||||||
#~ msgstr "% de todos"
|
|
||||||
|
|
||||||
#~ msgid "Our Tunnels"
|
|
||||||
#~ msgstr "nuestros túneles"
|
|
||||||
|
|
||||||
#~ msgid "Participating Tunnels"
|
|
||||||
#~ msgstr "participando en"
|
|
||||||
|
|
||||||
#~ msgid "Totals"
|
|
||||||
#~ msgstr "Totales"
|
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -14,9 +14,9 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: I2P\n"
|
"Project-Id-Version: I2P\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2011-12-12 11:15+0000\n"
|
"POT-Creation-Date: 2011-12-27 22:38+0000\n"
|
||||||
"PO-Revision-Date: 2011-10-07 01:38+0000\n"
|
"PO-Revision-Date: 2011-12-18 10:54+0000\n"
|
||||||
"Last-Translator: blabla <blabla@trash-mail.com>\n"
|
"Last-Translator: punkibastardo <punkibastardo@gmail.com>\n"
|
||||||
"Language-Team: Spanish (Castilian) (http://www.transifex.net/projects/p/I2P/"
|
"Language-Team: Spanish (Castilian) (http://www.transifex.net/projects/p/I2P/"
|
||||||
"team/es/)\n"
|
"team/es/)\n"
|
||||||
"Language: es\n"
|
"Language: es\n"
|
||||||
@ -653,13 +653,12 @@ msgstr ""
|
|||||||
"suscrita a www.i2p2.i2p."
|
"suscrita a www.i2p2.i2p."
|
||||||
|
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:117
|
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:117
|
||||||
#, fuzzy
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"Subscribing to additional sites is easy, just add them to your <a href="
|
"Subscribing to additional sites is easy, just add them to your <a href="
|
||||||
"\"subscriptions\">subscriptions</a> file."
|
"\"subscriptions\">subscriptions</a> file."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Suscribirse a otros sitios es fácil, sólo tienes que añadirlos a tu archivo "
|
"Suscribirse a otras páginas es fácil, sólo añádelas a tu archivo de <a href="
|
||||||
"de <a href=\"subscriptions.jsp\">suscripciones</a>."
|
"\"subscriptions\">subscripciones</a>."
|
||||||
|
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:119
|
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:119
|
||||||
msgid ""
|
msgid ""
|
||||||
|
@ -7,71 +7,72 @@
|
|||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: I2P\n"
|
"Project-Id-Version: I2P\n"
|
||||||
"Report-Msgid-Bugs-To: https://trac.i2p2.de/\n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2011-06-11 08:23+0000\n"
|
"POT-Creation-Date: 2011-12-27 22:38+0000\n"
|
||||||
"PO-Revision-Date: 2011-06-05 16:26+0000\n"
|
"PO-Revision-Date: 2011-06-05 16:26+0000\n"
|
||||||
"Last-Translator: PolishAnon <b790979@klzlk.com>\n"
|
"Last-Translator: PolishAnon <b790979@klzlk.com>\n"
|
||||||
"Language-Team: Polish (http://www.transifex.net/projects/p/I2P/team/pl/)\n"
|
"Language-Team: Polish (http://www.transifex.net/projects/p/I2P/team/pl/)\n"
|
||||||
|
"Language: pl\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Language: pl\n"
|
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
|
||||||
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n"
|
"|| n%100>=20) ? 1 : 2)\n"
|
||||||
|
|
||||||
#: ../src/java/src/i2p/susi/dns/AddressBean.java:130
|
#: ../src/java/src/i2p/susi/dns/AddressBean.java:131
|
||||||
#, java-format
|
#, java-format
|
||||||
msgid "Host name \"{0}\" contains illegal character {1}"
|
msgid "Host name \"{0}\" contains illegal character {1}"
|
||||||
msgstr "Nazwa hosta \"{0}\" zawiera niedozwolony znak {1}"
|
msgstr "Nazwa hosta \"{0}\" zawiera niedozwolony znak {1}"
|
||||||
|
|
||||||
#: ../src/java/src/i2p/susi/dns/AddressBean.java:143
|
#: ../src/java/src/i2p/susi/dns/AddressBean.java:144
|
||||||
#: ../src/java/src/i2p/susi/dns/AddressBean.java:145
|
#: ../src/java/src/i2p/susi/dns/AddressBean.java:146
|
||||||
#: ../src/java/src/i2p/susi/dns/AddressBean.java:152
|
#: ../src/java/src/i2p/susi/dns/AddressBean.java:153
|
||||||
#, java-format
|
#, java-format
|
||||||
msgid "Host name cannot start with \"{0}\""
|
msgid "Host name cannot start with \"{0}\""
|
||||||
msgstr "Nazwa hosta nie może zaczynać się od \"{0}\""
|
msgstr "Nazwa hosta nie może zaczynać się od \"{0}\""
|
||||||
|
|
||||||
#: ../src/java/src/i2p/susi/dns/AddressBean.java:147
|
#: ../src/java/src/i2p/susi/dns/AddressBean.java:148
|
||||||
#: ../src/java/src/i2p/susi/dns/AddressBean.java:149
|
#: ../src/java/src/i2p/susi/dns/AddressBean.java:150
|
||||||
#, java-format
|
#, java-format
|
||||||
msgid "Host name cannot end with \"{0}\""
|
msgid "Host name cannot end with \"{0}\""
|
||||||
msgstr "Nazwa hosta nie może kończyć się na \"{0}\""
|
msgstr "Nazwa hosta nie może kończyć się na \"{0}\""
|
||||||
|
|
||||||
#: ../src/java/src/i2p/susi/dns/AddressBean.java:154
|
#: ../src/java/src/i2p/susi/dns/AddressBean.java:155
|
||||||
#, java-format
|
#, java-format
|
||||||
msgid "Host name cannot contain \"{0}\""
|
msgid "Host name cannot contain \"{0}\""
|
||||||
msgstr "Nazwa hosta nie może zawierać \"{0}\""
|
msgstr "Nazwa hosta nie może zawierać \"{0}\""
|
||||||
|
|
||||||
#: ../src/java/src/i2p/susi/dns/AddressBean.java:157
|
#: ../src/java/src/i2p/susi/dns/AddressBean.java:158
|
||||||
#, java-format
|
#, java-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Host name \"{0}\" requires conversion to ASCII but the conversion library is"
|
"Host name \"{0}\" requires conversion to ASCII but the conversion library is "
|
||||||
" unavailable in this JVM"
|
"unavailable in this JVM"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Nazwa hosta \"{0}\" wymaga konwersji na ASCII, ale ta biblioteka konwersji "
|
"Nazwa hosta \"{0}\" wymaga konwersji na ASCII, ale ta biblioteka konwersji "
|
||||||
"jest niedostępna w tym JVM"
|
"jest niedostępna w tym JVM"
|
||||||
|
|
||||||
#: ../src/java/src/i2p/susi/dns/AddressBean.java:209
|
#: ../src/java/src/i2p/susi/dns/AddressBean.java:210
|
||||||
msgid "None"
|
msgid "None"
|
||||||
msgstr "Brak"
|
msgstr "Brak"
|
||||||
|
|
||||||
#: ../src/java/src/i2p/susi/dns/AddressBean.java:217
|
#: ../src/java/src/i2p/susi/dns/AddressBean.java:218
|
||||||
msgid "Hashcash"
|
msgid "Hashcash"
|
||||||
msgstr "Hashcash"
|
msgstr "Hashcash"
|
||||||
|
|
||||||
#: ../src/java/src/i2p/susi/dns/AddressBean.java:219
|
#: ../src/java/src/i2p/susi/dns/AddressBean.java:220
|
||||||
msgid "Hidden"
|
msgid "Hidden"
|
||||||
msgstr "Ukryty"
|
msgstr "Ukryty"
|
||||||
|
|
||||||
#: ../src/java/src/i2p/susi/dns/AddressBean.java:221
|
#: ../src/java/src/i2p/susi/dns/AddressBean.java:222
|
||||||
msgid "Signed"
|
msgid "Signed"
|
||||||
msgstr "Podpisano"
|
msgstr "Podpisano"
|
||||||
|
|
||||||
#: ../src/java/src/i2p/susi/dns/AddressBean.java:223
|
#: ../src/java/src/i2p/susi/dns/AddressBean.java:224
|
||||||
#, java-format
|
#, java-format
|
||||||
msgid "Type {0}"
|
msgid "Type {0}"
|
||||||
msgstr "Typ {0}"
|
msgstr "Typ {0}"
|
||||||
|
|
||||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:232
|
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:233
|
||||||
#, java-format
|
#, java-format
|
||||||
msgid "One result for search within filtered list."
|
msgid "One result for search within filtered list."
|
||||||
msgid_plural "{0} results for search within filtered list."
|
msgid_plural "{0} results for search within filtered list."
|
||||||
@ -79,7 +80,7 @@ msgstr[0] "Jeden wynik wyszukiwania w filtrowanej liście."
|
|||||||
msgstr[1] "{0} wyniki wyszukiwania w filtrowanej listy."
|
msgstr[1] "{0} wyniki wyszukiwania w filtrowanej listy."
|
||||||
msgstr[2] "{0} wyników wyszukiwania w filtrowanej listy."
|
msgstr[2] "{0} wyników wyszukiwania w filtrowanej listy."
|
||||||
|
|
||||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:236
|
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:237
|
||||||
#, java-format
|
#, java-format
|
||||||
msgid "Filtered list contains 1 entry."
|
msgid "Filtered list contains 1 entry."
|
||||||
msgid_plural "Fltered list contains {0} entries."
|
msgid_plural "Fltered list contains {0} entries."
|
||||||
@ -87,7 +88,7 @@ msgstr[0] "Filtrowana lista zawiera 1 wpis."
|
|||||||
msgstr[1] "Filtrowana lista zawiera {0} wpisy."
|
msgstr[1] "Filtrowana lista zawiera {0} wpisy."
|
||||||
msgstr[2] "Filtrowana lista zawiera {0} wpisów."
|
msgstr[2] "Filtrowana lista zawiera {0} wpisów."
|
||||||
|
|
||||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:241
|
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:242
|
||||||
#, java-format
|
#, java-format
|
||||||
msgid "One result for search."
|
msgid "One result for search."
|
||||||
msgid_plural "{0} results for search."
|
msgid_plural "{0} results for search."
|
||||||
@ -95,7 +96,7 @@ msgstr[0] "Jeden wynik wyszukiwania."
|
|||||||
msgstr[1] "{0} wyniki wyszukiwania."
|
msgstr[1] "{0} wyniki wyszukiwania."
|
||||||
msgstr[2] "{0} wyników wyszukiwania."
|
msgstr[2] "{0} wyników wyszukiwania."
|
||||||
|
|
||||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:250
|
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:251
|
||||||
#, java-format
|
#, java-format
|
||||||
msgid "Address book contains 1 entry."
|
msgid "Address book contains 1 entry."
|
||||||
msgid_plural "Address book contains {0} entries."
|
msgid_plural "Address book contains {0} entries."
|
||||||
@ -103,98 +104,98 @@ msgstr[0] "Książka adresowa zawiera 1 wpis."
|
|||||||
msgstr[1] "Książka adresowa zawiera {0} wpisy."
|
msgstr[1] "Książka adresowa zawiera {0} wpisy."
|
||||||
msgstr[2] "Książka adresowa zawiera {0} wpisów."
|
msgstr[2] "Książka adresowa zawiera {0} wpisów."
|
||||||
|
|
||||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:266
|
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:267
|
||||||
#, java-format
|
#, java-format
|
||||||
msgid "Showing {0} of {1}"
|
msgid "Showing {0} of {1}"
|
||||||
msgstr "Wyświetlono {0} z {1}"
|
msgstr "Wyświetlono {0} z {1}"
|
||||||
|
|
||||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:287
|
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:288
|
||||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:231
|
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:231
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:392
|
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:392
|
||||||
msgid "Add"
|
msgid "Add"
|
||||||
msgstr "Dodaj"
|
msgstr "Dodaj"
|
||||||
|
|
||||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:287
|
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:288
|
||||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:298
|
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:299
|
||||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:231
|
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:231
|
||||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:243
|
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:243
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:390
|
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:390
|
||||||
msgid "Replace"
|
msgid "Replace"
|
||||||
msgstr "Zastąp"
|
msgstr "Zastąp"
|
||||||
|
|
||||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:297
|
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:298
|
||||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:242
|
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:242
|
||||||
#, java-format
|
#, java-format
|
||||||
msgid "Host name {0} is already in address book, unchanged."
|
msgid "Host name {0} is already in address book, unchanged."
|
||||||
msgstr "Nazwa hosta {0} jest już w książce adresowej, bez zmian."
|
msgstr "Nazwa hosta {0} jest już w książce adresowej, bez zmian."
|
||||||
|
|
||||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:299
|
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:300
|
||||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:244
|
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:244
|
||||||
#, java-format
|
#, java-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Host name {0} is already in address book with a different destination. Click"
|
"Host name {0} is already in address book with a different destination. Click "
|
||||||
" \"Replace\" to overwrite."
|
"\"Replace\" to overwrite."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Nazwa hosta {0} jest już w książce adresowej z innym miejscem przeznaczenia."
|
"Nazwa hosta {0} jest już w książce adresowej z innym miejscem przeznaczenia. "
|
||||||
" Kliknij przycisk \"Zmień\", aby nadpisać."
|
"Kliknij przycisk \"Zmień\", aby nadpisać."
|
||||||
|
|
||||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:311
|
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:313
|
||||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:257
|
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:257
|
||||||
#, java-format
|
#, java-format
|
||||||
msgid "Destination added for {0}."
|
msgid "Destination added for {0}."
|
||||||
msgstr "Miejsce przeznaczenia dodane dla {0}."
|
msgstr "Miejsce przeznaczenia dodane dla {0}."
|
||||||
|
|
||||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:313
|
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:315
|
||||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:259
|
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:259
|
||||||
#, java-format
|
#, java-format
|
||||||
msgid "Destination changed for {0}."
|
msgid "Destination changed for {0}."
|
||||||
msgstr "Miejsce przeznaczenia zmienione dla {0}."
|
msgstr "Miejsce przeznaczenia zmienione dla {0}."
|
||||||
|
|
||||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:315
|
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:317
|
||||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:261
|
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:261
|
||||||
msgid "Warning - host name does not end with \".i2p\""
|
msgid "Warning - host name does not end with \".i2p\""
|
||||||
msgstr "Uwaga - nazwa hosta nie kończy się na \".i2p\""
|
msgstr "Uwaga - nazwa hosta nie kończy się na \".i2p\""
|
||||||
|
|
||||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:320
|
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:322
|
||||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:269
|
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:269
|
||||||
msgid "Invalid Base 64 destination."
|
msgid "Invalid Base 64 destination."
|
||||||
msgstr "Nieprawidłowy miejsca przeznaczenia formatu Base 64."
|
msgstr "Nieprawidłowy miejsca przeznaczenia formatu Base 64."
|
||||||
|
|
||||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:326
|
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:328
|
||||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:275
|
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:275
|
||||||
#, java-format
|
#, java-format
|
||||||
msgid "Invalid host name \"{0}\"."
|
msgid "Invalid host name \"{0}\"."
|
||||||
msgstr "Nieprawidłowa nazwa hosta \"{0}\"."
|
msgstr "Nieprawidłowa nazwa hosta \"{0}\"."
|
||||||
|
|
||||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:329
|
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:331
|
||||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:278
|
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:278
|
||||||
msgid "Please enter a host name and destination"
|
msgid "Please enter a host name and destination"
|
||||||
msgstr "Wpisz nazwę hosta i miejsca przeznaczenia"
|
msgstr "Wpisz nazwę hosta i miejsca przeznaczenia"
|
||||||
|
|
||||||
#. clear search when deleting
|
#. clear search when deleting
|
||||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:333
|
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:335
|
||||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:354
|
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:356
|
||||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:282
|
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:282
|
||||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:307
|
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:307
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:261
|
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:258
|
||||||
msgid "Delete Entry"
|
msgid "Delete Entry"
|
||||||
msgstr "Usuń wpis"
|
msgstr "Usuń wpis"
|
||||||
|
|
||||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:333
|
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:335
|
||||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:282
|
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:282
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:334
|
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:334
|
||||||
msgid "Delete Selected"
|
msgid "Delete Selected"
|
||||||
msgstr "Usuń zaznaczone"
|
msgstr "Usuń zaznaczone"
|
||||||
|
|
||||||
#. parameter is a host name
|
#. parameter is a host name
|
||||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:347
|
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:349
|
||||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:299
|
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:299
|
||||||
#, java-format
|
#, java-format
|
||||||
msgid "Destination {0} deleted."
|
msgid "Destination {0} deleted."
|
||||||
msgstr "Miejsce przeznaczenia {0} usunięte."
|
msgstr "Miejsce przeznaczenia {0} usunięte."
|
||||||
|
|
||||||
#. parameter will always be >= 2
|
#. parameter will always be >= 2
|
||||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:350
|
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:352
|
||||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:302
|
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:302
|
||||||
#, java-format
|
#, java-format
|
||||||
msgid "1 destination deleted."
|
msgid "1 destination deleted."
|
||||||
@ -203,30 +204,30 @@ msgstr[0] "1 miejsce przeznaczenia usunięte."
|
|||||||
msgstr[1] "{0} miejsca przeznaczenia usunięte."
|
msgstr[1] "{0} miejsca przeznaczenia usunięte."
|
||||||
msgstr[2] "{0} miejsc przeznaczenia usunięte."
|
msgstr[2] "{0} miejsc przeznaczenia usunięte."
|
||||||
|
|
||||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:352
|
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:354
|
||||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:304
|
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:304
|
||||||
msgid "No entries selected to delete."
|
msgid "No entries selected to delete."
|
||||||
msgstr "Brak wpisów wybranych do usunięcia."
|
msgstr "Brak wpisów wybranych do usunięcia."
|
||||||
|
|
||||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:360
|
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:362
|
||||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:311
|
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:311
|
||||||
msgid "Address book saved."
|
msgid "Address book saved."
|
||||||
msgstr "Książka adresowa zapisana."
|
msgstr "Książka adresowa zapisana."
|
||||||
|
|
||||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:363
|
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:365
|
||||||
msgid "ERROR: Could not write addressbook file."
|
msgid "ERROR: Could not write addressbook file."
|
||||||
msgstr "BŁĄD: Nie można zapisać pliku książki adresowej."
|
msgstr "BŁĄD: Nie można zapisać pliku książki adresowej."
|
||||||
|
|
||||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:368
|
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:370
|
||||||
#: ../src/java/src/i2p/susi/dns/ConfigBean.java:148
|
#: ../src/java/src/i2p/susi/dns/ConfigBean.java:148
|
||||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:315
|
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:315
|
||||||
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:156
|
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:156
|
||||||
msgid ""
|
msgid ""
|
||||||
"Invalid form submission, probably because you used the \"back\" or "
|
"Invalid form submission, probably because you used the \"back\" or \"reload"
|
||||||
"\"reload\" button on your browser. Please resubmit."
|
"\" button on your browser. Please resubmit."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Nieprawidłowy formularz, prawdopodobnie dlatego, że użyto przycisku "
|
"Nieprawidłowy formularz, prawdopodobnie dlatego, że użyto przycisku \"wstecz"
|
||||||
"\"wstecz\" lub \"przeładuj\" w przeglądarce. Proszę prześlij ponownie."
|
"\" lub \"przeładuj\" w przeglądarce. Proszę prześlij ponownie."
|
||||||
|
|
||||||
#: ../src/java/src/i2p/susi/dns/ConfigBean.java:139
|
#: ../src/java/src/i2p/susi/dns/ConfigBean.java:139
|
||||||
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:131
|
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:131
|
||||||
@ -294,8 +295,8 @@ msgstr "książka adresowa"
|
|||||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:143
|
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:143
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:104
|
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:104
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:120
|
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:120
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:108
|
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:105
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:124
|
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:121
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:107
|
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:107
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:104
|
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:104
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:120
|
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:120
|
||||||
@ -304,7 +305,7 @@ msgstr "Przegląd"
|
|||||||
|
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:129
|
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:129
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:106
|
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:106
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:110
|
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:107
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:93
|
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:93
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:106
|
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:106
|
||||||
msgid "Address books"
|
msgid "Address books"
|
||||||
@ -312,7 +313,7 @@ msgstr "Książki adresowe"
|
|||||||
|
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:131
|
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:131
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:108
|
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:108
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:112
|
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:109
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:95
|
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:95
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:108
|
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:108
|
||||||
msgid "private"
|
msgid "private"
|
||||||
@ -320,7 +321,7 @@ msgstr "prywatne"
|
|||||||
|
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:133
|
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:133
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:110
|
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:110
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:114
|
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:111
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:97
|
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:97
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:110
|
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:110
|
||||||
msgid "master"
|
msgid "master"
|
||||||
@ -328,7 +329,7 @@ msgstr "głowne"
|
|||||||
|
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:135
|
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:135
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:112
|
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:112
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:116
|
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:113
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:99
|
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:99
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:112
|
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:112
|
||||||
msgid "router"
|
msgid "router"
|
||||||
@ -336,7 +337,7 @@ msgstr "router"
|
|||||||
|
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:137
|
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:137
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:114
|
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:114
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:118
|
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:115
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:101
|
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:101
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:114
|
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:114
|
||||||
msgid "published"
|
msgid "published"
|
||||||
@ -344,7 +345,7 @@ msgstr "opublikowane"
|
|||||||
|
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:139
|
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:139
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:116
|
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:116
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:120
|
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:117
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:103
|
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:103
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:116
|
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:116
|
||||||
msgid "Subscriptions"
|
msgid "Subscriptions"
|
||||||
@ -352,19 +353,19 @@ msgstr "Subskrypcje"
|
|||||||
|
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:141
|
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:141
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:118
|
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:118
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:122
|
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:119
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:105
|
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:105
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:118
|
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:118
|
||||||
msgid "Configuration"
|
msgid "Configuration"
|
||||||
msgstr "Konfiguracja"
|
msgstr "Konfiguracja"
|
||||||
|
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:145
|
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:145
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:126
|
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:123
|
||||||
msgid "Address book"
|
msgid "Address book"
|
||||||
msgstr "Książka adresowa"
|
msgstr "Książka adresowa"
|
||||||
|
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:150
|
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:150
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:131
|
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:128
|
||||||
msgid "Storage"
|
msgid "Storage"
|
||||||
msgstr "Pamięć"
|
msgstr "Pamięć"
|
||||||
|
|
||||||
@ -403,7 +404,7 @@ msgstr "Linki"
|
|||||||
|
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:242
|
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:242
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:384
|
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:384
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:253
|
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:250
|
||||||
msgid "Destination"
|
msgid "Destination"
|
||||||
msgstr "Miejsce przeznaczenia"
|
msgstr "Miejsce przeznaczenia"
|
||||||
|
|
||||||
@ -437,7 +438,7 @@ msgid "Add new destination"
|
|||||||
msgstr "Dodaj nowe miejsce przeznaczenia"
|
msgstr "Dodaj nowe miejsce przeznaczenia"
|
||||||
|
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:380
|
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:380
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:158
|
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:155
|
||||||
msgid "Host Name"
|
msgid "Host Name"
|
||||||
msgstr "Nazwa hosta"
|
msgstr "Nazwa hosta"
|
||||||
|
|
||||||
@ -452,8 +453,8 @@ msgstr "Wskazówki"
|
|||||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:136
|
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:136
|
||||||
msgid ""
|
msgid ""
|
||||||
"File and directory paths here are relative to the addressbook's working "
|
"File and directory paths here are relative to the addressbook's working "
|
||||||
"directory, which is normally ~/.i2p/addressbook/ (Linux) or "
|
"directory, which is normally ~/.i2p/addressbook/ (Linux) or %APPDATA%\\I2P"
|
||||||
"%APPDATA%\\I2P\\addressbook\\ (Windows)."
|
"\\addressbook\\ (Windows)."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Ścieżki do plików i katalogów są podane w stosunku do roboczego katalogu "
|
"Ścieżki do plików i katalogów są podane w stosunku do roboczego katalogu "
|
||||||
"książki adresowej, którym jest zwykle ~/.i2p/addressbook/ (Linux) lub "
|
"książki adresowej, którym jest zwykle ~/.i2p/addressbook/ (Linux) lub "
|
||||||
@ -461,8 +462,8 @@ msgstr ""
|
|||||||
|
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:138
|
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:138
|
||||||
msgid ""
|
msgid ""
|
||||||
"If you want to manually add lines to an addressbook, add them to the private"
|
"If you want to manually add lines to an addressbook, add them to the private "
|
||||||
" or master addressbooks."
|
"or master addressbooks."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Jeśli chcesz ręcznie dodać wiersze do książki adresowej, dodaj je do "
|
"Jeśli chcesz ręcznie dodać wiersze do książki adresowej, dodaj je do "
|
||||||
"prywatnych lub głownych książek adresowych."
|
"prywatnych lub głownych książek adresowych."
|
||||||
@ -488,8 +489,8 @@ msgid ""
|
|||||||
"Use the private addressbook for private destinations, these are not "
|
"Use the private addressbook for private destinations, these are not "
|
||||||
"published."
|
"published."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Użyj prywatnej książki adresowej dla prywatnych miejsc przeznaczania, te nie"
|
"Użyj prywatnej książki adresowej dla prywatnych miejsc przeznaczania, te nie "
|
||||||
" są publikowane."
|
"są publikowane."
|
||||||
|
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:146
|
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:146
|
||||||
msgid "Options"
|
msgid "Options"
|
||||||
@ -539,16 +540,16 @@ msgstr "Czy aktualizpwać opublikowaną książke adresową"
|
|||||||
|
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:166
|
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:166
|
||||||
msgid ""
|
msgid ""
|
||||||
"File containing the etags header from the fetched subscription URLs (no need"
|
"File containing the etags header from the fetched subscription URLs (no need "
|
||||||
" to change)"
|
"to change)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Plik zawierający nagłówek etagów z pobranych subskrypcji URL (nie trzeba "
|
"Plik zawierający nagłówek etagów z pobranych subskrypcji URL (nie trzeba "
|
||||||
"zmieniać)"
|
"zmieniać)"
|
||||||
|
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:168
|
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:168
|
||||||
msgid ""
|
msgid ""
|
||||||
"File containing the modification timestamp for each fetched subscription URL"
|
"File containing the modification timestamp for each fetched subscription URL "
|
||||||
" (no need to change)"
|
"(no need to change)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Plik zawierający modifikacje znaczów czasu dla każdej pobranej subscrypcji "
|
"Plik zawierający modifikacje znaczów czasu dla każdej pobranej subscrypcji "
|
||||||
"URL (nie trzeba zmieniać)"
|
"URL (nie trzeba zmieniać)"
|
||||||
@ -557,59 +558,59 @@ msgstr ""
|
|||||||
msgid "File to log activity to (change to /dev/null if you like)"
|
msgid "File to log activity to (change to /dev/null if you like)"
|
||||||
msgstr "Plik do logowania działalności (zmień na /dev/null, jeśli chcesz)"
|
msgstr "Plik do logowania działalności (zmień na /dev/null, jeśli chcesz)"
|
||||||
|
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:106
|
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:103
|
||||||
msgid "addressbook"
|
msgid "addressbook"
|
||||||
msgstr "Ksiazka adresowa"
|
msgstr "Ksiazka adresowa"
|
||||||
|
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:174
|
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:171
|
||||||
msgid "Encoded Name"
|
msgid "Encoded Name"
|
||||||
msgstr "Zakodowana Nazwa"
|
msgstr "Zakodowana Nazwa"
|
||||||
|
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:190
|
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:187
|
||||||
msgid "Base 32 Address"
|
msgid "Base 32 Address"
|
||||||
msgstr "Adress Base 32"
|
msgstr "Adress Base 32"
|
||||||
|
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:200
|
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:197
|
||||||
msgid "Address Helper"
|
msgid "Address Helper"
|
||||||
msgstr "Pomoc Adresowa"
|
msgstr "Pomoc Adresowa"
|
||||||
|
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:207
|
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:204
|
||||||
msgid "link"
|
msgid "link"
|
||||||
msgstr "link"
|
msgstr "link"
|
||||||
|
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:211
|
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:208
|
||||||
msgid "Public Key"
|
msgid "Public Key"
|
||||||
msgstr "Klucz publiczny"
|
msgstr "Klucz publiczny"
|
||||||
|
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:213
|
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:210
|
||||||
msgid "ElGamal 2048 bit"
|
msgid "ElGamal 2048 bit"
|
||||||
msgstr "ElGamal 2048 bitów"
|
msgstr "ElGamal 2048 bitów"
|
||||||
|
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:217
|
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:214
|
||||||
msgid "Signing Key"
|
msgid "Signing Key"
|
||||||
msgstr "Klucz Podpisywania"
|
msgstr "Klucz Podpisywania"
|
||||||
|
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:219
|
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:216
|
||||||
msgid "DSA 1024 bit"
|
msgid "DSA 1024 bit"
|
||||||
msgstr "DSA 1024 bity"
|
msgstr "DSA 1024 bity"
|
||||||
|
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:223
|
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:220
|
||||||
msgid "Certificate"
|
msgid "Certificate"
|
||||||
msgstr "Certyfikat"
|
msgstr "Certyfikat"
|
||||||
|
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:229
|
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:226
|
||||||
msgid "Added Date"
|
msgid "Added Date"
|
||||||
msgstr "Data dodania"
|
msgstr "Data dodania"
|
||||||
|
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:235
|
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:232
|
||||||
msgid "Source"
|
msgid "Source"
|
||||||
msgstr "Źródło"
|
msgstr "Źródło"
|
||||||
|
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:241
|
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:238
|
||||||
msgid "Last Modified"
|
msgid "Last Modified"
|
||||||
msgstr "Ostatnio modyfikowano"
|
msgstr "Ostatnio modyfikowano"
|
||||||
|
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:247
|
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:244
|
||||||
msgid "Notes"
|
msgid "Notes"
|
||||||
msgstr "Notatki"
|
msgstr "Notatki"
|
||||||
|
|
||||||
@ -635,27 +636,28 @@ msgstr ""
|
|||||||
|
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:115
|
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:115
|
||||||
msgid ""
|
msgid ""
|
||||||
"In the default configuration, the address book is only subscribed to "
|
"In the default configuration, the address book is only subscribed to www."
|
||||||
"www.i2p2.i2p."
|
"i2p2.i2p."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"W domyślnej konfiguracji, książka adresowa jest zapisana tylko do "
|
"W domyślnej konfiguracji, książka adresowa jest zapisana tylko do www.i2p2."
|
||||||
"www.i2p2.i2p."
|
"i2p."
|
||||||
|
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:117
|
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:117
|
||||||
|
#, fuzzy
|
||||||
msgid ""
|
msgid ""
|
||||||
"Subscribing to additional sites is easy, just add them to your <a "
|
"Subscribing to additional sites is easy, just add them to your <a href="
|
||||||
"href=\"subscriptions.jsp\">subscriptions</a> file."
|
"\"subscriptions\">subscriptions</a> file."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Zapisywanie się do innych witryn jest proste, wystarczy dodać je do pliku <a"
|
"Zapisywanie się do innych witryn jest proste, wystarczy dodać je do pliku <a "
|
||||||
" href=\"subscriptions.jsp\">subskrypcje</a>."
|
"href=\"subscriptions.jsp\">subskrypcje</a>."
|
||||||
|
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:119
|
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:119
|
||||||
msgid ""
|
msgid ""
|
||||||
"For more information on naming in I2P, see <a "
|
"For more information on naming in I2P, see <a href=\"http://www.i2p2.i2p/"
|
||||||
"href=\"http://www.i2p2.i2p/naming.html\">the overview on www.i2p2.i2p</a>."
|
"naming.html\">the overview on www.i2p2.i2p</a>."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Aby uzyskać więcej informacji na temat nazewnictwa w I2P, zobacz <a "
|
"Aby uzyskać więcej informacji na temat nazewnictwa w I2P, zobacz <a href="
|
||||||
"href=\"http://www.i2p2.i2p/naming.html\">przegląd www.i2p2.i2p</a> ."
|
"\"http://www.i2p2.i2p/naming.html\">przegląd www.i2p2.i2p</a> ."
|
||||||
|
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:121
|
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:121
|
||||||
msgid "How does the addressbook application work?"
|
msgid "How does the addressbook application work?"
|
||||||
@ -666,8 +668,8 @@ msgid ""
|
|||||||
"The addressbook application regularly polls your subscriptions and merges "
|
"The addressbook application regularly polls your subscriptions and merges "
|
||||||
"their content into your \"router\" address book."
|
"their content into your \"router\" address book."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Aplikacja książki adresowej regularnie pobiera twoje subskrypcje i łączy ich"
|
"Aplikacja książki adresowej regularnie pobiera twoje subskrypcje i łączy ich "
|
||||||
" zawartość w twoja książkę adresowa \"routera\"."
|
"zawartość w twoja książkę adresowa \"routera\"."
|
||||||
|
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:125
|
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:125
|
||||||
msgid ""
|
msgid ""
|
||||||
@ -680,12 +682,11 @@ msgstr ""
|
|||||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:127
|
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:127
|
||||||
msgid ""
|
msgid ""
|
||||||
"If configured, the router address book is now written to the \"published\" "
|
"If configured, the router address book is now written to the \"published\" "
|
||||||
"address book, which will be publicly available if you are running an "
|
"address book, which will be publicly available if you are running an eepsite."
|
||||||
"eepsite."
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Jeżeli skonfigurowana, ksiażka adresowa routera jest teraz zapisana do "
|
"Jeżeli skonfigurowana, ksiażka adresowa routera jest teraz zapisana do "
|
||||||
"\"opublikowanej\" książki adresowej, która będzie publicznie dostępna jeżeli"
|
"\"opublikowanej\" książki adresowej, która będzie publicznie dostępna jeżeli "
|
||||||
" masz swoją stronę eepsite."
|
"masz swoją stronę eepsite."
|
||||||
|
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:129
|
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:129
|
||||||
msgid ""
|
msgid ""
|
||||||
@ -697,16 +698,16 @@ msgstr ""
|
|||||||
|
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:131
|
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:131
|
||||||
msgid ""
|
msgid ""
|
||||||
"Hosts in the private address book can be accessed by you but their addresses"
|
"Hosts in the private address book can be accessed by you but their addresses "
|
||||||
" are never distributed to others."
|
"are never distributed to others."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Nazwy hostów w prywatnej książce adresowej mogą być dostępne dla ciebie ale "
|
"Nazwy hostów w prywatnej książce adresowej mogą być dostępne dla ciebie ale "
|
||||||
"ich adresy nie są nigdy rozpowszechniane dla innych."
|
"ich adresy nie są nigdy rozpowszechniane dla innych."
|
||||||
|
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:133
|
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:133
|
||||||
msgid ""
|
msgid ""
|
||||||
"The private address book can also be used for aliases of hosts in your other"
|
"The private address book can also be used for aliases of hosts in your other "
|
||||||
" address books."
|
"address books."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Prywatna książka adresowa może być też użyta dla aliasów nazw hostów w "
|
"Prywatna książka adresowa może być też użyta dla aliasów nazw hostów w "
|
||||||
"twoich innych książkach adresowych."
|
"twoich innych książkach adresowych."
|
||||||
@ -723,8 +724,7 @@ msgstr "Plik subskrypcji zawiera listę URLów i2p."
|
|||||||
msgid ""
|
msgid ""
|
||||||
"The addressbook application regularly checks this list for new eepsites."
|
"The addressbook application regularly checks this list for new eepsites."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Aplikacja książki adresowej regularnie sprawdza te listę dla nowych "
|
"Aplikacja książki adresowej regularnie sprawdza te listę dla nowych eepsites."
|
||||||
"eepsites."
|
|
||||||
|
|
||||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:138
|
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:138
|
||||||
msgid "Those URLs refer to published hosts.txt files."
|
msgid "Those URLs refer to published hosts.txt files."
|
||||||
@ -749,5 +749,3 @@ msgstr ""
|
|||||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:144
|
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:144
|
||||||
msgid "See the FAQ for a list of subscription URLs."
|
msgid "See the FAQ for a list of subscription URLs."
|
||||||
msgstr "Więcej w FAQ dla listy subskrypcji adresów URL."
|
msgstr "Więcej w FAQ dla listy subskrypcji adresów URL."
|
||||||
|
|
||||||
|
|
||||||
|
@ -8,14 +8,15 @@
|
|||||||
# ducki2p <ducki2p@gmail.com>, 2011.
|
# ducki2p <ducki2p@gmail.com>, 2011.
|
||||||
# foo <foo@bar>, 2009.
|
# foo <foo@bar>, 2009.
|
||||||
# mixy, 2011.
|
# mixy, 2011.
|
||||||
|
# <punkibastardo@gmail.com>, 2011.
|
||||||
# punkibastardo <punkibastardo@gmail.com>, 2011.
|
# punkibastardo <punkibastardo@gmail.com>, 2011.
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: I2P\n"
|
"Project-Id-Version: I2P\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2011-12-12 11:15+0000\n"
|
"POT-Creation-Date: 2011-12-27 22:38+0000\n"
|
||||||
"PO-Revision-Date: 2011-10-07 01:33+0000\n"
|
"PO-Revision-Date: 2011-12-18 10:48+0000\n"
|
||||||
"Last-Translator: blabla <blabla@trash-mail.com>\n"
|
"Last-Translator: punkibastardo <punkibastardo@gmail.com>\n"
|
||||||
"Language-Team: Spanish (Castilian) (http://www.transifex.net/projects/p/I2P/"
|
"Language-Team: Spanish (Castilian) (http://www.transifex.net/projects/p/I2P/"
|
||||||
"team/es/)\n"
|
"team/es/)\n"
|
||||||
"Language: es\n"
|
"Language: es\n"
|
||||||
@ -321,7 +322,7 @@ msgstr "Cancelar"
|
|||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:1605
|
#: src/src/i2p/susi/webmail/WebMail.java:1605
|
||||||
msgid "Learn about I2P mail"
|
msgid "Learn about I2P mail"
|
||||||
msgstr ""
|
msgstr "Aprende sobre I2P mail"
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:1606
|
#: src/src/i2p/susi/webmail/WebMail.java:1606
|
||||||
msgid "Create Account"
|
msgid "Create Account"
|
||||||
|
@ -3,166 +3,169 @@
|
|||||||
# This file is distributed under the same license as the susimail package.
|
# This file is distributed under the same license as the susimail package.
|
||||||
# To contribute translations, see http://www.i2p2.de/newdevelopers
|
# To contribute translations, see http://www.i2p2.de/newdevelopers
|
||||||
#
|
#
|
||||||
|
# Translators:
|
||||||
# <b790979@klzlk.com>, 2011.
|
# <b790979@klzlk.com>, 2011.
|
||||||
|
# <businesshehe@yahoo.com>, 2011.
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: I2P\n"
|
"Project-Id-Version: I2P\n"
|
||||||
"Report-Msgid-Bugs-To: https://trac.i2p2.de/\n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2011-06-11 08:24+0000\n"
|
"POT-Creation-Date: 2011-12-27 22:38+0000\n"
|
||||||
"PO-Revision-Date: 2011-06-01 14:13+0000\n"
|
"PO-Revision-Date: 2011-12-18 12:27+0000\n"
|
||||||
"Last-Translator: PolishAnon <b790979@klzlk.com>\n"
|
"Last-Translator: Warton <businesshehe@yahoo.com>\n"
|
||||||
"Language-Team: Polish (http://www.transifex.net/projects/p/I2P/team/pl/)\n"
|
"Language-Team: Polish (http://www.transifex.net/projects/p/I2P/team/pl/)\n"
|
||||||
|
"Language: pl\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Language: pl\n"
|
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
|
||||||
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n"
|
"|| n%100>=20) ? 1 : 2)\n"
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:454
|
#: src/src/i2p/susi/webmail/WebMail.java:455
|
||||||
msgid "unknown"
|
msgid "unknown"
|
||||||
msgstr "nieznany"
|
msgstr "nieznany"
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:473
|
#: src/src/i2p/susi/webmail/WebMail.java:474
|
||||||
msgid "Warning: no transfer encoding found, fallback to 7bit."
|
msgid "Warning: no transfer encoding found, fallback to 7bit."
|
||||||
msgstr "Uwaga: nie znaleziono kodowania transferu, powrót do 7 bitów"
|
msgstr "Uwaga: nie znaleziono kodowania transferu, powrót do 7 bitów"
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:478
|
#: src/src/i2p/susi/webmail/WebMail.java:479
|
||||||
#, java-format
|
#, java-format
|
||||||
msgid "No encoder found for encoding \\''{0}\\''."
|
msgid "No encoder found for encoding \\''{0}\\''."
|
||||||
msgstr "Nr kodeka dla kodowania \\''{0} \\''."
|
msgstr "Nr kodeka dla kodowania \\''{0} \\''."
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:484
|
#: src/src/i2p/susi/webmail/WebMail.java:485
|
||||||
msgid "Warning: no charset found, fallback to US-ASCII."
|
msgid "Warning: no charset found, fallback to US-ASCII."
|
||||||
msgstr "Uwaga: nie znaleziono zestawu znaków, powrót do US-ASCII."
|
msgstr "Uwaga: nie znaleziono zestawu znaków, powrót do US-ASCII."
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:498
|
#: src/src/i2p/susi/webmail/WebMail.java:499
|
||||||
#, java-format
|
#, java-format
|
||||||
msgid "Charset \\''{0}\\'' not supported."
|
msgid "Charset \\''{0}\\'' not supported."
|
||||||
msgstr "Zestaw znaków \\''{0} \\' 'nie obsługiwany."
|
msgstr "Zestaw znaków \\''{0} \\' 'nie obsługiwany."
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:502
|
#: src/src/i2p/susi/webmail/WebMail.java:503
|
||||||
#, java-format
|
#, java-format
|
||||||
msgid "Part ({0}) not shown, because of {1}"
|
msgid "Part ({0}) not shown, because of {1}"
|
||||||
msgstr "Część ({0}) nie pokazana ze względu na {1}"
|
msgstr "Część ({0}) nie pokazana ze względu na {1}"
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:525
|
#: src/src/i2p/susi/webmail/WebMail.java:526
|
||||||
msgid "Download"
|
msgid "Download"
|
||||||
msgstr "Pobierz"
|
msgstr "Pobierz"
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:525
|
#: src/src/i2p/susi/webmail/WebMail.java:526
|
||||||
msgid "File is packed into a zipfile for security reasons."
|
msgid "File is packed into a zipfile for security reasons."
|
||||||
msgstr "Plik zapakowany w format ZIP ze względów bezpieczeństwa."
|
msgstr "Plik zapakowany w format ZIP ze względów bezpieczeństwa."
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:525
|
#: src/src/i2p/susi/webmail/WebMail.java:526
|
||||||
#, java-format
|
#, java-format
|
||||||
msgid "attachment ({0})."
|
msgid "attachment ({0})."
|
||||||
msgstr "załącznik ({0})."
|
msgstr "załącznik ({0})."
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:529
|
#: src/src/i2p/susi/webmail/WebMail.java:530
|
||||||
#, java-format
|
#, java-format
|
||||||
msgid "Attachment ({0})."
|
msgid "Attachment ({0})."
|
||||||
msgstr "Załącznik ({0})."
|
msgstr "Załącznik ({0})."
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:579
|
#: src/src/i2p/susi/webmail/WebMail.java:580
|
||||||
msgid "Need username for authentication."
|
msgid "Need username for authentication."
|
||||||
msgstr "Potrzebna nazwę użytkownika do uwierzytelnienia."
|
msgstr "Potrzebna nazwę użytkownika do uwierzytelnienia."
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:583
|
#: src/src/i2p/susi/webmail/WebMail.java:584
|
||||||
msgid "Need password for authentication."
|
msgid "Need password for authentication."
|
||||||
msgstr "Potrzebne hasło do uwierzytelniania."
|
msgstr "Potrzebne hasło do uwierzytelniania."
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:587
|
#: src/src/i2p/susi/webmail/WebMail.java:588
|
||||||
msgid "Need hostname for connect."
|
msgid "Need hostname for connect."
|
||||||
msgstr "Potrzebuna nazwa host do połączenia."
|
msgstr "Potrzebuna nazwa host do połączenia."
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:592
|
#: src/src/i2p/susi/webmail/WebMail.java:593
|
||||||
msgid "Need port number for pop3 connect."
|
msgid "Need port number for pop3 connect."
|
||||||
msgstr "Potrzeba numer portu pop3 do połączenia."
|
msgstr "Potrzeba numer portu pop3 do połączenia."
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:599
|
#: src/src/i2p/susi/webmail/WebMail.java:600
|
||||||
msgid "POP3 port number is not in range 0..65535."
|
msgid "POP3 port number is not in range 0..65535."
|
||||||
msgstr "Numeru portu POP3 poza zakresem 0..65535."
|
msgstr "Numeru portu POP3 poza zakresem 0..65535."
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:605
|
#: src/src/i2p/susi/webmail/WebMail.java:606
|
||||||
msgid "POP3 port number is invalid."
|
msgid "POP3 port number is invalid."
|
||||||
msgstr "Numeru portu POP3 jest nieprawidłowy."
|
msgstr "Numeru portu POP3 jest nieprawidłowy."
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:611
|
#: src/src/i2p/susi/webmail/WebMail.java:612
|
||||||
msgid "Need port number for smtp connect."
|
msgid "Need port number for smtp connect."
|
||||||
msgstr "Potrzebny numer portu smtp do połączenia."
|
msgstr "Potrzebny numer portu smtp do połączenia."
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:618
|
#: src/src/i2p/susi/webmail/WebMail.java:619
|
||||||
msgid "SMTP port number is not in range 0..65535."
|
msgid "SMTP port number is not in range 0..65535."
|
||||||
msgstr "Numeru portu SMTP poza zakresem 0..65535."
|
msgstr "Numeru portu SMTP poza zakresem 0..65535."
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:624
|
#: src/src/i2p/susi/webmail/WebMail.java:625
|
||||||
msgid "SMTP port number is invalid."
|
msgid "SMTP port number is invalid."
|
||||||
msgstr "Numer portu SMTP jest nieprawidłowy."
|
msgstr "Numer portu SMTP jest nieprawidłowy."
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:671
|
#: src/src/i2p/susi/webmail/WebMail.java:672
|
||||||
msgid "User logged out."
|
msgid "User logged out."
|
||||||
msgstr "Użytkownik wylogowany."
|
msgstr "Użytkownik wylogowany."
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:675
|
#: src/src/i2p/susi/webmail/WebMail.java:676
|
||||||
msgid "Internal error, lost connection."
|
msgid "Internal error, lost connection."
|
||||||
msgstr "Błąd wewnętrzny, połączenie utracone."
|
msgstr "Błąd wewnętrzny, połączenie utracone."
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:771
|
#: src/src/i2p/susi/webmail/WebMail.java:772
|
||||||
#, java-format
|
#, java-format
|
||||||
msgid "On {0} {1} wrote:"
|
msgid "On {0} {1} wrote:"
|
||||||
msgstr "Dnia {0} {1} napisał:"
|
msgstr "Dnia {0} {1} napisał:"
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:818
|
#: src/src/i2p/susi/webmail/WebMail.java:819
|
||||||
msgid "begin forwarded mail"
|
msgid "begin forwarded mail"
|
||||||
msgstr "Rozpocznij przekazywanie poczty"
|
msgstr "Rozpocznij przekazywanie poczty"
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:840
|
#: src/src/i2p/susi/webmail/WebMail.java:841
|
||||||
msgid "end forwarded mail"
|
msgid "end forwarded mail"
|
||||||
msgstr "Zakończ przekazywanie poczty"
|
msgstr "Zakończ przekazywanie poczty"
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:847
|
#: src/src/i2p/susi/webmail/WebMail.java:848
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:1701
|
#: src/src/i2p/susi/webmail/WebMail.java:1720
|
||||||
msgid "Could not fetch mail body."
|
msgid "Could not fetch mail body."
|
||||||
msgstr "Nie można pobrać głównej cześci maila"
|
msgstr "Nie można pobrać głównej cześci maila"
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:875
|
#: src/src/i2p/susi/webmail/WebMail.java:876
|
||||||
msgid "Message id not valid."
|
msgid "Message id not valid."
|
||||||
msgstr "ID wiadomości niepoprawne."
|
msgstr "ID wiadomości niepoprawne."
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:958
|
#: src/src/i2p/susi/webmail/WebMail.java:959
|
||||||
#, java-format
|
#, java-format
|
||||||
msgid "No Encoding found for {0}"
|
msgid "No Encoding found for {0}"
|
||||||
msgstr "Nie znaleziono kodowania dla {0}"
|
msgstr "Nie znaleziono kodowania dla {0}"
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:962
|
#: src/src/i2p/susi/webmail/WebMail.java:963
|
||||||
#, java-format
|
#, java-format
|
||||||
msgid "Could not encode data: {0}"
|
msgid "Could not encode data: {0}"
|
||||||
msgstr "Nie można zakodować danych: {0}"
|
msgstr "Nie można zakodować danych: {0}"
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:967
|
#: src/src/i2p/susi/webmail/WebMail.java:968
|
||||||
#, java-format
|
#, java-format
|
||||||
msgid "Error reading uploaded file: {0}"
|
msgid "Error reading uploaded file: {0}"
|
||||||
msgstr "Błąd w odczycie wysłanego pliku: {0}"
|
msgstr "Błąd w odczycie wysłanego pliku: {0}"
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:1045
|
#: src/src/i2p/susi/webmail/WebMail.java:1046
|
||||||
msgid "Error parsing download parameter."
|
msgid "Error parsing download parameter."
|
||||||
msgstr "Błąd pobrania parametru analizy."
|
msgstr "Błąd pobrania parametru analizy."
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:1089
|
#: src/src/i2p/susi/webmail/WebMail.java:1090
|
||||||
msgid "Invalid pagesize number, resetting to default value."
|
msgid "Invalid pagesize number, resetting to default value."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Nieprawidłowy numer rozmiaru strony, resetowanie do wartości domyślnej."
|
"Nieprawidłowy numer rozmiaru strony, resetowanie do wartości domyślnej."
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:1113
|
#: src/src/i2p/susi/webmail/WebMail.java:1114
|
||||||
msgid "No messages marked for deletion."
|
msgid "No messages marked for deletion."
|
||||||
msgstr "Brak wiadomości zaznaczonych do usunięcia."
|
msgstr "Brak wiadomości zaznaczonych do usunięcia."
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:1133
|
#: src/src/i2p/susi/webmail/WebMail.java:1134
|
||||||
#, java-format
|
#, java-format
|
||||||
msgid "Error deleting message: {0}"
|
msgid "Error deleting message: {0}"
|
||||||
msgstr "Błąd podczas usuwania wiadomości: {0}"
|
msgstr "Błąd podczas usuwania wiadomości: {0}"
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:1144
|
#: src/src/i2p/susi/webmail/WebMail.java:1145
|
||||||
#, java-format
|
#, java-format
|
||||||
msgid "1 message deleted."
|
msgid "1 message deleted."
|
||||||
msgid_plural "{0} messages deleted."
|
msgid_plural "{0} messages deleted."
|
||||||
@ -170,12 +173,12 @@ msgstr[0] "1 wiadomość usunięta."
|
|||||||
msgstr[1] "{0} wiadomości usuniętych."
|
msgstr[1] "{0} wiadomości usuniętych."
|
||||||
msgstr[2] "{0} wiadomości usunięte."
|
msgstr[2] "{0} wiadomości usunięte."
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:1264
|
#: src/src/i2p/susi/webmail/WebMail.java:1267
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:1587
|
#: src/src/i2p/susi/webmail/WebMail.java:1604
|
||||||
msgid "Login"
|
msgid "Login"
|
||||||
msgstr "Zaloguj się"
|
msgstr "Zaloguj się"
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:1266
|
#: src/src/i2p/susi/webmail/WebMail.java:1269
|
||||||
#, java-format
|
#, java-format
|
||||||
msgid "1 Message"
|
msgid "1 Message"
|
||||||
msgid_plural "{0} Messages"
|
msgid_plural "{0} Messages"
|
||||||
@ -183,192 +186,197 @@ msgstr[0] "1 wiadomość"
|
|||||||
msgstr[1] "{0} wiadomości"
|
msgstr[1] "{0} wiadomości"
|
||||||
msgstr[2] "{0} wiadomości"
|
msgstr[2] "{0} wiadomości"
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:1268
|
#: src/src/i2p/susi/webmail/WebMail.java:1271
|
||||||
msgid "Show Message"
|
msgid "Show Message"
|
||||||
msgstr "Pokaż wiadomość"
|
msgstr "Pokaż wiadomość"
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:1325
|
#: src/src/i2p/susi/webmail/WebMail.java:1333
|
||||||
#, java-format
|
#, java-format
|
||||||
msgid "Error decoding content: {0}"
|
msgid "Error decoding content: {0}"
|
||||||
msgstr "Błąd dekodowania treści: {0}"
|
msgstr "Błąd dekodowania treści: {0}"
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:1330
|
#: src/src/i2p/susi/webmail/WebMail.java:1338
|
||||||
msgid "Error decoding content: No encoder found."
|
msgid "Error decoding content: No encoder found."
|
||||||
msgstr "Błąd dekodowania treści: Nie znaleziono enkodera."
|
msgstr "Błąd dekodowania treści: Nie znaleziono enkodera."
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:1377
|
#: src/src/i2p/susi/webmail/WebMail.java:1385
|
||||||
msgid "no subject"
|
msgid "no subject"
|
||||||
msgstr "bez tematu"
|
msgstr "bez tematu"
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:1394
|
#: src/src/i2p/susi/webmail/WebMail.java:1402
|
||||||
msgid "Found no valid sender address."
|
msgid "Found no valid sender address."
|
||||||
msgstr "Nie znaleziono poprawnego adresu nadawcy."
|
msgstr "Nie znaleziono poprawnego adresu nadawcy."
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:1400
|
#: src/src/i2p/susi/webmail/WebMail.java:1408
|
||||||
#, java-format
|
#, java-format
|
||||||
msgid "Found no valid address in \\''{0}\\''."
|
msgid "Found no valid address in \\''{0}\\''."
|
||||||
msgstr "Nie znaleziono prawidłowego adresu w \\''{0} \\''."
|
msgstr "Nie znaleziono prawidłowego adresu w \\''{0} \\''."
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:1419
|
#: src/src/i2p/susi/webmail/WebMail.java:1427
|
||||||
msgid "No recipients found."
|
msgid "No recipients found."
|
||||||
msgstr "Nie znaleziono odbiorców."
|
msgstr "Nie znaleziono odbiorców."
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:1426
|
#: src/src/i2p/susi/webmail/WebMail.java:1434
|
||||||
msgid "Quoted printable encoder not available."
|
msgid "Quoted printable encoder not available."
|
||||||
msgstr "Cytowany drukowalny enkoder nie dostepny."
|
msgstr "Cytowany drukowalny enkoder nie dostepny."
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:1431
|
#: src/src/i2p/susi/webmail/WebMail.java:1439
|
||||||
msgid "Header line encoder not available."
|
msgid "Header line encoder not available."
|
||||||
msgstr "Enkoder linii nagłówka nie dostępny."
|
msgstr "Enkoder linii nagłówka nie dostępny."
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:1482
|
#: src/src/i2p/susi/webmail/WebMail.java:1490
|
||||||
msgid "Mail sent."
|
msgid "Mail sent."
|
||||||
msgstr "Mail wysłany."
|
msgstr "Mail wysłany."
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:1519
|
#: src/src/i2p/susi/webmail/WebMail.java:1529
|
||||||
msgid "Send"
|
msgid "Send"
|
||||||
msgstr "Wyślij"
|
msgstr "Wyślij"
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:1520
|
#: src/src/i2p/susi/webmail/WebMail.java:1530
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr "Anuluj"
|
msgstr "Anuluj"
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:1521
|
#: src/src/i2p/susi/webmail/WebMail.java:1531
|
||||||
msgid "Delete Attachment"
|
msgid "Delete Attachment"
|
||||||
msgstr "Usuń załącznik"
|
msgstr "Usuń załącznik"
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:1522
|
#: src/src/i2p/susi/webmail/WebMail.java:1532
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:1607
|
#: src/src/i2p/susi/webmail/WebMail.java:1626
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:1688
|
#: src/src/i2p/susi/webmail/WebMail.java:1707
|
||||||
msgid "Reload Config"
|
msgid "Reload Config"
|
||||||
msgstr "Przeładuj Konfiguracje"
|
msgstr "Przeładuj Konfiguracje"
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:1523
|
#: src/src/i2p/susi/webmail/WebMail.java:1533
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:1608
|
#: src/src/i2p/susi/webmail/WebMail.java:1627
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:1689
|
#: src/src/i2p/susi/webmail/WebMail.java:1708
|
||||||
msgid "Logout"
|
msgid "Logout"
|
||||||
msgstr "Wyloguj się"
|
msgstr "Wyloguj się"
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:1546
|
#: src/src/i2p/susi/webmail/WebMail.java:1556
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:1693
|
#: src/src/i2p/susi/webmail/WebMail.java:1712
|
||||||
msgid "From:"
|
msgid "From:"
|
||||||
msgstr "Od:"
|
msgstr "Od:"
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:1547
|
#: src/src/i2p/susi/webmail/WebMail.java:1557
|
||||||
msgid "To:"
|
msgid "To:"
|
||||||
msgstr "To:"
|
msgstr "To:"
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:1548
|
#: src/src/i2p/susi/webmail/WebMail.java:1558
|
||||||
msgid "Cc:"
|
msgid "Cc:"
|
||||||
msgstr "Cc:"
|
msgstr "Cc:"
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:1549
|
#: src/src/i2p/susi/webmail/WebMail.java:1559
|
||||||
msgid "Bcc:"
|
msgid "Bcc:"
|
||||||
msgstr "Bcc:"
|
msgstr "Bcc:"
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:1550
|
#: src/src/i2p/susi/webmail/WebMail.java:1560
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:1695
|
#: src/src/i2p/susi/webmail/WebMail.java:1714
|
||||||
msgid "Subject:"
|
msgid "Subject:"
|
||||||
msgstr "Temat:"
|
msgstr "Temat:"
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:1551
|
#: src/src/i2p/susi/webmail/WebMail.java:1561
|
||||||
msgid "Bcc to self"
|
msgid "Bcc to self"
|
||||||
msgstr "Bcc do siebie"
|
msgstr "Bcc do siebie"
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:1554
|
#: src/src/i2p/susi/webmail/WebMail.java:1564
|
||||||
msgid "New Attachment:"
|
msgid "New Attachment:"
|
||||||
msgstr "Nowy załącznik:"
|
msgstr "Nowy załącznik:"
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:1554
|
#: src/src/i2p/susi/webmail/WebMail.java:1564
|
||||||
msgid "Upload File"
|
msgid "Upload File"
|
||||||
msgstr "Prześlij plik"
|
msgstr "Prześlij plik"
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:1560
|
#: src/src/i2p/susi/webmail/WebMail.java:1570
|
||||||
msgid "Attachments:"
|
msgid "Attachments:"
|
||||||
msgstr "Załączniki:"
|
msgstr "Załączniki:"
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:1582
|
#. current postman hq length limits 16/12, new postman version 32/32
|
||||||
|
#: src/src/i2p/susi/webmail/WebMail.java:1593
|
||||||
msgid "User"
|
msgid "User"
|
||||||
msgstr "Użytkownik"
|
msgstr "Użytkownik"
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:1583
|
#: src/src/i2p/susi/webmail/WebMail.java:1594
|
||||||
msgid "Password"
|
msgid "Password"
|
||||||
msgstr "Password"
|
msgstr "Hasło"
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:1584
|
#: src/src/i2p/susi/webmail/WebMail.java:1599
|
||||||
msgid "Host"
|
msgid "Host"
|
||||||
msgstr "Host"
|
msgstr "Host"
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:1585
|
#: src/src/i2p/susi/webmail/WebMail.java:1600
|
||||||
msgid "POP3-Port"
|
msgid "POP3-Port"
|
||||||
msgstr "POP3-Port"
|
msgstr "POP3-Port"
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:1586
|
#: src/src/i2p/susi/webmail/WebMail.java:1601
|
||||||
msgid "SMTP-Port"
|
msgid "SMTP-Port"
|
||||||
msgstr "SMTP-Port"
|
msgstr "SMTP-Port"
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:1587
|
#: src/src/i2p/susi/webmail/WebMail.java:1604
|
||||||
msgid "Create Account"
|
|
||||||
msgstr "Załóż konto"
|
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:1587
|
|
||||||
msgid "Reset"
|
msgid "Reset"
|
||||||
msgstr "Zresetuj"
|
msgstr "Zresetuj"
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:1599
|
#: src/src/i2p/susi/webmail/WebMail.java:1605
|
||||||
|
msgid "Learn about I2P mail"
|
||||||
|
msgstr "Dowiedz się więcej o poczcie I2P"
|
||||||
|
|
||||||
|
#: src/src/i2p/susi/webmail/WebMail.java:1606
|
||||||
|
msgid "Create Account"
|
||||||
|
msgstr "Załóż konto"
|
||||||
|
|
||||||
|
#: src/src/i2p/susi/webmail/WebMail.java:1618
|
||||||
msgid "Really delete the marked messages?"
|
msgid "Really delete the marked messages?"
|
||||||
msgstr "Czy na pewno usunąć zaznaczone wiadomości?"
|
msgstr "Czy na pewno usunąć zaznaczone wiadomości?"
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:1599
|
#: src/src/i2p/susi/webmail/WebMail.java:1618
|
||||||
msgid "Yes, really delete them!"
|
msgid "Yes, really delete them!"
|
||||||
msgstr "Tak, naprawdę je usuń!"
|
msgstr "Tak, naprawdę je usuń!"
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:1601
|
#: src/src/i2p/susi/webmail/WebMail.java:1620
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:1680
|
#: src/src/i2p/susi/webmail/WebMail.java:1699
|
||||||
msgid "New"
|
msgid "New"
|
||||||
msgstr "Nowe"
|
msgstr "Nowe"
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:1602
|
#: src/src/i2p/susi/webmail/WebMail.java:1621
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:1681
|
#: src/src/i2p/susi/webmail/WebMail.java:1700
|
||||||
msgid "Reply"
|
msgid "Reply"
|
||||||
msgstr "Odpowiedz"
|
msgstr "Odpowiedz"
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:1603
|
#: src/src/i2p/susi/webmail/WebMail.java:1622
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:1682
|
#: src/src/i2p/susi/webmail/WebMail.java:1701
|
||||||
msgid "Reply All"
|
msgid "Reply All"
|
||||||
msgstr "Odpowiedz wszystkim"
|
msgstr "Odpowiedz wszystkim"
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:1604
|
#: src/src/i2p/susi/webmail/WebMail.java:1623
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:1683
|
#: src/src/i2p/susi/webmail/WebMail.java:1702
|
||||||
msgid "Forward"
|
msgid "Forward"
|
||||||
msgstr "Przekaż"
|
msgstr "Przekaż"
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:1605
|
#: src/src/i2p/susi/webmail/WebMail.java:1624
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:1684
|
#: src/src/i2p/susi/webmail/WebMail.java:1703
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "Usuń"
|
msgstr "Usuń"
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:1606
|
#: src/src/i2p/susi/webmail/WebMail.java:1625
|
||||||
msgid "Check Mail"
|
msgid "Check Mail"
|
||||||
msgstr "Sprawdź pocztę"
|
msgstr "Sprawdź pocztę"
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:1610
|
#: src/src/i2p/susi/webmail/WebMail.java:1629
|
||||||
msgid "Sender"
|
msgid "Sender"
|
||||||
msgstr "Nadawca"
|
msgstr "Nadawca"
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:1611
|
#: src/src/i2p/susi/webmail/WebMail.java:1630
|
||||||
msgid "Subject"
|
msgid "Subject"
|
||||||
msgstr "Temat"
|
msgstr "Temat"
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:1612
|
#: src/src/i2p/susi/webmail/WebMail.java:1631
|
||||||
msgid "Date"
|
msgid "Date"
|
||||||
msgstr "Data"
|
msgstr "Data"
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:1613
|
#: src/src/i2p/susi/webmail/WebMail.java:1632
|
||||||
msgid "Size"
|
msgid "Size"
|
||||||
msgstr "Rozmiar"
|
msgstr "Rozmiar"
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:1639
|
#: src/src/i2p/susi/webmail/WebMail.java:1658
|
||||||
#, java-format
|
#, java-format
|
||||||
msgid "1 Byte"
|
msgid "1 Byte"
|
||||||
msgid_plural "{0} Bytes"
|
msgid_plural "{0} Bytes"
|
||||||
@ -376,71 +384,69 @@ msgstr[0] "1 bajt"
|
|||||||
msgstr[1] "{0} bajtów"
|
msgstr[1] "{0} bajtów"
|
||||||
msgstr[2] "{0} bajty"
|
msgstr[2] "{0} bajty"
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:1644
|
#: src/src/i2p/susi/webmail/WebMail.java:1663
|
||||||
msgid "Mark All"
|
msgid "Mark All"
|
||||||
msgstr "Zaznacz wszystkie"
|
msgstr "Zaznacz wszystkie"
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:1645
|
#: src/src/i2p/susi/webmail/WebMail.java:1664
|
||||||
msgid "Invert Selection"
|
msgid "Invert Selection"
|
||||||
msgstr "Odwróć zaznaczenie"
|
msgstr "Odwróć zaznaczenie"
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:1646
|
#: src/src/i2p/susi/webmail/WebMail.java:1665
|
||||||
msgid "Clear"
|
msgid "Clear"
|
||||||
msgstr "Wyczyść"
|
msgstr "Wyczyść"
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:1649
|
#: src/src/i2p/susi/webmail/WebMail.java:1668
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:1650
|
#: src/src/i2p/susi/webmail/WebMail.java:1669
|
||||||
msgid "First"
|
msgid "First"
|
||||||
msgstr "Pierwsze"
|
msgstr "Pierwsze"
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:1649
|
#: src/src/i2p/susi/webmail/WebMail.java:1668
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:1650
|
#: src/src/i2p/susi/webmail/WebMail.java:1669
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:1685
|
#: src/src/i2p/susi/webmail/WebMail.java:1704
|
||||||
msgid "Previous"
|
msgid "Previous"
|
||||||
msgstr "Poprzedni"
|
msgstr "Poprzedni"
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:1651
|
#: src/src/i2p/susi/webmail/WebMail.java:1670
|
||||||
#, java-format
|
#, java-format
|
||||||
msgid "Page {0} of {1}"
|
msgid "Page {0} of {1}"
|
||||||
msgstr "Strona {0} z {1}"
|
msgstr "Strona {0} z {1}"
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:1653
|
#: src/src/i2p/susi/webmail/WebMail.java:1672
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:1654
|
#: src/src/i2p/susi/webmail/WebMail.java:1673
|
||||||
msgid "Last"
|
msgid "Last"
|
||||||
msgstr "Ostatnie"
|
msgstr "Ostatnie"
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:1653
|
#: src/src/i2p/susi/webmail/WebMail.java:1672
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:1654
|
#: src/src/i2p/susi/webmail/WebMail.java:1673
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:1686
|
#: src/src/i2p/susi/webmail/WebMail.java:1705
|
||||||
msgid "Next"
|
msgid "Next"
|
||||||
msgstr "Następne"
|
msgstr "Następne"
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:1657
|
#: src/src/i2p/susi/webmail/WebMail.java:1676
|
||||||
msgid "Pagesize:"
|
msgid "Pagesize:"
|
||||||
msgstr "Rozmiar strony:"
|
msgstr "Rozmiar strony:"
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:1658
|
#: src/src/i2p/susi/webmail/WebMail.java:1677
|
||||||
msgid "Set"
|
msgid "Set"
|
||||||
msgstr "Ustaw"
|
msgstr "Ustaw"
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:1668
|
#: src/src/i2p/susi/webmail/WebMail.java:1687
|
||||||
msgid "Really delete this message?"
|
msgid "Really delete this message?"
|
||||||
msgstr "Czy na pewno usunąć tę wiadomość?"
|
msgstr "Czy na pewno usunąć tę wiadomość?"
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:1668
|
#: src/src/i2p/susi/webmail/WebMail.java:1687
|
||||||
msgid "Yes, really delete it!"
|
msgid "Yes, really delete it!"
|
||||||
msgstr "Tak, naprawdę to usuń!"
|
msgstr "Tak, naprawdę to usuń!"
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:1687
|
#: src/src/i2p/susi/webmail/WebMail.java:1706
|
||||||
msgid "Back to Folder"
|
msgid "Back to Folder"
|
||||||
msgstr "Powrót do folderu"
|
msgstr "Powrót do folderu"
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:1694
|
#: src/src/i2p/susi/webmail/WebMail.java:1713
|
||||||
msgid "Date:"
|
msgid "Date:"
|
||||||
msgstr "Data:"
|
msgstr "Data:"
|
||||||
|
|
||||||
#: src/src/i2p/susi/webmail/WebMail.java:1705
|
#: src/src/i2p/susi/webmail/WebMail.java:1724
|
||||||
msgid "Could not fetch mail."
|
msgid "Could not fetch mail."
|
||||||
msgstr "Nie można pobrać poczty."
|
msgstr "Nie można pobrać poczty."
|
||||||
|
|
||||||
|
|
||||||
|
38
build.xml
38
build.xml
@ -34,6 +34,7 @@
|
|||||||
<echo message=" updater: Package the built files in i2pupdate.zip (extracts safely over existing installs)" />
|
<echo message=" updater: Package the built files in i2pupdate.zip (extracts safely over existing installs)" />
|
||||||
<echo message=" updater200: Updater compressed with pack200 (creates i2pupdate200.zip, 60% smaller)" />
|
<echo message=" updater200: Updater compressed with pack200 (creates i2pupdate200.zip, 60% smaller)" />
|
||||||
<echo message=" updaterWithJavadoc: updater including the javadocs, for display in the console" />
|
<echo message=" updaterWithJavadoc: updater including the javadocs, for display in the console" />
|
||||||
|
<echo message=" updater200WithJavadoc: updater including the javadocs, for display in the console (creates i2pupdate200.zip)" />
|
||||||
<echo message=" updaterWithJetty: Updater including Jetty" />
|
<echo message=" updaterWithJetty: Updater including Jetty" />
|
||||||
<echo message=" updater200withJetty: Updater including Jetty" />
|
<echo message=" updater200withJetty: Updater including Jetty" />
|
||||||
<echo message=" updaterWithJettyFixes: updater including local jetty patches" />
|
<echo message=" updaterWithJettyFixes: updater including local jetty patches" />
|
||||||
@ -379,7 +380,7 @@
|
|||||||
packagenames="*"
|
packagenames="*"
|
||||||
use="true"
|
use="true"
|
||||||
splitindex="true"
|
splitindex="true"
|
||||||
doctitle="I2P Javadocs for Release ${release.number} Build ${build.number}"
|
doctitle="I2P Javadocs for Release ${release.number} Build ${build.number}${build.extra}"
|
||||||
windowtitle="I2P Anonymous Network - Java Documentation - Version ${release.number}">
|
windowtitle="I2P Anonymous Network - Java Documentation - Version ${release.number}">
|
||||||
<group title="Core SDK (i2p.jar)" packages="net.i2p:net.i2p.*:net.i2p.client:net.i2p.client.*:net.i2p.internal:net.i2p.internal.*:freenet.support.CPUInformation:org.bouncycastle.crypto:org.bouncycastle.crypto.*:gnu.crypto.*:gnu.gettext:org.xlattice.crypto.filters:com.nettgryppa.security:net.metanotion:net.metanotion.*" />
|
<group title="Core SDK (i2p.jar)" packages="net.i2p:net.i2p.*:net.i2p.client:net.i2p.client.*:net.i2p.internal:net.i2p.internal.*:freenet.support.CPUInformation:org.bouncycastle.crypto:org.bouncycastle.crypto.*:gnu.crypto.*:gnu.gettext:org.xlattice.crypto.filters:com.nettgryppa.security:net.metanotion:net.metanotion.*" />
|
||||||
<group title="Streaming Library" packages="net.i2p.client.streaming" />
|
<group title="Streaming Library" packages="net.i2p.client.streaming" />
|
||||||
@ -388,7 +389,7 @@
|
|||||||
<!-- apps and bridges starting here, alphabetical please -->
|
<!-- apps and bridges starting here, alphabetical please -->
|
||||||
<group title="Addressbook Application" packages="net.i2p.addressbook" />
|
<group title="Addressbook Application" packages="net.i2p.addressbook" />
|
||||||
<group title="BOB Bridge" packages="net.i2p.BOB" />
|
<group title="BOB Bridge" packages="net.i2p.BOB" />
|
||||||
<group title="Desktopgui Application" packages="net.i2p.desktopgui.*" />
|
<group title="Desktopgui Application" packages="net.i2p.desktopgui:net.i2p.desktopgui.*" />
|
||||||
<group title="I2PSnark Application" packages="org.klomp.snark:org.klomp.snark.*" />
|
<group title="I2PSnark Application" packages="org.klomp.snark:org.klomp.snark.*" />
|
||||||
<group title="I2PTunnel Application" packages="net.i2p.i2ptunnel:net.i2p.i2ptunnel.*" />
|
<group title="I2PTunnel Application" packages="net.i2p.i2ptunnel:net.i2p.i2ptunnel.*" />
|
||||||
<group title="Jetty Logging" packages="org.mortbay.http" />
|
<group title="Jetty Logging" packages="org.mortbay.http" />
|
||||||
@ -475,7 +476,12 @@
|
|||||||
<arg value="-f1" />
|
<arg value="-f1" />
|
||||||
<arg value="-d;" />
|
<arg value="-d;" />
|
||||||
</exec>
|
</exec>
|
||||||
<echo message="Build number is ${build.number}" />
|
<exec executable="awk" outputproperty="build.extra" failonerror="false">
|
||||||
|
<arg value="-F"" />
|
||||||
|
<arg value="/public final static String EXTRA/{print $2}" />
|
||||||
|
<arg value="router/java/src/net/i2p/router/RouterVersion.java" />
|
||||||
|
</exec>
|
||||||
|
<echo message="Build number is ${build.number}${build.extra}" />
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
<target name="clean" depends="pkgclean" >
|
<target name="clean" depends="pkgclean" >
|
||||||
@ -484,6 +490,9 @@
|
|||||||
<delete file="i2pinstall.exe" failonerror="false" quiet="true" />
|
<delete file="i2pinstall.exe" failonerror="false" quiet="true" />
|
||||||
<delete file="i2p.exe" failonerror="false" quiet="true" />
|
<delete file="i2p.exe" failonerror="false" quiet="true" />
|
||||||
<delete file="syndie-standalone.zip" failonerror="false" quiet="true" />
|
<delete file="syndie-standalone.zip" failonerror="false" quiet="true" />
|
||||||
|
<delete>
|
||||||
|
<fileset dir="." includes="i2pinstall*jar i2pinstall*bz2" />
|
||||||
|
</delete>
|
||||||
<delete file="i2psnark-standalone.zip" failonerror="false" quiet="true" />
|
<delete file="i2psnark-standalone.zip" failonerror="false" quiet="true" />
|
||||||
<delete file="BOB-one.jar" failonerror="false" quiet="true" />
|
<delete file="BOB-one.jar" failonerror="false" quiet="true" />
|
||||||
<delete dir="core/c/jbigi/bin" />
|
<delete dir="core/c/jbigi/bin" />
|
||||||
@ -792,8 +801,8 @@
|
|||||||
<copy todir="pkg-temp/docs/" >
|
<copy todir="pkg-temp/docs/" >
|
||||||
<fileset dir="installer/resources/readme/" includes="readme*.html" />
|
<fileset dir="installer/resources/readme/" includes="readme*.html" />
|
||||||
<fileset dir="installer/resources/proxy/" includes="*.ht" />
|
<fileset dir="installer/resources/proxy/" includes="*.ht" />
|
||||||
<!-- lang_ar.png added in 0.8.4; a1,a2,je, and eu.png added in 0.8.9; gg.png added in 0.8.10 -->
|
<!-- lang_ar.png added in 0.8.4; a1,a2,je, and eu.png added in 0.8.9; gg.png added in 0.8.10; im.png added in 0.8.12 -->
|
||||||
<fileset dir="installer/resources/" includes="icons/flags/lang_ar.png icons/flags/gg.png icons/flags/je.png icons/flags/eu.png icons/flags/a1.png icons/flags/a2.png" />
|
<fileset dir="installer/resources/" includes="icons/flags/lang_ar.png icons/flags/gg.png icons/flags/je.png icons/flags/eu.png icons/flags/im.png icons/flags/a1.png icons/flags/a2.png" />
|
||||||
</copy>
|
</copy>
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
@ -812,6 +821,7 @@
|
|||||||
<target name="updater200WithJettyFixesAndJbigi" depends="prepjupdatefixes, prepjbigiupdate, preplicenses, pack200, zipit200" />
|
<target name="updater200WithJettyFixesAndJbigi" depends="prepjupdatefixes, prepjbigiupdate, preplicenses, pack200, zipit200" />
|
||||||
<target name="updater" depends="prepupdate, preplicenses, zipit" />
|
<target name="updater" depends="prepupdate, preplicenses, zipit" />
|
||||||
<target name="updaterWithJavadoc" depends="prepupdate, preplicenses, copyJavadoc, zipit" />
|
<target name="updaterWithJavadoc" depends="prepupdate, preplicenses, copyJavadoc, zipit" />
|
||||||
|
<target name="updater200WithJavadoc" depends="prepupdate, preplicenses, copyJavadoc, pack200, zipit200" />
|
||||||
<target name="updaterWithGeoIP" depends="prepupdate, prepgeoupdate, preplicenses, zipit" />
|
<target name="updaterWithGeoIP" depends="prepupdate, prepgeoupdate, preplicenses, zipit" />
|
||||||
<target name="updaterWithJetty" depends="prepjupdate, preplicenses, zipit" />
|
<target name="updaterWithJetty" depends="prepjupdate, preplicenses, zipit" />
|
||||||
<target name="updater200WithJetty" depends="prepjupdate, preplicenses, pack200, zipit200" />
|
<target name="updater200WithJetty" depends="prepjupdate, preplicenses, pack200, zipit200" />
|
||||||
@ -1048,14 +1058,14 @@
|
|||||||
<mkdir dir="pkg-temp/installer" />
|
<mkdir dir="pkg-temp/installer" />
|
||||||
<!-- set if unset -->
|
<!-- set if unset -->
|
||||||
<property name="workspace.changes.util.tr" value="" />
|
<property name="workspace.changes.util.tr" value="" />
|
||||||
<izpack input="${basedir}/installer/install.xml" output="${basedir}/i2pinstall_${release.number}-freebsd-only.jar" installerType="standard" basedir="${basedir}" />
|
<izpack input="${basedir}/installer/install.xml" output="${basedir}/i2pinstall_${release.number}-${build.number}${build.extra}_freebsd-only.jar" installerType="standard" basedir="${basedir}" />
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
<target name="installer-linux" depends="clean, preppkg-linux-only, getReleaseNumber, getBuildNumber, buildProperties, util-list-changes, izpack-patches" >
|
<target name="installer-linux" depends="clean, preppkg-linux-only, getReleaseNumber, getBuildNumber, buildProperties, util-list-changes, izpack-patches" >
|
||||||
<mkdir dir="pkg-temp/installer" />
|
<mkdir dir="pkg-temp/installer" />
|
||||||
<!-- set if unset -->
|
<!-- set if unset -->
|
||||||
<property name="workspace.changes.util.tr" value="" />
|
<property name="workspace.changes.util.tr" value="" />
|
||||||
<izpack input="${basedir}/installer/install.xml" output="${basedir}/i2pinstall_${release.number}-linux-only.jar" installerType="standard" basedir="${basedir}" />
|
<izpack input="${basedir}/installer/install.xml" output="${basedir}/i2pinstall_${release.number}-${build.number}${build.extra}_linux-only.jar" installerType="standard" basedir="${basedir}" />
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
|
|
||||||
@ -1064,7 +1074,7 @@
|
|||||||
<mkdir dir="pkg-temp/osx" />
|
<mkdir dir="pkg-temp/osx" />
|
||||||
<!-- set if unset -->
|
<!-- set if unset -->
|
||||||
<property name="workspace.changes.util.tr" value="" />
|
<property name="workspace.changes.util.tr" value="" />
|
||||||
<izpack input="${basedir}/installer/install.xml" output="${basedir}/i2pinstall_${release.number}-osx-only.jar" installerType="standard" basedir="${basedir}" />
|
<izpack input="${basedir}/installer/install.xml" output="${basedir}/i2pinstall_${release.number}-${build.number}${build.extra}_osx-only.jar" installerType="standard" basedir="${basedir}" />
|
||||||
<ant target="installer2app" />
|
<ant target="installer2app" />
|
||||||
<delete dir="pkg-temp/osx" />
|
<delete dir="pkg-temp/osx" />
|
||||||
</target>
|
</target>
|
||||||
@ -1077,21 +1087,21 @@
|
|||||||
<mkdir dir="pkg-temp/osx" />
|
<mkdir dir="pkg-temp/osx" />
|
||||||
<exec executable="python" failonerror="true">
|
<exec executable="python" failonerror="true">
|
||||||
<arg value="${user.home}/IzPack/utils/wrappers/izpack2app/izpack2app.py" />
|
<arg value="${user.home}/IzPack/utils/wrappers/izpack2app/izpack2app.py" />
|
||||||
<arg value="${basedir}/i2pinstall_${release.number}-osx-only.jar" />
|
<arg value="${basedir}/i2pinstall_${release.number}-${build.number}${build.extra}_osx-only.jar" />
|
||||||
<arg value="${basedir}/pkg-temp/osx/i2p-${release.number}-osx-install.app" />
|
<arg value="${basedir}/pkg-temp/osx/i2p-${release.number}-${build.number}${build.extra}_osx-install.app" />
|
||||||
</exec>
|
</exec>
|
||||||
<exec executable="chmod" failonerror="true" osfamily="unix">
|
<exec executable="chmod" failonerror="true" osfamily="unix">
|
||||||
<arg value="755" />
|
<arg value="755" />
|
||||||
<arg value="${basedir}/pkg-temp/osx/i2p-${release.number}-osx-install.app/Contents/MacOS/JavaApplicationStub" />
|
<arg value="${basedir}/pkg-temp/osx/i2p-${release.number}-${build.number}${build.extra}_osx-install.app/Contents/MacOS/JavaApplicationStub" />
|
||||||
</exec>
|
</exec>
|
||||||
<exec executable="tar" osfamily="unix" failonerror="true">
|
<exec executable="tar" osfamily="unix" failonerror="true">
|
||||||
<arg value="--owner=root" />
|
<arg value="--owner=root" />
|
||||||
<arg value="--group=root" />
|
<arg value="--group=root" />
|
||||||
<arg value="-cjvf" />
|
<arg value="-cjvf" />
|
||||||
<arg value="${basedir}/i2pinstall_${release.number}-osx.tar.bz2" />
|
<arg value="${basedir}/i2pinstall_${release.number}-${build.number}${build.extra}_osx.tar.bz2" />
|
||||||
<arg value="-C" />
|
<arg value="-C" />
|
||||||
<arg value="${basedir}/pkg-temp/osx" />
|
<arg value="${basedir}/pkg-temp/osx" />
|
||||||
<arg value="i2p-${release.number}-osx-install.app" />
|
<arg value="i2p-${release.number}-${build.number}${build.extra}_osx-install.app" />
|
||||||
</exec>
|
</exec>
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
@ -1126,7 +1136,7 @@
|
|||||||
<attribute name="Workspace-Changes" value="${workspace.changes.util.tr}" />
|
<attribute name="Workspace-Changes" value="${workspace.changes.util.tr}" />
|
||||||
</manifest>
|
</manifest>
|
||||||
</jar>
|
</jar>
|
||||||
<izpack input="${basedir}/installer/install.xml" output="${basedir}/i2pinstall_${release.number}-windows-only.jar" installerType="standard" basedir="${basedir}" />
|
<izpack input="${basedir}/installer/install.xml" output="${basedir}/i2pinstall_${release.number}-${build.number}${build.extra}_windows-only.jar" installerType="standard" basedir="${basedir}" />
|
||||||
<delete dir="pkg-temp/win" />
|
<delete dir="pkg-temp/win" />
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
|
@ -67,6 +67,6 @@ fi
|
|||||||
echo "Compiling C code..."
|
echo "Compiling C code..."
|
||||||
rm -f jbigi.o $LIBFILE
|
rm -f jbigi.o $LIBFILE
|
||||||
$CC -c $COMPILEFLAGS $INCLUDES ../../jbigi/src/jbigi.c || exit 1
|
$CC -c $COMPILEFLAGS $INCLUDES ../../jbigi/src/jbigi.c || exit 1
|
||||||
$CC $LINKFLAGS $INCLUDES $INCLUDELIBS -o $LIBFILE jbigi.o $STATICLIBS || exit 1
|
$CC $LINKFLAGS $INCLUDES -o $LIBFILE jbigi.o $INCLUDELIBS $STATICLIBS || exit 1
|
||||||
|
|
||||||
exit 0
|
exit 0
|
||||||
|
@ -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.11";
|
public final static String VERSION = "0.8.12";
|
||||||
|
|
||||||
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);
|
||||||
|
@ -118,6 +118,17 @@ public class DataHelper {
|
|||||||
public static Properties readProperties(InputStream rawStream)
|
public static Properties readProperties(InputStream rawStream)
|
||||||
throws DataFormatException, IOException {
|
throws DataFormatException, IOException {
|
||||||
Properties props = new OrderedProperties();
|
Properties props = new OrderedProperties();
|
||||||
|
readProperties(rawStream, props);
|
||||||
|
return props;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Ditto, load into an existing properties
|
||||||
|
* @param props the Properties to load into
|
||||||
|
* @since 0.8.13
|
||||||
|
*/
|
||||||
|
public static Properties readProperties(InputStream rawStream, Properties props)
|
||||||
|
throws DataFormatException, IOException {
|
||||||
long size = readLong(rawStream, 2);
|
long size = readLong(rawStream, 2);
|
||||||
byte data[] = new byte[(int) size];
|
byte data[] = new byte[(int) size];
|
||||||
int read = read(rawStream, data);
|
int read = read(rawStream, data);
|
||||||
@ -1268,6 +1279,8 @@ public class DataHelper {
|
|||||||
* Why? Just because it has to be consistent so signing will work.
|
* Why? Just because it has to be consistent so signing will work.
|
||||||
* How to spec as returning the same type as the param?
|
* How to spec as returning the same type as the param?
|
||||||
* DEPRECATED - Only used by RouterInfo.
|
* DEPRECATED - Only used by RouterInfo.
|
||||||
|
*
|
||||||
|
* @return a new list
|
||||||
*/
|
*/
|
||||||
public static List<? extends DataStructure> sortStructures(Collection<? extends DataStructure> dataStructures) {
|
public static List<? extends DataStructure> sortStructures(Collection<? extends DataStructure> dataStructures) {
|
||||||
if (dataStructures == null) return Collections.EMPTY_LIST;
|
if (dataStructures == null) return Collections.EMPTY_LIST;
|
||||||
|
@ -124,16 +124,22 @@ public abstract class DatabaseEntry extends DataStructureImpl {
|
|||||||
/**
|
/**
|
||||||
* Configure the proof that the entity stands behind the info here
|
* Configure the proof that the entity stands behind the info here
|
||||||
*
|
*
|
||||||
|
* @throws IllegalStateException if already signed
|
||||||
*/
|
*/
|
||||||
public void setSignature(Signature signature) {
|
public void setSignature(Signature signature) {
|
||||||
|
if (_signature != null)
|
||||||
|
throw new IllegalStateException();
|
||||||
_signature = signature;
|
_signature = signature;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sign the structure using the supplied signing key
|
* Sign the structure using the supplied signing key
|
||||||
*
|
*
|
||||||
|
* @throws IllegalStateException if already signed
|
||||||
*/
|
*/
|
||||||
public void sign(SigningPrivateKey key) throws DataFormatException {
|
public void sign(SigningPrivateKey key) throws DataFormatException {
|
||||||
|
if (_signature != null)
|
||||||
|
throw new IllegalStateException();
|
||||||
byte[] bytes = getBytes();
|
byte[] bytes = getBytes();
|
||||||
if (bytes == null) throw new DataFormatException("Not enough data to sign");
|
if (bytes == null) throw new DataFormatException("Not enough data to sign");
|
||||||
// now sign with the key
|
// now sign with the key
|
||||||
|
@ -12,6 +12,7 @@ package net.i2p.data;
|
|||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.io.OutputStream;
|
import java.io.OutputStream;
|
||||||
|
import java.util.Collections;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@ -22,16 +23,24 @@ import net.i2p.util.OrderedProperties;
|
|||||||
/**
|
/**
|
||||||
* Defines a method of communicating with a router
|
* Defines a method of communicating with a router
|
||||||
*
|
*
|
||||||
|
* For efficiency, the options methods and structures here are unsynchronized.
|
||||||
|
* Initialize the structure with readBytes(), or call the setOptions().
|
||||||
|
* Don't change it after that.
|
||||||
|
*
|
||||||
|
* To ensure integrity of the RouterInfo, methods that change an element of the
|
||||||
|
* RouterInfo will throw an IllegalStateException after the RouterInfo is signed.
|
||||||
|
*
|
||||||
* @author jrandom
|
* @author jrandom
|
||||||
*/
|
*/
|
||||||
public class RouterAddress extends DataStructureImpl {
|
public class RouterAddress extends DataStructureImpl {
|
||||||
private int _cost;
|
private int _cost;
|
||||||
private Date _expiration;
|
private Date _expiration;
|
||||||
private String _transportStyle;
|
private String _transportStyle;
|
||||||
private Properties _options;
|
private final Properties _options;
|
||||||
|
|
||||||
public RouterAddress() {
|
public RouterAddress() {
|
||||||
_cost = -1;
|
_cost = -1;
|
||||||
|
_options = new OrderedProperties();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -85,28 +94,59 @@ public class RouterAddress extends DataStructureImpl {
|
|||||||
/**
|
/**
|
||||||
* Configure the type of transport that must be used to communicate on this address
|
* Configure the type of transport that must be used to communicate on this address
|
||||||
*
|
*
|
||||||
|
* @throws IllegalStateException if was already set
|
||||||
*/
|
*/
|
||||||
public void setTransportStyle(String transportStyle) {
|
public void setTransportStyle(String transportStyle) {
|
||||||
|
if (_transportStyle != null)
|
||||||
|
throw new IllegalStateException();
|
||||||
_transportStyle = transportStyle;
|
_transportStyle = transportStyle;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Retrieve the transport specific options necessary for communication
|
* Retrieve the transport specific options necessary for communication
|
||||||
*
|
*
|
||||||
|
* @deprecated use getOptionsMap()
|
||||||
|
* @return sorted, non-null, NOT a copy, do not modify
|
||||||
*/
|
*/
|
||||||
public Properties getOptions() {
|
public Properties getOptions() {
|
||||||
return _options;
|
return _options;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Specify the transport specific options necessary for communication
|
* Retrieve the transport specific options necessary for communication
|
||||||
*
|
*
|
||||||
|
* @return an unmodifiable view, non-null, sorted
|
||||||
|
* @since 0.8.13
|
||||||
*/
|
*/
|
||||||
public void setOptions(Properties options) {
|
public Map getOptionsMap() {
|
||||||
_options = options;
|
return Collections.unmodifiableMap(_options);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @since 0.8.13
|
||||||
|
*/
|
||||||
|
public String getOption(String opt) {
|
||||||
|
return _options.getProperty(opt);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Specify the transport specific options necessary for communication.
|
||||||
|
* Makes a copy.
|
||||||
|
* @param options non-null
|
||||||
|
* @throws IllegalStateException if was already set
|
||||||
|
*/
|
||||||
|
public void setOptions(Properties options) {
|
||||||
|
if (!_options.isEmpty())
|
||||||
|
throw new IllegalStateException();
|
||||||
|
_options.putAll(options);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @throws IllegalStateException if was already read in
|
||||||
|
*/
|
||||||
public void readBytes(InputStream in) throws DataFormatException, IOException {
|
public void readBytes(InputStream in) throws DataFormatException, IOException {
|
||||||
|
if (_transportStyle != null)
|
||||||
|
throw new IllegalStateException();
|
||||||
_cost = (int) DataHelper.readLong(in, 1);
|
_cost = (int) DataHelper.readLong(in, 1);
|
||||||
_expiration = DataHelper.readDate(in);
|
_expiration = DataHelper.readDate(in);
|
||||||
_transportStyle = DataHelper.readString(in);
|
_transportStyle = DataHelper.readString(in);
|
||||||
@ -115,11 +155,11 @@ public class RouterAddress extends DataStructureImpl {
|
|||||||
_transportStyle = "SSU";
|
_transportStyle = "SSU";
|
||||||
else if (_transportStyle.equals("NTCP"))
|
else if (_transportStyle.equals("NTCP"))
|
||||||
_transportStyle = "NTCP";
|
_transportStyle = "NTCP";
|
||||||
_options = DataHelper.readProperties(in);
|
DataHelper.readProperties(in, _options);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void writeBytes(OutputStream out) throws DataFormatException, IOException {
|
public void writeBytes(OutputStream out) throws DataFormatException, IOException {
|
||||||
if ((_cost < 0) || (_transportStyle == null) || (_options == null))
|
if ((_cost < 0) || (_transportStyle == null))
|
||||||
throw new DataFormatException("Not enough data to write a router address");
|
throw new DataFormatException("Not enough data to write a router address");
|
||||||
DataHelper.writeLong(out, 1, _cost);
|
DataHelper.writeLong(out, 1, _cost);
|
||||||
DataHelper.writeDate(out, _expiration);
|
DataHelper.writeDate(out, _expiration);
|
||||||
@ -131,11 +171,12 @@ public class RouterAddress extends DataStructureImpl {
|
|||||||
public boolean equals(Object object) {
|
public boolean equals(Object object) {
|
||||||
if ((object == null) || !(object instanceof RouterAddress)) return false;
|
if ((object == null) || !(object instanceof RouterAddress)) return false;
|
||||||
RouterAddress addr = (RouterAddress) object;
|
RouterAddress addr = (RouterAddress) object;
|
||||||
|
// let's keep this fast as we are putting an address into the RouterInfo set frequently
|
||||||
return
|
return
|
||||||
_cost == addr._cost &&
|
_cost == addr._cost &&
|
||||||
DataHelper.eq(_transportStyle, addr._transportStyle) &&
|
DataHelper.eq(_transportStyle, addr._transportStyle);
|
||||||
DataHelper.eq(_options, addr._options) &&
|
//DataHelper.eq(_options, addr._options) &&
|
||||||
DataHelper.eq(_expiration, addr._expiration);
|
//DataHelper.eq(_expiration, addr._expiration);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -161,9 +202,7 @@ public class RouterAddress extends DataStructureImpl {
|
|||||||
buf.append("\n\tExpiration: ").append(_expiration);
|
buf.append("\n\tExpiration: ").append(_expiration);
|
||||||
if (_options != null) {
|
if (_options != null) {
|
||||||
buf.append("\n\tOptions: #: ").append(_options.size());
|
buf.append("\n\tOptions: #: ").append(_options.size());
|
||||||
Properties p = new OrderedProperties();
|
for (Map.Entry e : _options.entrySet()) {
|
||||||
p.putAll(_options);
|
|
||||||
for (Map.Entry e : p.entrySet()) {
|
|
||||||
String key = (String) e.getKey();
|
String key = (String) e.getKey();
|
||||||
String val = (String) e.getValue();
|
String val = (String) e.getValue();
|
||||||
buf.append("\n\t\t[").append(key).append("] = [").append(val).append("]");
|
buf.append("\n\t\t[").append(key).append("] = [").append(val).append("]");
|
||||||
|
@ -19,6 +19,7 @@ import java.util.Date;
|
|||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
import java.util.Properties;
|
import java.util.Properties;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.Vector;
|
import java.util.Vector;
|
||||||
@ -32,6 +33,13 @@ import net.i2p.util.OrderedProperties;
|
|||||||
* Defines the data that a router either publishes to the global routing table or
|
* Defines the data that a router either publishes to the global routing table or
|
||||||
* provides to trusted peers.
|
* provides to trusted peers.
|
||||||
*
|
*
|
||||||
|
* For efficiency, the methods and structures here are now unsynchronized.
|
||||||
|
* Initialize the RI with readBytes(), or call the setters and then sign() in a single thread.
|
||||||
|
* Don't change it after that.
|
||||||
|
*
|
||||||
|
* To ensure integrity of the RouterInfo, methods that change an element of the
|
||||||
|
* RouterInfo will throw an IllegalStateException after the RouterInfo is signed.
|
||||||
|
*
|
||||||
* @author jrandom
|
* @author jrandom
|
||||||
*/
|
*/
|
||||||
public class RouterInfo extends DatabaseEntry {
|
public class RouterInfo extends DatabaseEntry {
|
||||||
@ -41,7 +49,7 @@ public class RouterInfo extends DatabaseEntry {
|
|||||||
private final Set<RouterAddress> _addresses;
|
private final Set<RouterAddress> _addresses;
|
||||||
/** may be null to save memory, no longer final */
|
/** may be null to save memory, no longer final */
|
||||||
private Set<Hash> _peers;
|
private Set<Hash> _peers;
|
||||||
private /* FIXME final FIXME */ Properties _options;
|
private final Properties _options;
|
||||||
private volatile boolean _validated;
|
private volatile boolean _validated;
|
||||||
private volatile boolean _isValid;
|
private volatile boolean _isValid;
|
||||||
private volatile String _stringified;
|
private volatile String _stringified;
|
||||||
@ -67,14 +75,19 @@ public class RouterInfo extends DatabaseEntry {
|
|||||||
_options = new OrderedProperties();
|
_options = new OrderedProperties();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Used only by Router and PublishLocalRouterInfoJob.
|
||||||
|
* Copies ONLY the identity and peers.
|
||||||
|
* Does not copy published, addresses, options, or signature.
|
||||||
|
*/
|
||||||
public RouterInfo(RouterInfo old) {
|
public RouterInfo(RouterInfo old) {
|
||||||
this();
|
this();
|
||||||
setIdentity(old.getIdentity());
|
setIdentity(old.getIdentity());
|
||||||
setPublished(old.getPublished());
|
//setPublished(old.getPublished());
|
||||||
setAddresses(old.getAddresses());
|
//setAddresses(old.getAddresses());
|
||||||
setPeers(old.getPeers());
|
setPeers(old.getPeers());
|
||||||
setOptions(old.getOptions());
|
//setOptions(old.getOptions());
|
||||||
setSignature(old.getSignature());
|
//setSignature(old.getSignature());
|
||||||
// copy over _byteified?
|
// copy over _byteified?
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -90,12 +103,6 @@ public class RouterInfo extends DatabaseEntry {
|
|||||||
return KEY_TYPE_ROUTERINFO;
|
return KEY_TYPE_ROUTERINFO;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void resetCache() {
|
|
||||||
_stringified = null;
|
|
||||||
_byteified = null;
|
|
||||||
_hashCodeInitialized = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Retrieve the identity of the router represented
|
* Retrieve the identity of the router represented
|
||||||
*
|
*
|
||||||
@ -107,10 +114,12 @@ public class RouterInfo extends DatabaseEntry {
|
|||||||
/**
|
/**
|
||||||
* Configure the identity of the router represented
|
* Configure the identity of the router represented
|
||||||
*
|
*
|
||||||
|
* @throws IllegalStateException if RouterInfo is already signed
|
||||||
*/
|
*/
|
||||||
public void setIdentity(RouterIdentity ident) {
|
public void setIdentity(RouterIdentity ident) {
|
||||||
|
if (_signature != null)
|
||||||
|
throw new IllegalStateException();
|
||||||
_identity = ident;
|
_identity = ident;
|
||||||
resetCache();
|
|
||||||
// We only want to cache the bytes for our own RI, which is frequently written.
|
// We only want to cache the bytes for our own RI, which is frequently written.
|
||||||
// To cache for all RIs doubles the RI memory usage.
|
// To cache for all RIs doubles the RI memory usage.
|
||||||
// setIdentity() is only called when we are creating our own RI.
|
// setIdentity() is only called when we are creating our own RI.
|
||||||
@ -133,34 +142,35 @@ public class RouterInfo extends DatabaseEntry {
|
|||||||
/**
|
/**
|
||||||
* Date on which it was published, in milliseconds since Midnight GMT on Jan 01, 1970
|
* Date on which it was published, in milliseconds since Midnight GMT on Jan 01, 1970
|
||||||
*
|
*
|
||||||
|
* @throws IllegalStateException if RouterInfo is already signed
|
||||||
*/
|
*/
|
||||||
public void setPublished(long published) {
|
public void setPublished(long published) {
|
||||||
|
if (_signature != null)
|
||||||
|
throw new IllegalStateException();
|
||||||
_published = published;
|
_published = published;
|
||||||
resetCache();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Retrieve the set of RouterAddress structures at which this
|
* Retrieve the set of RouterAddress structures at which this
|
||||||
* router can be contacted.
|
* router can be contacted.
|
||||||
*
|
*
|
||||||
|
* @return unmodifiable view, non-null
|
||||||
*/
|
*/
|
||||||
public Set<RouterAddress> getAddresses() {
|
public Set<RouterAddress> getAddresses() {
|
||||||
synchronized (_addresses) {
|
return Collections.unmodifiableSet(_addresses);
|
||||||
return new HashSet(_addresses);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Specify a set of RouterAddress structures at which this router
|
* Specify a set of RouterAddress structures at which this router
|
||||||
* can be contacted.
|
* can be contacted.
|
||||||
*
|
*
|
||||||
|
* @throws IllegalStateException if RouterInfo is already signed
|
||||||
*/
|
*/
|
||||||
public void setAddresses(Set<RouterAddress> addresses) {
|
public void setAddresses(Set<RouterAddress> addresses) {
|
||||||
synchronized (_addresses) {
|
if (_signature != null)
|
||||||
_addresses.clear();
|
throw new IllegalStateException();
|
||||||
if (addresses != null) _addresses.addAll(addresses);
|
_addresses.clear();
|
||||||
}
|
if (addresses != null) _addresses.addAll(addresses);
|
||||||
resetCache();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -180,8 +190,11 @@ public class RouterInfo extends DatabaseEntry {
|
|||||||
* this router can be reached through.
|
* this router can be reached through.
|
||||||
*
|
*
|
||||||
* @deprecated Implemented here but unused elsewhere
|
* @deprecated Implemented here but unused elsewhere
|
||||||
|
* @throws IllegalStateException if RouterInfo is already signed
|
||||||
*/
|
*/
|
||||||
public void setPeers(Set<Hash> peers) {
|
public void setPeers(Set<Hash> peers) {
|
||||||
|
if (_signature != null)
|
||||||
|
throw new IllegalStateException();
|
||||||
if (peers == null || peers.isEmpty()) {
|
if (peers == null || peers.isEmpty()) {
|
||||||
_peers = null;
|
_peers = null;
|
||||||
return;
|
return;
|
||||||
@ -192,37 +205,46 @@ public class RouterInfo extends DatabaseEntry {
|
|||||||
_peers.clear();
|
_peers.clear();
|
||||||
_peers.addAll(peers);
|
_peers.addAll(peers);
|
||||||
}
|
}
|
||||||
resetCache();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Retrieve a set of options or statistics that the router can expose
|
* Retrieve a set of options or statistics that the router can expose.
|
||||||
*
|
*
|
||||||
|
* @deprecated use getOptionsMap()
|
||||||
|
* @return sorted, non-null, NOT a copy, do not modify!!!
|
||||||
*/
|
*/
|
||||||
public Properties getOptions() {
|
public Properties getOptions() {
|
||||||
if (_options == null) return new Properties();
|
return _options;
|
||||||
synchronized (_options) {
|
|
||||||
return (Properties) _options.clone();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
public String getOption(String opt) {
|
|
||||||
if (_options == null) return null;
|
|
||||||
synchronized (_options) {
|
|
||||||
return _options.getProperty(opt);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Configure a set of options or statistics that the router can expose
|
* Retrieve a set of options or statistics that the router can expose.
|
||||||
|
*
|
||||||
|
* @return an unmodifiable view, non-null, sorted
|
||||||
|
* @since 0.8.13
|
||||||
|
*/
|
||||||
|
public Map getOptionsMap() {
|
||||||
|
return Collections.unmodifiableMap(_options);
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getOption(String opt) {
|
||||||
|
return _options.getProperty(opt);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Configure a set of options or statistics that the router can expose.
|
||||||
|
* Makes a copy.
|
||||||
|
*
|
||||||
* @param options if null, clears current options
|
* @param options if null, clears current options
|
||||||
|
* @throws IllegalStateException if RouterInfo is already signed
|
||||||
*/
|
*/
|
||||||
public void setOptions(Properties options) {
|
public void setOptions(Properties options) {
|
||||||
synchronized (_options) {
|
if (_signature != null)
|
||||||
_options.clear();
|
throw new IllegalStateException();
|
||||||
if (options != null)
|
|
||||||
_options.putAll(options);
|
_options.clear();
|
||||||
}
|
if (options != null)
|
||||||
resetCache();
|
_options.putAll(options);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -234,14 +256,14 @@ public class RouterInfo extends DatabaseEntry {
|
|||||||
protected byte[] getBytes() throws DataFormatException {
|
protected byte[] getBytes() throws DataFormatException {
|
||||||
if (_byteified != null) return _byteified;
|
if (_byteified != null) return _byteified;
|
||||||
if (_identity == null) throw new DataFormatException("Router identity isn't set? wtf!");
|
if (_identity == null) throw new DataFormatException("Router identity isn't set? wtf!");
|
||||||
if (_addresses == null) throw new DataFormatException("Router addressess isn't set? wtf!");
|
|
||||||
if (_options == null) throw new DataFormatException("Router options isn't set? wtf!");
|
|
||||||
|
|
||||||
//long before = Clock.getInstance().now();
|
//long before = Clock.getInstance().now();
|
||||||
ByteArrayOutputStream out = new ByteArrayOutputStream(6*1024);
|
ByteArrayOutputStream out = new ByteArrayOutputStream(2*1024);
|
||||||
try {
|
try {
|
||||||
_identity.writeBytes(out);
|
_identity.writeBytes(out);
|
||||||
DataHelper.writeDate(out, new Date(_published));
|
// avoid thrashing objects
|
||||||
|
//DataHelper.writeDate(out, new Date(_published));
|
||||||
|
DataHelper.writeLong(out, 8, _published);
|
||||||
int sz = _addresses.size();
|
int sz = _addresses.size();
|
||||||
if (sz <= 0 || isHidden()) {
|
if (sz <= 0 || isHidden()) {
|
||||||
// Do not send IP address to peers in hidden mode
|
// Do not send IP address to peers in hidden mode
|
||||||
@ -249,11 +271,12 @@ public class RouterInfo extends DatabaseEntry {
|
|||||||
} else {
|
} else {
|
||||||
DataHelper.writeLong(out, 1, sz);
|
DataHelper.writeLong(out, 1, sz);
|
||||||
Collection<RouterAddress> addresses = _addresses;
|
Collection<RouterAddress> addresses = _addresses;
|
||||||
if (sz > 1)
|
if (sz > 1) {
|
||||||
// WARNING this sort algorithm cannot be changed, as it must be consistent
|
// WARNING this sort algorithm cannot be changed, as it must be consistent
|
||||||
// network-wide. The signature is not checked at readin time, but only
|
// network-wide. The signature is not checked at readin time, but only
|
||||||
// later, and the addresses are stored in a Set, not a List.
|
// later, and the addresses are stored in a Set, not a List.
|
||||||
addresses = (Collection<RouterAddress>) DataHelper.sortStructures(addresses);
|
addresses = (Collection<RouterAddress>) DataHelper.sortStructures(addresses);
|
||||||
|
}
|
||||||
for (RouterAddress addr : addresses) {
|
for (RouterAddress addr : addresses) {
|
||||||
addr.writeBytes(out);
|
addr.writeBytes(out);
|
||||||
}
|
}
|
||||||
@ -293,7 +316,7 @@ public class RouterInfo extends DatabaseEntry {
|
|||||||
* Determine whether this router info is authorized with a valid signature
|
* Determine whether this router info is authorized with a valid signature
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public synchronized boolean isValid() {
|
public boolean isValid() {
|
||||||
if (!_validated) doValidate();
|
if (!_validated) doValidate();
|
||||||
return _isValid;
|
return _isValid;
|
||||||
}
|
}
|
||||||
@ -304,11 +327,7 @@ public class RouterInfo extends DatabaseEntry {
|
|||||||
* @return -1 if unknown
|
* @return -1 if unknown
|
||||||
*/
|
*/
|
||||||
public int getNetworkId() {
|
public int getNetworkId() {
|
||||||
if (_options == null) return -1;
|
String id = _options.getProperty(PROP_NETWORK_ID);
|
||||||
String id = null;
|
|
||||||
synchronized (_options) {
|
|
||||||
id = _options.getProperty(PROP_NETWORK_ID);
|
|
||||||
}
|
|
||||||
if (id != null) {
|
if (id != null) {
|
||||||
try {
|
try {
|
||||||
return Integer.parseInt(id);
|
return Integer.parseInt(id);
|
||||||
@ -322,11 +341,7 @@ public class RouterInfo extends DatabaseEntry {
|
|||||||
* @return non-null, empty string if none
|
* @return non-null, empty string if none
|
||||||
*/
|
*/
|
||||||
public String getCapabilities() {
|
public String getCapabilities() {
|
||||||
if (_options == null) return "";
|
String capabilities = _options.getProperty(PROP_CAPABILITIES);
|
||||||
String capabilities = null;
|
|
||||||
synchronized (_options) {
|
|
||||||
capabilities = _options.getProperty(PROP_CAPABILITIES);
|
|
||||||
}
|
|
||||||
if (capabilities != null)
|
if (capabilities != null)
|
||||||
return capabilities;
|
return capabilities;
|
||||||
else
|
else
|
||||||
@ -358,20 +373,27 @@ public class RouterInfo extends DatabaseEntry {
|
|||||||
return (bwTier);
|
return (bwTier);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @throws IllegalStateException if RouterInfo is already signed
|
||||||
|
*/
|
||||||
public void addCapability(char cap) {
|
public void addCapability(char cap) {
|
||||||
if (_options == null) _options = new OrderedProperties();
|
if (_signature != null)
|
||||||
synchronized (_options) {
|
throw new IllegalStateException();
|
||||||
|
|
||||||
String caps = _options.getProperty(PROP_CAPABILITIES);
|
String caps = _options.getProperty(PROP_CAPABILITIES);
|
||||||
if (caps == null)
|
if (caps == null)
|
||||||
_options.setProperty(PROP_CAPABILITIES, ""+cap);
|
_options.setProperty(PROP_CAPABILITIES, ""+cap);
|
||||||
else if (caps.indexOf(cap) == -1)
|
else if (caps.indexOf(cap) == -1)
|
||||||
_options.setProperty(PROP_CAPABILITIES, caps + cap);
|
_options.setProperty(PROP_CAPABILITIES, caps + cap);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @throws IllegalStateException if RouterInfo is already signed
|
||||||
|
*/
|
||||||
public void delCapability(char cap) {
|
public void delCapability(char cap) {
|
||||||
if (_options == null) return;
|
if (_signature != null)
|
||||||
synchronized (_options) {
|
throw new IllegalStateException();
|
||||||
|
|
||||||
String caps = _options.getProperty(PROP_CAPABILITIES);
|
String caps = _options.getProperty(PROP_CAPABILITIES);
|
||||||
int idx;
|
int idx;
|
||||||
if (caps == null) {
|
if (caps == null) {
|
||||||
@ -384,7 +406,6 @@ public class RouterInfo extends DatabaseEntry {
|
|||||||
buf.deleteCharAt(idx);
|
buf.deleteCharAt(idx);
|
||||||
_options.setProperty(PROP_CAPABILITIES, buf.toString());
|
_options.setProperty(PROP_CAPABILITIES, buf.toString());
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -409,12 +430,9 @@ public class RouterInfo extends DatabaseEntry {
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public RouterAddress getTargetAddress(String transportStyle) {
|
public RouterAddress getTargetAddress(String transportStyle) {
|
||||||
synchronized (_addresses) {
|
for (RouterAddress addr : _addresses) {
|
||||||
for (Iterator iter = _addresses.iterator(); iter.hasNext(); ) {
|
if (addr.getTransportStyle().equals(transportStyle))
|
||||||
RouterAddress addr = (RouterAddress)iter.next();
|
return addr;
|
||||||
if (addr.getTransportStyle().equals(transportStyle))
|
|
||||||
return addr;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@ -425,12 +443,9 @@ public class RouterInfo extends DatabaseEntry {
|
|||||||
*/
|
*/
|
||||||
public List<RouterAddress> getTargetAddresses(String transportStyle) {
|
public List<RouterAddress> getTargetAddresses(String transportStyle) {
|
||||||
List<RouterAddress> ret = new Vector<RouterAddress>();
|
List<RouterAddress> ret = new Vector<RouterAddress>();
|
||||||
synchronized(this._addresses) {
|
for (RouterAddress addr : _addresses) {
|
||||||
for(Object o : this._addresses) {
|
if(addr.getTransportStyle().equals(transportStyle))
|
||||||
RouterAddress addr = (RouterAddress)o;
|
ret.add(addr);
|
||||||
if(addr.getTransportStyle().equals(transportStyle))
|
|
||||||
ret.add(addr);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@ -438,9 +453,9 @@ public class RouterInfo extends DatabaseEntry {
|
|||||||
/**
|
/**
|
||||||
* Actually validate the signature
|
* Actually validate the signature
|
||||||
*/
|
*/
|
||||||
private synchronized void doValidate() {
|
private void doValidate() {
|
||||||
_validated = true;
|
|
||||||
_isValid = super.verifySignature();
|
_isValid = super.verifySignature();
|
||||||
|
_validated = true;
|
||||||
|
|
||||||
if (!_isValid) {
|
if (!_isValid) {
|
||||||
byte data[] = null;
|
byte data[] = null;
|
||||||
@ -459,15 +474,21 @@ public class RouterInfo extends DatabaseEntry {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* This does NOT validate the signature
|
* This does NOT validate the signature
|
||||||
|
*
|
||||||
|
* @throws IllegalStateException if RouterInfo was already read in
|
||||||
*/
|
*/
|
||||||
public synchronized void readBytes(InputStream in) throws DataFormatException, IOException {
|
public void readBytes(InputStream in) throws DataFormatException, IOException {
|
||||||
|
if (_signature != null)
|
||||||
|
throw new IllegalStateException();
|
||||||
_identity = new RouterIdentity();
|
_identity = new RouterIdentity();
|
||||||
_identity.readBytes(in);
|
_identity.readBytes(in);
|
||||||
Date when = DataHelper.readDate(in);
|
// avoid thrashing objects
|
||||||
if (when == null)
|
//Date when = DataHelper.readDate(in);
|
||||||
_published = 0;
|
//if (when == null)
|
||||||
else
|
// _published = 0;
|
||||||
_published = when.getTime();
|
//else
|
||||||
|
// _published = when.getTime();
|
||||||
|
_published = DataHelper.readLong(in, 8);
|
||||||
int numAddresses = (int) DataHelper.readLong(in, 1);
|
int numAddresses = (int) DataHelper.readLong(in, 1);
|
||||||
for (int i = 0; i < numAddresses; i++) {
|
for (int i = 0; i < numAddresses; i++) {
|
||||||
RouterAddress address = new RouterAddress();
|
RouterAddress address = new RouterAddress();
|
||||||
@ -485,11 +506,10 @@ public class RouterInfo extends DatabaseEntry {
|
|||||||
_peers.add(peerIdentityHash);
|
_peers.add(peerIdentityHash);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
_options = DataHelper.readProperties(in);
|
DataHelper.readProperties(in, _options);
|
||||||
_signature = new Signature();
|
_signature = new Signature();
|
||||||
_signature.readBytes(in);
|
_signature.readBytes(in);
|
||||||
|
|
||||||
resetCache();
|
|
||||||
|
|
||||||
//_log.debug("Read routerInfo: " + toString());
|
//_log.debug("Read routerInfo: " + toString());
|
||||||
}
|
}
|
||||||
@ -497,13 +517,13 @@ public class RouterInfo extends DatabaseEntry {
|
|||||||
/**
|
/**
|
||||||
* This does NOT validate the signature
|
* This does NOT validate the signature
|
||||||
*/
|
*/
|
||||||
public synchronized void writeBytes(OutputStream out) throws DataFormatException, IOException {
|
public void writeBytes(OutputStream out) throws DataFormatException, IOException {
|
||||||
if (_identity == null) throw new DataFormatException("Missing identity");
|
if (_identity == null) throw new DataFormatException("Missing identity");
|
||||||
if (_published < 0) throw new DataFormatException("Invalid published date: " + _published);
|
if (_published < 0) throw new DataFormatException("Invalid published date: " + _published);
|
||||||
if (_signature == null) throw new DataFormatException("Signature is null");
|
if (_signature == null) throw new DataFormatException("Signature is null");
|
||||||
//if (!isValid())
|
//if (!isValid())
|
||||||
// throw new DataFormatException("Data is not valid");
|
// throw new DataFormatException("Data is not valid");
|
||||||
ByteArrayOutputStream baos = new ByteArrayOutputStream(512);
|
ByteArrayOutputStream baos = new ByteArrayOutputStream(2048);
|
||||||
baos.write(getBytes());
|
baos.write(getBytes());
|
||||||
_signature.writeBytes(baos);
|
_signature.writeBytes(baos);
|
||||||
|
|
||||||
@ -518,10 +538,11 @@ public class RouterInfo extends DatabaseEntry {
|
|||||||
RouterInfo info = (RouterInfo) object;
|
RouterInfo info = (RouterInfo) object;
|
||||||
return DataHelper.eq(_identity, info.getIdentity())
|
return DataHelper.eq(_identity, info.getIdentity())
|
||||||
&& DataHelper.eq(_signature, info.getSignature())
|
&& DataHelper.eq(_signature, info.getSignature())
|
||||||
&& _published == info.getPublished()
|
&& _published == info.getPublished();
|
||||||
&& DataHelper.eq(_addresses, info.getAddresses())
|
// Let's speed up the NetDB
|
||||||
&& DataHelper.eq(_options, info.getOptions())
|
//&& DataHelper.eq(_addresses, info.getAddresses())
|
||||||
&& DataHelper.eq(getPeers(), info.getPeers());
|
//&& DataHelper.eq(_options, info.getOptions())
|
||||||
|
//&& DataHelper.eq(getPeers(), info.getPeers());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -541,23 +562,19 @@ public class RouterInfo extends DatabaseEntry {
|
|||||||
buf.append("\n\tIdentity: ").append(_identity);
|
buf.append("\n\tIdentity: ").append(_identity);
|
||||||
buf.append("\n\tSignature: ").append(_signature);
|
buf.append("\n\tSignature: ").append(_signature);
|
||||||
buf.append("\n\tPublished on: ").append(new Date(_published));
|
buf.append("\n\tPublished on: ").append(new Date(_published));
|
||||||
Set addresses = _addresses; // getAddresses()
|
buf.append("\n\tAddresses: #: ").append(_addresses.size());
|
||||||
buf.append("\n\tAddresses: #: ").append(addresses.size());
|
for (RouterAddress addr : _addresses) {
|
||||||
for (Iterator iter = addresses.iterator(); iter.hasNext();) {
|
|
||||||
RouterAddress addr = (RouterAddress) iter.next();
|
|
||||||
buf.append("\n\t\tAddress: ").append(addr);
|
buf.append("\n\t\tAddress: ").append(addr);
|
||||||
}
|
}
|
||||||
Set peers = getPeers();
|
Set<Hash> peers = getPeers();
|
||||||
buf.append("\n\tPeers: #: ").append(peers.size());
|
buf.append("\n\tPeers: #: ").append(peers.size());
|
||||||
for (Iterator iter = peers.iterator(); iter.hasNext();) {
|
for (Hash hash : peers) {
|
||||||
Hash hash = (Hash) iter.next();
|
|
||||||
buf.append("\n\t\tPeer hash: ").append(hash);
|
buf.append("\n\t\tPeer hash: ").append(hash);
|
||||||
}
|
}
|
||||||
Properties options = _options; // getOptions();
|
buf.append("\n\tOptions: #: ").append(_options.size());
|
||||||
buf.append("\n\tOptions: #: ").append(options.size());
|
for (Map.Entry e : _options.entrySet()) {
|
||||||
for (Iterator iter = options.keySet().iterator(); iter.hasNext();) {
|
String key = (String) e.getKey();
|
||||||
String key = (String) iter.next();
|
String val = (String) e.getValue();
|
||||||
String val = options.getProperty(key);
|
|
||||||
buf.append("\n\t\t[").append(key).append("] = [").append(val).append("]");
|
buf.append("\n\t\t[").append(key).append("] = [").append(val).append("]");
|
||||||
}
|
}
|
||||||
buf.append("]");
|
buf.append("]");
|
||||||
|
@ -220,7 +220,8 @@ public class EepGet {
|
|||||||
if (username != null && password != null)
|
if (username != null && password != null)
|
||||||
get.addAuthorization(username, password);
|
get.addAuthorization(username, password);
|
||||||
get.addStatusListener(get.new CLIStatusListener(markSize, lineLen));
|
get.addStatusListener(get.new CLIStatusListener(markSize, lineLen));
|
||||||
get.fetch(CONNECT_TIMEOUT, -1, inactivityTimeout);
|
if (!get.fetch(CONNECT_TIMEOUT, -1, inactivityTimeout))
|
||||||
|
System.exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String suggestName(String url) {
|
public static String suggestName(String url) {
|
||||||
|
@ -92,6 +92,7 @@ public class EepHead extends EepGet {
|
|||||||
System.err.println("Etag: " + get.getETag());
|
System.err.println("Etag: " + get.getETag());
|
||||||
} else {
|
} else {
|
||||||
System.err.println("Failed " + url);
|
System.err.println("Failed " + url);
|
||||||
|
System.exit(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -260,21 +260,24 @@ public class LogManager {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Called periodically by the log writer's thread
|
* Called periodically by the log writer's thread
|
||||||
*
|
* Do not log here, deadlock of LogWriter
|
||||||
*/
|
*/
|
||||||
void rereadConfig() {
|
void rereadConfig() {
|
||||||
// perhaps check modification time
|
// perhaps check modification time
|
||||||
if (_log.shouldLog(Log.DEBUG))
|
//if (_log.shouldLog(Log.DEBUG))
|
||||||
_log.debug("Rereading configuration file");
|
// _log.debug("Rereading configuration file");
|
||||||
loadConfig();
|
loadConfig();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Do not log here, deadlock of LogWriter via rereadConfig().
|
||||||
|
*/
|
||||||
private void loadConfig() {
|
private void loadConfig() {
|
||||||
File cfgFile = _locationFile;
|
File cfgFile = _locationFile;
|
||||||
if (!cfgFile.exists()) {
|
if (!cfgFile.exists()) {
|
||||||
if (!_alreadyNoticedMissingConfig) {
|
if (!_alreadyNoticedMissingConfig) {
|
||||||
if (_log.shouldLog(Log.WARN))
|
//if (_log.shouldLog(Log.WARN))
|
||||||
_log.warn("Log file " + _locationFile.getAbsolutePath() + " does not exist");
|
// _log.warn("Log file " + _locationFile.getAbsolutePath() + " does not exist");
|
||||||
_alreadyNoticedMissingConfig = true;
|
_alreadyNoticedMissingConfig = true;
|
||||||
}
|
}
|
||||||
parseConfig(new Properties());
|
parseConfig(new Properties());
|
||||||
@ -284,10 +287,10 @@ public class LogManager {
|
|||||||
_alreadyNoticedMissingConfig = false;
|
_alreadyNoticedMissingConfig = false;
|
||||||
|
|
||||||
if ((_configLastRead > 0) && (_configLastRead >= cfgFile.lastModified())) {
|
if ((_configLastRead > 0) && (_configLastRead >= cfgFile.lastModified())) {
|
||||||
if (_log.shouldLog(Log.INFO))
|
//if (_log.shouldLog(Log.INFO))
|
||||||
_log.info("Short circuiting config read (last read: "
|
// _log.info("Short circuiting config read (last read: "
|
||||||
+ (_context.clock().now() - _configLastRead) + "ms ago, config file modified "
|
// + (_context.clock().now() - _configLastRead) + "ms ago, config file modified "
|
||||||
+ (_context.clock().now() - cfgFile.lastModified()) + "ms ago");
|
// + (_context.clock().now() - cfgFile.lastModified()) + "ms ago");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -302,6 +305,9 @@ public class LogManager {
|
|||||||
updateLimits();
|
updateLimits();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Do not log here, deadlock of LogWriter via rereadConfig().
|
||||||
|
*/
|
||||||
private void parseConfig(Properties config) {
|
private void parseConfig(Properties config) {
|
||||||
String fmt = config.getProperty(PROP_FORMAT, DEFAULT_FORMAT);
|
String fmt = config.getProperty(PROP_FORMAT, DEFAULT_FORMAT);
|
||||||
_format = fmt.toCharArray();
|
_format = fmt.toCharArray();
|
||||||
@ -353,16 +359,22 @@ public class LogManager {
|
|||||||
_consoleBufferSize = DEFAULT_CONSOLEBUFFERSIZE;
|
_consoleBufferSize = DEFAULT_CONSOLEBUFFERSIZE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_log.shouldLog(Log.DEBUG))
|
//if (_log.shouldLog(Log.DEBUG))
|
||||||
_log.debug("Log set to use the base log file as " + _baseLogfilename);
|
// _log.debug("Log set to use the base log file as " + _baseLogfilename);
|
||||||
|
|
||||||
parseLimits(config);
|
parseLimits(config);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Do not log here, deadlock of LogWriter via rereadConfig().
|
||||||
|
*/
|
||||||
private void parseLimits(Properties config) {
|
private void parseLimits(Properties config) {
|
||||||
parseLimits(config, PROP_RECORD_PREFIX);
|
parseLimits(config, PROP_RECORD_PREFIX);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Do not log here, deadlock of LogWriter via rereadConfig().
|
||||||
|
*/
|
||||||
private void parseLimits(Properties config, String recordPrefix) {
|
private void parseLimits(Properties config, String recordPrefix) {
|
||||||
_limits.clear();
|
_limits.clear();
|
||||||
if (config != null) {
|
if (config != null) {
|
||||||
@ -400,6 +412,7 @@ public class LogManager {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Update the date format
|
* Update the date format
|
||||||
|
* Do not log here, deadlock of LogWriter via rereadConfig().
|
||||||
*
|
*
|
||||||
* @param format null or empty string means use default format for the locale
|
* @param format null or empty string means use default format for the locale
|
||||||
* (with a SHORT date and a MEDIUM time - see DateFormat)
|
* (with a SHORT date and a MEDIUM time - see DateFormat)
|
||||||
@ -423,7 +436,7 @@ public class LogManager {
|
|||||||
_dateFormat = fmt;
|
_dateFormat = fmt;
|
||||||
return true;
|
return true;
|
||||||
} catch (IllegalArgumentException iae) {
|
} catch (IllegalArgumentException iae) {
|
||||||
getLog(LogManager.class).error("Date format is invalid [" + format + "]", iae);
|
//getLog(LogManager.class).error("Date format is invalid [" + format + "]", iae);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -496,12 +509,18 @@ public class LogManager {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Do not log here, deadlock of LogWriter via rereadConfig().
|
||||||
|
*/
|
||||||
private void updateLimits() {
|
private void updateLimits() {
|
||||||
for (Log log : _logs.values()) {
|
for (Log log : _logs.values()) {
|
||||||
updateLimit(log);
|
updateLimit(log);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Do not log here, deadlock of LogWriter via rereadConfig().
|
||||||
|
*/
|
||||||
private void updateLimit(Log log) {
|
private void updateLimit(Log log) {
|
||||||
List<LogLimit> limits = getLimits(log);
|
List<LogLimit> limits = getLimits(log);
|
||||||
LogLimit max = null;
|
LogLimit max = null;
|
||||||
@ -527,7 +546,10 @@ public class LogManager {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @return null if no matches */
|
/**
|
||||||
|
* Do not log here, deadlock of LogWriter via rereadConfig().
|
||||||
|
* @return null if no matches
|
||||||
|
*/
|
||||||
private List<LogLimit> getLimits(Log log) {
|
private List<LogLimit> getLimits(Log log) {
|
||||||
ArrayList<LogLimit> limits = null; // new ArrayList(4);
|
ArrayList<LogLimit> limits = null; // new ArrayList(4);
|
||||||
for (LogLimit limit : _limits) {
|
for (LogLimit limit : _limits) {
|
||||||
|
@ -83,6 +83,7 @@ public class PartialEepGet extends EepGet {
|
|||||||
System.err.println("Etag: " + get.getETag());
|
System.err.println("Etag: " + get.getETag());
|
||||||
} else {
|
} else {
|
||||||
System.err.println("Failed " + url);
|
System.err.println("Failed " + url);
|
||||||
|
System.exit(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -59,8 +59,6 @@ public class PortMapper {
|
|||||||
*/
|
*/
|
||||||
public int getPort(String service) {
|
public int getPort(String service) {
|
||||||
int port = getPort(service, -1);
|
int port = getPort(service, -1);
|
||||||
if(-1==port)
|
|
||||||
throw new RuntimeException("No port registered for service "+service);
|
|
||||||
return port;
|
return port;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -26,7 +26,6 @@ public class ResettableGZIPInputStream extends InflaterInputStream {
|
|||||||
private final ExtraByteInputStream _extraByteInputStream;
|
private final ExtraByteInputStream _extraByteInputStream;
|
||||||
/** keep a typesafe copy of this */
|
/** keep a typesafe copy of this */
|
||||||
private final LookaheadInputStream _lookaheadStream;
|
private final LookaheadInputStream _lookaheadStream;
|
||||||
private static final byte[] _oneDummyByte = new byte[1];
|
|
||||||
private final InputStream _sequenceStream = null;
|
private final InputStream _sequenceStream = null;
|
||||||
private final CRC32 _crc32;
|
private final CRC32 _crc32;
|
||||||
private final byte _buf1[] = new byte[1];
|
private final byte _buf1[] = new byte[1];
|
||||||
@ -312,6 +311,7 @@ public class ResettableGZIPInputStream extends InflaterInputStream {
|
|||||||
*
|
*
|
||||||
* http://code.google.com/p/google-apps-sso-sample/issues/detail?id=8
|
* http://code.google.com/p/google-apps-sso-sample/issues/detail?id=8
|
||||||
*
|
*
|
||||||
|
* @since 0.8.12
|
||||||
*/
|
*/
|
||||||
private static class ExtraByteInputStream extends FilterInputStream {
|
private static class ExtraByteInputStream extends FilterInputStream {
|
||||||
private static final byte DUMMY = 0;
|
private static final byte DUMMY = 0;
|
||||||
|
@ -161,7 +161,8 @@ public class SSLEepGet extends EepGet {
|
|||||||
get._saveCerts = true;
|
get._saveCerts = true;
|
||||||
get._commandLine = true;
|
get._commandLine = true;
|
||||||
get.addStatusListener(get.new CLIStatusListener(1024, 40));
|
get.addStatusListener(get.new CLIStatusListener(1024, 40));
|
||||||
get.fetch(45*1000, -1, 60*1000);
|
if(!get.fetch(45*1000, -1, 60*1000))
|
||||||
|
System.exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void usage() {
|
private static void usage() {
|
||||||
|
48
debian/changelog
vendored
48
debian/changelog
vendored
@ -1,3 +1,51 @@
|
|||||||
|
i2p (0.8.12-2) stable; urgency=low
|
||||||
|
|
||||||
|
* postinst: Don't fail if the i2psvc group doesn't exist
|
||||||
|
|
||||||
|
-- Kill Your TV <killyourtv@i2pmail.org> Fri, 06 Jan 2012 18:43:09 +0000
|
||||||
|
|
||||||
|
i2p (0.8.12-1) stable; urgency=low
|
||||||
|
|
||||||
|
* New upstream I2P release
|
||||||
|
* Debconf:
|
||||||
|
- add wrapper.java.maxmemory from wrapper.config
|
||||||
|
- The warning about the daemon user needing to exist was confusing to some
|
||||||
|
that assumed this meant that i2psvc had to exit. This warning has been
|
||||||
|
clarified.
|
||||||
|
- Spanish, Swedish, Ukrainian translation updates
|
||||||
|
* Initscript changes/fixes:
|
||||||
|
- increase shutdown wait-time in initscript
|
||||||
|
- renumber "wrapper.additional" lines (since gaps are allowed with newer
|
||||||
|
wrapper versions)
|
||||||
|
- move I2PTEMP to /tmp/i2p-daemon
|
||||||
|
- move router.ping to /var/run/i2p
|
||||||
|
- various other clean-ups
|
||||||
|
- explicity redirect errors to stderr
|
||||||
|
* maintainer scripts:
|
||||||
|
- postinst: rewrite the handling of an existing i2psvc account
|
||||||
|
- postrm: remove /etc/default/i2p if the package is purged
|
||||||
|
|
||||||
|
-- Kill Your TV <killyourtv@i2pmail.org> Fri, 06 Jan 2012 02:49:03 +0000
|
||||||
|
|
||||||
|
i2p (0.8.11-2) stable; urgency=medium
|
||||||
|
|
||||||
|
* Fix STUPID bug running I2P with i2prouter. Thanks soundwave.
|
||||||
|
|
||||||
|
-- Kill Your TV <killyourtv@i2pmail.org> Tue, 08 Nov 2011 20:02:05 +0000
|
||||||
|
|
||||||
|
i2p (0.8.11-1) stable; urgency=low
|
||||||
|
|
||||||
|
* New Upstream Version
|
||||||
|
* sv and uk debconf translation updates
|
||||||
|
|
||||||
|
-- Kill Your TV <killyourtv@i2pmail.org> Mon, 07 Nov 2011 19:20:15 +0000
|
||||||
|
|
||||||
|
i2p (0.8.10-1) stable; urgency=medium
|
||||||
|
|
||||||
|
* New upstream version
|
||||||
|
|
||||||
|
-- Kill Your TV <killyourtv@i2pmail.org> Thu, 20 Oct 2011 05:25:04 +0000
|
||||||
|
|
||||||
i2p (0.8.9-1) stable; urgency=medium
|
i2p (0.8.9-1) stable; urgency=medium
|
||||||
|
|
||||||
* New upstream version
|
* New upstream version
|
||||||
|
100
debian/i2p.init
vendored
100
debian/i2p.init
vendored
@ -1,18 +1,18 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
### BEGIN INIT INFO
|
### BEGIN INIT INFO
|
||||||
# Provides: i2p i2p-router
|
# Provides: i2p i2p-router
|
||||||
# Required-Start: $remote_fs $syslog $named $network $time
|
# Required-Start: $remote_fs $syslog $named $network $time
|
||||||
# Required-Stop: $remote_fs $syslog $named $network
|
# Required-Stop: $remote_fs $syslog $named $network
|
||||||
# Default-Start: 2 3 4 5
|
# Default-Start: 2 3 4 5
|
||||||
# Default-Stop: 0 1 6
|
# Default-Stop: 0 1 6
|
||||||
# Short-Description: start and stop the i2p router
|
# Short-Description: start and stop the i2p router
|
||||||
# Description: i2p is a load-balanced unspoofable packet switching network
|
# Description: i2p is a load-balanced unspoofable packet switching network
|
||||||
### END INIT INFO
|
### END INIT INFO
|
||||||
|
|
||||||
# Check permissions
|
# Check permissions
|
||||||
if [ "`id -ur`" != '0' ]; then
|
if [ "`id -ur`" != '0' ]; then
|
||||||
echo 'Error: you must be root.'
|
echo 'ERROR: You must be root to start this service.' >&2
|
||||||
echo
|
echo
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
@ -25,17 +25,19 @@ DAEMON="/usr/sbin/wrapper"
|
|||||||
PIDFILE="$RUN/$NAME.pid"
|
PIDFILE="$RUN/$NAME.pid"
|
||||||
JVMPIDFILE="$RUN/routerjvm.pid"
|
JVMPIDFILE="$RUN/routerjvm.pid"
|
||||||
I2P="/usr/share/i2p"
|
I2P="/usr/share/i2p"
|
||||||
I2PTEMP="/tmp/"
|
I2PTEMP="/tmp/${NAME}-daemon"
|
||||||
WRAPPERLOG="/var/log/i2p/wrapper.log"
|
WRAPPERLOG="/var/log/i2p/wrapper.log"
|
||||||
|
|
||||||
# Don't touch these, edit /etc/default/i2p
|
# Don't touch these, edit /etc/default/i2p
|
||||||
RUN_DAEMON="False"
|
RUN_DAEMON="False"
|
||||||
NICE=
|
NICE=0
|
||||||
I2PUSER="i2psvc"
|
I2PUSER="i2psvc"
|
||||||
|
|
||||||
I2P_ARGS="/etc/i2p/wrapper.config \
|
I2P_ARGS="/etc/i2p/wrapper.config \
|
||||||
wrapper.java.additional.1=-DloggerFilenameOverride=/var/log/i2p/log-router-@.txt \
|
wrapper.java.additional.1=-DloggerFilenameOverride=/var/log/i2p/log-router-@.txt \
|
||||||
wrapper.java.additional.5=-Dwrapper.logfile=$WRAPPERLOG \
|
wrapper.java.additional.10=-Dwrapper.logfile=$WRAPPERLOG \
|
||||||
|
wrapper.java.additional.11=-Di2p.dir.pid=$RUN \
|
||||||
|
wrapper.java.additional.12=-Di2p.dir.temp=$I2PTEMP \
|
||||||
wrapper.logfile=$WRAPPERLOG \
|
wrapper.logfile=$WRAPPERLOG \
|
||||||
wrapper.pidfile=$PIDFILE \
|
wrapper.pidfile=$PIDFILE \
|
||||||
wrapper.java.pidfile=$JVMPIDFILE \
|
wrapper.java.pidfile=$JVMPIDFILE \
|
||||||
@ -65,8 +67,8 @@ done
|
|||||||
[ -r /etc/default/$NAME ] && . /etc/default/$NAME
|
[ -r /etc/default/$NAME ] && . /etc/default/$NAME
|
||||||
|
|
||||||
if [ -z "$RUN_DAEMON" ]; then
|
if [ -z "$RUN_DAEMON" ]; then
|
||||||
echo "/etc/default/$NAME is not set. Aborting."
|
echo "/etc/default/$NAME is not properly configured. Aborting." >&2
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
case "$RUN_DAEMON" in
|
case "$RUN_DAEMON" in
|
||||||
@ -76,50 +78,52 @@ case "$RUN_DAEMON" in
|
|||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
# We need the wrapper. If it's not found, abort.
|
||||||
# is the wrapper from the service-wrapper package even installed?
|
|
||||||
# if not, bail NOW
|
|
||||||
|
|
||||||
[ -x $DAEMON ] || exit 0
|
[ -x $DAEMON ] || exit 0
|
||||||
|
|
||||||
# Ditto for i2prouter. Even though this script doesn't call it,
|
# Even though this script doesn't call it, check for i2prouter. If it's not
|
||||||
# if it's not found the package probably hasn't been installed.
|
# found, it probably means that the package isn't installed anymore.
|
||||||
|
[ -x /usr/bin/i2prouter ] || exit 0
|
||||||
[ -r /usr/bin/i2prouter ] || exit 0
|
|
||||||
|
|
||||||
do_start()
|
do_start()
|
||||||
{
|
{
|
||||||
start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null\
|
start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null 2>&1 \
|
||||||
|| return 1
|
|| return 1
|
||||||
[ -d $RUN ] || mkdir $RUN
|
[ -d $RUN ] || mkdir $RUN > /dev/null 2>&1
|
||||||
[ -r $PIDFILE ] || touch $PIDFILE
|
[ -d $I2PTEMP ] || mkdir $I2PTEMP > /dev/null 2>&1
|
||||||
[ -r $JVMPIDFILE ] || touch $JVMPIDFILE
|
if [ -r $PIDFILE ]; then
|
||||||
[ -d $I2PTEMP ] || mkdir $I2PTEMP
|
PID="$(cat ${PIDFILE})"
|
||||||
chown -Rf $I2PUSER:$I2PUSER $I2PTEMP/*i2p* $I2PTEMP/router.ping $RUN > /dev/null 2>&1
|
if ! kill -0 $PID > /dev/null 2>&1; then
|
||||||
chown -f -R $I2PUSER:adm /var/log/$NAME
|
rm "$PIDFILE" "$JVMPIDFILE"
|
||||||
TZ=UTC start-stop-daemon --start --quiet -c $I2PUSER --pidfile $PIDFILE --exec $DAEMON $NICE -- \
|
else
|
||||||
$I2P_ARGS || return 2
|
# we shouldn't get here, but...
|
||||||
|
echo "ERROR: Another instance of $DESC is already running." >&2
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
chown -Rf $I2PUSER:$I2PUSER $I2PTEMP $RUN > /dev/null 2>&1
|
||||||
|
chown -f -R $I2PUSER:i2psvc /var/log/$NAME > /dev/null 2>&1
|
||||||
|
TZ=UTC start-stop-daemon --start --quiet -c $I2PUSER --pidfile $PIDFILE --exec $DAEMON -n $NICE -- \
|
||||||
|
$I2P_ARGS || return 2
|
||||||
}
|
}
|
||||||
|
|
||||||
do_stop()
|
do_stop()
|
||||||
{
|
{
|
||||||
start-stop-daemon --stop --quiet --retry=TERM/15/KILL/5 --pidfile $PIDFILE -u $I2PUSER
|
start-stop-daemon --stop --quiet --retry=TERM/60/KILL/20 --pidfile $PIDFILE -u $I2PUSER
|
||||||
RETVAL="$?"
|
RETVAL="$?"
|
||||||
[ "$RETVAL" = 2 ] && return 2
|
[ "$RETVAL" = 2 ] && return 2
|
||||||
|
|
||||||
# start-stop-daemon --stop --quiet --oknodo --retry=TERM/15/KILL/5 -u $I2PUSER
|
start-stop-daemon --stop --quiet --oknodo --retry=0/60/KILL/20 --exec $DAEMON
|
||||||
|
|
||||||
start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON
|
rm -rf "$I2PTEMP" > /dev/null 2>&1
|
||||||
|
[ -d "$RUN" ] && rmdir "$RUN" 2>&1
|
||||||
rm -f "$PIDFILE" "$JVMPIDFILE"
|
|
||||||
[ -d $RUN ] && rmdir $RUN
|
|
||||||
}
|
}
|
||||||
|
|
||||||
do_dump()
|
do_dump()
|
||||||
{
|
{
|
||||||
start-stop-daemon --stop --quiet -s 3 --pidfile $PIDFILE -u $I2PUSER
|
start-stop-daemon --stop --quiet -s 3 --pidfile $PIDFILE -u $I2PUSER
|
||||||
RETVAL="$?"
|
RETVAL="$?"
|
||||||
[ "$RETVAL" = 2 ] && return 2
|
[ "$RETVAL" = 2 ] && return 2
|
||||||
}
|
}
|
||||||
|
|
||||||
case "$1" in
|
case "$1" in
|
||||||
@ -140,7 +144,7 @@ case "$1" in
|
|||||||
esac
|
esac
|
||||||
;;
|
;;
|
||||||
stop)
|
stop)
|
||||||
log_daemon_msg "Stopping $DESC" "$NAME"
|
log_daemon_msg "Stopping $DESC" "$NAME"
|
||||||
do_stop
|
do_stop
|
||||||
case "$?" in
|
case "$?" in
|
||||||
0|1) log_end_msg 0 ;;
|
0|1) log_end_msg 0 ;;
|
||||||
@ -149,7 +153,7 @@ case "$1" in
|
|||||||
;;
|
;;
|
||||||
status)
|
status)
|
||||||
status_of_proc -p $PIDFILE "$DAEMON" "$NAME" && exit 0 || exit $?
|
status_of_proc -p $PIDFILE "$DAEMON" "$NAME" && exit 0 || exit $?
|
||||||
;;
|
;;
|
||||||
restart|force-reload)
|
restart|force-reload)
|
||||||
log_daemon_msg "Restarting $DESC" "$NAME"
|
log_daemon_msg "Restarting $DESC" "$NAME"
|
||||||
do_stop
|
do_stop
|
||||||
@ -169,10 +173,10 @@ case "$1" in
|
|||||||
esac
|
esac
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
N=/etc/init.d/$NAME
|
N=/etc/init.d/$NAME
|
||||||
echo "Usage: $N {start|stop|dump|status|restart|force-reload}" >&2
|
echo "Usage: $N {start|stop|dump|status|restart|force-reload}" >&2
|
||||||
exit 3
|
exit 3
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
|
||||||
esac
|
esac
|
||||||
|
18
debian/i2p.postinst
vendored
18
debian/i2p.postinst
vendored
@ -61,19 +61,17 @@ case "$1" in
|
|||||||
< /etc/i2p/wrapper.config > /etc/i2p/wrapper.config.tmp
|
< /etc/i2p/wrapper.config > /etc/i2p/wrapper.config.tmp
|
||||||
mv -f /etc/i2p/wrapper.config.tmp /etc/i2p/wrapper.config
|
mv -f /etc/i2p/wrapper.config.tmp /etc/i2p/wrapper.config
|
||||||
|
|
||||||
migrate_existing_user(){
|
|
||||||
# Adjust the user/group in /etc/passwd, mainly for upgrades from old packages that didn't
|
|
||||||
# create $I2PSYSUSER as a system group/user
|
|
||||||
usermod -c "I2P Router Daemon" -m -d $I2PHOME -g $I2PSYSUSER -s "/bin/false" \
|
|
||||||
-l $I2PSYSUSER -e 1 > /dev/null 2>&1
|
|
||||||
echo "Existing user migrated, home directory moved to $I2PHOME"
|
|
||||||
}
|
|
||||||
|
|
||||||
# Create user and group as a system user.
|
# Create user and group as a system user.
|
||||||
adduser --system --quiet --group --home $I2PHOME $I2PSYSUSER || migrate_existing_user
|
if getent passwd i2psvc > /dev/null 2>&1 ; then
|
||||||
|
groupadd -f $I2PSYSUSER || true
|
||||||
|
usermod -c "I2P Router Daemon" -d $I2PHOME -g $I2PSYSUSER -s "/bin/false" \
|
||||||
|
$I2PSYSUSER -e 1 > /dev/null 2>&1 || true
|
||||||
|
else
|
||||||
|
adduser --system --quiet --group --home $I2PHOME $I2PSYSUSER
|
||||||
|
fi
|
||||||
|
|
||||||
[ -d /var/log/i2p ] || mkdir -m0750 /var/log/i2p
|
[ -d /var/log/i2p ] || mkdir -m0750 /var/log/i2p
|
||||||
chown -f -R $I2PSYSUSER:adm /var/log/i2p
|
chown -f -R $I2PSYSUSER:i2psvc /var/log/i2p
|
||||||
|
|
||||||
# Has someone set the permissions with dpkg-statoverride? If so, obey them.
|
# Has someone set the permissions with dpkg-statoverride? If so, obey them.
|
||||||
if ! dpkg-statoverride --list $I2PHOME > /dev/null 2>&1
|
if ! dpkg-statoverride --list $I2PHOME > /dev/null 2>&1
|
||||||
|
3
debian/i2p.templates
vendored
3
debian/i2p.templates
vendored
@ -22,7 +22,8 @@ _Description: I2P daemon user:
|
|||||||
account name here. For example, if your previous I2P installation is at
|
account name here. For example, if your previous I2P installation is at
|
||||||
/home/user/i2p, you may enter 'user' here.
|
/home/user/i2p, you may enter 'user' here.
|
||||||
.
|
.
|
||||||
Very important: The account specified here *MUST* already exist.
|
Very important: If a user other than the default of 'i2psvc' is entered
|
||||||
|
here, the chosen username *MUST* already exist.
|
||||||
|
|
||||||
Template: i2p/memory
|
Template: i2p/memory
|
||||||
Type: string
|
Type: string
|
||||||
|
2
debian/patches/0002-jbigi-soname.patch
vendored
2
debian/patches/0002-jbigi-soname.patch
vendored
@ -13,7 +13,7 @@ a soname to shut lintian up.
|
|||||||
--- a/core/c/jbigi/mbuild_jbigi.sh
|
--- a/core/c/jbigi/mbuild_jbigi.sh
|
||||||
+++ b/core/c/jbigi/mbuild_jbigi.sh
|
+++ b/core/c/jbigi/mbuild_jbigi.sh
|
||||||
@@ -47,7 +47,7 @@
|
@@ -47,7 +47,7 @@
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
COMPILEFLAGS="-fPIC -Wall"
|
COMPILEFLAGS="-fPIC -Wall"
|
||||||
- INCLUDES="-I. -I../../jbigi/include -I$JAVA_HOME/include -I$JAVA_HOME/include/${UNIXTYPE}"
|
- INCLUDES="-I. -I../../jbigi/include -I$JAVA_HOME/include -I$JAVA_HOME/include/${UNIXTYPE}"
|
||||||
|
13
debian/patches/debian-version.patch
vendored
13
debian/patches/debian-version.patch
vendored
@ -1,13 +0,0 @@
|
|||||||
Add debian package vesion to the EXTRA version field
|
|
||||||
|
|
||||||
--- a/router/java/src/net/i2p/router/RouterVersion.java
|
|
||||||
+++ b/router/java/src/net/i2p/router/RouterVersion.java
|
|
||||||
@@ -21,7 +21,7 @@
|
|
||||||
public final static long BUILD = 0;
|
|
||||||
|
|
||||||
/** for example "-test" */
|
|
||||||
- public final static String EXTRA = "";
|
|
||||||
+ public final static String EXTRA = "deb1";
|
|
||||||
public final static String FULL_VERSION = VERSION + "-" + BUILD + EXTRA;
|
|
||||||
public static void main(String args[]) {
|
|
||||||
System.out.println("I2P Router version: " + FULL_VERSION);
|
|
10
debian/po/de.po
vendored
10
debian/po/de.po
vendored
@ -6,8 +6,8 @@
|
|||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: i2p 0.8.9-1\n"
|
"Project-Id-Version: i2p 0.8.9-1\n"
|
||||||
"Report-Msgid-Bugs-To: i2p@packages.debian.org\n"
|
"Report-Msgid-Bugs-To: https://trac.i2p2.de/\n"
|
||||||
"POT-Creation-Date: 2011-12-10 04:00+0000\n"
|
"POT-Creation-Date: 2011-12-27 22:25+0000\n"
|
||||||
"PO-Revision-Date: 2011-07-20 04:30+0100\n"
|
"PO-Revision-Date: 2011-07-20 04:30+0100\n"
|
||||||
"Last-Translator: mixxy <m1xxy@mail.i2p>\n"
|
"Last-Translator: mixxy <m1xxy@mail.i2p>\n"
|
||||||
"Language-Team: de\n"
|
"Language-Team: de\n"
|
||||||
@ -55,7 +55,11 @@ msgstr ""
|
|||||||
#. Type: string
|
#. Type: string
|
||||||
#. Description
|
#. Description
|
||||||
#: ../i2p.templates:3001
|
#: ../i2p.templates:3001
|
||||||
msgid "Very important: The account specified here *MUST* already exist."
|
#, fuzzy
|
||||||
|
#| msgid "Very important: The account specified here *MUST* already exist."
|
||||||
|
msgid ""
|
||||||
|
"Very important: If a user other than the default of 'i2psvc' is entered "
|
||||||
|
"here, the chosen username *MUST* already exist."
|
||||||
msgstr "WICHTIG; Der hier angegebene Benutzer *MUSS* bereits existieren!"
|
msgstr "WICHTIG; Der hier angegebene Benutzer *MUSS* bereits existieren!"
|
||||||
|
|
||||||
#. Type: string
|
#. Type: string
|
||||||
|
34
debian/po/es.po
vendored
34
debian/po/es.po
vendored
@ -1,20 +1,24 @@
|
|||||||
# Spanish debconf translation
|
# Spanish debconf translation
|
||||||
# Copyright (C) 2011 The I2P Project
|
# Copyright (C) 2011 The I2P Project
|
||||||
# This file is distributed under the same license as the i2p package.
|
# This file is distributed under the same license as the i2p package.
|
||||||
# mixxy <m1xxy@mail.i2p>, 2011
|
|
||||||
#
|
# Translators:
|
||||||
|
# mixxy <m1xxy@mail.i2p>, 2011.
|
||||||
|
# <punkibastardo@gmail.com>, 2011.
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: i2p 0.8.9-1\n"
|
"Project-Id-Version: I2P\n"
|
||||||
"Report-Msgid-Bugs-To: i2p@packages.debian.org\n"
|
"Report-Msgid-Bugs-To: https://trac.i2p2.de/\n"
|
||||||
"POT-Creation-Date: 2011-12-10 04:00+0000\n"
|
"POT-Creation-Date: 2011-12-27 22:25+0000\n"
|
||||||
"PO-Revision-Date: 2011-07-20 04:33+0100\n"
|
"PO-Revision-Date: 2011-12-21 21:22+0000\n"
|
||||||
"Last-Translator: mixxy <m1xxy@mail.i2p>\n"
|
"Last-Translator: punkibastardo <punkibastardo@gmail.com>\n"
|
||||||
"Language-Team: es\n"
|
"Language-Team: Spanish (Castilian) (http://www.transifex.net/projects/p/I2P/"
|
||||||
|
"team/es/)\n"
|
||||||
"Language: es\n"
|
"Language: es\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
|
||||||
|
|
||||||
#. Type: boolean
|
#. Type: boolean
|
||||||
#. Description
|
#. Description
|
||||||
@ -56,20 +60,24 @@ msgstr ""
|
|||||||
#. Type: string
|
#. Type: string
|
||||||
#. Description
|
#. Description
|
||||||
#: ../i2p.templates:3001
|
#: ../i2p.templates:3001
|
||||||
msgid "Very important: The account specified here *MUST* already exist."
|
msgid ""
|
||||||
msgstr "Muy importante: El usuario especificado aquí *YA TIENE QUE* existir."
|
"Very important: If a user other than the default of 'i2psvc' is entered "
|
||||||
|
"here, the chosen username *MUST* already exist."
|
||||||
|
msgstr ""
|
||||||
|
"Muy importante: Si se introduce un nombre de usuario en este campo distinto "
|
||||||
|
"a 'i2psvc', el nombre elegido *DEBE* existir de antemano."
|
||||||
|
|
||||||
#. Type: string
|
#. Type: string
|
||||||
#. Description
|
#. Description
|
||||||
#: ../i2p.templates:4001
|
#: ../i2p.templates:4001
|
||||||
msgid "Memory that can be allocated to I2P:"
|
msgid "Memory that can be allocated to I2P:"
|
||||||
msgstr ""
|
msgstr "La memoria que puede ser asignada a I2P:"
|
||||||
|
|
||||||
#. Type: string
|
#. Type: string
|
||||||
#. Description
|
#. Description
|
||||||
#: ../i2p.templates:4001
|
#: ../i2p.templates:4001
|
||||||
msgid "By default, I2P will only be allowed to use up to 128MB of RAM."
|
msgid "By default, I2P will only be allowed to use up to 128MB of RAM."
|
||||||
msgstr ""
|
msgstr "Por defecto, a I2P sólo se le permitirá utilizar 128MB de RAM"
|
||||||
|
|
||||||
#. Type: string
|
#. Type: string
|
||||||
#. Description
|
#. Description
|
||||||
@ -78,3 +86,5 @@ msgid ""
|
|||||||
"High bandwidth routers, as well as routers with a lot of active torrents / "
|
"High bandwidth routers, as well as routers with a lot of active torrents / "
|
||||||
"plugins, may need to have this value increased."
|
"plugins, may need to have this value increased."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Los routers con un alto ancho de banda, así como los routers con muchos "
|
||||||
|
"torrents activos / plugins, podrían necesitar un aumento este valor."
|
||||||
|
10
debian/po/pl.po
vendored
10
debian/po/pl.po
vendored
@ -7,8 +7,8 @@
|
|||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: I2P\n"
|
"Project-Id-Version: I2P\n"
|
||||||
"Report-Msgid-Bugs-To: i2p@packages.debian.org\n"
|
"Report-Msgid-Bugs-To: https://trac.i2p2.de/\n"
|
||||||
"POT-Creation-Date: 2011-12-10 04:00+0000\n"
|
"POT-Creation-Date: 2011-12-27 22:25+0000\n"
|
||||||
"PO-Revision-Date: 2011-10-08 12:41+0000\n"
|
"PO-Revision-Date: 2011-10-08 12:41+0000\n"
|
||||||
"Last-Translator: PolishAnon <b790979@klzlk.com>\n"
|
"Last-Translator: PolishAnon <b790979@klzlk.com>\n"
|
||||||
"Language-Team: Polish (http://www.transifex.net/projects/p/I2P/team/pl/)\n"
|
"Language-Team: Polish (http://www.transifex.net/projects/p/I2P/team/pl/)\n"
|
||||||
@ -58,7 +58,11 @@ msgstr ""
|
|||||||
#. Type: string
|
#. Type: string
|
||||||
#. Description
|
#. Description
|
||||||
#: ../i2p.templates:3001
|
#: ../i2p.templates:3001
|
||||||
msgid "Very important: The account specified here *MUST* already exist."
|
#, fuzzy
|
||||||
|
#| msgid "Very important: The account specified here *MUST* already exist."
|
||||||
|
msgid ""
|
||||||
|
"Very important: If a user other than the default of 'i2psvc' is entered "
|
||||||
|
"here, the chosen username *MUST* already exist."
|
||||||
msgstr "Bardzo ważne: Podane tutaj konto *MUSI* istnieć."
|
msgstr "Bardzo ważne: Podane tutaj konto *MUSI* istnieć."
|
||||||
|
|
||||||
#. Type: string
|
#. Type: string
|
||||||
|
10
debian/po/ru.po
vendored
10
debian/po/ru.po
vendored
@ -6,8 +6,8 @@
|
|||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: i2p 0.8.9-1\n"
|
"Project-Id-Version: i2p 0.8.9-1\n"
|
||||||
"Report-Msgid-Bugs-To: i2p@packages.debian.org\n"
|
"Report-Msgid-Bugs-To: https://trac.i2p2.de/\n"
|
||||||
"POT-Creation-Date: 2011-12-10 04:00+0000\n"
|
"POT-Creation-Date: 2011-12-27 22:25+0000\n"
|
||||||
"PO-Revision-Date: 2011-06-21 20:59+0500\n"
|
"PO-Revision-Date: 2011-06-21 20:59+0500\n"
|
||||||
"Last-Translator: Hidden Z <hiddenz@mail.i2p>\n"
|
"Last-Translator: Hidden Z <hiddenz@mail.i2p>\n"
|
||||||
"Language-Team: ru\n"
|
"Language-Team: ru\n"
|
||||||
@ -55,7 +55,11 @@ msgstr ""
|
|||||||
#. Type: string
|
#. Type: string
|
||||||
#. Description
|
#. Description
|
||||||
#: ../i2p.templates:3001
|
#: ../i2p.templates:3001
|
||||||
msgid "Very important: The account specified here *MUST* already exist."
|
#, fuzzy
|
||||||
|
#| msgid "Very important: The account specified here *MUST* already exist."
|
||||||
|
msgid ""
|
||||||
|
"Very important: If a user other than the default of 'i2psvc' is entered "
|
||||||
|
"here, the chosen username *MUST* already exist."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Очень важно: аккаунт, указанный здесь, обязательно должен существовать."
|
"Очень важно: аккаунт, указанный здесь, обязательно должен существовать."
|
||||||
|
|
||||||
|
37
debian/po/sv.po
vendored
37
debian/po/sv.po
vendored
@ -1,6 +1,6 @@
|
|||||||
# SOME DESCRIPTIVE TITLE.
|
# Swedish debconf translation
|
||||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
# Copyright (C) 2011 The I2P Project
|
||||||
# This file is distributed under the same license as the PACKAGE package.
|
# This file is distributed under the same license as the i2p package.
|
||||||
#
|
#
|
||||||
# Translators:
|
# Translators:
|
||||||
# Martin Svensson <digitalmannen@gmail.com>, 2011.
|
# Martin Svensson <digitalmannen@gmail.com>, 2011.
|
||||||
@ -8,14 +8,15 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: I2P\n"
|
"Project-Id-Version: I2P\n"
|
||||||
"Report-Msgid-Bugs-To: https://trac.i2p2.de/\n"
|
"Report-Msgid-Bugs-To: https://trac.i2p2.de/\n"
|
||||||
"POT-Creation-Date: 2011-12-10 04:00+0000\n"
|
"POT-Creation-Date: 2011-12-27 22:25+0000\n"
|
||||||
"PO-Revision-Date: 2011-12-13 14:12+0000\n"
|
"PO-Revision-Date: 2011-12-26 09:48+0000\n"
|
||||||
"Last-Translator: Martin Svensson <digitalmannen@gmail.com>\n"
|
"Last-Translator: Martin Svensson <digitalmannen@gmail.com>\n"
|
||||||
"Language-Team: Swedish (Sweden) (http://www.transifex.net/projects/p/I2P/team/sv_SE/)\n"
|
"Language-Team: Swedish (Sweden) (http://www.transifex.net/projects/p/I2P/"
|
||||||
|
"team/sv_SE/)\n"
|
||||||
|
"Language: sv_SE\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Language: sv_SE\n"
|
|
||||||
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
|
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
|
||||||
|
|
||||||
#. Type: boolean
|
#. Type: boolean
|
||||||
@ -44,21 +45,25 @@ msgstr "Konto för I2P tjänsten:"
|
|||||||
#. Description
|
#. Description
|
||||||
#: ../i2p.templates:3001
|
#: ../i2p.templates:3001
|
||||||
msgid ""
|
msgid ""
|
||||||
"By default I2P is configured to run under the account i2psvc when running as"
|
"By default I2P is configured to run under the account i2psvc when running as "
|
||||||
" a daemon. To use an **existing** I2P profile you may enter a different "
|
"a daemon. To use an **existing** I2P profile you may enter a different "
|
||||||
"account name here. For example, if your previous I2P installation is at "
|
"account name here. For example, if your previous I2P installation is at /"
|
||||||
"/home/user/i2p, you may enter 'user' here."
|
"home/user/i2p, you may enter 'user' here."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Som standard är I2P inställt för att köras under kontot i2psvc mär den körs "
|
"Som standard är I2P inställt för att köras under kontot i2psvc mär den körs "
|
||||||
"som tjänst. För att använda ett **existerande** I2P profil, ange ett annat "
|
"som tjänst. För att använda ett **existerande** I2P profil, ange ett annat "
|
||||||
"konto här. Exempelvis, om din tidigare I2P installation är /home/user/i2p så"
|
"konto här. Exempelvis, om din tidigare I2P installation är /home/user/i2p så "
|
||||||
" ange 'user' här."
|
"ange 'user' här."
|
||||||
|
|
||||||
#. Type: string
|
#. Type: string
|
||||||
#. Description
|
#. Description
|
||||||
#: ../i2p.templates:3001
|
#: ../i2p.templates:3001
|
||||||
msgid "Very important: The account specified here *MUST* already exist."
|
msgid ""
|
||||||
msgstr "*OBS!* Kontot som anges *måste* existera."
|
"Very important: If a user other than the default of 'i2psvc' is entered "
|
||||||
|
"here, the chosen username *MUST* already exist."
|
||||||
|
msgstr ""
|
||||||
|
"OBS! Viktigt: Om en annan användare än standard 'i2psvc' skrivs in här. "
|
||||||
|
"\"MÅSTE\" det användarnamnet redan existera."
|
||||||
|
|
||||||
#. Type: string
|
#. Type: string
|
||||||
#. Description
|
#. Description
|
||||||
@ -81,5 +86,3 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"För routrar med hög bandbredd eller routrar med hög aktivitet kan detta "
|
"För routrar med hög bandbredd eller routrar med hög aktivitet kan detta "
|
||||||
"behöva ökas"
|
"behöva ökas"
|
||||||
|
|
||||||
|
|
||||||
|
8
debian/po/templates.pot
vendored
8
debian/po/templates.pot
vendored
@ -7,8 +7,8 @@
|
|||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: i2p@packages.debian.org\n"
|
"Report-Msgid-Bugs-To: https://trac.i2p2.de/\n"
|
||||||
"POT-Creation-Date: 2011-12-10 04:00+0000\n"
|
"POT-Creation-Date: 2011-12-27 22:25+0000\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
@ -50,7 +50,9 @@ msgstr ""
|
|||||||
#. Type: string
|
#. Type: string
|
||||||
#. Description
|
#. Description
|
||||||
#: ../i2p.templates:3001
|
#: ../i2p.templates:3001
|
||||||
msgid "Very important: The account specified here *MUST* already exist."
|
msgid ""
|
||||||
|
"Very important: If a user other than the default of 'i2psvc' is entered "
|
||||||
|
"here, the chosen username *MUST* already exist."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. Type: string
|
#. Type: string
|
||||||
|
42
debian/po/uk.po
vendored
42
debian/po/uk.po
vendored
@ -1,6 +1,6 @@
|
|||||||
# SOME DESCRIPTIVE TITLE.
|
# Ukrainian debconf translation
|
||||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
# Copyright (C) 2011 The I2P Project
|
||||||
# This file is distributed under the same license as the PACKAGE package.
|
# This file is distributed under the same license as the i2p package.
|
||||||
#
|
#
|
||||||
# Translators:
|
# Translators:
|
||||||
# Denis <gribua@gmail.com>, 2011.
|
# Denis <gribua@gmail.com>, 2011.
|
||||||
@ -8,15 +8,17 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: I2P\n"
|
"Project-Id-Version: I2P\n"
|
||||||
"Report-Msgid-Bugs-To: https://trac.i2p2.de/\n"
|
"Report-Msgid-Bugs-To: https://trac.i2p2.de/\n"
|
||||||
"POT-Creation-Date: 2011-12-10 04:00+0000\n"
|
"POT-Creation-Date: 2011-12-27 22:25+0000\n"
|
||||||
"PO-Revision-Date: 2011-12-16 22:13+0000\n"
|
"PO-Revision-Date: 2011-12-16 22:13+0000\n"
|
||||||
"Last-Translator: Denis <gribua@gmail.com>\n"
|
"Last-Translator: Denis <gribua@gmail.com>\n"
|
||||||
"Language-Team: Ukrainian (Ukraine) (http://www.transifex.net/projects/p/I2P/team/uk_UA/)\n"
|
"Language-Team: Ukrainian (Ukraine) (http://www.transifex.net/projects/p/I2P/"
|
||||||
|
"team/uk_UA/)\n"
|
||||||
|
"Language: uk_UA\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Language: uk_UA\n"
|
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
|
||||||
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n"
|
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n"
|
||||||
|
|
||||||
#. Type: boolean
|
#. Type: boolean
|
||||||
#. Description
|
#. Description
|
||||||
@ -31,8 +33,8 @@ msgid ""
|
|||||||
"The I2P router can be run as a daemon that starts automatically when your "
|
"The I2P router can be run as a daemon that starts automatically when your "
|
||||||
"computer boots up. This is the recommended configuration."
|
"computer boots up. This is the recommended configuration."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"I2P роутер може працювати в якості демона, який запускається автоматично під"
|
"I2P роутер може працювати в якості демона, який запускається автоматично під "
|
||||||
" час запуску комп'ютера. Це рекомендована настройка."
|
"час запуску комп'ютера. Це рекомендована настройка."
|
||||||
|
|
||||||
#. Type: string
|
#. Type: string
|
||||||
#. Description
|
#. Description
|
||||||
@ -44,20 +46,24 @@ msgstr "Псевдокористувач для I2P-демона:"
|
|||||||
#. Description
|
#. Description
|
||||||
#: ../i2p.templates:3001
|
#: ../i2p.templates:3001
|
||||||
msgid ""
|
msgid ""
|
||||||
"By default I2P is configured to run under the account i2psvc when running as"
|
"By default I2P is configured to run under the account i2psvc when running as "
|
||||||
" a daemon. To use an **existing** I2P profile you may enter a different "
|
"a daemon. To use an **existing** I2P profile you may enter a different "
|
||||||
"account name here. For example, if your previous I2P installation is at "
|
"account name here. For example, if your previous I2P installation is at /"
|
||||||
"/home/user/i2p, you may enter 'user' here."
|
"home/user/i2p, you may enter 'user' here."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"При роботі в якості демона, I2P за замовчуванням використовує аккаунт i2psvc"
|
"При роботі в якості демона, I2P за замовчуванням використовує аккаунт i2psvc "
|
||||||
" для роботи. Для використовування **існуючого** профіля I2P ви можете ввести"
|
"для роботи. Для використовування **існуючого** профіля I2P ви можете ввести "
|
||||||
" тут ім'я іншого користувача. Для прикладу, якщо ваша попередня інсталяція "
|
"тут ім'я іншого користувача. Для прикладу, якщо ваша попередня інсталяція "
|
||||||
"I2p знаходиться в /home/user/i2p, ви можете ввести тут 'user'."
|
"I2p знаходиться в /home/user/i2p, ви можете ввести тут 'user'."
|
||||||
|
|
||||||
#. Type: string
|
#. Type: string
|
||||||
#. Description
|
#. Description
|
||||||
#: ../i2p.templates:3001
|
#: ../i2p.templates:3001
|
||||||
msgid "Very important: The account specified here *MUST* already exist."
|
#, fuzzy
|
||||||
|
#| msgid "Very important: The account specified here *MUST* already exist."
|
||||||
|
msgid ""
|
||||||
|
"Very important: If a user other than the default of 'i2psvc' is entered "
|
||||||
|
"here, the chosen username *MUST* already exist."
|
||||||
msgstr "Дуже важливо: Аккаунт, вказаний тут * ПОВИНЕН * вже існувати."
|
msgstr "Дуже важливо: Аккаунт, вказаний тут * ПОВИНЕН * вже існувати."
|
||||||
|
|
||||||
#. Type: string
|
#. Type: string
|
||||||
@ -83,5 +89,3 @@ msgstr ""
|
|||||||
"Роутери з високою швидкістю передачі інформації, так само як роутери з "
|
"Роутери з високою швидкістю передачі інформації, так само як роутери з "
|
||||||
"великою кількістю активних торрентів / плагінів, можуть потребувати "
|
"великою кількістю активних торрентів / плагінів, можуть потребувати "
|
||||||
"збільшення цього значення."
|
"збільшення цього значення."
|
||||||
|
|
||||||
|
|
||||||
|
14
debian/rules
vendored
14
debian/rules
vendored
@ -26,7 +26,12 @@ build:
|
|||||||
|
|
||||||
JAVA_HOME=/usr/lib/jvm/default-java
|
JAVA_HOME=/usr/lib/jvm/default-java
|
||||||
I2P=$(CURDIR)/pkg-temp
|
I2P=$(CURDIR)/pkg-temp
|
||||||
|
ROUTERVERSION=$(CURDIR)/router/java/src/net/i2p/router/RouterVersion.java
|
||||||
|
|
||||||
|
# I2P's version will be displayed in the router console as "$I2PVERSION-$EXTRAPREFIX$DEBIANVERSION", eg. 0.8.12-0-deb1
|
||||||
|
export EXTRAPREFIX := deb
|
||||||
export JAVA_HOME I2P
|
export JAVA_HOME I2P
|
||||||
|
export DEBIANVERSION := $(shell dpkg-parsechangelog |awk -F' ' '/Version/{print $$2}' |sed 's/.*-\([[:digit:]]\{1,\}\).*$$/\1/')
|
||||||
#export DEB_HOST_ARCH_CPU := $(shell dpkg-architecture -qDEB_HOST_ARCH_CPU)
|
#export DEB_HOST_ARCH_CPU := $(shell dpkg-architecture -qDEB_HOST_ARCH_CPU)
|
||||||
|
|
||||||
%:
|
%:
|
||||||
@ -35,6 +40,7 @@ export JAVA_HOME I2P
|
|||||||
clean: createcopyright
|
clean: createcopyright
|
||||||
|
|
||||||
override_dh_auto_clean:
|
override_dh_auto_clean:
|
||||||
|
-[ -r $(CURDIR)/debian/routerversion.java.bak ] && mv -f $(CURDIR)/debian/routerversion.java.bak $(ROUTERVERSION)
|
||||||
dh_auto_clean
|
dh_auto_clean
|
||||||
ant distclean
|
ant distclean
|
||||||
rm -f core/c/jbigi/*.[s]o
|
rm -f core/c/jbigi/*.[s]o
|
||||||
@ -47,8 +53,11 @@ override_dh_auto_build:
|
|||||||
binary-indep: build-indep
|
binary-indep: build-indep
|
||||||
build-indep:
|
build-indep:
|
||||||
dh_prep
|
dh_prep
|
||||||
#mkdir -p $(CURDIR)/installer/lib/wrapper/all
|
cp -f $(ROUTERVERSION) $(CURDIR)/debian/routerversion.java.bak
|
||||||
#ln -sf /usr/share/java/wrapper.jar $(CURDIR)/installer/lib/wrapper/all/wrapper.jar
|
sed -e "s/\(.*EXTRA\ =\ \)[^ ]*\"\(.*\)\"/\1\"\2-$$EXTRAPREFIX$$DEBIANVERSION\"/" < $(ROUTERVERSION) > $(ROUTERVERSION).tmp
|
||||||
|
mv -f $(ROUTERVERSION).tmp $(ROUTERVERSION)
|
||||||
|
# The next line is used by KYTV when building from source packages
|
||||||
|
#[ -r jetty/jetty-5.1.15.tgz ] && ln -sf $(CURDIR)/jetty/jetty-5.1.15.tgz $(CURDIR)/apps/jetty/jetty-5.1.15.tgz
|
||||||
ant preppkg-unix javadoc
|
ant preppkg-unix javadoc
|
||||||
echo router.updateDisabled=true > $(I2P)/router.config
|
echo router.updateDisabled=true > $(I2P)/router.config
|
||||||
mv $(I2P)/runplain.sh $(I2P)/i2prouter-nowrapper
|
mv $(I2P)/runplain.sh $(I2P)/i2prouter-nowrapper
|
||||||
@ -74,7 +83,6 @@ createcopyright:
|
|||||||
@/bin/echo -e "at http://www.i2p2.de/newdevelopers#getting-the-i2p-code\n\n\n" >> $(CURDIR)/debian/copyright
|
@/bin/echo -e "at http://www.i2p2.de/newdevelopers#getting-the-i2p-code\n\n\n" >> $(CURDIR)/debian/copyright
|
||||||
@/bin/cat $(CURDIR)/LICENSE.txt >> $(CURDIR)/debian/copyright
|
@/bin/cat $(CURDIR)/LICENSE.txt >> $(CURDIR)/debian/copyright
|
||||||
|
|
||||||
|
|
||||||
override_dh_compress:
|
override_dh_compress:
|
||||||
dh_compress -X.xsl -X.xml
|
dh_compress -X.xsl -X.xml
|
||||||
|
|
||||||
|
55
history.txt
55
history.txt
@ -1,3 +1,58 @@
|
|||||||
|
2012-01-08 zzz
|
||||||
|
* Plugins:
|
||||||
|
- Enforce min and max Jetty versions at plugin installation
|
||||||
|
- Enforce I2P, Java, and Jetty versions at plugin startup too
|
||||||
|
* Router:
|
||||||
|
- No longer check for updates or start any threads in the Router constructor,
|
||||||
|
- for ease in building multiple routers in the JVM,
|
||||||
|
- and also because starting threads in a constructor is bad practice.
|
||||||
|
- All threads now start in runRouter().
|
||||||
|
- Installation of updates now only happens via Router.main().
|
||||||
|
* RouterInfo, RouterAddress: Optimizations and integrity checks
|
||||||
|
- Remove synchronization
|
||||||
|
- Do not allow contents to change after being set, throw IllegalStateException
|
||||||
|
- Do not copy contents out in getters
|
||||||
|
- Make options final
|
||||||
|
- Add getOption() and getOptionsMap() methods
|
||||||
|
* Router shutdown:
|
||||||
|
- Fix failsafe shutdown hook broken in 0.8.8;
|
||||||
|
HUP, INT, and TERM signals should now shut down cleanly.
|
||||||
|
- Shutdown hook no longer prevents other hooks from running
|
||||||
|
- Trap HUP, if router.gracefulHUP=true, and do graceful shutdown.
|
||||||
|
Only under wrapper, non-Windows.
|
||||||
|
- i2prouter stop now uses SIGTERM
|
||||||
|
- Implement i2prouter graceful using SIGHUP (ticket #580)
|
||||||
|
- Configure wrapper to ignore SIGUSR1 and SIGUSR2 as they will shut down
|
||||||
|
or crash the JVM
|
||||||
|
|
||||||
|
2012-01-06 kytv
|
||||||
|
* EepGet: If transfer fails, exit with status 1 (fixes #576)
|
||||||
|
|
||||||
|
* 2012-01-06 0.8.12 released
|
||||||
|
|
||||||
|
2012-01-04 kytv
|
||||||
|
* Update geoip.txt based on Maxmind GeoLite Country database from 2011-12-08
|
||||||
|
|
||||||
|
2012-01-02 kytv
|
||||||
|
* Wrapper 3.5.13 for everything other than armv7.
|
||||||
|
|
||||||
|
2012-01-02 zzz
|
||||||
|
* Fix webapp PortMapper lookup for SSL-only console
|
||||||
|
* Wrapper 3.5.13 for arm v7
|
||||||
|
|
||||||
|
2011-12-31 zzz
|
||||||
|
* Fix log NPE when saveConfig() fails at startup, thx kytv
|
||||||
|
(backport from jetty6 branch)
|
||||||
|
|
||||||
|
2011-12-30 zzz
|
||||||
|
* New Estonian translation thanks ajutine
|
||||||
|
|
||||||
|
2011-12-27 kytv
|
||||||
|
* Spanish and Swedish translation updates from Transifex
|
||||||
|
|
||||||
|
2011-12-23 zzz
|
||||||
|
* Logging: Eliminate LogWriter/LogManager deadlock
|
||||||
|
|
||||||
2011-12-18 zzz
|
2011-12-18 zzz
|
||||||
* Addresses: Add utility toString() methods
|
* Addresses: Add utility toString() methods
|
||||||
* Blocklist: Buffer input to speed lookup
|
* Blocklist: Buffer input to speed lookup
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
<info>
|
<info>
|
||||||
<appname>i2p</appname>
|
<appname>i2p</appname>
|
||||||
<appversion>0.8.11</appversion>
|
<appversion>0.8.12</appversion>
|
||||||
<authors>
|
<authors>
|
||||||
<author name="I2P" email="http://forum.i2p2.de/"/>
|
<author name="I2P" email="http://forum.i2p2.de/"/>
|
||||||
</authors>
|
</authors>
|
||||||
|
44
installer/lib/wrapper/README.txt
Normal file
44
installer/lib/wrapper/README.txt
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
Wrapper update instructions:
|
||||||
|
|
||||||
|
Get the community "delta pack" from http://wrapper.tanukisoftware.com/doc/english/download.jsp
|
||||||
|
|
||||||
|
Get the source from http://wrapper.tanukisoftware.com/downloads/
|
||||||
|
|
||||||
|
From the delta pack, copy lib/wrapper.jar to all/
|
||||||
|
|
||||||
|
From the delta pack, strip the binaries in lib/
|
||||||
|
(if you have the tools to do so for that architecture) and copy
|
||||||
|
to xxx/librapper.so, libwrapper.jnilib, or wrapper.dll for the following directories.
|
||||||
|
Don't forget to disable the execute bit.
|
||||||
|
linux (x86-32)
|
||||||
|
linux64 (x86-64)
|
||||||
|
solaris (sparc-32)
|
||||||
|
win32
|
||||||
|
|
||||||
|
From the delta pack, strip the binaries in bin/ and copy
|
||||||
|
to xxx/i2psvc for the same directories as above.
|
||||||
|
Don't forget to disable the execute bit.
|
||||||
|
|
||||||
|
For armv5 and armv7, build from source following the instructions
|
||||||
|
in linux-armv7/README.txt.
|
||||||
|
Don't forget to strip the binaries and disable the execute bit.
|
||||||
|
We use a trimslice for armv7 building.
|
||||||
|
|
||||||
|
For freebsd and freebsd64, we don't use the Tanuki binaries
|
||||||
|
because they are compiled in FBSD v6. Compile from source in
|
||||||
|
FreeBSD 7.4 to eliminate the dependency on the compat6x port.
|
||||||
|
Don't forget to strip the binaries and disable the execute bit.
|
||||||
|
A walkthrough can be found in freebsd/README.txt.
|
||||||
|
|
||||||
|
For linux-ppc, we don't use the Tanuki binaires because they're (mistakenly)
|
||||||
|
ppc64 compiles (TODO: File bug with Tanuki). Compile the arch-dependent bits
|
||||||
|
with "ant -Dbits=32 compile-c-unix".
|
||||||
|
|
||||||
|
For macosx, combine the universal-32 and universal-64 files
|
||||||
|
from the delta pack (each a 2-architecture fat file)
|
||||||
|
into a "quad-fat" binary. Instructions can be found in
|
||||||
|
macos/README.txt
|
||||||
|
|
||||||
|
For win64, build from source following the instructions
|
||||||
|
in win64/README-x64-win.txt.
|
||||||
|
Don't forget to strip the binaries and disable the execute bit.
|
Binary file not shown.
24
installer/lib/wrapper/freebsd/README.txt
Normal file
24
installer/lib/wrapper/freebsd/README.txt
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
Basic instructions for BSD
|
||||||
|
--------------------------
|
||||||
|
|
||||||
|
Prerequisites for compiling the wrapper can be installed with:
|
||||||
|
pkg_add -r apache-ant gmake openjdk6
|
||||||
|
|
||||||
|
One the prereqs are installed, cd into the wrapper source and run
|
||||||
|
|
||||||
|
For 32bit:
|
||||||
|
ant -Dbits=32 compile-c-unix
|
||||||
|
|
||||||
|
For 64bit:
|
||||||
|
ant -Dbits=64 compile-c-unix
|
||||||
|
|
||||||
|
Omit "compile-c-unix" from the command-lines if you want to compile
|
||||||
|
wrapper.jar too.
|
||||||
|
|
||||||
|
Then strip the binaries:
|
||||||
|
strip --strip-unneeded bin/wrapper lib/libwrapper.so
|
||||||
|
|
||||||
|
...and turn off the executable bit:
|
||||||
|
chmod 644 bin/wrapper lib/libwrapper.so
|
||||||
|
|
||||||
|
Don't forget to rename the binary "wrapper" to "i2psvc".
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
12
installer/lib/wrapper/macosx/README.txt
Normal file
12
installer/lib/wrapper/macosx/README.txt
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
OSX instructions
|
||||||
|
----------------
|
||||||
|
|
||||||
|
Make the wrapper "quadfat" using lipo:
|
||||||
|
|
||||||
|
lipo -create wrapper-macosx-universal-32 wrapper-macosx-universal-64 -output i2psvc
|
||||||
|
lipo -create libwrapper-macosx-universal-32.jnilib libwrapper-macosx-universal-64.jnilib -output libwrapper.jnilib
|
||||||
|
|
||||||
|
Then strip the wrapper:
|
||||||
|
strip i2psvc
|
||||||
|
|
||||||
|
The jnilib file does not need to be stripped.
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,4 +1,4 @@
|
|||||||
Changes will probably be needed for newer versions than 3.5.12.
|
Changes may be needed for newer versions than 3.5.13.
|
||||||
|
|
||||||
To use the patch in this directory, copy Makefile-windows-x86-32.nmake to
|
To use the patch in this directory, copy Makefile-windows-x86-32.nmake to
|
||||||
Makefile-windows-x86-64.nmake then "patch < x64-win.patch".
|
Makefile-windows-x86-64.nmake then "patch < x64-win.patch".
|
||||||
|
Binary file not shown.
@ -1,3 +1,10 @@
|
|||||||
|
# Last updated based on Maxmind GeoLite Country
|
||||||
|
# dated 2011-12-08
|
||||||
|
# Script borrowed from Tor
|
||||||
|
#
|
||||||
|
# wget http://geolite.maxmind.com/download/geoip/database/GeoIPCountryCSV.zip
|
||||||
|
# cut -d, -f3-5 < GeoIPCountryWhois.csv|sed 's/"//g' > geoip.txt
|
||||||
|
# cut -d, -f5,6 < GeoIPCountryWhois.csv |sed 's/"//g' | sort | uniq > countries.txt
|
||||||
A1,Anonymous Proxy
|
A1,Anonymous Proxy
|
||||||
A2,Satellite Provider
|
A2,Satellite Provider
|
||||||
AD,Andorra
|
AD,Andorra
|
||||||
@ -179,6 +186,7 @@ PH,Philippines
|
|||||||
PK,Pakistan
|
PK,Pakistan
|
||||||
PL,Poland
|
PL,Poland
|
||||||
PM,Saint Pierre and Miquelon
|
PM,Saint Pierre and Miquelon
|
||||||
|
PN,Pitcairn Islands
|
||||||
PR,Puerto Rico
|
PR,Puerto Rico
|
||||||
PS,Palestinian Territory
|
PS,Palestinian Territory
|
||||||
PT,Portugal
|
PT,Portugal
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -357,7 +357,11 @@ if [ "$DIST_OS" = "macosx" ]
|
|||||||
then
|
then
|
||||||
OS_VER=`sw_vers | grep 'ProductVersion:' | grep -o '[0-9]*\.[0-9]*\.[0-9]*'`
|
OS_VER=`sw_vers | grep 'ProductVersion:' | grep -o '[0-9]*\.[0-9]*\.[0-9]*'`
|
||||||
DIST_ARCH="universal"
|
DIST_ARCH="universal"
|
||||||
DIST_BITS="64"
|
if [ $(sysctl -n hw.cpu64bit_capable) -eq 1 ]; then
|
||||||
|
DIST_BITS="64"
|
||||||
|
else
|
||||||
|
DIST_BITS="32"
|
||||||
|
fi
|
||||||
APP_PLIST_BASE=${PLIST_DOMAIN}.${APP_NAME}
|
APP_PLIST_BASE=${PLIST_DOMAIN}.${APP_NAME}
|
||||||
APP_PLIST=${APP_PLIST_BASE}.plist
|
APP_PLIST=${APP_PLIST_BASE}.plist
|
||||||
else
|
else
|
||||||
@ -1008,6 +1012,7 @@ start() {
|
|||||||
startwait
|
startwait
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
stopit() {
|
stopit() {
|
||||||
# $1 exit if down flag
|
# $1 exit if down flag
|
||||||
|
|
||||||
@ -1024,7 +1029,7 @@ stopit() {
|
|||||||
if [ "X$IGNORE_SIGNALS" = "X" ]
|
if [ "X$IGNORE_SIGNALS" = "X" ]
|
||||||
then
|
then
|
||||||
# Running so try to stop it.
|
# Running so try to stop it.
|
||||||
kill $pid
|
kill -TERM $pid
|
||||||
if [ $? -ne 0 ]
|
if [ $? -ne 0 ]
|
||||||
then
|
then
|
||||||
# An explanation for the failure should have been given
|
# An explanation for the failure should have been given
|
||||||
@ -1076,6 +1081,43 @@ stopit() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
graceful() {
|
||||||
|
# $1 exit if down flag
|
||||||
|
|
||||||
|
eval echo `gettext 'Stopping $APP_LONG_NAME gracefully...'`
|
||||||
|
getpid
|
||||||
|
if [ "X$pid" = "X" ]
|
||||||
|
then
|
||||||
|
eval echo `gettext '$APP_LONG_NAME was not running.'`
|
||||||
|
if [ "X$1" = "X1" ]
|
||||||
|
then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
if [ "X$IGNORE_SIGNALS" = "X" ]
|
||||||
|
then
|
||||||
|
# Running so try to stop it.
|
||||||
|
# This sends HUP. router.gracefulHUP must be set in router.config,
|
||||||
|
# or else this will do the same as stop.
|
||||||
|
kill $pid
|
||||||
|
if [ $? -ne 0 ]
|
||||||
|
then
|
||||||
|
# An explanation for the failure should have been given
|
||||||
|
eval echo `gettext 'Unable to stop $APP_LONG_NAME.'`
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
rm -f "$ANCHORFILE"
|
||||||
|
if [ -f "$ANCHORFILE" ]
|
||||||
|
then
|
||||||
|
# An explanation for the failure should have been given
|
||||||
|
eval echo `gettext 'Unable to stop $APP_LONG_NAME.'`
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
pause() {
|
pause() {
|
||||||
eval echo `gettext 'Pausing $APP_LONG_NAME.'`
|
eval echo `gettext 'Pausing $APP_LONG_NAME.'`
|
||||||
}
|
}
|
||||||
@ -1553,6 +1595,7 @@ showUsage() {
|
|||||||
echo "`gettext ' console Launch in the current console.'`"
|
echo "`gettext ' console Launch in the current console.'`"
|
||||||
echo "`gettext ' start Start in the background as a daemon process.'`"
|
echo "`gettext ' start Start in the background as a daemon process.'`"
|
||||||
echo "`gettext ' stop Stop if running as a daemon or in another console.'`"
|
echo "`gettext ' stop Stop if running as a daemon or in another console.'`"
|
||||||
|
echo "`gettext ' graceful Stop gracefully, may take up to 11 minutes.'`"
|
||||||
echo "`gettext ' restart Stop if running and then start.'`"
|
echo "`gettext ' restart Stop if running and then start.'`"
|
||||||
echo "`gettext ' condrestart Restart only if already running.'`"
|
echo "`gettext ' condrestart Restart only if already running.'`"
|
||||||
if [ -n "$PAUSABLE" ] ; then
|
if [ -n "$PAUSABLE" ] ; then
|
||||||
@ -1620,6 +1663,11 @@ docommand() {
|
|||||||
stopit "0"
|
stopit "0"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
'graceful')
|
||||||
|
checkUser "" "$COMMAND"
|
||||||
|
graceful "0"
|
||||||
|
;;
|
||||||
|
|
||||||
'restart')
|
'restart')
|
||||||
checkUser touchlock "$COMMAND"
|
checkUser touchlock "$COMMAND"
|
||||||
if [ ! -n "$FIXED_COMMAND" ] ; then
|
if [ ! -n "$FIXED_COMMAND" ] ; then
|
||||||
|
BIN
installer/resources/icons/flags/im.png
Normal file
BIN
installer/resources/icons/flags/im.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 413 B |
@ -1,30 +1,15 @@
|
|||||||
<!--
|
<!--
|
||||||
<i2p.news date="$Date: 2011-11-08 00:00:00 $">
|
<i2p.news date="$Date: 2012-01-06 00:00:00 $">
|
||||||
<i2p.release version="0.8.11" date="2011/11/08" minVersion="0.6" />
|
<i2p.release version="0.8.12" date="2012/01/06" minVersion="0.6" />
|
||||||
-->
|
-->
|
||||||
<div lang="en">
|
<div lang="en">
|
||||||
<h3>2011-11-08: <b>0.8.11 <a href="http://www.i2p2.i2p/release-0.8.11.html">Released</a></b></h3>
|
<h3>2012-01-06: <b>0.8.12 <a href="http://www.i2p2.i2p/release-0.8.12.html">Released</a></b></h3>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
The unprecedented network growth starting October 5th
|
The 0.8.12 release fixes several serious message corruption bugs.
|
||||||
has dramatically increased network congestion, especially on evenings (UTC)
|
It also contains a redesign of the router's congestion control, and continued
|
||||||
and weekends. The last two releases contained a few changes that we hoped
|
optimization of CPU and memory usage. We are hopeful that these changes will
|
||||||
would relieve the pressure, but unfortunately these measures have been only
|
improve network performance. Upgrading is recommended.
|
||||||
modest successes. The primary issue is to limit the number of direct router
|
|
||||||
to-router connections in the network. This isn't a new problem; we've been
|
|
||||||
working on it for several years, usually with good results. However, the recent
|
|
||||||
growth pushed us over the edge once again.
|
|
||||||
</p><p>
|
|
||||||
Release 0.8.11 includes several more changes to reduce the number of router-to-router
|
|
||||||
connections and increase connection and tunnel build capacity. The goal, of course,
|
|
||||||
is to improve tunnel build success rates and general reliability. As always, there's
|
|
||||||
a few bug fixes and translation updates.
|
|
||||||
</p><p>
|
|
||||||
We welcome all our new users. Please be patient as we work to improve network
|
|
||||||
performance. Debugging congestion problems in a distributed anonymous network
|
|
||||||
is a continuing challenge. Please help improve the network
|
|
||||||
by restarting your router once the upgrade is downloaded.
|
|
||||||
|
|
||||||
</p><p>
|
</p><p>
|
||||||
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>.
|
||||||
<a href="http://www.i2p2.i2p/getinvolved.html">Get involved</a>,
|
<a href="http://www.i2p2.i2p/getinvolved.html">Get involved</a>,
|
||||||
|
@ -59,8 +59,6 @@
|
|||||||
<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> and 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, and more.</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>:
|
|
||||||
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>
|
||||||
@ -113,7 +111,7 @@
|
|||||||
<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>.
|
<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>
|
||||||
|
|
||||||
<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 use <a href="http://www.i2p2.i2p/monotone.html" target="_blank">monotone</a> to manage our source code.
|
<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> or via <a href="http://trac.i2p2.i2p/browser" target="_blank">trac.i2p2.i2p</a>. We use <a href="http://www.i2p2.i2p/monotone.html" target="_blank">monotone</a> to manage our source code.
|
||||||
</li>
|
</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 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.
|
||||||
|
@ -10,7 +10,6 @@
|
|||||||
هما موقع الرسمي للمشروع <a href="http://www.i2p2.de/index_fr.html">www.i2p2.de</a></li>
|
هما موقع الرسمي للمشروع <a href="http://www.i2p2.de/index_fr.html">www.i2p2.de</a></li>
|
||||||
<li><a href="http://eepsites.i2p/">eepsites.i2p</a>محرك بحث</li>
|
<li><a href="http://eepsites.i2p/">eepsites.i2p</a>محرك بحث</li>
|
||||||
<li><a href="http://ugha.i2p/">ugha.i2p</a>ويكي مفتوح التي يستطيع الجميع تحريرها مع الكثير من المعلومات حول الشبكة</li>
|
<li><a href="http://ugha.i2p/">ugha.i2p</a>ويكي مفتوح التي يستطيع الجميع تحريرها مع الكثير من المعلومات حول الشبكة</li>
|
||||||
<li><a href="http://fproxy.tino.i2p">fproxy.tino.i2p</a>Freenet مدخل الى شبكة </li>
|
|
||||||
<li><a href="http://echelon.i2p">echelon.i2p</a>موقع لتحميل مجموعة من البرامج (I2PFox, iMule, I2P-Messenger, ...) <br></li>
|
<li><a href="http://echelon.i2p">echelon.i2p</a>موقع لتحميل مجموعة من البرامج (I2PFox, iMule, I2P-Messenger, ...) <br></li>
|
||||||
</ul>
|
</ul>
|
||||||
هناك العديد من eepsites، فقط اتبع هذه الروابط لإكتشاف المزيد!</li>
|
هناك العديد من eepsites، فقط اتبع هذه الروابط لإكتشاف المزيد!</li>
|
||||||
|
@ -10,7 +10,6 @@
|
|||||||
sichere und anonyme Verbindungen zu <a href="http://www.i2p2.de/index_de.html">www.i2p2.de</a></li>
|
sichere und anonyme Verbindungen zu <a href="http://www.i2p2.de/index_de.html">www.i2p2.de</a></li>
|
||||||
<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://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://pastethis.i2p">pastethis.i2p</a>: anonymer Pastebin</li>
|
<li><a href="http://pastethis.i2p">pastethis.i2p</a>: anonymer Pastebin</li>
|
||||||
</ul><br />
|
</ul><br />
|
||||||
|
@ -10,7 +10,6 @@
|
|||||||
conexiones seguras y anónimas a <a href="http://www.i2p2.de/index_de.html">www.i2p2.de</a></li>
|
conexiones seguras y anónimas a <a href="http://www.i2p2.de/index_de.html">www.i2p2.de</a></li>
|
||||||
<li><a href="http://eepsites.i2p/">eepsites.i2p</a>: página de búsqueda para páginas I2P</li>
|
<li><a href="http://eepsites.i2p/">eepsites.i2p</a>: página de búsqueda para páginas I2P</li>
|
||||||
<li><a href="http://ugha.i2p/">ugha.i2p</a>: página de Ugha; un wiki público con muchos enlaces</li>
|
<li><a href="http://ugha.i2p/">ugha.i2p</a>: página de Ugha; un wiki público con muchos enlaces</li>
|
||||||
<li><a href="http://fproxy.tino.i2p">fproxy.tino.i2p</a>: un proxy para acceder a Freenet</li>
|
|
||||||
<li><a href="http://echelon.i2p">echelon.i2p</a>: archivo de software e informaciones sobre I2P (con aplicaciones de BitTorrent, iMule, I2PFox, I2P-Messenger, ...)</li>
|
<li><a href="http://echelon.i2p">echelon.i2p</a>: archivo de software e informaciones sobre I2P (con aplicaciones de BitTorrent, iMule, I2PFox, I2P-Messenger, ...)</li>
|
||||||
<li><a href="http://pastethis.i2p">pastethis.i2p</a>: pastebin anónimo</li>
|
<li><a href="http://pastethis.i2p">pastethis.i2p</a>: pastebin anónimo</li>
|
||||||
</ul><br />
|
</ul><br />
|
||||||
|
@ -136,9 +136,6 @@ les pré-versions d'I2P à essayer.</li>
|
|||||||
<li class="tidylist"><b>Le Wiki d'Ugha</b><br><a href="http://ugha.i2p/" target="_blank">ugha.i2p</a>: un wiki
|
<li class="tidylist"><b>Le Wiki d'Ugha</b><br><a href="http://ugha.i2p/" target="_blank">ugha.i2p</a>: un wiki
|
||||||
ouvert et anonyme sur lequel chacun peut modifier toute sorte d'informations sur I2P, l'aide pour les débutants,
|
ouvert et anonyme sur lequel chacun peut modifier toute sorte d'informations sur I2P, l'aide pour les débutants,
|
||||||
des liens supplémentaires dans le réseau, etc…</li>
|
des liens supplémentaires dans le réseau, etc…</li>
|
||||||
<li class="tidylist"><b>Proxy I2P-vers-Freenet</b><br>
|
|
||||||
<a href="http://fproxy.tino.i2p/" target="_blank">fproxy.tino.i2p</a>: une fenêtre sur le monde du réseau
|
|
||||||
<a href="http://freenetproject.org/" target="_blank">Freenet</a> grâce au mandataire I2P-vers-Freenet de Tino.</li>
|
|
||||||
<li class="tidylist"><b>The Planet (sur I2P)</b><br><a href="http://planet.i2p/" target="_blank">planet.i2p</a>:
|
<li class="tidylist"><b>The Planet (sur I2P)</b><br><a href="http://planet.i2p/" target="_blank">planet.i2p</a>:
|
||||||
un site agrégateur RSS qui collecte les nouvelles et évènements concernant I2P et les publie toutes regroupée en un
|
un site agrégateur RSS qui collecte les nouvelles et évènements concernant I2P et les publie toutes regroupée en un
|
||||||
seul endroit. Un bon aperçu de la communauté au travail!</li>
|
seul endroit. Un bon aperçu de la communauté au travail!</li>
|
||||||
@ -248,8 +245,7 @@ via le serveur IRC <a href="irc://irc.freenode.net/i2p">Freenode</a>.
|
|||||||
<a href="http://trac.i2p2.i2p/" target="_blank">trac.i2p2.i2p</a>. Les développeurs discutent sur les
|
<a href="http://trac.i2p2.i2p/" target="_blank">trac.i2p2.i2p</a>. Les développeurs discutent sur les
|
||||||
<a href="http://zzz.i2p/" target="_blank">fora de développeurs de zzz</a> ou sur le
|
<a href="http://zzz.i2p/" target="_blank">fora de développeurs de zzz</a> ou sur le
|
||||||
<a href="irc://127.0.0.1:6668/i2p-dev">canal des développeurs</a>. Les développeurs peuvent consulter les sources sur
|
<a href="irc://127.0.0.1:6668/i2p-dev">canal des développeurs</a>. Les développeurs peuvent consulter les sources sur
|
||||||
<a href="http://stats.i2p/cgi-bin/viewmtn/" target="_blank">l'explorateur du dépôt de zzz</a>,
|
<a href="http://stats.i2p/cgi-bin/viewmtn/" target="_blank">l'explorateur du dépôt de zzz</a> ou par
|
||||||
<a href="http://i2host.i2p/cgi-bin/view/branch/changes/i2p.i2p" target="_blank">l'instance de Sponge</a>, ou par
|
|
||||||
<a href="http://trac.i2p2.i2p/browser" target="_blank">trac.i2p2.i2p</a>. Nous utilisons
|
<a href="http://trac.i2p2.i2p/browser" target="_blank">trac.i2p2.i2p</a>. Nous utilisons
|
||||||
<a href="http://www.i2p2.i2p/monotone.html" target="_blank">monotone</a> pour gérer les sources du code.
|
<a href="http://www.i2p2.i2p/monotone.html" target="_blank">monotone</a> pour gérer les sources du code.
|
||||||
</li>
|
</li>
|
||||||
|
@ -46,8 +46,6 @@ en maak verbinding met de <a href="irc://127.0.0.1:6668/i2p">server</a> op <code
|
|||||||
<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
|
||||||
archief met broncode (waar toegestaan), informatie over I2P, inclusief een <a href="http://echelon.i2p/I2Pguide/index.html" target="_blank">beginner's guide</a> en pre-release ontwikkelaars versies van I2P voor de avonturiers om te proberen.</li>
|
archief met broncode (waar toegestaan), informatie over I2P, inclusief een <a href="http://echelon.i2p/I2Pguide/index.html" target="_blank">beginner's guide</a> en pre-release ontwikkelaars versies van I2P voor de avonturiers om te proberen.</li>
|
||||||
<li class="tidylist"><b>Ugha's Wiki</b><br><a href="http://ugha.i2p/" target="_blank">ugha.i2p</a>: Een open wiki die iedereen kan bewerken met veel informatie over I2P, help voor beginners en meer links voor het I2P netwerk en meer.</li>
|
<li class="tidylist"><b>Ugha's Wiki</b><br><a href="http://ugha.i2p/" target="_blank">ugha.i2p</a>: Een open wiki die iedereen kan bewerken met veel informatie over I2P, help voor beginners en meer links voor het I2P netwerk en meer.</li>
|
||||||
<li class="tidylist"><b>I2P-to-Freenet Proxy</b><br><a href="http://fproxy.tino.i2p/" target="_blank">fproxy.tino.i2p</a>:
|
|
||||||
Neem een kijkje in de wereld van het <a href="http://freenetproject.org/" target="_blank">Freenet</a> netwerk met 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>: Een RSS aggregator site die nieuwswaardigheden en evenementen rondom I2P verzamelt en publiceerd in één plek. Een goede site om te bezoeken om de community aan het werk te zien!</li>
|
<li class="tidylist"><b>The Planet (on I2P)</b><br><a href="http://planet.i2p/" target="_blank">planet.i2p</a>: Een RSS aggregator site die nieuwswaardigheden en evenementen rondom I2P verzamelt en publiceerd in één plek. Een goede site om te bezoeken om de community aan het werk te zien!</li>
|
||||||
<li class="tidylist"><b>Eepsite Search Engine</b><br><a href="http://eepsites.i2p/" target="_blank">eepsites.i2p</a>: Een
|
<li class="tidylist"><b>Eepsite Search Engine</b><br><a href="http://eepsites.i2p/" target="_blank">eepsites.i2p</a>: Een
|
||||||
anonieme zoek machine.</li>
|
anonieme zoek machine.</li>
|
||||||
@ -86,7 +84,7 @@ Als je achter een verbiedende firewall zit maar wel onbeperkt uitgaande toegang,
|
|||||||
of langs komen in
|
of langs komen in
|
||||||
<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> op I2P's Internet IRC netwerk (<code>irc.postman.i2p</code> or <code>irc.freshcoffee.i2p</code>). Deze kanalen zijn tevens beschikbaar buiten I2P's anonieme versleutelde netwerk 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> op I2P's Internet IRC netwerk (<code>irc.postman.i2p</code> or <code>irc.freshcoffee.i2p</code>). Deze kanalen zijn tevens beschikbaar buiten I2P's anonieme versleutelde netwerk via <a href="irc://irc.freenode.net/i2p">Freenode IRC</a>.</li>
|
||||||
|
|
||||||
<li class="tidylist"><b>Bugs melden</b><br>Als je een bug wil melden, maak een ticket aan op <a href="http://trac.i2p2.i2p/" target="_blank">trac.i2p2.i2p</a>. Voor ontwikkelaar-gerelateerde discussies, bezoek <a href="http://zzz.i2p/" target="_blank">zzz's developer forums</a> of bezoek het <a href="irc://127.0.0.1:6668/i2p-dev">developer kanaal</a> op I2P's IRC netwerk. Ontwikkelaars kunnen de broncode doorbladeren op <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>, of via <a href="http://trac.i2p2.i2p/browser" target="_blank">trac.i2p2.i2p</a>. We gebruiken hoofdzakelijk <a href="http://www.i2p2.i2p/monotone.html" target="_blank">monotone</a> om de broncode bij te beheren.</li>
|
<li class="tidylist"><b>Bugs melden</b><br>Als je een bug wil melden, maak een ticket aan op <a href="http://trac.i2p2.i2p/" target="_blank">trac.i2p2.i2p</a>. Voor ontwikkelaar-gerelateerde discussies, bezoek <a href="http://zzz.i2p/" target="_blank">zzz's developer forums</a> of bezoek het <a href="irc://127.0.0.1:6668/i2p-dev">developer kanaal</a> op I2P's IRC netwerk. Ontwikkelaars kunnen de broncode doorbladeren op <a href="http://stats.i2p/cgi-bin/viewmtn/" target="_blank">zzz's mtn repository viewer</a> of via <a href="http://trac.i2p2.i2p/browser" target="_blank">trac.i2p2.i2p</a>. We gebruiken hoofdzakelijk <a href="http://www.i2p2.i2p/monotone.html" target="_blank">monotone</a> om de broncode bij te beheren.</li>
|
||||||
|
|
||||||
<li class="tidylist"><b>Raak betrokken!</b><br>I2P word ontwikkeld en onderhouden door hoofdzakelijk ongefinancierde en vrijwillige community leden. We accepteren graag <a href="http://www.i2p2.i2p/donate.html" target="_blank">donaties</a>, welke zullen besteed aan essentiele hosting en administratie kosten. We hebben <a href="http://www.i2p2.i2p/bounties.html" target="_blank">contante beloningen</a> voor aspecten van I2P voor ontwikkelaars welke graag mee willen ontwikkelen, we zijn altijd opzoek naar meer <a href="http://www.i2p2.i2p/newdevelopers.html" target="_blank">Java coders</a>, <a href="http://www.i2p2.i2p/newtranslators.html" target="_blank">vertalers</a>, promoters en gebruikers om I2P te helpen groeien. Hoe groter het I2P netwerk, hoe meer iedereen van de voordelen profiteert, simpelweg al je vrienden vertellen over I2P en ze helpen het te installeren is al een grote hulp. Voor meer informatie over hoe je betrokken kan raken, bezoek de <a href="http://www.i2p2.i2p/getinvolved.html" target="_blank">vrijwilligers pagina</a> op de website.</li>
|
<li class="tidylist"><b>Raak betrokken!</b><br>I2P word ontwikkeld en onderhouden door hoofdzakelijk ongefinancierde en vrijwillige community leden. We accepteren graag <a href="http://www.i2p2.i2p/donate.html" target="_blank">donaties</a>, welke zullen besteed aan essentiele hosting en administratie kosten. We hebben <a href="http://www.i2p2.i2p/bounties.html" target="_blank">contante beloningen</a> voor aspecten van I2P voor ontwikkelaars welke graag mee willen ontwikkelen, we zijn altijd opzoek naar meer <a href="http://www.i2p2.i2p/newdevelopers.html" target="_blank">Java coders</a>, <a href="http://www.i2p2.i2p/newtranslators.html" target="_blank">vertalers</a>, promoters en gebruikers om I2P te helpen groeien. Hoe groter het I2P netwerk, hoe meer iedereen van de voordelen profiteert, simpelweg al je vrienden vertellen over I2P en ze helpen het te installeren is al een grote hulp. Voor meer informatie over hoe je betrokken kan raken, bezoek de <a href="http://www.i2p2.i2p/getinvolved.html" target="_blank">vrijwilligers pagina</a> op de website.</li>
|
||||||
</ul><div class="topness"><a href="#top">[Naar Boven]</a></div>
|
</ul><div class="topness"><a href="#top">[Naar Boven]</a></div>
|
||||||
|
@ -10,7 +10,6 @@
|
|||||||
conexões seguras e anônimas para <a href="http://www.i2p2.de/index_de.html">www.i2p2.de</a></li>
|
conexões seguras e anônimas para <a href="http://www.i2p2.de/index_de.html">www.i2p2.de</a></li>
|
||||||
<li><a href="http://eepsites.i2p/">eepsites.i2p</a>: búscador para as páginas I2P</li>
|
<li><a href="http://eepsites.i2p/">eepsites.i2p</a>: búscador para as páginas I2P</li>
|
||||||
<li><a href="http://ugha.i2p/">ugha.i2p</a>: página de Ugha; um wiki público com muitos links</li>
|
<li><a href="http://ugha.i2p/">ugha.i2p</a>: página de Ugha; um wiki público com muitos links</li>
|
||||||
<li><a href="http://fproxy.tino.i2p">fproxy.tino.i2p</a>: um proxy para acessar à Freenet</li>
|
|
||||||
<li><a href="http://echelon.i2p">echelon.i2p</a>: arquivo de software e informações sobre I2P (com aplicações de BitTorrent, iMule, I2PFox, I2P-Messenger, ...)</li>
|
<li><a href="http://echelon.i2p">echelon.i2p</a>: arquivo de software e informações sobre I2P (com aplicações de BitTorrent, iMule, I2PFox, I2P-Messenger, ...)</li>
|
||||||
<li><a href="http://pastethis.i2p">pastethis.i2p</a>: pastebin anônimo</li>
|
<li><a href="http://pastethis.i2p">pastethis.i2p</a>: pastebin anônimo</li>
|
||||||
</ul><br />
|
</ul><br />
|
||||||
|
@ -49,8 +49,6 @@
|
|||||||
<li class="tidylist"><b>Ресурсы Echelon-а</b><br><a href="http://echelon.i2p" target="_blank">echelon.i2p</a>: архив I2P
|
<li class="tidylist"><b>Ресурсы Echelon-а</b><br><a href="http://echelon.i2p" target="_blank">echelon.i2p</a>: архив I2P
|
||||||
софта с исходными текстами (где позволяет лицензия), информация об I2P, включая <a href="http://echelon.i2p/I2Pguide/index.html" target="_blank">руководство для начинающих</a> и пре-релизные девелоперские сборки I2P для тестирования.</li>
|
софта с исходными текстами (где позволяет лицензия), информация об I2P, включая <a href="http://echelon.i2p/I2Pguide/index.html" target="_blank">руководство для начинающих</a> и пре-релизные девелоперские сборки I2P для тестирования.</li>
|
||||||
<li class="tidylist"><b>Вики Ugha-и</b><br><a href="http://ugha.i2p/" target="_blank">ugha.i2p</a>: Открытая вики, которую может редактировать любой, с изобилием информации об I2P, помощью для начинающих, дополнительными ссылками на ресурсы сети и т.д.</li>
|
<li class="tidylist"><b>Вики Ugha-и</b><br><a href="http://ugha.i2p/" target="_blank">ugha.i2p</a>: Открытая вики, которую может редактировать любой, с изобилием информации об I2P, помощью для начинающих, дополнительными ссылками на ресурсы сети и т.д.</li>
|
||||||
<li class="tidylist"><b>I2P-to-Freenet прокси</b><br><a href="http://fproxy.tino.i2p" target="_blank">fproxy.tino.i2p</a>:
|
|
||||||
Взгляните в мир обмена данными закрытой сети <a href="http://freenetproject.org/" target="_blank">Freenet</a> с помощью I2P-to-Freenet прокси-сервера Tino.</li>
|
|
||||||
<li class="tidylist"><b>Планета I2P</b><br><a href="http://planet.i2p/" target="_blank">planet.i2p</a>: RSS-аггрегатор, который собирает новости и события в I2P и публикует их в одном месте. Хороший сайт, который можно посетить и увидеть сообщество в работе!</li>
|
<li class="tidylist"><b>Планета I2P</b><br><a href="http://planet.i2p/" target="_blank">planet.i2p</a>: RSS-аггрегатор, который собирает новости и события в I2P и публикует их в одном месте. Хороший сайт, который можно посетить и увидеть сообщество в работе!</li>
|
||||||
<li class="tidylist"><b>Поисковик по I2P-сайтам</b><br><a href="http://eepsites.i2p/" target="_blank">eepsites.i2p</a>: Анонимно-хостящийся поисковик по eepsite-ам.</li>
|
<li class="tidylist"><b>Поисковик по I2P-сайтам</b><br><a href="http://eepsites.i2p/" target="_blank">eepsites.i2p</a>: Анонимно-хостящийся поисковик по eepsite-ам.</li>
|
||||||
<li class="tidylist"><b>Здоровье сети I2P</b><br><a href="http://stats.i2p/cgi-bin/dashboard.cgi" target="_blank">stats.i2p</a>: посмотрите различные аспекты сетевой производительности с помощью этого сайта для мониторинга сети I2P, поддерживаемого zzz.</li>
|
<li class="tidylist"><b>Здоровье сети I2P</b><br><a href="http://stats.i2p/cgi-bin/dashboard.cgi" target="_blank">stats.i2p</a>: посмотрите различные аспекты сетевой производительности с помощью этого сайта для мониторинга сети I2P, поддерживаемого zzz.</li>
|
||||||
@ -90,7 +88,7 @@
|
|||||||
или посетить каналы
|
или посетить каналы
|
||||||
<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> во внутренней IRC-сети I2P (<code>irc.postman.i2p</code> или <code>irc.freshcoffee.i2p</code>). Эти каналы так же доступны извне I2P через <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> во внутренней IRC-сети I2P (<code>irc.postman.i2p</code> или <code>irc.freshcoffee.i2p</code>). Эти каналы так же доступны извне I2P через <a href="irc://irc.freenode.net/i2p">Freenode IRC</a>.</li>
|
||||||
|
|
||||||
<li class="tidylist"><b>Составление отчётов об ошибках</b><br>Если вы хотите сообщить об ошибке, пожалуйста заведите заявку на сайте <a href="http://trac.i2p2.i2p" target="_blank">trac.i2p2.i2p</a>. Для ведения дискуссий, относящихся к разработке, посетите <a href="http://zzz.i2p" target="_blank">форум разработчиков у zzz</a>, или приходите на <a href="irc://127.0.0.1:6668/i2p-dev">девелоперский канал</a> в IRC-сети I2P. Программисты могут захотеть посмотреть исходные коды в <a href="http://stats.i2p/cgi-bin/viewmtn/" target="_blank">веб-просмотрщике mtn-репозитория от zzz</a>, <a href="http://i2host.i2p/cgi-bin/view/branch/changes/i2p.i2p" target="_blank">инсталляции у Sponge-а</a>, или через <a href="http://trac.i2p2.i2p/browser" target="_blank">trac.i2p2.i2p</a>. Преимущественно, мы используем <a href="http://www.i2p2.i2p/monotone.html" target="_blank">monotone</a> для управления исходным кодом.</li>
|
<li class="tidylist"><b>Составление отчётов об ошибках</b><br>Если вы хотите сообщить об ошибке, пожалуйста заведите заявку на сайте <a href="http://trac.i2p2.i2p" target="_blank">trac.i2p2.i2p</a>. Для ведения дискуссий, относящихся к разработке, посетите <a href="http://zzz.i2p" target="_blank">форум разработчиков у zzz</a>, или приходите на <a href="irc://127.0.0.1:6668/i2p-dev">девелоперский канал</a> в IRC-сети I2P. Программисты могут захотеть посмотреть исходные коды в <a href="http://stats.i2p/cgi-bin/viewmtn/" target="_blank">веб-просмотрщике mtn-репозитория от zzz</a> или через <a href="http://trac.i2p2.i2p/browser" target="_blank">trac.i2p2.i2p</a>. Преимущественно, мы используем <a href="http://www.i2p2.i2p/monotone.html" target="_blank">monotone</a> для управления исходным кодом.</li>
|
||||||
|
|
||||||
<li class="tidylist"><b>Вовлекайтесь!</b><br>I2P разрабатывается и сопровождается в основном за счёт неоплачиваемого, добровольного участия членов сообщества. Мы рады принимать <a href="http://www.i2p2.i2p/donate.html" target="_blank">пожертвования</a>, которые идут на необходимые административные затраты и хостинг. Для разработчиков, ищущих материальные стимулы, у нас есть <a href="http://www.i2p2.i2p/bounties.html" target="_blank">денежные премии</a> за работу над некоторыми аспектами I2P, и мы всегда ищем <a href="http://www.i2p2.i2p/newdevelopers.html" target="_blank">Java программистов</a>, <a href="http://www.i2p2.i2p/newtranslators.html" target="_blank">переводчиков</a>, популяризаторов и пользователей, помогающих I2P расширяться. Чем больше I2P-сеть, тем больше общая выгода, поэтому простой рассказ об I2P своим друзьям (и помощь с установкой и настройкой если нужно) - уже большая помощь. Для получения дальнейшей информации о том, как вы можете принять участие, посетите <a href="http://www.i2p2.i2p/getinvolved.html" target="_blank">страницу для добровольцев</a> на официальном сайте.</li>
|
<li class="tidylist"><b>Вовлекайтесь!</b><br>I2P разрабатывается и сопровождается в основном за счёт неоплачиваемого, добровольного участия членов сообщества. Мы рады принимать <a href="http://www.i2p2.i2p/donate.html" target="_blank">пожертвования</a>, которые идут на необходимые административные затраты и хостинг. Для разработчиков, ищущих материальные стимулы, у нас есть <a href="http://www.i2p2.i2p/bounties.html" target="_blank">денежные премии</a> за работу над некоторыми аспектами I2P, и мы всегда ищем <a href="http://www.i2p2.i2p/newdevelopers.html" target="_blank">Java программистов</a>, <a href="http://www.i2p2.i2p/newtranslators.html" target="_blank">переводчиков</a>, популяризаторов и пользователей, помогающих I2P расширяться. Чем больше I2P-сеть, тем больше общая выгода, поэтому простой рассказ об I2P своим друзьям (и помощь с установкой и настройкой если нужно) - уже большая помощь. Для получения дальнейшей информации о том, как вы можете принять участие, посетите <a href="http://www.i2p2.i2p/getinvolved.html" target="_blank">страницу для добровольцев</a> на официальном сайте.</li>
|
||||||
</ul><div class="topness"><a href="#top">[Наверх]</a></div>
|
</ul><div class="topness"><a href="#top">[Наверх]</a></div>
|
||||||
|
@ -20,8 +20,6 @@ href="http://www.i2p2.de/">www.i2p2.de</a></li>
|
|||||||
sökmotor</li>
|
sökmotor</li>
|
||||||
<li><a href="http://ugha.i2p/">ugha.i2p</a>: ugha's eepsida, en
|
<li><a href="http://ugha.i2p/">ugha.i2p</a>: ugha's eepsida, en
|
||||||
wiki som alla kan förändra, innehåller många länkar</li>
|
wiki som alla kan förändra, innehåller många länkar</li>
|
||||||
<li><a href="http://fproxy.tino.i2p">fproxy.tino.i2p</a>:
|
|
||||||
Freenet proxy</li>
|
|
||||||
<li><a href="http://echelon.i2p">echelon.i2p</a>: programvaruförråd och information om I2P</li>
|
<li><a href="http://echelon.i2p">echelon.i2p</a>: programvaruförråd och information om I2P</li>
|
||||||
<li><a href="http://pastethis.i2p">pastethis.i2p</a>: anonym och säker pastebin</li>
|
<li><a href="http://pastethis.i2p">pastethis.i2p</a>: anonym och säker pastebin</li>
|
||||||
</ul><br>
|
</ul><br>
|
||||||
|
@ -9,7 +9,6 @@
|
|||||||
<li><a href="http://www.i2p2.i2p/index_zh.html">www.i2p2.i2p</a> 与镜像 <a href="http://i2p-projekt.i2p/index_zh.html">i2p-projekt.i2p</a>: 可以安全匿名的访问I2P官网 <a href="http://www.i2p2.de/index_zh.html">www.i2p2.de</a></li>
|
<li><a href="http://www.i2p2.i2p/index_zh.html">www.i2p2.i2p</a> 与镜像 <a href="http://i2p-projekt.i2p/index_zh.html">i2p-projekt.i2p</a>: 可以安全匿名的访问I2P官网 <a href="http://www.i2p2.de/index_zh.html">www.i2p2.de</a></li>
|
||||||
<li><a href="http://eepsites.i2p/">eepsites.i2p</a>: I2P网络里的 “Google” 可以用来搜索各个匿名小站</li>
|
<li><a href="http://eepsites.i2p/">eepsites.i2p</a>: I2P网络里的 “Google” 可以用来搜索各个匿名小站</li>
|
||||||
<li><a href="http://ugha.i2p/">ugha.i2p</a>:UGHA 的 I2P 小站,开放编辑的WIKI,有丰富的链接</li>
|
<li><a href="http://ugha.i2p/">ugha.i2p</a>:UGHA 的 I2P 小站,开放编辑的WIKI,有丰富的链接</li>
|
||||||
<li><a href="http://fproxy.tino.i2p/">fproxy.tino.i2p</a>:FREENET 代理</li>
|
|
||||||
<li><a href="http://echelon.i2p/">echelon.i2p</a>:软件存档及有关I2P的相关文档 (例如 I2P Messenger 基于I2P的匿名聊天工具等) </li>
|
<li><a href="http://echelon.i2p/">echelon.i2p</a>:软件存档及有关I2P的相关文档 (例如 I2P Messenger 基于I2P的匿名聊天工具等) </li>
|
||||||
<li><a href="http://pastethis.i2p/">pastethis.i2p</a>:安全匿名的公共剪贴板</li>
|
<li><a href="http://pastethis.i2p/">pastethis.i2p</a>:安全匿名的公共剪贴板</li>
|
||||||
</ul> <br>
|
</ul> <br>
|
||||||
|
@ -168,6 +168,10 @@ wrapper.logfile.maxfiles=2
|
|||||||
# Log Level for sys/event log output. (See docs for log levels)
|
# Log Level for sys/event log output. (See docs for log levels)
|
||||||
wrapper.syslog.loglevel=NONE
|
wrapper.syslog.loglevel=NONE
|
||||||
|
|
||||||
|
# these will shut down or crash the JVM
|
||||||
|
wrapper.signal.mode.usr1=IGNORE
|
||||||
|
wrapper.signal.mode.usr2=IGNORE
|
||||||
|
|
||||||
# choose what to do if the JVM kills itself based on the exit code
|
# choose what to do if the JVM kills itself based on the exit code
|
||||||
wrapper.on_exit.default=SHUTDOWN
|
wrapper.on_exit.default=SHUTDOWN
|
||||||
wrapper.on_exit.0=SHUTDOWN
|
wrapper.on_exit.0=SHUTDOWN
|
||||||
|
@ -488,9 +488,7 @@ public class Blocklist {
|
|||||||
for (int j = 0; j < paddr.size(); j++) {
|
for (int j = 0; j < paddr.size(); j++) {
|
||||||
RouterAddress pa = (RouterAddress) pladdr.get(j);
|
RouterAddress pa = (RouterAddress) pladdr.get(j);
|
||||||
if (pa == null) continue;
|
if (pa == null) continue;
|
||||||
Properties pprops = pa.getOptions();
|
String phost = pa.getOption("host");
|
||||||
if (pprops == null) continue;
|
|
||||||
String phost = pprops.getProperty("host");
|
|
||||||
if (phost == null) continue;
|
if (phost == null) continue;
|
||||||
if (oldphost != null && oldphost.equals(phost)) continue;
|
if (oldphost != null && oldphost.equals(phost)) continue;
|
||||||
oldphost = phost;
|
oldphost = phost;
|
||||||
|
@ -12,6 +12,7 @@ package net.i2p.router;
|
|||||||
* Defines the criteria for selecting a set of peers for use when searching the
|
* Defines the criteria for selecting a set of peers for use when searching the
|
||||||
* PeerManager
|
* PeerManager
|
||||||
*
|
*
|
||||||
|
* Only used by PeerTestJob, which may not have a point.
|
||||||
*/
|
*/
|
||||||
public class PeerSelectionCriteria {
|
public class PeerSelectionCriteria {
|
||||||
/** The peers will be used in a tunnel */
|
/** The peers will be used in a tunnel */
|
||||||
|
@ -60,7 +60,7 @@ import net.i2p.util.SimpleScheduler;
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public class Router implements RouterClock.ClockShiftListener {
|
public class Router implements RouterClock.ClockShiftListener {
|
||||||
private final Log _log;
|
private Log _log;
|
||||||
private final RouterContext _context;
|
private final RouterContext _context;
|
||||||
private final Map<String, String> _config;
|
private final Map<String, String> _config;
|
||||||
/** full path */
|
/** full path */
|
||||||
@ -77,9 +77,9 @@ public class Router implements RouterClock.ClockShiftListener {
|
|||||||
private ShutdownHook _shutdownHook;
|
private ShutdownHook _shutdownHook;
|
||||||
/** non-cancellable shutdown has begun */
|
/** non-cancellable shutdown has begun */
|
||||||
private volatile boolean _shutdownInProgress;
|
private volatile boolean _shutdownInProgress;
|
||||||
private final I2PThread _gracefulShutdownDetector;
|
private I2PThread _gracefulShutdownDetector;
|
||||||
private final RouterWatchdog _watchdog;
|
private RouterWatchdog _watchdog;
|
||||||
private final Thread _watchdogThread;
|
private Thread _watchdogThread;
|
||||||
|
|
||||||
public final static String PROP_CONFIG_FILE = "router.configLocation";
|
public final static String PROP_CONFIG_FILE = "router.configLocation";
|
||||||
|
|
||||||
@ -128,9 +128,17 @@ public class Router implements RouterClock.ClockShiftListener {
|
|||||||
System.setProperty("Dorg.mortbay.util.FileResource.checkAliases", "true");
|
System.setProperty("Dorg.mortbay.util.FileResource.checkAliases", "true");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Instantiation only. Starts no threads. Does not install updates.
|
||||||
|
* RouterContext is created but not initialized.
|
||||||
|
* You must call runRouter() after any constructor to start things up.
|
||||||
|
*/
|
||||||
public Router() { this(null, null); }
|
public Router() { this(null, null); }
|
||||||
|
|
||||||
public Router(Properties envProps) { this(null, envProps); }
|
public Router(Properties envProps) { this(null, envProps); }
|
||||||
|
|
||||||
public Router(String configFilename) { this(configFilename, null); }
|
public Router(String configFilename) { this(configFilename, null); }
|
||||||
|
|
||||||
public Router(String configFilename, Properties envProps) {
|
public Router(String configFilename, Properties envProps) {
|
||||||
_gracefulExitCode = -1;
|
_gracefulExitCode = -1;
|
||||||
_config = new ConcurrentHashMap();
|
_config = new ConcurrentHashMap();
|
||||||
@ -233,16 +241,20 @@ public class Router implements RouterClock.ClockShiftListener {
|
|||||||
String now = Long.toString(System.currentTimeMillis());
|
String now = Long.toString(System.currentTimeMillis());
|
||||||
_config.put("router.firstInstalled", now);
|
_config.put("router.firstInstalled", now);
|
||||||
_config.put("router.updateLastInstalled", now);
|
_config.put("router.updateLastInstalled", now);
|
||||||
|
// only compatible with new i2prouter script
|
||||||
|
_config.put("router.gracefulHUP", "true");
|
||||||
saveConfig();
|
saveConfig();
|
||||||
}
|
}
|
||||||
|
// ********* Start no threads before here ********* //
|
||||||
|
}
|
||||||
|
|
||||||
// This is here so that we can get the directory location from the context
|
/**
|
||||||
// for the zip file and the base location to unzip to.
|
* Initializes the RouterContext.
|
||||||
// If it does an update, it never returns.
|
* Starts some threads. Does not install updates.
|
||||||
// I guess it's better to have the other-router check above this, we don't want to
|
* All this was in the constructor.
|
||||||
// overwrite an existing running router's jar files. Other than ours.
|
* @since 0.8.12
|
||||||
installUpdates();
|
*/
|
||||||
|
private void startupStuff() {
|
||||||
// ********* Start no threads before here ********* //
|
// ********* Start no threads before here ********* //
|
||||||
//
|
//
|
||||||
// NOW we can start the ping file thread.
|
// NOW we can start the ping file thread.
|
||||||
@ -372,11 +384,18 @@ public class Router implements RouterClock.ClockShiftListener {
|
|||||||
|
|
||||||
public RouterContext getContext() { return _context; }
|
public RouterContext getContext() { return _context; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Initializes the RouterContext.
|
||||||
|
* Starts the threads. Does not install updates.
|
||||||
|
*/
|
||||||
void runRouter() {
|
void runRouter() {
|
||||||
|
if (_isAlive)
|
||||||
|
throw new IllegalStateException();
|
||||||
|
startupStuff();
|
||||||
_isAlive = true;
|
_isAlive = true;
|
||||||
_started = _context.clock().now();
|
_started = _context.clock().now();
|
||||||
try {
|
try {
|
||||||
Runtime.getRuntime().removeShutdownHook(_shutdownHook);
|
Runtime.getRuntime().addShutdownHook(_shutdownHook);
|
||||||
} catch (IllegalStateException ise) {}
|
} catch (IllegalStateException ise) {}
|
||||||
I2PThread.addOOMEventListener(_oomListener);
|
I2PThread.addOOMEventListener(_oomListener);
|
||||||
|
|
||||||
@ -987,9 +1006,12 @@ public class Router implements RouterClock.ClockShiftListener {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Cancel the JVM runtime hook before calling this.
|
* Cancel the JVM runtime hook before calling this.
|
||||||
|
* Called by the ShutdownHook.
|
||||||
* NOT to be called by others, use shutdown().
|
* NOT to be called by others, use shutdown().
|
||||||
*/
|
*/
|
||||||
public void shutdown2(int exitCode) {
|
public void shutdown2(int exitCode) {
|
||||||
|
_shutdownInProgress = true;
|
||||||
|
_log.log(Log.CRIT, "Starting final shutdown(" + exitCode + ')');
|
||||||
// So we can get all the way to the end
|
// So we can get all the way to the end
|
||||||
// No, you can't do Thread.currentThread.setDaemon(false)
|
// No, you can't do Thread.currentThread.setDaemon(false)
|
||||||
if (_killVMOnEnd) {
|
if (_killVMOnEnd) {
|
||||||
@ -1004,6 +1026,7 @@ public class Router implements RouterClock.ClockShiftListener {
|
|||||||
// Run the shutdown hooks first in case they want to send some goodbye messages
|
// Run the shutdown hooks first in case they want to send some goodbye messages
|
||||||
// Maybe we need a delay after this too?
|
// Maybe we need a delay after this too?
|
||||||
for (Runnable task : _context.getShutdownTasks()) {
|
for (Runnable task : _context.getShutdownTasks()) {
|
||||||
|
//System.err.println("Running shutdown task " + task.getClass());
|
||||||
if (_log.shouldLog(Log.WARN))
|
if (_log.shouldLog(Log.WARN))
|
||||||
_log.warn("Running shutdown task " + task.getClass());
|
_log.warn("Running shutdown task " + task.getClass());
|
||||||
try {
|
try {
|
||||||
@ -1098,7 +1121,7 @@ public class Router implements RouterClock.ClockShiftListener {
|
|||||||
//Runtime.getRuntime().halt(exitCode);
|
//Runtime.getRuntime().halt(exitCode);
|
||||||
// allow the Runtime shutdown hooks to execute
|
// allow the Runtime shutdown hooks to execute
|
||||||
Runtime.getRuntime().exit(exitCode);
|
Runtime.getRuntime().exit(exitCode);
|
||||||
} else {
|
} else if (System.getProperty("java.vendor").contains("Android")) {
|
||||||
Runtime.getRuntime().gc();
|
Runtime.getRuntime().gc();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1266,13 +1289,18 @@ public class Router implements RouterClock.ClockShiftListener {
|
|||||||
|
|
||||||
public static void main(String args[]) {
|
public static void main(String args[]) {
|
||||||
System.out.println("Starting I2P " + RouterVersion.FULL_VERSION);
|
System.out.println("Starting I2P " + RouterVersion.FULL_VERSION);
|
||||||
// installUpdates() moved to constructor so we can get file locations from the context
|
|
||||||
// installUpdates();
|
|
||||||
//verifyWrapperConfig();
|
//verifyWrapperConfig();
|
||||||
Router r = new Router();
|
Router r = new Router();
|
||||||
if ( (args != null) && (args.length == 1) && ("rebuild".equals(args[0])) ) {
|
if ( (args != null) && (args.length == 1) && ("rebuild".equals(args[0])) ) {
|
||||||
r.rebuildNewIdentity();
|
r.rebuildNewIdentity();
|
||||||
} else {
|
} else {
|
||||||
|
// This is here so that we can get the directory location from the context
|
||||||
|
// for the zip file and the base location to unzip to.
|
||||||
|
// If it does an update, it never returns.
|
||||||
|
// I guess it's better to have the other-router check above this, we don't want to
|
||||||
|
// overwrite an existing running router's jar files. Other than ours.
|
||||||
|
r.installUpdates();
|
||||||
|
// ********* Start no threads before here ********* //
|
||||||
r.runRouter();
|
r.runRouter();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1281,6 +1309,7 @@ public class Router implements RouterClock.ClockShiftListener {
|
|||||||
private static final String DELETE_FILE = "deletelist.txt";
|
private static final String DELETE_FILE = "deletelist.txt";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Context must be available.
|
||||||
* Unzip update file found in the router dir OR base dir, to the base dir
|
* Unzip update file found in the router dir OR base dir, to the base dir
|
||||||
*
|
*
|
||||||
* If we can't write to the base dir, complain.
|
* If we can't write to the base dir, complain.
|
||||||
|
@ -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 = 24;
|
public final static long BUILD = 1;
|
||||||
|
|
||||||
/** 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);
|
||||||
|
@ -41,7 +41,7 @@ public class PublishLocalRouterInfoJob extends JobImpl {
|
|||||||
RouterInfo ri = new RouterInfo(getContext().router().getRouterInfo());
|
RouterInfo ri = new RouterInfo(getContext().router().getRouterInfo());
|
||||||
if (_log.shouldLog(Log.DEBUG))
|
if (_log.shouldLog(Log.DEBUG))
|
||||||
_log.debug("Old routerInfo contains " + ri.getAddresses().size()
|
_log.debug("Old routerInfo contains " + ri.getAddresses().size()
|
||||||
+ " addresses and " + ri.getOptions().size() + " options");
|
+ " addresses and " + ri.getOptionsMap().size() + " options");
|
||||||
Properties stats = getContext().statPublisher().publishStatistics();
|
Properties stats = getContext().statPublisher().publishStatistics();
|
||||||
stats.setProperty(RouterInfo.PROP_NETWORK_ID, ""+Router.NETWORK_ID);
|
stats.setProperty(RouterInfo.PROP_NETWORK_ID, ""+Router.NETWORK_ID);
|
||||||
try {
|
try {
|
||||||
@ -60,7 +60,7 @@ public class PublishLocalRouterInfoJob extends JobImpl {
|
|||||||
getContext().router().setRouterInfo(ri);
|
getContext().router().setRouterInfo(ri);
|
||||||
if (_log.shouldLog(Log.INFO))
|
if (_log.shouldLog(Log.INFO))
|
||||||
_log.info("Newly updated routerInfo is published with " + stats.size()
|
_log.info("Newly updated routerInfo is published with " + stats.size()
|
||||||
+ "/" + ri.getOptions().size() + " options on "
|
+ "/" + ri.getOptionsMap().size() + " options on "
|
||||||
+ new Date(ri.getPublished()));
|
+ new Date(ri.getPublished()));
|
||||||
try {
|
try {
|
||||||
getContext().netDb().publish(ri);
|
getContext().netDb().publish(ri);
|
||||||
|
@ -133,8 +133,7 @@ class FloodfillMonitorJob extends JobImpl {
|
|||||||
if (ra == null)
|
if (ra == null)
|
||||||
happy = false;
|
happy = false;
|
||||||
else {
|
else {
|
||||||
Properties props = ra.getOptions();
|
if (ra.getOption("ihost0") != null)
|
||||||
if (props == null || props.getProperty("ihost0") != null)
|
|
||||||
happy = false;
|
happy = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user