forked from I2P_Developers/i2p.i2p
propagate from branch 'i2p.i2p.zzz.naming' (head 9626e0df682c8d5f706d2c814158ba451f3ebeb5)
to branch 'i2p.i2p' (head a3969e6c9c4fd5bfd69cd716ce0df191ad2af634)
This commit is contained in:
41
.tx/config
41
.tx/config
@ -1,7 +1,10 @@
|
||||
[I2P.i2ptunnel]
|
||||
source_file = apps/i2ptunnel/locale/messages_en.po
|
||||
source_lang = en
|
||||
trans.ar = apps/i2ptunnel/locale/messages_ar.po
|
||||
trans.de = apps/i2ptunnel/locale/messages_de.po
|
||||
trans.es = apps/i2ptunnel/locale/messages_es.po
|
||||
trans.fr = apps/i2ptunnel/locale/messages_fr.po
|
||||
trans.nl = apps/i2ptunnel/locale/messages_nl.po
|
||||
trans.ru = apps/i2ptunnel/locale/messages_ru.po
|
||||
trans.zh_CN = apps/i2ptunnel/locale/messages_zh.po
|
||||
@ -9,6 +12,7 @@ trans.zh_CN = apps/i2ptunnel/locale/messages_zh.po
|
||||
[I2P.routerconsole]
|
||||
source_file = apps/routerconsole/locale/messages_en.po
|
||||
source_lang = en
|
||||
trans.ar = apps/routerconsole/locale/messages_ar.po
|
||||
trans.de = apps/routerconsole/locale/messages_de.po
|
||||
trans.es = apps/routerconsole/locale/messages_es.po
|
||||
trans.fr = apps/routerconsole/locale/messages_fr.po
|
||||
@ -16,22 +20,10 @@ trans.nl = apps/routerconsole/locale/messages_nl.po
|
||||
trans.ru = apps/routerconsole/locale/messages_ru.po
|
||||
trans.zh_CN = apps/routerconsole/locale/messages_zh.po
|
||||
|
||||
[I2P.susidns]
|
||||
source_file = apps/susidns/locale/messages_en.po
|
||||
source_lang = en
|
||||
trans.de = apps/susidns/locale/messages_de.po
|
||||
trans.nl = apps/susidns/locale/messages_nl.po
|
||||
trans.ru = apps/susidns/locale/messages_ru.po
|
||||
trans.zh_CN = apps/susidns/locale/messages_zh.po
|
||||
|
||||
[I2P.susimail]
|
||||
source_file = apps/susimail/locale/messages_en.po
|
||||
source_lang = en
|
||||
trans.nl = apps/susimail/locale/messages_nl.po
|
||||
|
||||
[I2P.i2psnark]
|
||||
source_file = apps/i2psnark/locale/messages_en.po
|
||||
source_lang = en
|
||||
trans.ar = apps/i2psnark/locale/messages_ar.po
|
||||
trans.de = apps/i2psnark/locale/messages_de.po
|
||||
trans.es = apps/i2psnark/locale/messages_es.po
|
||||
trans.fr = apps/i2psnark/locale/messages_fr.po
|
||||
@ -40,13 +32,36 @@ trans.pt = apps/i2psnark/locale/messages_pt.po
|
||||
trans.ru = apps/i2psnark/locale/messages_ru.po
|
||||
trans.zh_CN = apps/i2psnark/locale/messages_zh.po
|
||||
|
||||
[I2P.susidns]
|
||||
source_file = apps/susidns/locale/messages_en.po
|
||||
source_lang = en
|
||||
trans.ar = apps/susidns/locale/messages_ar.po
|
||||
trans.de = apps/susidns/locale/messages_de.po
|
||||
trans.es = apps/susidns/locale/messages_es.po
|
||||
trans.fr = apps/susidns/locale/messages_fr.po
|
||||
trans.nl = apps/susidns/locale/messages_nl.po
|
||||
trans.ru = apps/susidns/locale/messages_ru.po
|
||||
trans.zh_CN = apps/susidns/locale/messages_zh.po
|
||||
|
||||
[I2P.desktopgui]
|
||||
source_file = apps/desktopgui/locale/messages_en.po
|
||||
source_lang = en
|
||||
trans.ar = apps/desktopgui/locale/messages_ar.po
|
||||
trans.de = apps/desktopgui/locale/messages_de.po
|
||||
trans.es = apps/desktopgui/locale/messages_es.po
|
||||
trans.fr = apps/desktopgui/locale/messages_fr.po
|
||||
trans.nl = apps/desktopgui/locale/messages_nl.po
|
||||
trans.ru = apps/desktopgui/locale/messages_ru.po
|
||||
trans.zh_CN = apps/desktopgui/locale/messages_zh.po
|
||||
|
||||
[I2P.susimail]
|
||||
source_file = apps/susimail/locale/messages_en.po
|
||||
source_lang = en
|
||||
trans.de = apps/susimail/locale/messages_de.po
|
||||
trans.es = apps/susimail/locale/messages_es.po
|
||||
trans.fr = apps/susimail/locale/messages_fr.po
|
||||
trans.nl = apps/susimail/locale/messages_nl.po
|
||||
|
||||
[main]
|
||||
host = http://www.transifex.net
|
||||
|
||||
|
@ -174,7 +174,7 @@ Applications:
|
||||
See licenses/LICENSE-Apache2.0.txt
|
||||
See licenses/NOTICE-Commons-Logging.txt
|
||||
|
||||
JRobin 1.4.0:
|
||||
JRobin 1.5.9.1:
|
||||
See licenses/LICENSE-LGPLv2.1.txt
|
||||
|
||||
Ministreaming Lib:
|
||||
|
55
apps/desktopgui/locale/messages_de.po
Normal file
55
apps/desktopgui/locale/messages_de.po
Normal file
@ -0,0 +1,55 @@
|
||||
# I2P
|
||||
# Copyright (C) 2009 The I2P Project
|
||||
# This file is distributed under the same license as the desktopgui package.
|
||||
# To contribute translations, see http://www.i2p2.de/newdevelopers
|
||||
# foo <foo@bar>, 2009.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: I2P\n"
|
||||
"Report-Msgid-Bugs-To: https://trac.i2p2.de/\n"
|
||||
"POT-Creation-Date: 2011-03-03 18:29+0000\n"
|
||||
"PO-Revision-Date: 2011-03-22 15:49+0000\n"
|
||||
"Last-Translator: blabla <blabla@trash-mail.com>\n"
|
||||
"Language-Team: German <>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: de\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
|
||||
|
||||
#: src/net/i2p/desktopgui/ExternalTrayManager.java:23
|
||||
msgid "Start I2P"
|
||||
msgstr "I2P starten"
|
||||
|
||||
#: src/net/i2p/desktopgui/ExternalTrayManager.java:38
|
||||
msgid "I2P is starting!"
|
||||
msgstr "I2P startet gerade!"
|
||||
|
||||
#: src/net/i2p/desktopgui/ExternalTrayManager.java:38
|
||||
msgid "Starting"
|
||||
msgstr "Startend"
|
||||
|
||||
#: src/net/i2p/desktopgui/InternalTrayManager.java:26
|
||||
msgid "Launch I2P Browser"
|
||||
msgstr "I2P-Browser öffnen"
|
||||
|
||||
#: src/net/i2p/desktopgui/InternalTrayManager.java:50
|
||||
msgid "Configure desktopgui"
|
||||
msgstr "Desktopgui konfigurieren"
|
||||
|
||||
#: src/net/i2p/desktopgui/InternalTrayManager.java:67
|
||||
msgid "Restart I2P"
|
||||
msgstr "I2P neustarten"
|
||||
|
||||
#: src/net/i2p/desktopgui/InternalTrayManager.java:85
|
||||
msgid "Stop I2P"
|
||||
msgstr "I2P beenden"
|
||||
|
||||
#: src/net/i2p/desktopgui/gui/DesktopguiConfigurationFrame.java:44
|
||||
msgid "Tray icon configuration"
|
||||
msgstr "Systemleistensymbol konfigurieren"
|
||||
|
||||
#: src/net/i2p/desktopgui/gui/DesktopguiConfigurationFrame.java:47
|
||||
msgid "Should tray icon be enabled?"
|
||||
msgstr "Systemleistensymbol aktivieren?"
|
56
apps/desktopgui/locale/messages_es.po
Normal file
56
apps/desktopgui/locale/messages_es.po
Normal file
@ -0,0 +1,56 @@
|
||||
# I2P
|
||||
# Copyright (C) 2009 The I2P Project
|
||||
# This file is distributed under the same license as the desktopgui package.
|
||||
# To contribute translations, see http://www.i2p2.de/newdevelopers
|
||||
# foo <foo@bar>, 2009.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: I2P\n"
|
||||
"Report-Msgid-Bugs-To: https://trac.i2p2.de/\n"
|
||||
"POT-Creation-Date: 2011-03-03 18:29+0000\n"
|
||||
"PO-Revision-Date: 2011-04-02 23:57+0100\n"
|
||||
"Last-Translator: mixxy <m1xxy@mail.i2p>\n"
|
||||
"Language-Team: Spanish (Castilian) <None>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: es\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
|
||||
|
||||
#: src/net/i2p/desktopgui/ExternalTrayManager.java:23
|
||||
msgid "Start I2P"
|
||||
msgstr "Iniciar I2P"
|
||||
|
||||
#: src/net/i2p/desktopgui/ExternalTrayManager.java:38
|
||||
msgid "I2P is starting!"
|
||||
msgstr "I2P está iniciando!"
|
||||
|
||||
#: src/net/i2p/desktopgui/ExternalTrayManager.java:38
|
||||
msgid "Starting"
|
||||
msgstr "Iniciando"
|
||||
|
||||
#: src/net/i2p/desktopgui/InternalTrayManager.java:26
|
||||
msgid "Launch I2P Browser"
|
||||
msgstr "Lanzar navegador I2P"
|
||||
|
||||
#: src/net/i2p/desktopgui/InternalTrayManager.java:50
|
||||
msgid "Configure desktopgui"
|
||||
msgstr "Configurar desktopgui"
|
||||
|
||||
#: src/net/i2p/desktopgui/InternalTrayManager.java:67
|
||||
msgid "Restart I2P"
|
||||
msgstr "Reiniciar I2P"
|
||||
|
||||
#: src/net/i2p/desktopgui/InternalTrayManager.java:85
|
||||
msgid "Stop I2P"
|
||||
msgstr "Detener I2P"
|
||||
|
||||
#: src/net/i2p/desktopgui/gui/DesktopguiConfigurationFrame.java:44
|
||||
msgid "Tray icon configuration"
|
||||
msgstr "Configuración del ícono de la barra de tareas"
|
||||
|
||||
#: src/net/i2p/desktopgui/gui/DesktopguiConfigurationFrame.java:47
|
||||
msgid "Should tray icon be enabled?"
|
||||
msgstr "¿Debería estar activado el ícono de la barra de tareas?"
|
||||
|
56
apps/desktopgui/locale/messages_fr.po
Normal file
56
apps/desktopgui/locale/messages_fr.po
Normal file
@ -0,0 +1,56 @@
|
||||
# I2P
|
||||
# Copyright (C) 2009 The I2P Project
|
||||
# This file is distributed under the same license as the desktopgui package.
|
||||
# To contribute translations, see http://www.i2p2.de/newdevelopers
|
||||
# foo <foo@bar>, 2009.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: I2P desktopgui\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2011-03-03 18:29+0000\n"
|
||||
"PO-Revision-Date: 2011-03-30 21:58+0100\n"
|
||||
"Last-Translator: magma <magma@mail.i2p>\n"
|
||||
"Language-Team: duck <duck@mail.i2p>\n"
|
||||
"Language: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
|
||||
|
||||
#: src/net/i2p/desktopgui/ExternalTrayManager.java:23
|
||||
msgid "Start I2P"
|
||||
msgstr "Démarrer I2P"
|
||||
|
||||
#: src/net/i2p/desktopgui/ExternalTrayManager.java:38
|
||||
msgid "I2P is starting!"
|
||||
msgstr "I2P démarre!"
|
||||
|
||||
#: src/net/i2p/desktopgui/ExternalTrayManager.java:38
|
||||
msgid "Starting"
|
||||
msgstr "Démarrage"
|
||||
|
||||
#: src/net/i2p/desktopgui/InternalTrayManager.java:26
|
||||
msgid "Launch I2P Browser"
|
||||
msgstr "Lancer le navigateur"
|
||||
|
||||
#: src/net/i2p/desktopgui/InternalTrayManager.java:50
|
||||
msgid "Configure desktopgui"
|
||||
msgstr "Configurer l'interface de bureau"
|
||||
|
||||
#: src/net/i2p/desktopgui/InternalTrayManager.java:67
|
||||
msgid "Restart I2P"
|
||||
msgstr "Redémarrer I2P"
|
||||
|
||||
#: src/net/i2p/desktopgui/InternalTrayManager.java:85
|
||||
msgid "Stop I2P"
|
||||
msgstr "Arrêter I2P"
|
||||
|
||||
#: src/net/i2p/desktopgui/gui/DesktopguiConfigurationFrame.java:44
|
||||
msgid "Tray icon configuration"
|
||||
msgstr "Configuration de l'icône de notification"
|
||||
|
||||
#: src/net/i2p/desktopgui/gui/DesktopguiConfigurationFrame.java:47
|
||||
msgid "Should tray icon be enabled?"
|
||||
msgstr "Activer l'icône de notification"
|
||||
|
@ -983,6 +983,8 @@ public class SnarkManager implements Snark.CompleteListener {
|
||||
} else if (info.getPieceLength(0) > Storage.MAX_PIECE_SIZE) {
|
||||
return _("Pieces are too large in \"{0}\" ({1}B), deleting it.", info.getName(), DataHelper.formatSize2(info.getPieceLength(0))) + ' ' +
|
||||
_("Limit is {0}B", DataHelper.formatSize2(Storage.MAX_PIECE_SIZE));
|
||||
} else if (info.getTotalLength() <= 0) {
|
||||
return _("Torrent \"{0}\" has no data, deleting it!", info.getName());
|
||||
} else if (info.getTotalLength() > Storage.MAX_TOTAL_SIZE) {
|
||||
System.out.println("torrent info: " + info.toString());
|
||||
List lengths = info.getLengths();
|
||||
|
@ -111,6 +111,9 @@ public class Storage
|
||||
lengthsList.add(Long.valueOf(length));
|
||||
}
|
||||
|
||||
if (total <= 0)
|
||||
throw new IOException("Torrent contains no data");
|
||||
|
||||
int pc_size = MIN_PIECE_SIZE;
|
||||
int pcs = (int) ((total - 1)/pc_size) + 1;
|
||||
while (pcs > MAX_PIECES && pc_size < MAX_PIECE_SIZE)
|
||||
|
@ -6,23 +6,22 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: I2P i2psnark\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"Project-Id-Version: I2P\n"
|
||||
"Report-Msgid-Bugs-To: https://trac.i2p2.de/\n"
|
||||
"POT-Creation-Date: 2011-03-03 18:28+0000\n"
|
||||
"PO-Revision-Date: 2011-01-03 00:58+0100\n"
|
||||
"PO-Revision-Date: 2011-04-03 01:46+0100\n"
|
||||
"Last-Translator: mixxy <m1xxy@mail.i2p>\n"
|
||||
"Language-Team: foo <foo@bar>\n"
|
||||
"Language: \n"
|
||||
"Language-Team: Spanish (Castilian) <None>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Poedit-Language: Spanish\n"
|
||||
"Language: es\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:307
|
||||
#, java-format
|
||||
msgid "Total uploaders limit changed to {0}"
|
||||
msgstr "Límite del número total de subidores cambiado a {0}"
|
||||
msgstr "Límite del número total de subidores ha cambiado a {0}"
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:309
|
||||
#, java-format
|
||||
@ -40,15 +39,13 @@ msgid "Minimum up bandwidth limit is {0}KBps"
|
||||
msgstr "El límite mínimo de ancho de banda para la subida está en {0} kbyte/s."
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:335
|
||||
#, fuzzy, java-format
|
||||
#, java-format
|
||||
msgid "Startup delay changed to {0}"
|
||||
msgstr "Demora del arranque cambiado a {0} minutos"
|
||||
msgstr "Tiempo de espera al inicio fue cambiada a {0}."
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:386
|
||||
msgid "I2CP and tunnel changes will take effect after stopping all torrents"
|
||||
msgstr ""
|
||||
"Cambios de I2CP y del túnel tomarán efecto despues de detener todos los "
|
||||
"torrents."
|
||||
msgstr "Cambios de I2CP y del túnel tomarán efecto despues de detener todos los torrents."
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:393
|
||||
msgid "Disconnecting old I2CP destination"
|
||||
@ -60,11 +57,8 @@ msgid "I2CP settings changed to {0}"
|
||||
msgstr "Preferencias de I2CP cambiadas a {0}"
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:402
|
||||
msgid ""
|
||||
"Unable to connect with the new settings, reverting to the old I2CP settings"
|
||||
msgstr ""
|
||||
"Conectarse no fue posíble con las nuevas preferencias I2CP, utilizaré las "
|
||||
"anteriores."
|
||||
msgid "Unable to connect with the new settings, reverting to the old I2CP settings"
|
||||
msgstr "Conectarse no fue posíble con las nuevas preferencias I2CP, utilizaré las anteriores."
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:406
|
||||
msgid "Unable to reconnect with the old settings!"
|
||||
@ -89,27 +83,20 @@ msgstr "Arranque automático desactivado"
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:437
|
||||
msgid "Enabled open trackers - torrent restart required to take effect."
|
||||
msgstr ""
|
||||
"Rastreadores abiertos activados - Para aplicar ello es necesario que "
|
||||
"reinicies los torrents."
|
||||
msgstr "Rastreadores abiertos activados - Para aplicar ello es necesario que reinicies los torrents."
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:439
|
||||
msgid "Disabled open trackers - torrent restart required to take effect."
|
||||
msgstr ""
|
||||
"Rastreadores abiertos desactivados - Para aplicar ello es necesario que "
|
||||
"reinicies los torrents."
|
||||
msgstr "Rastreadores abiertos desactivados - Para aplicar ello es necesario que reinicies los torrents."
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:447
|
||||
msgid "Open Tracker list changed - torrent restart required to take effect."
|
||||
msgstr ""
|
||||
"Lista de rastreadores abiertos cambiada - Para aplicar ello es necesario que "
|
||||
"reinicies los torrents."
|
||||
msgstr "Lista de rastreadores abiertos cambiada - Para aplicar ello es necesario que reinicies los torrents."
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:454
|
||||
#, java-format
|
||||
msgid "{0} theme loaded, return to main i2psnark page to view."
|
||||
msgstr ""
|
||||
"Tema {0} cargado. ¡Vuelve a la página principal de i2psnark para verlo!"
|
||||
msgstr "Tema {0} cargado. ¡Vuelve a la página principal de i2psnark para verlo!"
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:461
|
||||
msgid "Configuration unchanged."
|
||||
@ -139,34 +126,30 @@ msgstr "Error: No se ha podido añadir el torrent {0}."
|
||||
msgid "Cannot open \"{0}\""
|
||||
msgstr "No se puede abrir \"{0}\""
|
||||
|
||||
#. TODO - if the existing one is a magnet, delete it and add the metainfo instead?
|
||||
#. TODO - if the existing one is a magnet, delete it and add the metainfo
|
||||
#. instead?
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:586
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:661
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:716
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1976
|
||||
#, fuzzy, java-format
|
||||
#, java-format
|
||||
msgid "Torrent with this info hash is already running: {0}"
|
||||
msgstr "Torrent ya en marcha: {0}"
|
||||
msgstr "Ya hay un Torrent con este hash ejecutándose: {0}"
|
||||
|
||||
#. addMessage(_("Warning - No I2P trackers in \"{0}\", will announce to I2P open trackers and DHT only.", info.getName()));
|
||||
#. addMessage(_("Warning - No I2P trackers in \"{0}\", will announce to I2P
|
||||
#. open trackers and DHT only.", info.getName()));
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:593
|
||||
#, fuzzy, java-format
|
||||
msgid ""
|
||||
"Warning - No I2P trackers in \"{0}\", will announce to I2P open trackers "
|
||||
"only."
|
||||
msgstr ""
|
||||
"Advertencia - Se ignora rastreado no I2P en \"{0}\", anunciando sólo a los "
|
||||
"rastreadorse abiertos de I2P"
|
||||
#, java-format
|
||||
msgid "Warning - No I2P trackers in \"{0}\", will announce to I2P open trackers only."
|
||||
msgstr "Advertencia - No hay rastreadores de I2P en \"{0}\", se anunciará solamente a los rastreadores I2P abiertos."
|
||||
|
||||
#. addMessage(_("Warning - No I2P trackers in \"{0}\", and DHT and open trackers are disabled, you should enable open trackers or DHT before starting the torrent.", info.getName()));
|
||||
#. addMessage(_("Warning - No I2P trackers in \"{0}\", and DHT and open
|
||||
#. trackers are disabled, you should enable open trackers or DHT before
|
||||
#. starting the torrent.", info.getName()));
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:598
|
||||
#, fuzzy, java-format
|
||||
msgid ""
|
||||
"Warning - No I2P Trackers found in \"{0}\". Make sure Open Tracker is "
|
||||
"enabled before starting this torrent."
|
||||
msgstr ""
|
||||
"Advertencia - Se ignora rastreado no I2P en \"{0}\", rastreadores abiertos "
|
||||
"están desactivados. ¡Tienes que activarlos antes de iniciar el torrent!"
|
||||
#, java-format
|
||||
msgid "Warning - No I2P Trackers found in \"{0}\". Make sure Open Tracker is enabled before starting this torrent."
|
||||
msgstr "Advertencia - No se encuentran rastreadores de I2P en \"{0}\". Asegúrate de que OpenTracker esté activado antes de iniciar este torrent."
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:619
|
||||
#, java-format
|
||||
@ -177,7 +160,7 @@ msgstr "El archivo .torrent en \"{0}\" no es válido."
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1999
|
||||
#, java-format
|
||||
msgid "ERROR - Out of memory, cannot create torrent from {0}"
|
||||
msgstr ""
|
||||
msgstr "ERROR - Falta de memoria, no se puede crear un torrent de {0}."
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:635
|
||||
#, java-format
|
||||
@ -197,15 +180,13 @@ msgstr "Recogiendo {0}"
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:675
|
||||
#, java-format
|
||||
msgid ""
|
||||
"We have no saved peers and no other torrents are running. Fetch of {0} will "
|
||||
"not succeed until you start another torrent."
|
||||
msgstr ""
|
||||
msgid "We have no saved peers and no other torrents are running. Fetch of {0} will not succeed until you start another torrent."
|
||||
msgstr "No tenemos guardado ningún par y no se está activo ningún otro torrent. La obtención de {0} no tendrá éxito hasta que inicies otro torrent."
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:679
|
||||
#, fuzzy, java-format
|
||||
#, java-format
|
||||
msgid "Adding {0}"
|
||||
msgstr "Recogiendo {0}"
|
||||
msgstr "Añadiendo {0}"
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:726
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:749
|
||||
@ -222,9 +203,7 @@ msgstr "Hay demasiados archivos en \"{0}\", se borrará ({1}). "
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:974
|
||||
#, java-format
|
||||
msgid "Torrent file \"{0}\" cannot end in \".torrent\", deleting it!"
|
||||
msgstr ""
|
||||
"Archivo de datos del torrent \"{0}\" no puede terminar en \".torrent' y será "
|
||||
"borrado."
|
||||
msgstr "Archivo de datos del torrent \"{0}\" no puede terminar en \".torrent' y será borrado."
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:976
|
||||
#, java-format
|
||||
@ -249,8 +228,7 @@ msgstr "El límite es de \"{0}\"Bytes"
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:989
|
||||
#, java-format
|
||||
msgid "Torrents larger than {0}B are not supported yet, deleting \"{1}\""
|
||||
msgstr ""
|
||||
"Torrents más grandes que \"{0}\"Bytes aún no funcionan, se borrará \"{1}\"."
|
||||
msgstr "Torrents más grandes que \"{0}\"Bytes aún no funcionan, se borrará \"{1}\"."
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:1005
|
||||
#, java-format
|
||||
@ -269,9 +247,9 @@ msgid "Torrent removed: \"{0}\""
|
||||
msgstr "Torrent quitado: \"{0}\""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:1073
|
||||
#, fuzzy, java-format
|
||||
#, java-format
|
||||
msgid "Adding torrents in {0}"
|
||||
msgstr "Se añaden los torrents en {0} minutos ..."
|
||||
msgstr "Añadiendo torrents en {0}"
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:1122
|
||||
#, java-format
|
||||
@ -279,9 +257,9 @@ msgid "Download finished: {0}"
|
||||
msgstr "Terminada la descarga de \"{0}\""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:1170
|
||||
#, fuzzy, java-format
|
||||
#, java-format
|
||||
msgid "Metainfo received for {0}"
|
||||
msgstr "Torrent no se ha podido obtener de {0}"
|
||||
msgstr "Metainfo recibida para {0}"
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:1171
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:525
|
||||
@ -423,15 +401,15 @@ msgstr[0] "1 par conectado"
|
||||
msgstr[1] "{0} pares conectados"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:496
|
||||
#, fuzzy, java-format
|
||||
#, java-format
|
||||
msgid "Invalid URL: Must start with \"http://\", \"{0}\", or \"{1}\""
|
||||
msgstr "Dirección no válida - tiene que comenzar con http://"
|
||||
msgstr "URL no válida: debe comenzar con \"http://\", \"{0}\", o \"{1}\"."
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:544
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:571
|
||||
#, fuzzy, java-format
|
||||
#, java-format
|
||||
msgid "Magnet deleted: {0}"
|
||||
msgstr "Ha sido borrada la carpeta de datos: {0}"
|
||||
msgstr "Magnet eliminado: {0}"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:552
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:577
|
||||
@ -467,12 +445,8 @@ msgstr "Torrent creado para \"{0}\""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:655
|
||||
#, java-format
|
||||
msgid ""
|
||||
"Many I2P trackers require you to register new torrents before seeding - "
|
||||
"please do so before starting \"{0}\""
|
||||
msgstr ""
|
||||
"Muchos rastreadores en I2P requieren que te registres, antes de que puedas "
|
||||
"subir el torrent. Por favor, ¡hazlo antes de iniciar \"{0}\"!"
|
||||
msgid "Many I2P trackers require you to register new torrents before seeding - please do so before starting \"{0}\""
|
||||
msgstr "Muchos rastreadores en I2P requieren que te registres, antes de que puedas subir el torrent. Por favor, ¡hazlo antes de iniciar \"{0}\"!"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:657
|
||||
#, java-format
|
||||
@ -486,8 +460,7 @@ msgstr "No se puede crear un torrent para datos inexistentes: {0}"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:663
|
||||
msgid "Error creating torrent - you must enter a file or directory"
|
||||
msgstr ""
|
||||
"Error al crear el torrent - Tienes que especificar un archivo o una carpeta."
|
||||
msgstr "Error al crear el torrent - Tienes que especificar un archivo o una carpeta."
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:666
|
||||
msgid "Stopping all torrents and closing the I2P tunnel."
|
||||
@ -552,9 +525,8 @@ msgid "Stopped"
|
||||
msgstr "detenido"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:886
|
||||
#, fuzzy
|
||||
msgid "Torrent details"
|
||||
msgstr "Torrents"
|
||||
msgstr "Detalles del torrent"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:898
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1160
|
||||
@ -587,21 +559,15 @@ msgstr "Iniciar"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:982
|
||||
msgid "Remove the torrent from the active list, deleting the .torrent file"
|
||||
msgstr ""
|
||||
"Quita el torrent de la lista de los torrents activos borrando el archivo ."
|
||||
"torrent"
|
||||
msgstr "Quita el torrent de la lista de los torrents activos borrando el archivo .torrent"
|
||||
|
||||
#. Can't figure out how to escape double quotes inside the onclick string.
|
||||
#. Single quotes in translate strings with parameters must be doubled.
|
||||
#. Then the remaining single quite must be escaped
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:987
|
||||
#, java-format
|
||||
msgid ""
|
||||
"Are you sure you want to delete the file \\''{0}.torrent\\'' (downloaded "
|
||||
"data will not be deleted) ?"
|
||||
msgstr ""
|
||||
"¿Estás seguro de que quieres borrar el archivo \\''{0}.torrent\\''? (Datos "
|
||||
"bajados no se borrarán.)"
|
||||
msgid "Are you sure you want to delete the file \\''{0}.torrent\\'' (downloaded data will not be deleted) ?"
|
||||
msgstr "¿Estás seguro de que quieres borrar el archivo \\''{0}.torrent\\''? (Datos bajados no se borrarán.)"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:990
|
||||
msgid "Remove"
|
||||
@ -616,12 +582,8 @@ msgstr "Borrar el archivo torrent y el/los archivo(s) de datos pertenecientes"
|
||||
#. Then the remaining single quite must be escaped
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1006
|
||||
#, java-format
|
||||
msgid ""
|
||||
"Are you sure you want to delete the torrent \\''{0}\\'' and all downloaded "
|
||||
"data?"
|
||||
msgstr ""
|
||||
"¿Estás seguro de que quieres borrar el archivo torrent \\''{0}\\'' y todos "
|
||||
"los datos descargados de este torrent?"
|
||||
msgid "Are you sure you want to delete the torrent \\''{0}\\'' and all downloaded data?"
|
||||
msgstr "¿Estás seguro de que quieres borrar el archivo torrent \\''{0}\\'' y todos los datos descargados de este torrent?"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1009
|
||||
msgid "Delete"
|
||||
@ -649,7 +611,7 @@ msgstr "desinteresado (No tenemos las partes que el par quiere.)"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1101
|
||||
msgid "Choking (We are not allowing the peer to request pieces)"
|
||||
msgstr "Moderando (De momento no se le permite al par solicitar más partes)"
|
||||
msgstr "moderando (De momento no se le permite al par solicitar más partes)"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1159
|
||||
#, java-format
|
||||
@ -665,9 +627,8 @@ msgid "From URL"
|
||||
msgstr "URL fuente"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1193
|
||||
msgid ""
|
||||
"Enter the torrent file download URL (I2P only), magnet link, or maggot link"
|
||||
msgstr ""
|
||||
msgid "Enter the torrent file download URL (I2P only), magnet link, or maggot link"
|
||||
msgstr "Introduce la URL de descarga de torrent (I2P solamente), enlace magnet o un enlace maggot"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1198
|
||||
msgid "Add torrent"
|
||||
@ -680,23 +641,21 @@ msgstr "También puedes copiar archivos torrent a {0}."
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1203
|
||||
msgid "Removing a .torrent will cause it to stop."
|
||||
msgstr ""
|
||||
"Quitar un archivo torrent resultará en que se detenga el torrent "
|
||||
"perteneciente."
|
||||
msgstr "Quitar un archivo torrent resultará en que se detenga el torrent perteneciente."
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1226
|
||||
msgid "Create Torrent"
|
||||
msgstr "Crear un torrent"
|
||||
|
||||
#. out.write("From file: <input type=\"file\" name=\"newFile\" size=\"50\" value=\"" + newFile + "\" /><br>\n");
|
||||
#. out.write("From file: <input type=\"file\" name=\"newFile\" size=\"50\"
|
||||
#. value=\"" + newFile + "\" /><br>\n");
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1229
|
||||
msgid "Data to seed"
|
||||
msgstr "Datos para sembrar"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1233
|
||||
msgid "File or directory to seed (must be within the specified path)"
|
||||
msgstr ""
|
||||
"Archivo o carpeta para sembrar (tiene que estár en la carpeta especificada)"
|
||||
msgstr "Archivo o carpeta para sembrar (tiene que estár en la carpeta especificada)"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1235
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1684
|
||||
@ -709,9 +668,8 @@ msgstr "Selecciona un rastreador"
|
||||
|
||||
#. out.write(_("Open trackers and DHT only"));
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1242
|
||||
#, fuzzy
|
||||
msgid "Open trackers only"
|
||||
msgstr "Usar también rastreadores abiertos"
|
||||
msgstr "Sólo rastreadores abiertos"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1257
|
||||
msgid "or"
|
||||
@ -752,7 +710,7 @@ msgstr "Tema"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1312
|
||||
msgid "Startup delay"
|
||||
msgstr "Demora del arranque"
|
||||
msgstr "Tiempo de espera al arrancar"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1314
|
||||
msgid "minutes"
|
||||
@ -783,12 +741,8 @@ msgid "Use open trackers also"
|
||||
msgstr "Usar también rastreadores abiertos"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1358
|
||||
msgid ""
|
||||
"If checked, announce torrents to open trackers as well as the tracker listed "
|
||||
"in the torrent file"
|
||||
msgstr ""
|
||||
"Si está marcado, el torrent se anunciará a los rastreadores abiertos, además "
|
||||
"de a los rastreadores especificados."
|
||||
msgid "If checked, announce torrents to open trackers as well as the tracker listed in the torrent file"
|
||||
msgstr "Si está marcado, el torrent se anunciará a los rastreadores abiertos, además de a los rastreadores especificados."
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1362
|
||||
msgid "Open tracker announce URLs"
|
||||
@ -821,12 +775,12 @@ msgstr "Guardar ajustes"
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1436
|
||||
#, java-format
|
||||
msgid "Invalid magnet URL {0}"
|
||||
msgstr ""
|
||||
msgstr "URL de magnet no válida: {0}"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1470
|
||||
#, java-format
|
||||
msgid "Invalid info hash in magnet URL {0}"
|
||||
msgstr ""
|
||||
msgstr "Hash de información no válido en la URL magnet {0}"
|
||||
|
||||
#. * dummies for translation
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1500
|
||||
@ -844,9 +798,8 @@ msgstr[0] "1 túnel"
|
||||
msgstr[1] "{0} túneles"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1663
|
||||
#, fuzzy
|
||||
msgid "Completion"
|
||||
msgstr "completo"
|
||||
msgstr "Completado"
|
||||
|
||||
#. else unknown
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1667
|
||||
@ -855,21 +808,20 @@ msgid "Size"
|
||||
msgstr "Tamaño"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1672
|
||||
#, fuzzy
|
||||
msgid "Files"
|
||||
msgstr "Archivo"
|
||||
msgstr "Archivos"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1674
|
||||
msgid "Pieces"
|
||||
msgstr ""
|
||||
msgstr "Partes"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1675
|
||||
msgid "Piece size"
|
||||
msgstr ""
|
||||
msgstr "Tamaño de las partes"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1697
|
||||
msgid "Magnet link"
|
||||
msgstr ""
|
||||
msgstr "Enlace de magnet"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1714
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1753
|
||||
@ -945,84 +897,3 @@ msgstr "Torrent en {0} no era válido"
|
||||
msgid "Torrent was not retrieved from {0}"
|
||||
msgstr "Torrent no se ha podido obtener de {0}"
|
||||
|
||||
#~ msgid "Torrent file must originate from an I2P-based tracker"
|
||||
#~ msgstr "El archivo torrent debe incluir un rastreador I2P."
|
||||
|
||||
#~ msgid " theme locked and loaded."
|
||||
#~ msgstr "tema cargado"
|
||||
|
||||
#~ msgid "Hide All Attached Peers [connected/total in swarm]"
|
||||
#~ msgstr "Ocultar todos los pares conectados [conectados/todos]"
|
||||
|
||||
#~ msgid "Show All Attached Peers [connected/total in swarm]"
|
||||
#~ msgstr "Mostrar todos los pares conectados [conectados/todos]"
|
||||
|
||||
#~ msgid "Loaded Torrents"
|
||||
#~ msgstr "Torrents"
|
||||
|
||||
#~ msgid "Estimated Download Time"
|
||||
#~ msgstr "tiempo restante de descarga"
|
||||
|
||||
#~ msgid "1"
|
||||
#~ msgid_plural "{0}"
|
||||
#~ msgstr[0] "{0}"
|
||||
#~ msgstr[1] "{0}"
|
||||
|
||||
#~ msgid "Torrent file {0} does not exist"
|
||||
#~ msgstr "Archivo del torrent {0} no existe"
|
||||
|
||||
#~ msgid "Copying torrent to {0}"
|
||||
#~ msgstr "Copiando torrent a {0}"
|
||||
|
||||
#~ msgid "from {0}"
|
||||
#~ msgstr "de {0}"
|
||||
|
||||
#~ msgid "Downloading"
|
||||
#~ msgstr "descargando"
|
||||
|
||||
#~ msgid "FileSize"
|
||||
#~ msgstr "Tamaño"
|
||||
|
||||
#~ msgid "Download Status"
|
||||
#~ msgstr "Estado"
|
||||
|
||||
#~ msgid "size: {0}B"
|
||||
#~ msgstr "Tamaño: {0}Bytes"
|
||||
|
||||
#~ msgid "Directory to store torrents and data"
|
||||
#~ msgstr "Carpeta para guardar los archivos torrent y los datos"
|
||||
|
||||
#~ msgid "Do not download"
|
||||
#~ msgstr "No descargues"
|
||||
|
||||
#~ msgid "Details"
|
||||
#~ msgstr "Detalles"
|
||||
|
||||
#~ msgid "Cannot change the I2CP settings while torrents are active"
|
||||
#~ msgstr ""
|
||||
#~ "No se puede cammbiar los ajustes I2CP mientras estén activos los torrents"
|
||||
|
||||
#~ msgid "Non-i2p tracker in \"{0}\", deleting it from our list of trackers!"
|
||||
#~ msgstr ""
|
||||
#~ "Rastreador fuera de I2P en \"{0}\", borrando de la lista de rastreadores"
|
||||
|
||||
#~ msgid "{0} torrents"
|
||||
#~ msgstr "{0} Torrents"
|
||||
|
||||
#~ msgid "Uninteresting"
|
||||
#~ msgstr "no interesante"
|
||||
|
||||
#~ msgid "Choked"
|
||||
#~ msgstr "frenado"
|
||||
|
||||
#~ msgid "Uninterested"
|
||||
#~ msgstr "desinteresado"
|
||||
|
||||
#~ msgid "Choking"
|
||||
#~ msgstr "frenando"
|
||||
|
||||
#~ msgid "Custom tracker URL"
|
||||
#~ msgstr "URL especial del rastreador"
|
||||
|
||||
#~ msgid "Configure"
|
||||
#~ msgstr "Ajustes"
|
||||
|
@ -8,15 +8,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: I2P i2psnark\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2011-03-03 18:28+0000\n"
|
||||
"PO-Revision-Date: 2010-12-31 02:22+0100\n"
|
||||
"Last-Translator: mixxy <m1xxy@mail.i2p>\n"
|
||||
"POT-Creation-Date: 2011-05-02 11:08+0000\n"
|
||||
"PO-Revision-Date: 2011-05-19 07:39+0100\n"
|
||||
"Last-Translator: magma <magma@mail.i2p>\n"
|
||||
"Language-Team: foo <foo@bar>\n"
|
||||
"Language: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n>1\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n >= 2)\n"
|
||||
"X-Poedit-Language: French\n"
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:307
|
||||
@ -32,23 +32,21 @@ msgstr "La limite minimale agrégée des uploaders est : {0}"
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:321
|
||||
#, java-format
|
||||
msgid "Up BW limit changed to {0}KBps"
|
||||
msgstr "La limite d’upload modifiée : {0} Ko/s"
|
||||
msgstr "Limite d’envoi modifiée : {0} ko/s"
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:323
|
||||
#, java-format
|
||||
msgid "Minimum up bandwidth limit is {0}KBps"
|
||||
msgstr "La limite minimale d’upload est {0} Ko/s"
|
||||
msgstr "La limite minimale d’envoi est {0} ko/s"
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:335
|
||||
#, fuzzy, java-format
|
||||
#, java-format
|
||||
msgid "Startup delay changed to {0}"
|
||||
msgstr "Delais de démarrage modifié : {0} minutes"
|
||||
msgstr "Délai de démarrage modifié à {0} minutes"
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:386
|
||||
msgid "I2CP and tunnel changes will take effect after stopping all torrents"
|
||||
msgstr ""
|
||||
"Les modifications I2CP et des tunnels seront prise en compte après avoir "
|
||||
"arrêté tous les torrents"
|
||||
msgstr "Les modifications d'I2CP et des tunnels seront prise en compte après avoir arrêté tous les torrents"
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:393
|
||||
msgid "Disconnecting old I2CP destination"
|
||||
@ -60,11 +58,8 @@ msgid "I2CP settings changed to {0}"
|
||||
msgstr "Les paramètres I2CP ont été changés : {0}"
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:402
|
||||
msgid ""
|
||||
"Unable to connect with the new settings, reverting to the old I2CP settings"
|
||||
msgstr ""
|
||||
"Impossible de se connecter avec les nouveaux paramètres, retour à l'ancienne "
|
||||
"configuration I2CP"
|
||||
msgid "Unable to connect with the new settings, reverting to the old I2CP settings"
|
||||
msgstr "Impossible de se connecter avec les nouveaux paramètres, retour à l'ancienne configuration I2CP"
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:406
|
||||
msgid "Unable to reconnect with the old settings!"
|
||||
@ -77,42 +72,36 @@ msgstr "Reconnexion sur la nouvelle destination I2CP"
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:418
|
||||
#, java-format
|
||||
msgid "I2CP listener restarted for \"{0}\""
|
||||
msgstr "Listener I2CP redémarré pour \"{0}\""
|
||||
msgstr "Écouteur I2CP redémarré pour \"{0}\""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:429
|
||||
msgid "Enabled autostart"
|
||||
msgstr "Le démarrage automatique est activé"
|
||||
msgstr "Démarrage automatique activé"
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:431
|
||||
msgid "Disabled autostart"
|
||||
msgstr "Le démarrage automatique est désactivé"
|
||||
msgstr "Démarrage automatique désactivé"
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:437
|
||||
msgid "Enabled open trackers - torrent restart required to take effect."
|
||||
msgstr ""
|
||||
"Les open trackers sont activés - ceci a nécessité un redémarrage des "
|
||||
"torrents pour être pris en compte."
|
||||
msgstr "Open trackers activés - redémarrage des torrents requis pour prise en compte."
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:439
|
||||
msgid "Disabled open trackers - torrent restart required to take effect."
|
||||
msgstr ""
|
||||
"Les open trackers sont désactivés - ceci a nécessité un redémarrage des "
|
||||
"torrents pour être pris en compte."
|
||||
msgstr "Open trackers désactivés - redémarrage des torrents requis pour prise en compte."
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:447
|
||||
msgid "Open Tracker list changed - torrent restart required to take effect."
|
||||
msgstr ""
|
||||
"Liste des Open trackers modifiée - ceci nécessite un redémarrage des "
|
||||
"torrents pour être pris en compte"
|
||||
msgstr "Liste des Open trackers modifiée - redémarrage des torrents requis pour prise en compte"
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:454
|
||||
#, java-format
|
||||
msgid "{0} theme loaded, return to main i2psnark page to view."
|
||||
msgstr ""
|
||||
msgstr "Thème {0} chargé, revenez à la page d''accueil d''i2psnark pour voir comme il est beau !"
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:461
|
||||
msgid "Configuration unchanged."
|
||||
msgstr "La configuration n'a pas été modifiée"
|
||||
msgstr "Aucun changement de configuration."
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:471
|
||||
#, java-format
|
||||
@ -139,162 +128,152 @@ msgid "Cannot open \"{0}\""
|
||||
msgstr "Impossible d’ouvrir: \"{0}\""
|
||||
|
||||
#. TODO - if the existing one is a magnet, delete it and add the metainfo instead?
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:586
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:661
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:716
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:589
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:665
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:720
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1976
|
||||
#, fuzzy, java-format
|
||||
#, java-format
|
||||
msgid "Torrent with this info hash is already running: {0}"
|
||||
msgstr "Torrent déjà actif: {0}"
|
||||
msgstr "Un torrent avec cette empreinte est déjà actif: {0}"
|
||||
|
||||
#. addMessage(_("Warning - No I2P trackers in \"{0}\", will announce to I2P open trackers and DHT only.", info.getName()));
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:593
|
||||
#, fuzzy, java-format
|
||||
msgid ""
|
||||
"Warning - No I2P trackers in \"{0}\", will announce to I2P open trackers "
|
||||
"only."
|
||||
msgstr ""
|
||||
"Attention - Les trackers non-i2p dans \"{0}\" sont ignorés, seuls les open "
|
||||
"trackers I2P seront utilisés!"
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:596
|
||||
#, java-format
|
||||
msgid "Warning - No I2P trackers in \"{0}\", will announce to I2P open trackers only."
|
||||
msgstr "Attention - Les trackers non-i2p dans \"{0}\" sont ignorés, seuls les trackers ouverts I2P seront utilisés!"
|
||||
|
||||
#. addMessage(_("Warning - No I2P trackers in \"{0}\", and DHT and open trackers are disabled, you should enable open trackers or DHT before starting the torrent.", info.getName()));
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:598
|
||||
#, fuzzy, java-format
|
||||
msgid ""
|
||||
"Warning - No I2P Trackers found in \"{0}\". Make sure Open Tracker is "
|
||||
"enabled before starting this torrent."
|
||||
msgstr ""
|
||||
"Attention - Les trackers non-i2p dans \"{0}\" sont ignorés, et les open "
|
||||
"trackers sont désactivés, vous devez activer les open trackers avant de "
|
||||
"démarrer le torrent!"
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:601
|
||||
#, java-format
|
||||
msgid "Warning - No I2P Trackers found in \"{0}\". Make sure Open Tracker is enabled before starting this torrent."
|
||||
msgstr "Attention - aucun tracker i2p dans \"{0}\". Vous devez activer les open trackers avant de démarrer le torrent!"
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:619
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:622
|
||||
#, java-format
|
||||
msgid "Torrent in \"{0}\" is invalid"
|
||||
msgstr "Le torrent dans \"{0}\" est invalide"
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:624
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1999
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:627
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1998
|
||||
#, java-format
|
||||
msgid "ERROR - Out of memory, cannot create torrent from {0}"
|
||||
msgstr ""
|
||||
msgstr "ERREUR - Mémoire insuffisante, impossible de créer le torrent de {0}"
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:635
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:639
|
||||
#, java-format
|
||||
msgid "Torrent added and started: \"{0}\""
|
||||
msgstr "Torrent ajouté et démarré: \"{0}\""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:637
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:641
|
||||
#, java-format
|
||||
msgid "Torrent added: \"{0}\""
|
||||
msgstr "Torrent ajouté: \"{0}\""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:672
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:490
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:676
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:491
|
||||
#, java-format
|
||||
msgid "Fetching {0}"
|
||||
msgstr "Envoi {0}"
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:675
|
||||
#, java-format
|
||||
msgid ""
|
||||
"We have no saved peers and no other torrents are running. Fetch of {0} will "
|
||||
"not succeed until you start another torrent."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:679
|
||||
#, fuzzy, java-format
|
||||
msgid "Adding {0}"
|
||||
msgstr "Envoi {0}"
|
||||
#, java-format
|
||||
msgid "We have no saved peers and no other torrents are running. Fetch of {0} will not succeed until you start another torrent."
|
||||
msgstr "Aucun pair sauvegardé et aucun autre torrent en cours. Le téléchargement de {0} ne commencera que lorsque vous démarrerez un autre torrent."
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:726
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:749
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:1174
|
||||
#, fuzzy, java-format
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:683
|
||||
#, java-format
|
||||
msgid "Adding {0}"
|
||||
msgstr "Ajout {0}"
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:730
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:753
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:1180
|
||||
#, java-format
|
||||
msgid "Failed to copy torrent file to {0}"
|
||||
msgstr "Impossible de copier le torrent vers {0}"
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:972
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:976
|
||||
#, java-format
|
||||
msgid "Too many files in \"{0}\" ({1}), deleting it!"
|
||||
msgstr "Trop de fichiers dans \"{0}\" ({1}), suppression! "
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:974
|
||||
#, java-format
|
||||
msgid "Torrent file \"{0}\" cannot end in \".torrent\", deleting it!"
|
||||
msgstr ""
|
||||
"Le fichier torrent \"{0}\" ne peut pas se terminer par \".torrent\", "
|
||||
"suppression!"
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:976
|
||||
#, java-format
|
||||
msgid "No pieces in \"{0}\", deleting it!"
|
||||
msgstr "Pas de morceaux dans \"{0}\", suppression!"
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:978
|
||||
#, java-format
|
||||
msgid "Too many pieces in \"{0}\", limit is {1}, deleting it!"
|
||||
msgstr "Trop de morceaux dans \"{0}\" , la limite est {1}, suppression!"
|
||||
msgid "Torrent file \"{0}\" cannot end in \".torrent\", deleting it!"
|
||||
msgstr "Le fichier torrent \"{0}\" ne peut pas se terminer par \".torrent\", suppression!"
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:980
|
||||
#, java-format
|
||||
msgid "Pieces are too large in \"{0}\" ({1}B), deleting it."
|
||||
msgstr "Les morceaux sont trop larges dans \"{0}\" ({1}B), suppresion."
|
||||
msgid "No pieces in \"{0}\", deleting it!"
|
||||
msgstr "Pas de tronçon dans \"{0}\", suppression!"
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:981
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:982
|
||||
#, java-format
|
||||
msgid "Too many pieces in \"{0}\", limit is {1}, deleting it!"
|
||||
msgstr "Trop de tronçons dans \"{0}\" , la limite est {1}, suppression!"
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:984
|
||||
#, java-format
|
||||
msgid "Pieces are too large in \"{0}\" ({1}B), deleting it."
|
||||
msgstr "Les tronçons sont trop larges dans \"{0}\" ({1}B), suppression."
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:985
|
||||
#, java-format
|
||||
msgid "Limit is {0}B"
|
||||
msgstr "La limite est de \"{0}\"Octets"
|
||||
msgstr "La limite est de \"{0}\"octets"
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:989
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:987
|
||||
#, java-format
|
||||
msgid "Torrent \"{0}\" has no data, deleting it!"
|
||||
msgstr "Le fichier torrent \"{0}\" n'a pas de données, suppression!"
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:995
|
||||
#, java-format
|
||||
msgid "Torrents larger than {0}B are not supported yet, deleting \"{1}\""
|
||||
msgstr ""
|
||||
"Les torrents dont la taille est supérieure à \"{0}\"Octets ne sont pas "
|
||||
"encore supportés, suppression \"{1}\"."
|
||||
msgstr "Les torrents dont la taille est supérieure à \"{0}\"octets ne sont pas encore supportés, suppression \"{1}\"."
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:1005
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:1011
|
||||
#, java-format
|
||||
msgid "Error: Could not remove the torrent {0}"
|
||||
msgstr "Erreur: Impossible de supprimer le torrent \"{0}\""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:1026
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:1044
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:1032
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:1050
|
||||
#, java-format
|
||||
msgid "Torrent stopped: \"{0}\""
|
||||
msgstr "Torrent arrêté:\"{0}\""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:1065
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:1071
|
||||
#, java-format
|
||||
msgid "Torrent removed: \"{0}\""
|
||||
msgstr "Torrent supprimé:\"{0}\""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:1073
|
||||
#, fuzzy, java-format
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:1079
|
||||
#, java-format
|
||||
msgid "Adding torrents in {0}"
|
||||
msgstr "Ajouter des torrents dans {0} minutes"
|
||||
msgstr "Ajout des torrents dans {0}"
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:1122
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:1128
|
||||
#, java-format
|
||||
msgid "Download finished: {0}"
|
||||
msgstr "Téléchargement terminé:\"{0}\""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:1170
|
||||
#, fuzzy, java-format
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:1176
|
||||
#, java-format
|
||||
msgid "Metainfo received for {0}"
|
||||
msgstr "Le torrent n’a pas été reçu par {0}"
|
||||
msgstr "Metainfo reçue pour {0}"
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:1171
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:525
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:1177
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:526
|
||||
#, java-format
|
||||
msgid "Starting up torrent {0}"
|
||||
msgstr "Démarrage du torrent {0}"
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:1225
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:1231
|
||||
msgid "Unable to connect to I2P!"
|
||||
msgstr "Impossible de se connecter à I2P!"
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:1231
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:1237
|
||||
#, java-format
|
||||
msgid "Unable to add {0}"
|
||||
msgstr "Impossible d’ajouter {0}"
|
||||
@ -343,16 +322,15 @@ msgid "Torrent"
|
||||
msgstr "Torrent"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:310
|
||||
#, fuzzy
|
||||
msgid "Estimated time remaining"
|
||||
msgstr "Octets restants"
|
||||
msgstr "temps restant estimé"
|
||||
|
||||
# NOTE: purposely left blank to leave more room in the table header
|
||||
# msgstr "Temps restant"
|
||||
#. Translators: Please keep short or translate as " "
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:313
|
||||
msgid "ETA"
|
||||
msgstr " Temps"
|
||||
msgstr "Temps"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:317
|
||||
msgid "Downloaded"
|
||||
@ -388,82 +366,81 @@ msgstr "Vitesse"
|
||||
msgid "Up Rate"
|
||||
msgstr "Taux d'envoi"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:365
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:366
|
||||
msgid "Stop all torrents and the I2P tunnel"
|
||||
msgstr "Arrêter tous les torrents et le tunnel I2P"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:367
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:368
|
||||
msgid "Stop All"
|
||||
msgstr "Arrêter tout"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:376
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:377
|
||||
msgid "Start all torrents and the I2P tunnel"
|
||||
msgstr "Démarrer tous les torrents et le tunnel I2P"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:378
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:379
|
||||
msgid "Start All"
|
||||
msgstr "Démarrer tout"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:397
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:398
|
||||
msgid "No torrents loaded."
|
||||
msgstr "Aucun torrent chargé."
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:402
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:403
|
||||
msgid "Totals"
|
||||
msgstr "Totaux"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:404
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:405
|
||||
#, java-format
|
||||
msgid "1 torrent"
|
||||
msgid_plural "{0} torrents"
|
||||
msgstr[0] "1 torrent"
|
||||
msgstr[0] "{0} torrent"
|
||||
msgstr[1] "{0} torrents"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:407
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:408
|
||||
#, java-format
|
||||
msgid "1 connected peer"
|
||||
msgid_plural "{0} connected peers"
|
||||
msgstr[0] "1 pair connecté"
|
||||
msgstr[0] "{0} pair connecté"
|
||||
msgstr[1] "{0} pairs connectés"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:496
|
||||
#, fuzzy, java-format
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:497
|
||||
#, java-format
|
||||
msgid "Invalid URL: Must start with \"http://\", \"{0}\", or \"{1}\""
|
||||
msgstr "URL invalide - elle doit débuter par http://"
|
||||
msgstr "URL incorrecte - elle doit débuter par \"http://\", \"{0}\", ou \"{1}\""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:544
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:571
|
||||
#, fuzzy, java-format
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:545
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:572
|
||||
#, java-format
|
||||
msgid "Magnet deleted: {0}"
|
||||
msgstr "Répertoire des données effacé: {0}"
|
||||
msgstr "Magnet supprimé: {0}"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:552
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:577
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:553
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:578
|
||||
#, java-format
|
||||
msgid "Torrent file deleted: {0}"
|
||||
msgstr "Fichier torrent effacé: {0}"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:583
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:593
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:584
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:594
|
||||
#, java-format
|
||||
msgid "Data file deleted: {0}"
|
||||
msgstr "Fichier de données effacé: {0}"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:585
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:595
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:586
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:596
|
||||
#, java-format
|
||||
msgid "Data file could not be deleted: {0}"
|
||||
msgstr "Le fichier de données ne peut être effacé: {0}"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:604
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:605
|
||||
#, java-format
|
||||
msgid "Data dir deleted: {0}"
|
||||
msgstr "Répertoire des données effacé: {0}"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:637
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:638
|
||||
msgid "Error creating torrent - you must select a tracker"
|
||||
msgstr ""
|
||||
"Erreur lors de la création du torrent - vous devez sélectionner un tracker"
|
||||
msgstr "Erreur lors de la création du torrent - vous devez sélectionner un tracker"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:653
|
||||
#, java-format
|
||||
@ -472,12 +449,8 @@ msgstr "Torrent créé pour \"{0}\""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:655
|
||||
#, java-format
|
||||
msgid ""
|
||||
"Many I2P trackers require you to register new torrents before seeding - "
|
||||
"please do so before starting \"{0}\""
|
||||
msgstr ""
|
||||
"De nombreux trackers I2P nécessitent d’enregistrer les nouveaux torrents "
|
||||
"avant de seeder - faites-le avant de démarrer \"{0}\"!"
|
||||
msgid "Many I2P trackers require you to register new torrents before seeding - please do so before starting \"{0}\""
|
||||
msgstr "De nombreux trackers I2P nécessitent d’enregistrer les nouveaux torrents avant de seeder - faites-le avant de démarrer \"{0}\"!"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:657
|
||||
#, java-format
|
||||
@ -491,8 +464,7 @@ msgstr "Impossible de créer un torrent pour des données inexistantes: {0}"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:663
|
||||
msgid "Error creating torrent - you must enter a file or directory"
|
||||
msgstr ""
|
||||
"Erreur de création du torrent - vous devez saisir un fichier ou un répertoire"
|
||||
msgstr "Erreur de création du torrent - vous devez saisir un fichier ou un répertoire"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:666
|
||||
msgid "Stopping all torrents and closing the I2P tunnel."
|
||||
@ -523,8 +495,8 @@ msgstr "Erreur du tracker"
|
||||
#, java-format
|
||||
msgid "1 peer"
|
||||
msgid_plural "{0} peers"
|
||||
msgstr[0] "1 Pair"
|
||||
msgstr[1] "{0} Pairs"
|
||||
msgstr[0] "{0} pair"
|
||||
msgstr[1] "{0} pairs"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:819
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:824
|
||||
@ -557,15 +529,13 @@ msgid "Stopped"
|
||||
msgstr "Arrêté"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:886
|
||||
#, fuzzy
|
||||
msgid "Torrent details"
|
||||
msgstr "Torrents"
|
||||
msgstr "Détails du torrent"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:898
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1160
|
||||
#, fuzzy
|
||||
msgid "Info"
|
||||
msgstr "Ignore"
|
||||
msgstr "Info"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:913
|
||||
msgid "View files"
|
||||
@ -600,12 +570,8 @@ msgstr "Enlever le torrent de la liste active, suprression du fichier .torrent"
|
||||
#. Then the remaining single quite must be escaped
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:987
|
||||
#, java-format
|
||||
msgid ""
|
||||
"Are you sure you want to delete the file \\''{0}.torrent\\'' (downloaded "
|
||||
"data will not be deleted) ?"
|
||||
msgstr ""
|
||||
"Etes-vous certain de vouloir supprimer le fichier \\''{0}.torrent\\'' (les "
|
||||
"données déjà téléchargées ne seront pas supprimées) ?"
|
||||
msgid "Are you sure you want to delete the file \\''{0}.torrent\\'' (downloaded data will not be deleted) ?"
|
||||
msgstr "Êtes-vous certain de vouloir supprimer le fichier \\''{0}.torrent\\'' (les données déjà téléchargées ne seront pas supprimées) ?"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:990
|
||||
msgid "Remove"
|
||||
@ -613,20 +579,15 @@ msgstr "Enlever"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1001
|
||||
msgid "Delete the .torrent file and the associated data file(s)"
|
||||
msgstr ""
|
||||
"Supprimer le fichier .torrent et le(s) fichier(s) de données associé(s)"
|
||||
msgstr "Supprimer le fichier .torrent et le(s) fichier(s) de données associé(s)"
|
||||
|
||||
#. Can't figure out how to escape double quotes inside the onclick string.
|
||||
#. Single quotes in translate strings with parameters must be doubled.
|
||||
#. Then the remaining single quite must be escaped
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1006
|
||||
#, java-format
|
||||
msgid ""
|
||||
"Are you sure you want to delete the torrent \\''{0}\\'' and all downloaded "
|
||||
"data?"
|
||||
msgstr ""
|
||||
"Etes-vous certain de vouloir supprimer le torrent \\''{0}\\'' ainsi que "
|
||||
"toutes les données téléchargées ?"
|
||||
msgid "Are you sure you want to delete the torrent \\''{0}\\'' and all downloaded data?"
|
||||
msgstr "Êtes-vous certain de vouloir supprimer le torrent \\''{0}\\'' ainsi que toutes les données téléchargées ?"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1009
|
||||
msgid "Delete"
|
||||
@ -642,24 +603,24 @@ msgstr "Seed"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1077
|
||||
msgid "Uninteresting (The peer has no pieces we need)"
|
||||
msgstr "aucun intérêt (le pair n'a aucun morceau utile)"
|
||||
msgstr "Aucun intérêt (le pair n'a aucun tronçon utile)"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1079
|
||||
msgid "Choked (The peer is not allowing us to request pieces)"
|
||||
msgstr "bridé (le pair ne nous permet pas de demander un morceau)"
|
||||
msgstr "bridé (le pair ne nous permet pas de demander des tronçons)"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1099
|
||||
msgid "Uninterested (We have no pieces the peer needs)"
|
||||
msgstr "aucun intérêt (nous n'avons aucun morceau utile au pair)"
|
||||
msgstr "Pas intéressé (aucun tronçon utile au pair)"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1101
|
||||
msgid "Choking (We are not allowing the peer to request pieces)"
|
||||
msgstr "bridage (nous ne permettons pas au pair de demander un morceau)"
|
||||
msgstr "bridage (nous ne permettons pas au pair de demander un tronçon)"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1159
|
||||
#, fuzzy, java-format
|
||||
#, java-format
|
||||
msgid "Details at {0} tracker"
|
||||
msgstr "Sélectionner un tracker"
|
||||
msgstr "Détails au tracker {0}"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1188
|
||||
msgid "Add Torrent"
|
||||
@ -667,12 +628,11 @@ msgstr "Ajouter torrent"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1190
|
||||
msgid "From URL"
|
||||
msgstr "Depuis l'url"
|
||||
msgstr "Depuis l'URL"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1193
|
||||
msgid ""
|
||||
"Enter the torrent file download URL (I2P only), magnet link, or maggot link"
|
||||
msgstr ""
|
||||
msgid "Enter the torrent file download URL (I2P only), magnet link, or maggot link"
|
||||
msgstr "Entrez l'URL (I2P uniquement) de téléchargement du fichier torrent, du lien magnet ou maggot."
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1198
|
||||
msgid "Add torrent"
|
||||
@ -685,7 +645,7 @@ msgstr "Vous pouvez aussi copier les fichiers .torrent vers {0}."
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1203
|
||||
msgid "Removing a .torrent will cause it to stop."
|
||||
msgstr "La suppression d'un fichier .torrent entraine l'arrêt du torrent"
|
||||
msgstr "La suppression d'un fichier .torrent entraîne l'arrêt du torrent."
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1226
|
||||
msgid "Create Torrent"
|
||||
@ -711,9 +671,8 @@ msgstr "Sélectionner un tracker"
|
||||
|
||||
#. out.write(_("Open trackers and DHT only"));
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1242
|
||||
#, fuzzy
|
||||
msgid "Open trackers only"
|
||||
msgstr "Utiliser les open trackers aussi"
|
||||
msgstr "Trackers ouverts seulement"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1257
|
||||
msgid "or"
|
||||
@ -721,7 +680,7 @@ msgstr "ou"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1260
|
||||
msgid "Specify custom tracker announce URL"
|
||||
msgstr "Spécifier une URL personnalisée d'annonce de tracker"
|
||||
msgstr "Spécifier une URL d'annonce de tracker personnalisé"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1263
|
||||
msgid "Create torrent"
|
||||
@ -738,8 +697,7 @@ msgstr "Répertoire de données"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1287
|
||||
msgid "Edit i2psnark.config and restart to change"
|
||||
msgstr ""
|
||||
"Editez i2psnark.config et redémarrez pour prendre en compte les modifications"
|
||||
msgstr "Editez i2psnark.config et redémarrez pour prendre en compte les modifications"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1291
|
||||
msgid "Auto start"
|
||||
@ -747,11 +705,11 @@ msgstr "Démarrage automatique"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1295
|
||||
msgid "If checked, automatically start torrents that are added"
|
||||
msgstr "Si coché, les torrents démarrerons automatiquement lors de l'ajout"
|
||||
msgstr "Si coché, les torrents démarreront automatiquement lors de l'ajout"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1299
|
||||
msgid "Theme"
|
||||
msgstr ""
|
||||
msgstr "Thème"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1312
|
||||
msgid "Startup delay"
|
||||
@ -786,16 +744,12 @@ msgid "Use open trackers also"
|
||||
msgstr "Utiliser les open trackers aussi"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1358
|
||||
msgid ""
|
||||
"If checked, announce torrents to open trackers as well as the tracker listed "
|
||||
"in the torrent file"
|
||||
msgstr ""
|
||||
"Si coché, les torrents seront annoncés vers les open trackers ainsi que vers "
|
||||
"les trackers indiqués dans le fichier torrent"
|
||||
msgid "If checked, announce torrents to open trackers as well as the tracker listed in the torrent file"
|
||||
msgstr "Si coché, les torrents seront annoncés vers les open trackers ainsi que vers les trackers indiqués dans le fichier torrent"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1362
|
||||
msgid "Open tracker announce URLs"
|
||||
msgstr "URL d'annonce open tracker"
|
||||
msgstr "URLs d'annonce open tracker"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1374
|
||||
msgid "Inbound Settings"
|
||||
@ -824,32 +778,31 @@ msgstr "Sauvegarder la configuration"
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1436
|
||||
#, java-format
|
||||
msgid "Invalid magnet URL {0}"
|
||||
msgstr ""
|
||||
msgstr "URL magnet {0} incorrecte"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1470
|
||||
#, java-format
|
||||
msgid "Invalid info hash in magnet URL {0}"
|
||||
msgstr ""
|
||||
msgstr "Info d'empreinte incorrecte dans l'URL magnet {0}"
|
||||
|
||||
#. * dummies for translation
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1500
|
||||
#, java-format
|
||||
msgid "1 hop"
|
||||
msgid_plural "{0} hops"
|
||||
msgstr[0] "1 saut"
|
||||
msgstr[0] "{0} saut"
|
||||
msgstr[1] "{0} sauts"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1501
|
||||
#, java-format
|
||||
msgid "1 tunnel"
|
||||
msgid_plural "{0} tunnels"
|
||||
msgstr[0] "1 tunnel"
|
||||
msgstr[0] "{0} tunnel"
|
||||
msgstr[1] "{0} tunnels"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1663
|
||||
#, fuzzy
|
||||
msgid "Completion"
|
||||
msgstr "Complet"
|
||||
msgstr "Finalisation"
|
||||
|
||||
#. else unknown
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1667
|
||||
@ -858,21 +811,20 @@ msgid "Size"
|
||||
msgstr "Taille"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1672
|
||||
#, fuzzy
|
||||
msgid "Files"
|
||||
msgstr "Fichier"
|
||||
msgstr "Fichiers"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1674
|
||||
msgid "Pieces"
|
||||
msgstr ""
|
||||
msgstr "Tronçons"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1675
|
||||
msgid "Piece size"
|
||||
msgstr ""
|
||||
msgstr "Taille des tronçons"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1697
|
||||
msgid "Magnet link"
|
||||
msgstr ""
|
||||
msgstr "Lien magnet"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1714
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1753
|
||||
@ -904,9 +856,8 @@ msgid "bytes remaining"
|
||||
msgstr "Octets restants"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1806
|
||||
#, fuzzy
|
||||
msgid "Open"
|
||||
msgstr "Ouvrir fichier"
|
||||
msgstr "Ouvrir le fichier"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1832
|
||||
msgid "High"
|
||||
@ -918,7 +869,7 @@ msgstr "Normal"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1842
|
||||
msgid "Skip"
|
||||
msgstr ""
|
||||
msgstr "Ignorer"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1851
|
||||
msgid "Save priorities"
|
||||
@ -927,27 +878,27 @@ msgstr "Sauvegarder les priorités"
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1967
|
||||
#, java-format
|
||||
msgid "Torrent fetched from {0}"
|
||||
msgstr "Torrent envoyé de {0}"
|
||||
msgstr "Torrent reçu de {0}"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1989
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1988
|
||||
#, java-format
|
||||
msgid "Torrent already running: {0}"
|
||||
msgstr "Torrent déjà actif: {0}"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1991
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1990
|
||||
#, java-format
|
||||
msgid "Torrent already in the queue: {0}"
|
||||
msgstr "Torrent déjà dans la queue: {0}"
|
||||
msgstr "Torrent déjà dans la file d''attente: {0}"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1997
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1996
|
||||
#, java-format
|
||||
msgid "Torrent at {0} was not valid"
|
||||
msgstr "Le torrent {0} n'est pas valide"
|
||||
msgstr "Le torrent {0} est invalide"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2004
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2003
|
||||
#, java-format
|
||||
msgid "Torrent was not retrieved from {0}"
|
||||
msgstr "Le torrent n’a pas été reçu par {0}"
|
||||
msgstr "Le torrent n’a pas été reçu de {0}"
|
||||
|
||||
#~ msgid "Torrent file must originate from an I2P-based tracker"
|
||||
#~ msgstr "Le fichier torrent doit provenir d'un tracker I2P"
|
||||
|
@ -116,11 +116,6 @@ public class I2PTunnelHTTPServer extends I2PTunnelServer {
|
||||
// according to rfc2616 s14.3, this *should* force identity, even if
|
||||
// "identity;q=1, *;q=0" didn't.
|
||||
setEntry(headers, "Accept-encoding", "");
|
||||
String modifiedHeader = formatHeaders(headers, command);
|
||||
|
||||
//String modifiedHeader = getModifiedHeader(socket);
|
||||
if (_log.shouldLog(Log.DEBUG))
|
||||
_log.debug("Modified header: [" + modifiedHeader + "]");
|
||||
|
||||
socket.setReadTimeout(readTimeout);
|
||||
Socket s = new Socket(remoteHost, remotePort);
|
||||
@ -138,9 +133,15 @@ public class I2PTunnelHTTPServer extends I2PTunnelServer {
|
||||
}
|
||||
if (_log.shouldLog(Log.INFO))
|
||||
_log.info("HTTP server encoding header: " + enc + "/" + altEnc);
|
||||
boolean useGZIP = ( (enc != null) && (enc.indexOf("x-i2p-gzip") >= 0) );
|
||||
if ( (!useGZIP) && (altEnc != null) && (altEnc.indexOf("x-i2p-gzip") >= 0) )
|
||||
useGZIP = true;
|
||||
boolean alt = (altEnc != null) && (altEnc.indexOf("x-i2p-gzip") >= 0);
|
||||
boolean useGZIP = alt || ( (enc != null) && (enc.indexOf("x-i2p-gzip") >= 0) );
|
||||
// Don't pass this on, outproxies should strip so I2P traffic isn't so obvious but they probably don't
|
||||
if (alt)
|
||||
headers.remove("X-Accept-encoding");
|
||||
|
||||
String modifiedHeader = formatHeaders(headers, command);
|
||||
if (_log.shouldLog(Log.DEBUG))
|
||||
_log.debug("Modified header: [" + modifiedHeader + "]");
|
||||
|
||||
if (allowGZIP && useGZIP) {
|
||||
I2PAppThread req = new I2PAppThread(
|
||||
|
763
apps/i2ptunnel/locale/messages_es.po
Normal file
763
apps/i2ptunnel/locale/messages_es.po
Normal file
@ -0,0 +1,763 @@
|
||||
# I2P
|
||||
# Copyright (C) 2009 The I2P Project
|
||||
# This file is distributed under the same license as the i2ptunnel package.
|
||||
# To contribute translations, see http://www.i2p2.de/newdevelopers
|
||||
# foo <foo@bar>, 2009.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: I2P\n"
|
||||
"Report-Msgid-Bugs-To: https://trac.i2p2.de/\n"
|
||||
"POT-Creation-Date: 2011-03-03 18:29+0000\n"
|
||||
"PO-Revision-Date: 2011-04-18 21:39+0100\n"
|
||||
"Last-Translator: mixxy <m1xxy@mail.i2p>\n"
|
||||
"Language-Team: Spanish (Castilian) <None>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: es\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:474
|
||||
#, java-format
|
||||
msgid "To visit the destination in your host database, click <a href=\"{0}\">here</a>. To visit the conflicting addresshelper destination, click <a href=\"{1}\">here</a>."
|
||||
msgstr "Para visitar el destino en la base de datos de hosts, haga clic <a href=\"{0}\">aquí</a> . Para visitar el destino del ayudante de direcciones en conflicto, haga clic <a href=\"{1}\">aquí</a> ."
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:931
|
||||
msgid "Click a link below to look for an address helper by using a \"jump\" service:"
|
||||
msgstr "Haga clic en un enlace de debajo para buscar un ayudante de direcciones mediante el uso de un servicio de \"salto\":"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/EditBean.java:326
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/EditBean.java:336
|
||||
msgid "internal"
|
||||
msgstr "interno"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:171
|
||||
msgid "Invalid form submission, probably because you used the 'back' or 'reload' button on your browser. Please resubmit."
|
||||
msgstr "El formulario presentado es inválido, probablemente porque ha utilizado el botón 'atrás' o 'recargar' de su navegador. Por favor, vuelva a enviarlo."
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:218
|
||||
msgid "Configuration reloaded for all tunnels"
|
||||
msgstr "Configuración recargada para todos los túneles"
|
||||
|
||||
#. and give them something to look at in any case
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:230
|
||||
msgid "Starting tunnel"
|
||||
msgstr "Inicializando el túnel"
|
||||
|
||||
#. and give them something to look at in any case
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:243
|
||||
msgid "Stopping tunnel"
|
||||
msgstr "Deteniendo el túnel"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:311
|
||||
msgid "Configuration changes saved"
|
||||
msgstr "Cambios en la configuración guardados"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:314
|
||||
msgid "Failed to save configuration"
|
||||
msgstr "No se pudo guardar la configuración"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:398
|
||||
msgid "New Tunnel"
|
||||
msgstr "Nuevo túnel"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:418
|
||||
msgid "Standard client"
|
||||
msgstr "Cliente estándar"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:419
|
||||
msgid "HTTP client"
|
||||
msgstr "Cliente HTTP"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:420
|
||||
msgid "IRC client"
|
||||
msgstr "Cliente IRC"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:421
|
||||
msgid "Standard server"
|
||||
msgstr "Servidor estándar"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:422
|
||||
msgid "HTTP server"
|
||||
msgstr "Servidor HTTP"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:423
|
||||
msgid "SOCKS 4/4a/5 proxy"
|
||||
msgstr "Proxy SOCKS 4/4a/5"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:424
|
||||
msgid "SOCKS IRC proxy"
|
||||
msgstr "Proxy IRC SOCKS"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:425
|
||||
msgid "CONNECT/SSL/HTTPS proxy"
|
||||
msgstr "Proxy CONNECT/SSL/HTTPS"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:426
|
||||
msgid "IRC server"
|
||||
msgstr "Servidor de IRC"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:427
|
||||
msgid "Streamr client"
|
||||
msgstr "Cliente Streamr"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:428
|
||||
msgid "Streamr server"
|
||||
msgstr "Servidor Streamr"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:429
|
||||
msgid "HTTP bidir"
|
||||
msgstr "HTTP bidir"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:517
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:290
|
||||
msgid "Host not set"
|
||||
msgstr "Host no establecido"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:521
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:272
|
||||
msgid "Port not set"
|
||||
msgstr "Puerto no establecido"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:73
|
||||
msgid "I2P Tunnel Manager - Edit Client Tunnel"
|
||||
msgstr "Gestor del túneles I2P - Editar túnel de cliente"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:93
|
||||
msgid "Edit proxy settings"
|
||||
msgstr "Editar configuración de proxy"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:101
|
||||
msgid "New proxy settings"
|
||||
msgstr "Nueva configuración de proxy"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:112
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:112
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:107
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:121
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:242
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:257
|
||||
msgid "Name"
|
||||
msgstr "Nombre"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:116
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:116
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:246
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:279
|
||||
msgid "Type"
|
||||
msgstr "Tipo"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:120
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:120
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:226
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:386
|
||||
msgid "Description"
|
||||
msgstr "Descripción"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:126
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:136
|
||||
msgid "Target"
|
||||
msgstr "Objetivo"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:130
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:132
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:162
|
||||
msgid "Access Point"
|
||||
msgstr "Punto de Acceso"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:137
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:150
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:192
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:153
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:167
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:213
|
||||
msgid "required"
|
||||
msgstr "requerido"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:159
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:178
|
||||
msgid "Reachable by"
|
||||
msgstr "Accesible por"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:180
|
||||
msgid "Outproxies"
|
||||
msgstr "Outproxis"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:187
|
||||
msgid "Tunnel Destination"
|
||||
msgstr "Túnel del Destino"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:199
|
||||
msgid "name or destination"
|
||||
msgstr "nombre o destino"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:202
|
||||
msgid "b32 not recommended"
|
||||
msgstr "b32 no recomendado"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:208
|
||||
msgid "Shared Client"
|
||||
msgstr "Túnel Compartido"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:212
|
||||
msgid "(Share tunnels with other clients and irc/httpclients? Change requires restart of client proxy)"
|
||||
msgstr "(¿Compartir túneles con otros clientes y clientes de IRC/http? Cambiar esto requiere reiniciar el proxy de cliente)"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:216
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:124
|
||||
msgid "Auto Start"
|
||||
msgstr "Autoarranque"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:220
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:128
|
||||
msgid "(Check the Box for 'YES')"
|
||||
msgstr "(Marque la casilla para \"SI\")"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:222
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:243
|
||||
msgid "Advanced networking options"
|
||||
msgstr "Opciones avanzadas de red"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:224
|
||||
msgid "(NOTE: when this client proxy is configured to share tunnels, then these options are for all the shared proxy clients!)"
|
||||
msgstr "(NOTA: cuando este proxy de cliente está configurado para compartir túneles, entonces estas opciones son para todos los clientes de proxy compartidos!)"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:226
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:245
|
||||
msgid "Tunnel Options"
|
||||
msgstr "Opciones de Túnel"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:228
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:247
|
||||
msgid "Length"
|
||||
msgstr "Longitud"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:235
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:254
|
||||
msgid "0 hop tunnel (low anonymity, low latency)"
|
||||
msgstr "Túnel de 0 saltos (anonimato bajo, latencia baja)"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:239
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:258
|
||||
msgid "1 hop tunnel (medium anonymity, medium latency)"
|
||||
msgstr "Túnel de 1 salto (anonimato medio, latencia media)"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:243
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:262
|
||||
msgid "2 hop tunnel (high anonymity, high latency)"
|
||||
msgstr "Túnel de 2 saltos (anonimato alto, latencia alta)"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:247
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:266
|
||||
msgid "3 hop tunnel (very high anonymity, poor performance)"
|
||||
msgstr "Túnel de 3 saltos (anonimato muy alto, rendimiento pobre)"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:256
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:275
|
||||
msgid "hop tunnel (very poor performance)"
|
||||
msgstr "saltos de túnel (rendimiento muy pobre)"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:261
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:280
|
||||
msgid "Variance"
|
||||
msgstr "Variación"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:268
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:287
|
||||
msgid "0 hop variance (no randomisation, consistant performance)"
|
||||
msgstr "Variación de 0 saltos (sin aleatoriedad, rendimiento constante)"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:272
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:291
|
||||
msgid "+ 0-1 hop variance (medium additive randomisation, subtractive performance)"
|
||||
msgstr "Variación de + 0-1 saltos (aleatoriedad media aditiva, rendimiento substractivo)"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:276
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:295
|
||||
msgid "+ 0-2 hop variance (high additive randomisation, subtractive performance)"
|
||||
msgstr "Variación de + 0-2 saltos (aleatoriedad alta aditiva, rendimiento substractivo)"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:280
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:299
|
||||
msgid "+/- 0-1 hop variance (standard randomisation, standard performance)"
|
||||
msgstr "Variación de +/- 0-1 saltos (aleatoriedad estándar, rendimiento estándar)"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:284
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:303
|
||||
msgid "+/- 0-2 hop variance (not recommended)"
|
||||
msgstr "Variación de +/- 0-2 saltos (no recomendado)"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:296
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:315
|
||||
msgid "hop variance"
|
||||
msgstr "Variación de saltos"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:301
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:320
|
||||
msgid "Count"
|
||||
msgstr "Número"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:308
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:327
|
||||
msgid "1 inbound, 1 outbound tunnel (low bandwidth usage, less reliability)"
|
||||
msgstr "1 entrante, 1 túnel de salida (bajo uso de ancho de banda, menos fiabilidad)"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:312
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:331
|
||||
msgid "2 inbound, 2 outbound tunnels (standard bandwidth usage, standard reliability)"
|
||||
msgstr "2 entrantes, 2 túneles de salida (uso de ancho de banda estándar, fiabilidad estándar)"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:316
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:335
|
||||
msgid "3 inbound, 3 outbound tunnels (higher bandwidth usage, higher reliability)"
|
||||
msgstr "3 entrantes, 3 túneles de salida (mayor uso de ancho de banda, mayor fiabilidad)"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:325
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:344
|
||||
msgid "tunnels"
|
||||
msgstr "túneles"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:330
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:349
|
||||
msgid "Backup Count"
|
||||
msgstr "Número de respaldo"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:337
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:356
|
||||
msgid "0 backup tunnels (0 redundancy, no added resource usage)"
|
||||
msgstr "0 túneles de respaldo (redundancia 0, no aumenta el uso de recursos)"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:341
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:360
|
||||
msgid "1 backup tunnel each direction (low redundancy, low resource usage)"
|
||||
msgstr "1 túnel de respaldo en cada dirección (redundancia baja, uso bajo de recursos)"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:345
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:364
|
||||
msgid "2 backup tunnels each direction (medium redundancy, medium resource usage)"
|
||||
msgstr "2 túneles de respaldo en cada dirección (redundancia media, uso de recursos medio)"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:349
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:368
|
||||
msgid "3 backup tunnels each direction (high redundancy, high resource usage)"
|
||||
msgstr "3 túneles de respaldo en cada dirección (alta redundancia, uso de recursos alto)"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:358
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:377
|
||||
msgid "backup tunnels"
|
||||
msgstr "túneles de respaldo"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:365
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:384
|
||||
msgid "Profile"
|
||||
msgstr "Perfil"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:372
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:391
|
||||
msgid "interactive connection"
|
||||
msgstr "conexión interactiva"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:376
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:395
|
||||
msgid "bulk connection (downloads/websites/BT)"
|
||||
msgstr "conexión en masa (descargas/web/BT)"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:378
|
||||
msgid "Delay Connect"
|
||||
msgstr "Retrasar Conexión"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:382
|
||||
msgid "for request/response connections"
|
||||
msgstr "para las conexiones de solicitud/respuesta"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:386
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:399
|
||||
msgid "Router I2CP Address"
|
||||
msgstr "Dirección I2CP del router"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:388
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:142
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:401
|
||||
msgid "Host"
|
||||
msgstr "Host"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:396
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:148
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:409
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:244
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:266
|
||||
msgid "Port"
|
||||
msgstr "Puerto"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:406
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:479
|
||||
msgid "Reduce tunnel quantity when idle"
|
||||
msgstr "Reducir la cantidad de túneles cuando se está inactivo"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:408
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:422
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:430
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:442
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:452
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:472
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:486
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:419
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:481
|
||||
msgid "Enable"
|
||||
msgstr "Habilitar"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:412
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:485
|
||||
msgid "Reduced tunnel count"
|
||||
msgstr "Número de túneles reducido"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:416
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:436
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:489
|
||||
msgid "Idle minutes"
|
||||
msgstr "Minutos de inactividad"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:420
|
||||
msgid "Close tunnels when idle"
|
||||
msgstr "Cerrar los túneles cuando se está inactivo"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:426
|
||||
msgid "New Keys on Reopen"
|
||||
msgstr "Nuevas claves al reabrir"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:434
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:435
|
||||
msgid "Disable"
|
||||
msgstr "Desactivar"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:440
|
||||
msgid "Delay tunnel open until required"
|
||||
msgstr "Retrasar apertura del túnel hasta que sea necesario"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:450
|
||||
msgid "Persistent private key"
|
||||
msgstr "Clave privada persistente"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:456
|
||||
msgid "File"
|
||||
msgstr "Archivo"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:460
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:220
|
||||
msgid "Local destination"
|
||||
msgstr "destino local"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:464
|
||||
msgid "(if known)"
|
||||
msgstr "(Si se conoce)"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:470
|
||||
msgid "Local Authorization"
|
||||
msgstr "Autorización local"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:476
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:490
|
||||
msgid "Username"
|
||||
msgstr "Nombre de usuario"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:480
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:494
|
||||
msgid "Password"
|
||||
msgstr "Contraseña"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:484
|
||||
msgid "Outproxy Authorization"
|
||||
msgstr "Autorización outproxy"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:502
|
||||
msgid "Jump URL List"
|
||||
msgstr "Lista de URL de salto"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:508
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:525
|
||||
msgid "Custom options"
|
||||
msgstr "Opciones personalizadas"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:512
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:529
|
||||
msgid "NOTE: If tunnel is currently running, most changes will not take effect until tunnel is stopped and restarted."
|
||||
msgstr "NOTA: Si el túnel se está ejecutando actualmente, la mayoría de los cambios no tendrán efecto hasta que se detenga y reinicie el túnel."
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:514
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:531
|
||||
msgid "Cancel"
|
||||
msgstr "Cancelar"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:518
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:535
|
||||
msgid "Delete"
|
||||
msgstr "Eliminar"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:520
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:537
|
||||
msgid "Save"
|
||||
msgstr "Guardar"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:73
|
||||
msgid "I2P Tunnel Manager - Edit Server Tunnel"
|
||||
msgstr "Gestor del túneles I2P - Editar túnel servidor"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:93
|
||||
msgid "Edit server settings"
|
||||
msgstr "Editar configuración del servidor"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:101
|
||||
msgid "New server settings"
|
||||
msgstr "Nueva configuración del servidor"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:199
|
||||
msgid "Website name"
|
||||
msgstr "Nombre de la página"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:203
|
||||
msgid "(leave blank for outproxies)"
|
||||
msgstr "(Dejar en blanco para outproxies)"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:208
|
||||
msgid "Private key file"
|
||||
msgstr "archivo de clave privada"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:230
|
||||
msgid "Add to local addressbook"
|
||||
msgstr "Agregar a la libreta de direcciones local"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:237
|
||||
msgid "Hostname Signature"
|
||||
msgstr "Firma del Hostname"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:417
|
||||
msgid "Encrypt Leaseset"
|
||||
msgstr "Cifrar Leaseset"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:423
|
||||
msgid "Encryption Key"
|
||||
msgstr "Clave de cifrado"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:427
|
||||
msgid "Generate New Key"
|
||||
msgstr "Generar nueva clave"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:429
|
||||
msgid "Generate"
|
||||
msgstr "Generar"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:431
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:523
|
||||
msgid "(Tunnel must be stopped first)"
|
||||
msgstr "(El túnel debe detenerse primero)"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:433
|
||||
msgid "Restricted Access List"
|
||||
msgstr "Lista de acceso restringido"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:439
|
||||
msgid "Whitelist"
|
||||
msgstr "Lista blanca"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:443
|
||||
msgid "Blacklist"
|
||||
msgstr "Lista negra"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:447
|
||||
msgid "Access List"
|
||||
msgstr "Lista de acceso"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:451
|
||||
msgid "Inbound connection limits (0=unlimited)"
|
||||
msgstr "Límites de conexiones entrantes (0 = sin límite)"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:453
|
||||
msgid "Per client"
|
||||
msgstr "Por cliente"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:455
|
||||
msgid "Per minute"
|
||||
msgstr "por minuto"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:459
|
||||
msgid "Per hour"
|
||||
msgstr "Por hora"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:463
|
||||
msgid "Per day"
|
||||
msgstr "Por día"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:467
|
||||
msgid "Total"
|
||||
msgstr "Total"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:475
|
||||
msgid "Max concurrent connections (0=unlimited)"
|
||||
msgstr "Número máximo de conexiones simultáneas (0 = sin límite)"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:493
|
||||
msgid "New Certificate type"
|
||||
msgstr "Nuevo tipo de certificado"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:495
|
||||
msgid "None"
|
||||
msgstr "Ninguno"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:499
|
||||
msgid "Hashcash (effort)"
|
||||
msgstr "Hashcash (esfuerzo)"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:505
|
||||
msgid "Hashcash Calc Time"
|
||||
msgstr "Tiempo de Calc Hashcash "
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:507
|
||||
msgid "Estimate"
|
||||
msgstr "Estimación"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:509
|
||||
msgid "Hidden"
|
||||
msgstr "Oculto"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:513
|
||||
msgid "Signed (signed by)"
|
||||
msgstr "Firmado (firmado por)"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:519
|
||||
msgid "Modify Certificate"
|
||||
msgstr "Modificar Certificado"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:521
|
||||
msgid "Modify"
|
||||
msgstr "Modificar"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:71
|
||||
msgid "I2P Tunnel Manager - List"
|
||||
msgstr "Gestor de túneles I2P - Lista"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:83
|
||||
msgid "Status Messages"
|
||||
msgstr "Mensajes de estado"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:87
|
||||
msgid "Refresh"
|
||||
msgstr "Actualizar"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:91
|
||||
msgid "Stop All"
|
||||
msgstr "Detener todos"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:95
|
||||
msgid "Start All"
|
||||
msgstr "Iniciar todos"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:99
|
||||
msgid "Restart All"
|
||||
msgstr "Reiniciar todos"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:103
|
||||
msgid "Reload Config"
|
||||
msgstr "Actualizar configuración"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:105
|
||||
msgid "I2P Server Tunnels"
|
||||
msgstr "Túneles de servidor I2P"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:109
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:130
|
||||
msgid "Points at"
|
||||
msgstr "Apunta a"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:111
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:153
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:157
|
||||
msgid "Preview"
|
||||
msgstr "Preview"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:113
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:177
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:250
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:297
|
||||
msgid "Status"
|
||||
msgstr "Estado"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:163
|
||||
msgid "Base32 Address"
|
||||
msgstr "Dirección Base32"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:171
|
||||
msgid "No Preview"
|
||||
msgstr "Sin vista previa"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:184
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:304
|
||||
msgid "Starting..."
|
||||
msgstr "Iniciando..."
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:191
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:205
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:311
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:325
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:339
|
||||
msgid "Stop"
|
||||
msgstr "Detener"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:198
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:332
|
||||
msgid "Running"
|
||||
msgstr "Ejecutándose"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:212
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:346
|
||||
msgid "Stopped"
|
||||
msgstr "Detenido"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:219
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:353
|
||||
msgid "Start"
|
||||
msgstr "Iniciar"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:234
|
||||
msgid "New server tunnel"
|
||||
msgstr "Nuevo servidor de túnel"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:236
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:396
|
||||
msgid "Standard"
|
||||
msgstr "Estándar"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:238
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:398
|
||||
msgid "Create"
|
||||
msgstr "Crear"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:240
|
||||
msgid "I2P Client Tunnels"
|
||||
msgstr "Túneles de cliente I2P"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:248
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:283
|
||||
msgid "Interface"
|
||||
msgstr "Interfaz"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:318
|
||||
msgid "Standby"
|
||||
msgstr "En espera"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:363
|
||||
msgid "Outproxy"
|
||||
msgstr "Outproxy"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:367
|
||||
msgid "Destination"
|
||||
msgstr "Destino"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:381
|
||||
msgid "none"
|
||||
msgstr "ninguno"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:394
|
||||
msgid "New client tunnel"
|
||||
msgstr "Nuevo túnel de cliente"
|
||||
|
763
apps/i2ptunnel/locale/messages_fr.po
Normal file
763
apps/i2ptunnel/locale/messages_fr.po
Normal file
@ -0,0 +1,763 @@
|
||||
# I2P
|
||||
# Copyright (C) 2009 The I2P Project
|
||||
# This file is distributed under the same license as the i2ptunnel package.
|
||||
# To contribute translations, see http://www.i2p2.de/newdevelopers
|
||||
# foo <foo@bar>, 2009.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: I2P i2ptunnel\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2011-03-25 15:21+0000\n"
|
||||
"PO-Revision-Date: 2011-04-09 02:46+0100\n"
|
||||
"Last-Translator: magma <magma@mail.i2p>\n"
|
||||
"Language-Team: duck <duck@mail.i2p>\n"
|
||||
"Language: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n >= 2)\n"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:474
|
||||
#, java-format
|
||||
msgid "To visit the destination in your host database, click <a href=\"{0}\">here</a>. To visit the conflicting addresshelper destination, click <a href=\"{1}\">here</a>."
|
||||
msgstr "Pour aller à la destination de votre base de données d''hôtes, cliquez <a href=\"{0}\">here</a>. Pour aller à la destination de l''aide d''adresse en conflit, cliquez <a href=\"{1}\">ici</a>."
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:931
|
||||
msgid "Click a link below to look for an address helper by using a \"jump\" service:"
|
||||
msgstr "Cliquez sur un des liens ci-dessous pour chercher une aide d'adresse en utilisant un \"service de saut\":"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/EditBean.java:326
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/EditBean.java:336
|
||||
msgid "internal"
|
||||
msgstr "interne"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:171
|
||||
msgid "Invalid form submission, probably because you used the 'back' or 'reload' button on your browser. Please resubmit."
|
||||
msgstr "Échec de soumission du formulaire: vous avez peut-être utilisé le bouton \"Page précédente\" ou \"Recharger\" de votre navigateur. Merci de soumettre à nouveau."
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:218
|
||||
msgid "Configuration reloaded for all tunnels"
|
||||
msgstr "Configuration rechargée pour tous les tunnels"
|
||||
|
||||
#. and give them something to look at in any case
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:230
|
||||
msgid "Starting tunnel"
|
||||
msgstr "Démarrage du tunnel"
|
||||
|
||||
#. and give them something to look at in any case
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:243
|
||||
msgid "Stopping tunnel"
|
||||
msgstr "Arrêt du tunnel"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:311
|
||||
msgid "Configuration changes saved"
|
||||
msgstr "Modification de configuration enregistrée"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:314
|
||||
msgid "Failed to save configuration"
|
||||
msgstr "Échec d'enregistrement de la configuration"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:398
|
||||
msgid "New Tunnel"
|
||||
msgstr "Nouveau tunnel"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:418
|
||||
msgid "Standard client"
|
||||
msgstr "Client standard"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:419
|
||||
msgid "HTTP client"
|
||||
msgstr "Client HTTP"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:420
|
||||
msgid "IRC client"
|
||||
msgstr "Client IRC"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:421
|
||||
msgid "Standard server"
|
||||
msgstr "Serveur standard"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:422
|
||||
msgid "HTTP server"
|
||||
msgstr "Serveur HTTP"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:423
|
||||
msgid "SOCKS 4/4a/5 proxy"
|
||||
msgstr "Mandataire SOCKS 4/4a/5"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:424
|
||||
msgid "SOCKS IRC proxy"
|
||||
msgstr "Mandataire IRC SOCKS"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:425
|
||||
msgid "CONNECT/SSL/HTTPS proxy"
|
||||
msgstr "Mandataire CONNECT/SSL/HTTPS"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:426
|
||||
msgid "IRC server"
|
||||
msgstr "Serveur IRC"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:427
|
||||
msgid "Streamr client"
|
||||
msgstr "Client flux"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:428
|
||||
msgid "Streamr server"
|
||||
msgstr "Serveur flux"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:429
|
||||
msgid "HTTP bidir"
|
||||
msgstr "bidir HTTP"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:517
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:293
|
||||
msgid "Host not set"
|
||||
msgstr "Hôte non défini"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:521
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:275
|
||||
msgid "Port not set"
|
||||
msgstr "Port non défini"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:73
|
||||
msgid "I2P Tunnel Manager - Edit Client Tunnel"
|
||||
msgstr "Gestionnaire de tunnels I2P: Modifiez le tunnel client"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:93
|
||||
msgid "Edit proxy settings"
|
||||
msgstr "Modifiez les réglages de mandataire"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:101
|
||||
msgid "New proxy settings"
|
||||
msgstr "Paramètres de nouveau mandataire"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:112
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:112
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:110
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:124
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:245
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:260
|
||||
msgid "Name"
|
||||
msgstr "Nom"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:116
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:116
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:249
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:282
|
||||
msgid "Type"
|
||||
msgstr "Type"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:120
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:120
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:229
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:389
|
||||
msgid "Description"
|
||||
msgstr "Description"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:126
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:136
|
||||
msgid "Target"
|
||||
msgstr "Cible"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:130
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:132
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:162
|
||||
msgid "Access Point"
|
||||
msgstr "Point d'accès"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:137
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:150
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:192
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:153
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:167
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:213
|
||||
msgid "required"
|
||||
msgstr "requis"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:159
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:178
|
||||
msgid "Reachable by"
|
||||
msgstr "Joignable par"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:180
|
||||
msgid "Outproxies"
|
||||
msgstr "Mandataires sortants"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:187
|
||||
msgid "Tunnel Destination"
|
||||
msgstr "Destination de tunnel"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:199
|
||||
msgid "name or destination"
|
||||
msgstr "nom ou destination"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:202
|
||||
msgid "b32 not recommended"
|
||||
msgstr "b32 déconseillée"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:208
|
||||
msgid "Shared Client"
|
||||
msgstr "Client partagé"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:212
|
||||
msgid "(Share tunnels with other clients and irc/httpclients? Change requires restart of client proxy)"
|
||||
msgstr "Partager les tunnels avec d'autres clients et des clients http/irc? La modification requiert le redémarrage du client mandataire)"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:216
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:124
|
||||
msgid "Auto Start"
|
||||
msgstr "Démarrage automatique"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:220
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:128
|
||||
msgid "(Check the Box for 'YES')"
|
||||
msgstr "(Cochez la case pour le démarrage auto en même temps que le routeur)"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:222
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:243
|
||||
msgid "Advanced networking options"
|
||||
msgstr "Options de réseau avancées"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:224
|
||||
msgid "(NOTE: when this client proxy is configured to share tunnels, then these options are for all the shared proxy clients!)"
|
||||
msgstr "(ATTENTION : quand ce mandataire client est configuré pour partager les tunnels, ces options sont appliquées à tous les mandataires clients partagés)"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:226
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:245
|
||||
msgid "Tunnel Options"
|
||||
msgstr "Options de tunnel"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:228
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:247
|
||||
msgid "Length"
|
||||
msgstr "Longueur"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:235
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:254
|
||||
msgid "0 hop tunnel (low anonymity, low latency)"
|
||||
msgstr "Tunnel à 0 saut (anonymat et latence faibles)"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:239
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:258
|
||||
msgid "1 hop tunnel (medium anonymity, medium latency)"
|
||||
msgstr "Tunnel à 1 saut (anonymat et latence moyens)"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:243
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:262
|
||||
msgid "2 hop tunnel (high anonymity, high latency)"
|
||||
msgstr "Tunnel à 2 sauts (anonymat et latence élevés)"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:247
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:266
|
||||
msgid "3 hop tunnel (very high anonymity, poor performance)"
|
||||
msgstr "Tunnel à 3 sauts (anonymat et latence très élevés)"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:256
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:275
|
||||
msgid "hop tunnel (very poor performance)"
|
||||
msgstr "Tunnel de saut (performances médiocres)"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:261
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:280
|
||||
msgid "Variance"
|
||||
msgstr "Variance"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:268
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:287
|
||||
msgid "0 hop variance (no randomisation, consistant performance)"
|
||||
msgstr "Variance à 0 saut (pas d'aléa, performances stables)"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:272
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:291
|
||||
msgid "+ 0-1 hop variance (medium additive randomisation, subtractive performance)"
|
||||
msgstr "Variance à + 0 ou 1 saut (aléa moyen, performances diminuées)"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:276
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:295
|
||||
msgid "+ 0-2 hop variance (high additive randomisation, subtractive performance)"
|
||||
msgstr "Variance à + 0 à 2 sauts (aléa élevé, performances diminuées)"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:280
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:299
|
||||
msgid "+/- 0-1 hop variance (standard randomisation, standard performance)"
|
||||
msgstr "Variance à +/- 0 ou 1 saut (aléas légers, performances diminuées)"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:284
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:303
|
||||
msgid "+/- 0-2 hop variance (not recommended)"
|
||||
msgstr "Variance à +/- 0 à 2 sauts (déconseillée)"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:296
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:315
|
||||
msgid "hop variance"
|
||||
msgstr "variance de saut"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:301
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:320
|
||||
msgid "Count"
|
||||
msgstr "Nombre"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:308
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:327
|
||||
msgid "1 inbound, 1 outbound tunnel (low bandwidth usage, less reliability)"
|
||||
msgstr "Tunnel à 1 entrant/1 sortant (faible consommation de bande passante, moins fiable)"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:312
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:331
|
||||
msgid "2 inbound, 2 outbound tunnels (standard bandwidth usage, standard reliability)"
|
||||
msgstr "Tunnels à 2 entrants/2 sortants (consommation de bande passante standard, fiabilité standard)"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:316
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:335
|
||||
msgid "3 inbound, 3 outbound tunnels (higher bandwidth usage, higher reliability)"
|
||||
msgstr "Tunnels à 3 entrants/3 sortants (consommation de bande passante plus élevée, fiabilité élevée)"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:325
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:344
|
||||
msgid "tunnels"
|
||||
msgstr "tunnels"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:330
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:349
|
||||
msgid "Backup Count"
|
||||
msgstr "Secours"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:337
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:356
|
||||
msgid "0 backup tunnels (0 redundancy, no added resource usage)"
|
||||
msgstr "Aucun tunnel de secours (pas de tolérance de pannes, pas de consommation de ressources) "
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:341
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:360
|
||||
msgid "1 backup tunnel each direction (low redundancy, low resource usage)"
|
||||
msgstr "1 tunnel de secours par direction (légère tolérance de pannes, faible consommation de ressources)"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:345
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:364
|
||||
msgid "2 backup tunnels each direction (medium redundancy, medium resource usage)"
|
||||
msgstr "2 tunnels de secours par direction (tolérance de pannes moyenne, consommation de ressources moyenne)"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:349
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:368
|
||||
msgid "3 backup tunnels each direction (high redundancy, high resource usage)"
|
||||
msgstr "3 tunnels de secours par direction (tolérance de pannes élevée, consommation de ressources élevée)"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:358
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:377
|
||||
msgid "backup tunnels"
|
||||
msgstr "Tunnels de secours"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:365
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:384
|
||||
msgid "Profile"
|
||||
msgstr "Profil"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:372
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:391
|
||||
msgid "interactive connection"
|
||||
msgstr "connexion interactive"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:376
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:395
|
||||
msgid "bulk connection (downloads/websites/BT)"
|
||||
msgstr "connexion forts transferts (téléchargements/sites web/BT)"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:378
|
||||
msgid "Delay Connect"
|
||||
msgstr "Retard à la connexion"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:382
|
||||
msgid "for request/response connections"
|
||||
msgstr "pour les connexions de demandes/réponses"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:386
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:399
|
||||
msgid "Router I2CP Address"
|
||||
msgstr "Adresse I2CP du routeur"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:388
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:142
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:401
|
||||
msgid "Host"
|
||||
msgstr "Hôte"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:396
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:148
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:409
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:247
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:269
|
||||
msgid "Port"
|
||||
msgstr "Port"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:406
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:479
|
||||
msgid "Reduce tunnel quantity when idle"
|
||||
msgstr "Réduire le nombre de tunnels quand inactif"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:408
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:422
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:430
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:442
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:452
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:472
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:486
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:419
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:481
|
||||
msgid "Enable"
|
||||
msgstr "Activer"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:412
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:485
|
||||
msgid "Reduced tunnel count"
|
||||
msgstr "Réduire à"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:416
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:436
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:489
|
||||
msgid "Idle minutes"
|
||||
msgstr "Minutes d'inactivité"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:420
|
||||
msgid "Close tunnels when idle"
|
||||
msgstr "Fermer les tunnels quand inactif"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:426
|
||||
msgid "New Keys on Reopen"
|
||||
msgstr "Nouvelles clés à la réouverture"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:434
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:435
|
||||
msgid "Disable"
|
||||
msgstr "Désactiver"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:440
|
||||
msgid "Delay tunnel open until required"
|
||||
msgstr "Retarder l'ouverture jusqu'à l'utilisation"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:450
|
||||
msgid "Persistent private key"
|
||||
msgstr "Clé privée persistante"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:456
|
||||
msgid "File"
|
||||
msgstr "Fichier"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:460
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:220
|
||||
msgid "Local destination"
|
||||
msgstr "Destination locale"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:464
|
||||
msgid "(if known)"
|
||||
msgstr "(si connu)"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:470
|
||||
msgid "Local Authorization"
|
||||
msgstr "Autorisation locale"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:476
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:490
|
||||
msgid "Username"
|
||||
msgstr "Identifiant"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:480
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:494
|
||||
msgid "Password"
|
||||
msgstr "Mot de passe"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:484
|
||||
msgid "Outproxy Authorization"
|
||||
msgstr "Autorisation de mandataire sortant"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:502
|
||||
msgid "Jump URL List"
|
||||
msgstr "Liste d'URL de sauts"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:508
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:525
|
||||
msgid "Custom options"
|
||||
msgstr "Options personnelles"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:512
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:529
|
||||
msgid "NOTE: If tunnel is currently running, most changes will not take effect until tunnel is stopped and restarted."
|
||||
msgstr "NOTE: si le tunnel est actif, la plupart des modifications ne prendront effet qu'après son redémarrage."
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:514
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:531
|
||||
msgid "Cancel"
|
||||
msgstr "Annuler"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:518
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:535
|
||||
msgid "Delete"
|
||||
msgstr "Supprimer"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:520
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:537
|
||||
msgid "Save"
|
||||
msgstr "Enregistrer"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:73
|
||||
msgid "I2P Tunnel Manager - Edit Server Tunnel"
|
||||
msgstr "Gestionnaire de tunnels I2P: modifier le tunnel serveur"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:93
|
||||
msgid "Edit server settings"
|
||||
msgstr "Modifier les paramètres du serveur"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:101
|
||||
msgid "New server settings"
|
||||
msgstr "Paramètres de nouveau serveur"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:199
|
||||
msgid "Website name"
|
||||
msgstr "Nom du site web"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:203
|
||||
msgid "(leave blank for outproxies)"
|
||||
msgstr "(laisser vide pour les mandataires sortants)"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:208
|
||||
msgid "Private key file"
|
||||
msgstr "Fichier de clé privée"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:230
|
||||
msgid "Add to local addressbook"
|
||||
msgstr "Ajouter au carnet d'adresses local"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:237
|
||||
msgid "Hostname Signature"
|
||||
msgstr "Signature du nom d'hôte"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:417
|
||||
msgid "Encrypt Leaseset"
|
||||
msgstr "Jeu de baux crypté"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:423
|
||||
msgid "Encryption Key"
|
||||
msgstr "Clé de cryptage"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:427
|
||||
msgid "Generate New Key"
|
||||
msgstr "Générer une nouvelle clé"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:429
|
||||
msgid "Generate"
|
||||
msgstr "Générer"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:431
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:523
|
||||
msgid "(Tunnel must be stopped first)"
|
||||
msgstr "(Le tunnel doit préalablement être arrêté)"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:433
|
||||
msgid "Restricted Access List"
|
||||
msgstr "Contrôle d'accès"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:439
|
||||
msgid "Whitelist"
|
||||
msgstr "Liste blanche"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:443
|
||||
msgid "Blacklist"
|
||||
msgstr "Liste noire"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:447
|
||||
msgid "Access List"
|
||||
msgstr "Liste d'accès"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:451
|
||||
msgid "Inbound connection limits (0=unlimited)"
|
||||
msgstr "Limite de connexions entrantes (0=pas de limite)"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:453
|
||||
msgid "Per client"
|
||||
msgstr "Par client"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:455
|
||||
msgid "Per minute"
|
||||
msgstr "Par minute"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:459
|
||||
msgid "Per hour"
|
||||
msgstr "Par heure"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:463
|
||||
msgid "Per day"
|
||||
msgstr "Par jour"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:467
|
||||
msgid "Total"
|
||||
msgstr "Total"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:475
|
||||
msgid "Max concurrent connections (0=unlimited)"
|
||||
msgstr "Connexions simultanées maximum (0=pas de limite)"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:493
|
||||
msgid "New Certificate type"
|
||||
msgstr "Type de nouveau certificat"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:495
|
||||
msgid "None"
|
||||
msgstr "Aucun"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:499
|
||||
msgid "Hashcash (effort)"
|
||||
msgstr "Pénalité"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:505
|
||||
msgid "Hashcash Calc Time"
|
||||
msgstr "Durée de calcul de pénalisation"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:507
|
||||
msgid "Estimate"
|
||||
msgstr "Estimer"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:509
|
||||
msgid "Hidden"
|
||||
msgstr "Masqué"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:513
|
||||
msgid "Signed (signed by)"
|
||||
msgstr "Signé (signé par)"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:519
|
||||
msgid "Modify Certificate"
|
||||
msgstr "Modifier le certificat"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:521
|
||||
msgid "Modify"
|
||||
msgstr "Modifier"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:74
|
||||
msgid "I2P Tunnel Manager - List"
|
||||
msgstr "Gestionnaire de tunnels I2P - Liste"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:86
|
||||
msgid "Status Messages"
|
||||
msgstr "Messages d'état"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:90
|
||||
msgid "Refresh"
|
||||
msgstr "Actualiser"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:94
|
||||
msgid "Stop All"
|
||||
msgstr "Arrêter tous"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:98
|
||||
msgid "Start All"
|
||||
msgstr "Démarrer tous"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:102
|
||||
msgid "Restart All"
|
||||
msgstr "Redémarrer tous"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:106
|
||||
msgid "Reload Config"
|
||||
msgstr "Recharger la configuration"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:108
|
||||
msgid "I2P Server Tunnels"
|
||||
msgstr "Tunnels serveurs I2P"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:112
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:133
|
||||
msgid "Points at"
|
||||
msgstr "Pointe vers"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:114
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:156
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:160
|
||||
msgid "Preview"
|
||||
msgstr "Aperçu"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:116
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:180
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:253
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:300
|
||||
msgid "Status"
|
||||
msgstr "État"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:166
|
||||
msgid "Base32 Address"
|
||||
msgstr "Adresse Base32"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:174
|
||||
msgid "No Preview"
|
||||
msgstr "Aucun aperçu"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:187
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:307
|
||||
msgid "Starting..."
|
||||
msgstr "Démarrage..."
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:194
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:208
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:314
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:328
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:342
|
||||
msgid "Stop"
|
||||
msgstr "Arrêter"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:201
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:335
|
||||
msgid "Running"
|
||||
msgstr "Actif"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:215
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:349
|
||||
msgid "Stopped"
|
||||
msgstr "Arrêté"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:222
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:356
|
||||
msgid "Start"
|
||||
msgstr "Démarrer"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:237
|
||||
msgid "New server tunnel"
|
||||
msgstr "Nouveau tunnel serveur"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:239
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:399
|
||||
msgid "Standard"
|
||||
msgstr "Standard"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:241
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:401
|
||||
msgid "Create"
|
||||
msgstr "Créer"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:243
|
||||
msgid "I2P Client Tunnels"
|
||||
msgstr "Tunnels clients I2P"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:251
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:286
|
||||
msgid "Interface"
|
||||
msgstr "Interface"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:321
|
||||
msgid "Standby"
|
||||
msgstr "Pause"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:366
|
||||
msgid "Outproxy"
|
||||
msgstr "Mandataire sortant"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:370
|
||||
msgid "Destination"
|
||||
msgstr "Destination"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:384
|
||||
msgid "none"
|
||||
msgstr "aucun"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:397
|
||||
msgid "New client tunnel"
|
||||
msgstr "Nouveau tunnel client"
|
||||
|
Binary file not shown.
BIN
apps/jrobin/jrobin-1.5.9.1.jar
Normal file
BIN
apps/jrobin/jrobin-1.5.9.1.jar
Normal file
Binary file not shown.
@ -26,7 +26,7 @@
|
||||
<pathelement location="../../systray/java/lib/systray4j.jar" />
|
||||
<pathelement location="../../desktopgui/build" />
|
||||
<pathelement location="../../../installer/lib/wrapper/win32/wrapper.jar" /> <!-- we dont care if we're not on win32 -->
|
||||
<pathelement location="../../jrobin/jrobin-1.4.0.jar" />
|
||||
<pathelement location="../../jrobin/jrobin-1.5.9.1.jar" />
|
||||
</classpath>
|
||||
</depend>
|
||||
</target>
|
||||
@ -58,7 +58,7 @@
|
||||
<pathelement location="../../systray/java/lib/systray4j.jar" />
|
||||
<pathelement location="../../desktopgui/dist/desktopgui.jar" />
|
||||
<pathelement location="../../../installer/lib/wrapper/win32/wrapper.jar" /> <!-- we dont care if we're not on win32 -->
|
||||
<pathelement location="../../jrobin/jrobin-1.4.0.jar" />
|
||||
<pathelement location="../../jrobin/jrobin-1.5.9.1.jar" />
|
||||
</classpath>
|
||||
</javac>
|
||||
</target>
|
||||
@ -90,12 +90,6 @@
|
||||
<attribute name="Workspace-Changes" value="${workspace.changes.j.tr}" />
|
||||
</manifest>
|
||||
</jar>
|
||||
<!-- jrobin taken out of routerconsole.jar in 0.7.12
|
||||
<delete dir="./tmpextract" />
|
||||
<unjar src="../../jrobin/jrobin-1.4.0.jar" dest="./tmpextract" />
|
||||
<jar destfile="./build/routerconsole.jar" basedir="./tmpextract" update="true" />
|
||||
<delete dir="./tmpextract" />
|
||||
-->
|
||||
</target>
|
||||
|
||||
<!-- this is tricky because the message classes go in the jar, not in the war -->
|
||||
|
@ -52,7 +52,9 @@ ROUTERFILES="\
|
||||
../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java \
|
||||
../../../router/java/src/net/i2p/router/transport/CommSystemFacadeImpl.java \
|
||||
../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java \
|
||||
../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java"
|
||||
../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java \
|
||||
../../../router/java/src/net/i2p/router/transport/UPnP.java \
|
||||
../../../router/java/src/net/i2p/router/transport/UPnPManager.java"
|
||||
|
||||
# add ../java/ so the refs will work in the po file
|
||||
JPATHS="../java/src ../jsp/WEB-INF ../java/strings $JFILE $ROUTERFILES"
|
||||
|
@ -69,8 +69,26 @@ public class CSSHelper extends HelperBase {
|
||||
* @since 0.8.5
|
||||
*/
|
||||
public boolean allowIFrame(String ua) {
|
||||
return ua == null || !(ua.startsWith("Lynx") || ua.startsWith("w3m") ||
|
||||
return ua == null ||
|
||||
// text
|
||||
!(ua.startsWith("Lynx") || ua.startsWith("w3m") ||
|
||||
ua.startsWith("ELinks") || ua.startsWith("Links") ||
|
||||
ua.startsWith("Dillo"));
|
||||
ua.startsWith("Dillo") ||
|
||||
// mobile
|
||||
// http://www.zytrax.com/tech/web/mobile_ids.html
|
||||
ua.contains("Android") || ua.contains("iPhone") ||
|
||||
ua.contains("iPod") || ua.contains("iPad") ||
|
||||
ua.contains("Kindle") || ua.contains("Mobile") ||
|
||||
ua.contains("Nintendo Wii") || ua.contains("Opera Mini") ||
|
||||
ua.contains("Palm") ||
|
||||
ua.contains("PLAYSTATION") || ua.contains("Playstation") ||
|
||||
ua.contains("Profile/MIDP-") || ua.contains("SymbianOS") ||
|
||||
ua.contains("Windows CE") || ua.contains("Windows Phone") ||
|
||||
ua.startsWith("BlackBerry") || ua.startsWith("DoCoMo") ||
|
||||
ua.startsWith("Nokia") || ua.startsWith("OPWV-SDK") ||
|
||||
ua.startsWith("MOT-") || ua.startsWith("SAMSUNG-") ||
|
||||
ua.startsWith("nook") || ua.startsWith("SCH-") ||
|
||||
ua.startsWith("SEC-") || ua.startsWith("SonyEricsson") ||
|
||||
ua.startsWith("Vodafone"));
|
||||
}
|
||||
}
|
||||
|
@ -104,14 +104,21 @@ public class ConfigStatsHandler extends FormHandler {
|
||||
}
|
||||
|
||||
_context.router().setConfigSetting(StatManager.PROP_STAT_FILTER, stats.toString());
|
||||
boolean graphsChanged = !_graphs.equals(_context.getProperty("stat.summaries"));
|
||||
_context.router().setConfigSetting("stat.summaries", _graphs);
|
||||
boolean fullChanged = _context.getBooleanProperty(StatManager.PROP_STAT_FULL) != _isFull;
|
||||
_context.router().setConfigSetting(StatManager.PROP_STAT_FULL, "" + _isFull);
|
||||
boolean ok = _context.router().saveConfig();
|
||||
if (ok)
|
||||
_context.router().saveConfig();
|
||||
if (!_stats.isEmpty())
|
||||
addFormNotice(_("Stat filter and location updated successfully to") + ": " + stats.toString());
|
||||
else
|
||||
addFormError(_("Failed to update the stat filter and location"));
|
||||
addFormNotice(_("Graph list updated, may take up to 60s to be reflected here and on the <a href=\"graphs.jsp\">Graphs Page</a>"));
|
||||
if (fullChanged) {
|
||||
if (_isFull)
|
||||
addFormNotice(_("Full statistics enabled - restart required to take effect"));
|
||||
else
|
||||
addFormNotice(_("Full statistics disabled - restart required to take effect"));
|
||||
}
|
||||
if (graphsChanged)
|
||||
addFormNotice(_("Graph list updated, may take up to 60s to be reflected here and on the <a href=\"graphs.jsp\">Graphs Page</a>"));
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -50,12 +50,14 @@ public class ConfigUpdateHandler extends FormHandler {
|
||||
*/
|
||||
private static final String PACK200_URLS =
|
||||
"http://echelon.i2p/i2p/i2pupdate.su2\r\n" +
|
||||
"http://inr.i2p/i2p/i2pupdate.su2\r\n" +
|
||||
"http://stats.i2p/i2p/i2pupdate.su2\r\n" +
|
||||
"http://www.i2p2.i2p/_static/i2pupdate.su2\r\n" +
|
||||
"http://update.postman.i2p/i2pupdate.su2" ;
|
||||
|
||||
private static final String NO_PACK200_URLS =
|
||||
"http://echelon.i2p/i2p/i2pupdate.sud\r\n" +
|
||||
"http://inr.i2p/i2p/i2pupdate.sud\r\n" +
|
||||
"http://stats.i2p/i2p/i2pupdate.sud\r\n" +
|
||||
"http://www.i2p2.i2p/_static/i2pupdate.sud\r\n" +
|
||||
"http://update.postman.i2p/i2pupdate.sud" ;
|
||||
|
@ -17,14 +17,15 @@ public class GraphHelper extends FormHandler {
|
||||
private int _width;
|
||||
private int _height;
|
||||
private int _refreshDelaySeconds;
|
||||
private boolean _persistent;
|
||||
|
||||
private static final String PROP_X = "routerconsole.graphX";
|
||||
private static final String PROP_Y = "routerconsole.graphY";
|
||||
private static final String PROP_REFRESH = "routerconsole.graphRefresh";
|
||||
private static final String PROP_PERIODS = "routerconsole.graphPeriods";
|
||||
private static final String PROP_EVENTS = "routerconsole.graphEvents";
|
||||
private static final int DEFAULT_X = 250;
|
||||
private static final int DEFAULT_Y = 100;
|
||||
public static final int DEFAULT_X = 250;
|
||||
public static final int DEFAULT_Y = 100;
|
||||
private static final int DEFAULT_REFRESH = 60;
|
||||
private static final int DEFAULT_PERIODS = 60;
|
||||
static final int MAX_X = 2048;
|
||||
@ -39,7 +40,19 @@ public class GraphHelper extends FormHandler {
|
||||
_height = _context.getProperty(PROP_Y, DEFAULT_Y);
|
||||
_periodCount = _context.getProperty(PROP_PERIODS, DEFAULT_PERIODS);
|
||||
_refreshDelaySeconds = _context.getProperty(PROP_REFRESH, DEFAULT_REFRESH);
|
||||
_showEvents = Boolean.valueOf(_context.getProperty(PROP_EVENTS)).booleanValue();
|
||||
_showEvents = _context.getBooleanProperty(PROP_EVENTS);
|
||||
}
|
||||
|
||||
/**
|
||||
* This must be output in the jsp since <meta> must be in the <head>
|
||||
* @since 0.8.6
|
||||
*/
|
||||
public String getRefreshMeta() {
|
||||
if (_refreshDelaySeconds <= 8 ||
|
||||
ConfigRestartBean.getRestartTimeRemaining() < (1000 * (_refreshDelaySeconds + 30)))
|
||||
return "";
|
||||
// shorten the refresh by 3 seconds so we beat the iframe
|
||||
return "<meta http-equiv=\"refresh\" content=\"" + (_refreshDelaySeconds - 3) + "\">";
|
||||
}
|
||||
|
||||
/**
|
||||
@ -51,13 +64,17 @@ public class GraphHelper extends FormHandler {
|
||||
public void setPeriodCount(String str) {
|
||||
try { _periodCount = Integer.parseInt(str); } catch (NumberFormatException nfe) {}
|
||||
}
|
||||
|
||||
public void setShowEvents(boolean b) { _showEvents = b; }
|
||||
|
||||
public void setHeight(String str) {
|
||||
try { _height = Math.min(Integer.parseInt(str), MAX_Y); } catch (NumberFormatException nfe) {}
|
||||
}
|
||||
|
||||
public void setWidth(String str) {
|
||||
try { _width = Math.min(Integer.parseInt(str), MAX_X); } catch (NumberFormatException nfe) {}
|
||||
}
|
||||
|
||||
public void setRefreshDelay(String str) {
|
||||
try {
|
||||
int rds = Integer.parseInt(str);
|
||||
@ -68,7 +85,12 @@ public class GraphHelper extends FormHandler {
|
||||
} catch (NumberFormatException nfe) {}
|
||||
}
|
||||
|
||||
/** @since 0.8.6 */
|
||||
public void setPersistent(String foo) { _persistent = true; }
|
||||
|
||||
public String getImages() {
|
||||
if (StatSummarizer.instance().isDisabled())
|
||||
return "";
|
||||
try {
|
||||
List listeners = StatSummarizer.instance().getListeners();
|
||||
TreeSet ordered = new TreeSet(new AlphaComparator());
|
||||
@ -91,12 +113,11 @@ public class GraphHelper extends FormHandler {
|
||||
+ "&height=" + (3 * _height)
|
||||
+ "\" target=\"_blank\">");
|
||||
String title = _("Combined bandwidth graph");
|
||||
_out.write("<img class=\"statimage\" width=\""
|
||||
+ (_width + 83) + "\" height=\"" + (_height + 92)
|
||||
+ "\" src=\"viewstat.jsp?stat=bw.combined"
|
||||
_out.write("<img class=\"statimage\""
|
||||
+ " src=\"viewstat.jsp?stat=bw.combined"
|
||||
+ "&periodCount=" + _periodCount
|
||||
+ "&width=" + _width
|
||||
+ "&height=" + (_height - 14)
|
||||
+ "&height=" + (_height - 13)
|
||||
+ "\" alt=\"" + title + "\" title=\"" + title + "\"></a>\n");
|
||||
}
|
||||
|
||||
@ -113,9 +134,8 @@ public class GraphHelper extends FormHandler {
|
||||
+ "&width=" + (3 * _width)
|
||||
+ "&height=" + (3 * _height)
|
||||
+ "\" target=\"_blank\">");
|
||||
_out.write("<img class=\"statimage\" border=\"0\" width=\""
|
||||
+ (_width + 83) + "\" height=\"" + (_height + 92)
|
||||
+ "\" src=\"viewstat.jsp?stat="
|
||||
_out.write("<img class=\"statimage\" border=\"0\""
|
||||
+ " src=\"viewstat.jsp?stat="
|
||||
+ r.getRateStat().getName()
|
||||
+ "&showEvents=" + _showEvents
|
||||
+ "&period=" + r.getPeriod()
|
||||
@ -125,10 +145,9 @@ public class GraphHelper extends FormHandler {
|
||||
+ "\" alt=\"" + title
|
||||
+ "\" title=\"" + title + "\"></a>\n");
|
||||
}
|
||||
if (_refreshDelaySeconds > 0)
|
||||
// shorten the refresh by 3 seconds so we beat the iframe
|
||||
_out.write("<meta http-equiv=\"refresh\" content=\"" + (_refreshDelaySeconds - 3) + "\">\n");
|
||||
|
||||
// FIXME jrobin doesn't support setting the timezone, will have to mod TimeAxis.java
|
||||
_out.write("<p><i>" + _("All times are UTC.") + "</i></p>\n");
|
||||
} catch (IOException ioe) {
|
||||
ioe.printStackTrace();
|
||||
}
|
||||
@ -138,6 +157,8 @@ public class GraphHelper extends FormHandler {
|
||||
private static final int[] times = { 60, 2*60, 5*60, 10*60, 30*60, 60*60, -1 };
|
||||
|
||||
public String getForm() {
|
||||
if (StatSummarizer.instance().isDisabled())
|
||||
return "";
|
||||
String prev = System.getProperty("net.i2p.router.web.GraphHelper.nonce");
|
||||
if (prev != null) System.setProperty("net.i2p.router.web.GraphHelper.noncePrev", prev);
|
||||
String nonce = "" + _context.random().nextLong();
|
||||
@ -147,11 +168,11 @@ public class GraphHelper extends FormHandler {
|
||||
_out.write("<form action=\"graphs\" method=\"POST\">\n" +
|
||||
"<input type=\"hidden\" name=\"action\" value=\"foo\">\n" +
|
||||
"<input type=\"hidden\" name=\"nonce\" value=\"" + nonce + "\" >\n");
|
||||
_out.write(_("Periods") + ": <input size=\"3\" type=\"text\" name=\"periodCount\" value=\"" + _periodCount + "\"><br>\n");
|
||||
_out.write(_("Periods") + ": <input size=\"5\" style=\"text-align: right;\" type=\"text\" name=\"periodCount\" value=\"" + _periodCount + "\"><br>\n");
|
||||
_out.write(_("Plot averages") + ": <input type=\"radio\" class=\"optbox\" name=\"showEvents\" value=\"false\" " + (_showEvents ? "" : "checked=\"true\" ") + "> ");
|
||||
_out.write(_("or")+ " " +_("plot events") + ": <input type=\"radio\" class=\"optbox\" name=\"showEvents\" value=\"true\" "+ (_showEvents ? "checked=\"true\" " : "") + "><br>\n");
|
||||
_out.write(_("Image sizes") + ": " + _("width") + ": <input size=\"4\" type=\"text\" name=\"width\" value=\"" + _width
|
||||
+ "\"> " + _("pixels") + ", " + _("height") + ": <input size=\"4\" type=\"text\" name=\"height\" value=\"" + _height
|
||||
_out.write(_("Image sizes") + ": " + _("width") + ": <input size=\"4\" style=\"text-align: right;\" type=\"text\" name=\"width\" value=\"" + _width
|
||||
+ "\"> " + _("pixels") + ", " + _("height") + ": <input size=\"4\" style=\"text-align: right;\" type=\"text\" name=\"height\" value=\"" + _height
|
||||
+ "\"> " + _("pixels") + "<br>\n");
|
||||
_out.write(_("Refresh delay") + ": <select name=\"refreshDelay\">");
|
||||
for (int i = 0; i < times.length; i++) {
|
||||
@ -168,13 +189,40 @@ public class GraphHelper extends FormHandler {
|
||||
_out.write("</option>\n");
|
||||
}
|
||||
_out.write("</select><br>\n" +
|
||||
"<hr><div class=\"formaction\"><input type=\"submit\" value=\"" + _("Redraw") + "\"></div></form>");
|
||||
_("Store graph data on disk?") +
|
||||
" <input type=\"checkbox\" class=\"optbox\" value=\"true\" name=\"persistent\"");
|
||||
boolean persistent = _context.getBooleanPropertyDefaultTrue(SummaryListener.PROP_PERSISTENT);
|
||||
if (persistent)
|
||||
_out.write(" checked=\"true\"");
|
||||
_out.write(">" +
|
||||
"<hr><div class=\"formaction\"><input type=\"submit\" value=\"" + _("Save settings and redraw graphs") + "\"></div></form>");
|
||||
} catch (IOException ioe) {
|
||||
ioe.printStackTrace();
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
/**
|
||||
* We have to do this here because processForm() isn't called unless the nonces are good
|
||||
* @since 0.8.6
|
||||
*/
|
||||
@Override
|
||||
public String getAllMessages() {
|
||||
if (StatSummarizer.instance().isDisabled()) {
|
||||
addFormError("Graphing not supported with this JVM: " +
|
||||
System.getProperty("java.vendor") + ' ' +
|
||||
System.getProperty("java.version") + " (" +
|
||||
System.getProperty("java.runtime.name") + ' ' +
|
||||
System.getProperty("java.runtime.version") + ')');
|
||||
if (_context.getProperty(PROP_REFRESH, 0) >= 0) {
|
||||
// force no refresh, save silently
|
||||
_context.router().setConfigSetting(PROP_REFRESH, "-1");
|
||||
_context.router().saveConfig();
|
||||
}
|
||||
}
|
||||
return super.getAllMessages();
|
||||
}
|
||||
|
||||
/**
|
||||
* This was a HelperBase but now it's a FormHandler
|
||||
* @since 0.8.2
|
||||
@ -193,26 +241,27 @@ public class GraphHelper extends FormHandler {
|
||||
_height != _context.getProperty(PROP_Y, DEFAULT_Y) ||
|
||||
_periodCount != _context.getProperty(PROP_PERIODS, DEFAULT_PERIODS) ||
|
||||
_refreshDelaySeconds != _context.getProperty(PROP_REFRESH, DEFAULT_REFRESH) ||
|
||||
_showEvents != Boolean.valueOf(_context.getProperty(PROP_EVENTS)).booleanValue()) {
|
||||
_showEvents != _context.getBooleanProperty(PROP_EVENTS) ||
|
||||
_persistent != _context.getBooleanPropertyDefaultTrue(SummaryListener.PROP_PERSISTENT)) {
|
||||
_context.router().setConfigSetting(PROP_X, "" + _width);
|
||||
_context.router().setConfigSetting(PROP_Y, "" + _height);
|
||||
_context.router().setConfigSetting(PROP_PERIODS, "" + _periodCount);
|
||||
_context.router().setConfigSetting(PROP_REFRESH, "" + _refreshDelaySeconds);
|
||||
_context.router().setConfigSetting(PROP_EVENTS, "" + _showEvents);
|
||||
_context.router().setConfigSetting(SummaryListener.PROP_PERSISTENT, "" + _persistent);
|
||||
_context.router().saveConfig();
|
||||
addFormNotice(_("Graph settings saved"));
|
||||
}
|
||||
}
|
||||
|
||||
/** inner class, don't bother reindenting */
|
||||
private static class AlphaComparator implements Comparator {
|
||||
public int compare(Object lhs, Object rhs) {
|
||||
SummaryListener l = (SummaryListener)lhs;
|
||||
SummaryListener r = (SummaryListener)rhs;
|
||||
String lName = l.getRate().getRateStat().getName() + "." + l.getRate().getPeriod();
|
||||
String rName = r.getRate().getRateStat().getName() + "." + r.getRate().getPeriod();
|
||||
return lName.compareTo(rName);
|
||||
private static class AlphaComparator implements Comparator<SummaryListener> {
|
||||
public int compare(SummaryListener l, SummaryListener r) {
|
||||
String lName = l.getRate().getRateStat().getName();
|
||||
String rName = r.getRate().getRateStat().getName();
|
||||
int rv = lName.compareTo(rName);
|
||||
if (rv != 0)
|
||||
return rv;
|
||||
return (int) (l.getRate().getPeriod() - r.getRate().getPeriod());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -24,7 +24,6 @@ import java.util.Properties;
|
||||
import java.util.Set;
|
||||
import java.util.TreeSet;
|
||||
|
||||
import net.i2p.crypto.TrustedUpdate;
|
||||
import net.i2p.data.DataHelper;
|
||||
import net.i2p.data.Destination;
|
||||
import net.i2p.data.Hash;
|
||||
@ -174,18 +173,19 @@ public class NetDbRenderer {
|
||||
}
|
||||
if (debug) {
|
||||
buf.append("<p><b>Total Leasesets: " + leases.size());
|
||||
buf.append("<p><b>Published (RAP) Leasesets: " + _context.netDb().getKnownLeaseSets());
|
||||
buf.append("<p>Mod Data: " + HexDump.dump(_context.routingKeyGenerator().getModData()) + "<p>");
|
||||
buf.append("<p>Network data (only valid if floodfill):");
|
||||
buf.append("<p>Center of Key Space (router hash): " + ourRKey.toBase64() + "<p>");
|
||||
buf.append("</b></p><p><b>Published (RAP) Leasesets: " + _context.netDb().getKnownLeaseSets());
|
||||
buf.append("</b></p><p><b>Mod Data: " + HexDump.dump(_context.routingKeyGenerator().getModData()));
|
||||
buf.append("</b></p><p><b>Network data (only valid if floodfill):");
|
||||
buf.append("</b></p><p><b>Center of Key Space (router hash): " + ourRKey.toBase64());
|
||||
if (median != null) {
|
||||
double log2 = biLog2(median);
|
||||
buf.append("<p>Median distance (bits): " + fmt.format(log2));
|
||||
buf.append("</b></p><p><b>Median distance (bits): " + fmt.format(log2));
|
||||
// 3 for 8 floodfills... -1 for median
|
||||
int total = (int) Math.round(Math.pow(2, 3 + 256 - 1 - log2));
|
||||
buf.append("<p>Estimated total floodfills: " + total);
|
||||
buf.append("<p>Estimated network total leasesets: " + (total * leases.size() / 8));
|
||||
buf.append("</b></p><p><b>Estimated total floodfills: " + total);
|
||||
buf.append("</b></p><p><b>Estimated network total leasesets: " + (total * leases.size() / 8));
|
||||
}
|
||||
buf.append("</b></p>");
|
||||
}
|
||||
out.write(buf.toString());
|
||||
out.flush();
|
||||
@ -405,11 +405,10 @@ public class NetDbRenderer {
|
||||
/**
|
||||
* what transport types
|
||||
*/
|
||||
private int classifyTransports(RouterInfo info) {
|
||||
private static int classifyTransports(RouterInfo info) {
|
||||
int rv = 0;
|
||||
String hash = info.getIdentity().getHash().toBase64();
|
||||
for (Iterator iter = info.getAddresses().iterator(); iter.hasNext(); ) {
|
||||
RouterAddress addr = (RouterAddress)iter.next();
|
||||
for (RouterAddress addr : info.getAddresses()) {
|
||||
String style = addr.getTransportStyle();
|
||||
if (style.equals("NTCP")) {
|
||||
rv |= NTCP;
|
||||
|
@ -95,7 +95,8 @@ public class PluginStarter implements Runnable {
|
||||
log.error("Cannot start nonexistent plugin: " + appName);
|
||||
return false;
|
||||
}
|
||||
//log.error("Starting plugin: " + appName);
|
||||
if (log.shouldLog(Log.INFO))
|
||||
log.info("Starting plugin: " + appName);
|
||||
|
||||
// register themes
|
||||
File dir = new File(pluginDir, "console/themes");
|
||||
@ -139,7 +140,8 @@ public class PluginStarter implements Runnable {
|
||||
}
|
||||
String enabled = props.getProperty(RouterConsoleRunner.PREFIX + warName + ENABLED);
|
||||
if (! "false".equals(enabled)) {
|
||||
//log.error("Starting webapp: " + warName);
|
||||
if (log.shouldLog(Log.INFO))
|
||||
log.info("Starting webapp: " + warName);
|
||||
String path = new File(webappDir, fileNames[i]).getCanonicalPath();
|
||||
WebAppStarter.startWebApp(ctx, server, warName, path);
|
||||
pluginWars.get(appName).add(warName);
|
||||
@ -149,6 +151,8 @@ public class PluginStarter implements Runnable {
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
log.error("No console web server to start plugins?");
|
||||
}
|
||||
|
||||
// add translation jars in console/locale
|
||||
|
@ -1,16 +1,25 @@
|
||||
package net.i2p.router.web;
|
||||
|
||||
import java.awt.Color;
|
||||
import java.awt.Graphics;
|
||||
import java.awt.image.BufferedImage;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.io.OutputStream;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.StringTokenizer;
|
||||
import java.util.concurrent.CopyOnWriteArrayList;
|
||||
import java.util.concurrent.Semaphore;
|
||||
|
||||
import javax.imageio.ImageIO;
|
||||
import javax.imageio.stream.ImageOutputStream;
|
||||
import javax.imageio.stream.MemoryCacheImageOutputStream;
|
||||
|
||||
import net.i2p.router.RouterContext;
|
||||
import net.i2p.stat.Rate;
|
||||
import net.i2p.stat.RateStat;
|
||||
import net.i2p.util.FileUtil;
|
||||
import net.i2p.util.Log;
|
||||
|
||||
import org.jrobin.core.RrdException;
|
||||
@ -18,7 +27,17 @@ import org.jrobin.graph.RrdGraph;
|
||||
import org.jrobin.graph.RrdGraphDef;
|
||||
|
||||
/**
|
||||
* A thread started by RouterConsoleRunner that
|
||||
* checks the configuration for stats to be tracked via jrobin,
|
||||
* and adds or deletes RRDs as necessary.
|
||||
*
|
||||
* This also contains methods to generate xml or png image output.
|
||||
* The actual png rendering code is here for the special dual-rate graph;
|
||||
* the rendering for standard graphs is in SummaryRenderer.
|
||||
*
|
||||
* To control memory, the number of simultaneous renderings is limited.
|
||||
*
|
||||
* @since 0.6.1.13
|
||||
*/
|
||||
public class StatSummarizer implements Runnable {
|
||||
private final RouterContext _context;
|
||||
@ -28,25 +47,52 @@ public class StatSummarizer implements Runnable {
|
||||
private static StatSummarizer _instance;
|
||||
private static final int MAX_CONCURRENT_PNG = 3;
|
||||
private final Semaphore _sem;
|
||||
private volatile boolean _isRunning = true;
|
||||
private volatile boolean _isDisabled;
|
||||
private Thread _thread;
|
||||
|
||||
public StatSummarizer() {
|
||||
_context = (RouterContext)RouterContext.listContexts().get(0); // fuck it, only summarize one per jvm
|
||||
_log = _context.logManager().getLog(getClass());
|
||||
_listeners = new ArrayList(16);
|
||||
_listeners = new CopyOnWriteArrayList();
|
||||
_instance = this;
|
||||
_sem = new Semaphore(MAX_CONCURRENT_PNG, true);
|
||||
_context.addShutdownTask(new Shutdown());
|
||||
}
|
||||
|
||||
public static StatSummarizer instance() { return _instance; }
|
||||
|
||||
public void run() {
|
||||
// JRobin 1.5.9 crashes these JVMs
|
||||
String vendor = System.getProperty("java.vendor");
|
||||
if (vendor.startsWith("Apache") || // Harmony
|
||||
vendor.startsWith("GNU Classpath") || // JamVM
|
||||
vendor.startsWith("Free Software Foundation")) { // gij
|
||||
_log.logAlways(Log.WARN, "Graphing not supported with this JVM: " +
|
||||
vendor + ' ' +
|
||||
System.getProperty("java.version") + " (" +
|
||||
System.getProperty("java.runtime.name") + ' ' +
|
||||
System.getProperty("java.runtime.version") + ')');
|
||||
_isDisabled = true;
|
||||
_isRunning = false;
|
||||
return;
|
||||
}
|
||||
boolean isPersistent = _context.getBooleanPropertyDefaultTrue(SummaryListener.PROP_PERSISTENT);
|
||||
if (!isPersistent)
|
||||
deleteOldRRDs();
|
||||
_thread = Thread.currentThread();
|
||||
String specs = "";
|
||||
while (_context.router().isAlive()) {
|
||||
while (_isRunning && _context.router().isAlive()) {
|
||||
specs = adjustDatabases(specs);
|
||||
try { Thread.sleep(60*1000); } catch (InterruptedException ie) {}
|
||||
}
|
||||
}
|
||||
|
||||
/** @since 0.8.6 */
|
||||
boolean isDisabled() {
|
||||
return _isDisabled;
|
||||
}
|
||||
|
||||
/** list of SummaryListener instances */
|
||||
List<SummaryListener> getListeners() { return _listeners; }
|
||||
|
||||
@ -105,10 +151,10 @@ public class StatSummarizer implements Runnable {
|
||||
}
|
||||
|
||||
private void removeDb(Rate r) {
|
||||
for (int i = 0; i < _listeners.size(); i++) {
|
||||
SummaryListener lsnr = _listeners.get(i);
|
||||
for (SummaryListener lsnr : _listeners) {
|
||||
if (lsnr.getRate().equals(r)) {
|
||||
_listeners.remove(i);
|
||||
// no iter.remove() in COWAL
|
||||
_listeners.remove(lsnr);
|
||||
lsnr.stopListening();
|
||||
return;
|
||||
}
|
||||
@ -116,13 +162,17 @@ public class StatSummarizer implements Runnable {
|
||||
}
|
||||
private void addDb(Rate r) {
|
||||
SummaryListener lsnr = new SummaryListener(r);
|
||||
_listeners.add(lsnr);
|
||||
lsnr.startListening();
|
||||
boolean success = lsnr.startListening();
|
||||
if (success)
|
||||
_listeners.add(lsnr);
|
||||
else
|
||||
_log.error("Failed to add RRD for rate " + r.getRateStat().getName() + '.' + r.getPeriod());
|
||||
//System.out.println("Start listening for " + r.getRateStat().getName() + ": " + r.getPeriod());
|
||||
}
|
||||
|
||||
public boolean renderPng(Rate rate, OutputStream out) throws IOException {
|
||||
return renderPng(rate, out, -1, -1, false, false, false, false, -1, true);
|
||||
return renderPng(rate, out, GraphHelper.DEFAULT_X, GraphHelper.DEFAULT_Y,
|
||||
false, false, false, false, -1, true);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -141,7 +191,7 @@ public class StatSummarizer implements Runnable {
|
||||
return locked_renderPng(rate, out, width, height, hideLegend, hideGrid, hideTitle, showEvents,
|
||||
periodCount, showCredit);
|
||||
} finally {
|
||||
_sem.release();
|
||||
_sem.release();
|
||||
}
|
||||
}
|
||||
|
||||
@ -150,10 +200,13 @@ public class StatSummarizer implements Runnable {
|
||||
boolean showCredit) throws IOException {
|
||||
if (width > GraphHelper.MAX_X)
|
||||
width = GraphHelper.MAX_X;
|
||||
else if (width <= 0)
|
||||
width = GraphHelper.DEFAULT_X;
|
||||
if (height > GraphHelper.MAX_Y)
|
||||
height = GraphHelper.MAX_Y;
|
||||
for (int i = 0; i < _listeners.size(); i++) {
|
||||
SummaryListener lsnr = _listeners.get(i);
|
||||
else if (height <= 0)
|
||||
height = GraphHelper.DEFAULT_Y;
|
||||
for (SummaryListener lsnr : _listeners) {
|
||||
if (lsnr.getRate().equals(rate)) {
|
||||
lsnr.renderPng(out, width, height, hideLegend, hideGrid, hideTitle, showEvents, periodCount, showCredit);
|
||||
return true;
|
||||
@ -162,14 +215,25 @@ public class StatSummarizer implements Runnable {
|
||||
return false;
|
||||
}
|
||||
|
||||
/** @deprecated unused */
|
||||
public boolean renderPng(OutputStream out, String templateFilename) throws IOException {
|
||||
SummaryRenderer.render(_context, out, templateFilename);
|
||||
return true;
|
||||
}
|
||||
|
||||
public boolean getXML(Rate rate, OutputStream out) throws IOException {
|
||||
for (int i = 0; i < _listeners.size(); i++) {
|
||||
SummaryListener lsnr = _listeners.get(i);
|
||||
try {
|
||||
try {
|
||||
_sem.acquire();
|
||||
} catch (InterruptedException ie) {}
|
||||
return locked_getXML(rate, out);
|
||||
} finally {
|
||||
_sem.release();
|
||||
}
|
||||
}
|
||||
|
||||
private boolean locked_getXML(Rate rate, OutputStream out) throws IOException {
|
||||
for (SummaryListener lsnr : _listeners) {
|
||||
if (lsnr.getRate().equals(rate)) {
|
||||
lsnr.getData().exportXml(out);
|
||||
out.write(("<!-- Rate: " + lsnr.getRate().getRateStat().getName() + " for period " + lsnr.getRate().getPeriod() + " -->\n").getBytes());
|
||||
@ -196,68 +260,91 @@ public class StatSummarizer implements Runnable {
|
||||
return locked_renderRatePng(out, width, height, hideLegend, hideGrid, hideTitle, showEvents,
|
||||
periodCount, showCredit);
|
||||
} finally {
|
||||
_sem.release();
|
||||
_sem.release();
|
||||
}
|
||||
}
|
||||
|
||||
private boolean locked_renderRatePng(OutputStream out, int width, int height, boolean hideLegend,
|
||||
boolean hideGrid, boolean hideTitle, boolean showEvents,
|
||||
int periodCount, boolean showCredit) throws IOException {
|
||||
long end = _context.clock().now() - 60*1000;
|
||||
|
||||
// go to some trouble to see if we have the data for the combined bw graph
|
||||
SummaryListener txLsnr = null;
|
||||
SummaryListener rxLsnr = null;
|
||||
for (SummaryListener lsnr : StatSummarizer.instance().getListeners()) {
|
||||
String title = lsnr.getRate().getRateStat().getName();
|
||||
if (title.equals("bw.sendRate"))
|
||||
txLsnr = lsnr;
|
||||
else if (title.equals("bw.recvRate"))
|
||||
rxLsnr = lsnr;
|
||||
}
|
||||
if (txLsnr == null || rxLsnr == null)
|
||||
throw new IOException("no rates for combined graph");
|
||||
|
||||
long end = _context.clock().now() - 75*1000;
|
||||
if (width > GraphHelper.MAX_X)
|
||||
width = GraphHelper.MAX_X;
|
||||
else if (width <= 0)
|
||||
width = GraphHelper.DEFAULT_X;
|
||||
if (height > GraphHelper.MAX_Y)
|
||||
height = GraphHelper.MAX_Y;
|
||||
if (periodCount <= 0) periodCount = SummaryListener.PERIODS;
|
||||
if (periodCount > SummaryListener.PERIODS)
|
||||
periodCount = SummaryListener.PERIODS;
|
||||
else if (height <= 0)
|
||||
height = GraphHelper.DEFAULT_Y;
|
||||
if (periodCount <= 0 || periodCount > txLsnr.getRows())
|
||||
periodCount = txLsnr.getRows();
|
||||
long period = 60*1000;
|
||||
long start = end - period*periodCount;
|
||||
//long begin = System.currentTimeMillis();
|
||||
try {
|
||||
RrdGraphDef def = new RrdGraphDef();
|
||||
def.setTimePeriod(start/1000, 0);
|
||||
def.setLowerLimit(0d);
|
||||
def.setBaseValue(1024);
|
||||
// Note to translators: all runtime zh translation disabled in this file, no font available in RRD
|
||||
def.setTimeSpan(start/1000, end/1000);
|
||||
def.setMinValue(0d);
|
||||
def.setBase(1024);
|
||||
String title = _("Bandwidth usage");
|
||||
if (!hideTitle)
|
||||
def.setTitle(title);
|
||||
long started = _context.router().getWhenStarted();
|
||||
if (started > start && started < end)
|
||||
def.vrule(started / 1000, Color.BLACK, null, 4.0f); // no room for legend
|
||||
String sendName = SummaryListener.createName(_context, "bw.sendRate.60000");
|
||||
String recvName = SummaryListener.createName(_context, "bw.recvRate.60000");
|
||||
def.datasource(sendName, sendName, sendName, "AVERAGE", "MEMORY");
|
||||
def.datasource(recvName, recvName, recvName, "AVERAGE", "MEMORY");
|
||||
def.area(sendName, Color.BLUE, _("Outbound bytes/sec"));
|
||||
def.datasource(sendName, txLsnr.getData().getPath(), sendName, SummaryListener.CF, txLsnr.getBackendName());
|
||||
def.datasource(recvName, rxLsnr.getData().getPath(), recvName, SummaryListener.CF, rxLsnr.getBackendName());
|
||||
def.area(sendName, Color.BLUE, _("Outbound Bytes/sec"));
|
||||
//def.line(sendName, Color.BLUE, "Outbound bytes/sec", 3);
|
||||
def.line(recvName, Color.RED, _("Inbound bytes/sec") + "@r", 3);
|
||||
def.line(recvName, Color.RED, _("Inbound Bytes/sec") + "\\r", 3);
|
||||
//def.area(recvName, Color.RED, "Inbound bytes/sec@r");
|
||||
if (!hideLegend) {
|
||||
def.gprint(sendName, "AVERAGE", _("out average") + ": @2@s" + _("bytes/sec"));
|
||||
def.gprint(sendName, "MAX", ' ' + _("max") + ": @2@s" + _("bytes/sec") + "@r");
|
||||
def.gprint(recvName, "AVERAGE", _("in average") + ": @2@s" + _("bytes/sec"));
|
||||
def.gprint(recvName, "MAX", ' ' + _("max") + ": @2@s" + _("bytes/sec") + "@r");
|
||||
def.gprint(sendName, SummaryListener.CF, _("Out average") + ": %.2f %s" + _("Bps"));
|
||||
def.gprint(sendName, "MAX", ' ' + _("max") + ": %.2f %S" + _("Bps") + "\\r");
|
||||
def.gprint(recvName, SummaryListener.CF, _("In average") + ": %.2f %S" + _("Bps"));
|
||||
def.gprint(recvName, "MAX", ' ' + _("max") + ": %.2f %S" + _("Bps") + "\\r");
|
||||
}
|
||||
if (!showCredit)
|
||||
def.setShowSignature(false);
|
||||
if (hideLegend)
|
||||
def.setShowLegend(false);
|
||||
def.setNoLegend(true);
|
||||
if (hideGrid) {
|
||||
def.setGridX(false);
|
||||
def.setGridY(false);
|
||||
def.setDrawXGrid(false);
|
||||
def.setDrawYGrid(false);
|
||||
}
|
||||
//System.out.println("rendering: path=" + path + " dsNames[0]=" + dsNames[0] + " dsNames[1]=" + dsNames[1] + " lsnr.getName=" + _listener.getName());
|
||||
def.setAntiAliasing(false);
|
||||
//System.out.println("Rendering: \n" + def.exportXmlTemplate());
|
||||
//System.out.println("*****************\nData: \n" + _listener.getData().dump());
|
||||
def.setWidth(width);
|
||||
def.setHeight(height);
|
||||
|
||||
RrdGraph graph = new RrdGraph(def);
|
||||
//System.out.println("Graph created");
|
||||
byte data[] = null;
|
||||
if ( (width <= 0) || (height <= 0) )
|
||||
data = graph.getPNGBytes();
|
||||
else
|
||||
data = graph.getPNGBytes(width, height);
|
||||
//long timeToPlot = System.currentTimeMillis() - begin;
|
||||
out.write(data);
|
||||
int totalWidth = graph.getRrdGraphInfo().getWidth();
|
||||
int totalHeight = graph.getRrdGraphInfo().getHeight();
|
||||
BufferedImage img = new BufferedImage(totalWidth, totalHeight, BufferedImage.TYPE_USHORT_565_RGB);
|
||||
Graphics gfx = img.getGraphics();
|
||||
graph.render(gfx);
|
||||
ImageOutputStream ios = new MemoryCacheImageOutputStream(out);
|
||||
ImageIO.write(img, "png", ios);
|
||||
|
||||
//File t = File.createTempFile("jrobinData", ".xml");
|
||||
//_listener.getData().dumpXml(new FileOutputStream(t));
|
||||
//System.out.println("plotted: " + (data != null ? data.length : 0) + " bytes in " + timeToPlot
|
||||
@ -303,11 +390,38 @@ public class StatSummarizer implements Runnable {
|
||||
return rv;
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete the old rrd dir if we are no longer persistent
|
||||
* @since 0.8.6
|
||||
*/
|
||||
private void deleteOldRRDs() {
|
||||
File rrdDir = new File(_context.getRouterDir(), SummaryListener.RRD_DIR);
|
||||
FileUtil.rmdir(rrdDir, false);
|
||||
}
|
||||
|
||||
/** translate a string */
|
||||
private String _(String s) {
|
||||
// the RRD font doesn't have zh chars, at least on my system
|
||||
if ("zh".equals(Messages.getLanguage(_context)))
|
||||
return s;
|
||||
// Works on 1.5.9
|
||||
//if ("zh".equals(Messages.getLanguage(_context)))
|
||||
// return s;
|
||||
return Messages.getString(s, _context);
|
||||
}
|
||||
|
||||
/**
|
||||
* Make sure any persistent RRDs are closed
|
||||
* @since 0.8.6
|
||||
*/
|
||||
private class Shutdown implements Runnable {
|
||||
public void run() {
|
||||
_isRunning = false;
|
||||
if (_thread != null)
|
||||
_thread.interrupt();
|
||||
for (SummaryListener lsnr : _listeners) {
|
||||
// FIXME could cause exceptions if rendering?
|
||||
lsnr.stopListening();
|
||||
}
|
||||
_listeners.clear();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -123,7 +123,7 @@ public class SummaryBarRenderer {
|
||||
.append(_("Health Report"))
|
||||
.append("\">")
|
||||
.append(_("Logs"))
|
||||
.append("</a>\n" +
|
||||
.append("</a>\n");
|
||||
|
||||
// "<a href=\"/jobs.jsp\" target=\"_top\" title=\"")
|
||||
// .append(_("Show the router's workload, and how it's performing"))
|
||||
@ -131,13 +131,15 @@ public class SummaryBarRenderer {
|
||||
// .append(_("Jobs"))
|
||||
// .append("</a>\n" +
|
||||
|
||||
"<a href=\"/graphs\" target=\"_top\" title=\"")
|
||||
if (!StatSummarizer.instance().isDisabled()) {
|
||||
buf.append("<a href=\"/graphs\" target=\"_top\" title=\"")
|
||||
.append(_("Graph router performance"))
|
||||
.append("\">")
|
||||
.append(_("Graphs"))
|
||||
.append("</a>\n" +
|
||||
.append("</a>\n");
|
||||
}
|
||||
|
||||
"<a href=\"/stats\" target=\"_top\" title=\"")
|
||||
buf.append("<a href=\"/stats\" target=\"_top\" title=\"")
|
||||
.append(_("Textual router performance statistics"))
|
||||
.append("\">")
|
||||
.append(_("Stats"))
|
||||
|
@ -384,7 +384,7 @@ public class SummaryHelper extends HelperBase {
|
||||
buf.append("client.png\" alt=\"Client\" title=\"" + _("Client") + "\">");
|
||||
buf.append("</td><td align=\"left\"><b><a href=\"tunnels#").append(h.toBase64().substring(0,4));
|
||||
buf.append("\" target=\"_top\" title=\"" + _("Show tunnels") + "\">");
|
||||
if (name.length() < 16)
|
||||
if (name.length() < 18)
|
||||
buf.append(name);
|
||||
else
|
||||
buf.append(name.substring(0,15)).append("…");
|
||||
|
@ -1,6 +1,6 @@
|
||||
package net.i2p.router.web;
|
||||
|
||||
import java.awt.Color;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.io.OutputStream;
|
||||
|
||||
@ -10,42 +10,59 @@ import net.i2p.stat.Rate;
|
||||
import net.i2p.stat.RateStat;
|
||||
import net.i2p.stat.RateSummaryListener;
|
||||
import net.i2p.util.Log;
|
||||
import net.i2p.util.SecureFile;
|
||||
import net.i2p.util.SecureFileOutputStream;
|
||||
|
||||
import org.jrobin.core.Archive;
|
||||
import org.jrobin.core.RrdBackendFactory;
|
||||
import org.jrobin.core.RrdDb;
|
||||
import org.jrobin.core.RrdDef;
|
||||
import org.jrobin.core.RrdException;
|
||||
import org.jrobin.core.RrdMemoryBackendFactory;
|
||||
import org.jrobin.core.RrdNioBackendFactory;
|
||||
import org.jrobin.core.Sample;
|
||||
import org.jrobin.graph.RrdGraph;
|
||||
import org.jrobin.graph.RrdGraphDef;
|
||||
import org.jrobin.graph.RrdGraphDefTemplate;
|
||||
|
||||
/**
|
||||
* Creates and updates the in-memory RRD database,
|
||||
* and provides methods to generate graphs of the data
|
||||
*
|
||||
* @since 0.6.1.13
|
||||
*/
|
||||
class SummaryListener implements RateSummaryListener {
|
||||
private I2PAppContext _context;
|
||||
private Log _log;
|
||||
private Rate _rate;
|
||||
static final String PROP_PERSISTENT = "routerconsole.graphPersistent";
|
||||
/** note that .jrb files are NOT compatible with .rrd files */
|
||||
static final String RRD_DIR = "rrd";
|
||||
private static final String RRD_PREFIX = "rrd-";
|
||||
private static final String RRD_SUFFIX = ".jrb";
|
||||
static final String CF = "AVERAGE";
|
||||
private static final double XFF = 0.9d;
|
||||
private static final int STEPS = 1;
|
||||
|
||||
private final I2PAppContext _context;
|
||||
private final Log _log;
|
||||
private final Rate _rate;
|
||||
private final boolean _isPersistent;
|
||||
private String _name;
|
||||
private String _eventName;
|
||||
private RrdDb _db;
|
||||
private Sample _sample;
|
||||
private RrdMemoryBackendFactory _factory;
|
||||
private SummaryRenderer _renderer;
|
||||
private int _rows;
|
||||
|
||||
static final int PERIODS = 1440;
|
||||
|
||||
static {
|
||||
try {
|
||||
RrdBackendFactory.setDefaultFactory("MEMORY");
|
||||
} catch (RrdException re) {
|
||||
re.printStackTrace();
|
||||
}
|
||||
}
|
||||
static final int PERIODS = 60 * 24; // 1440
|
||||
private static final int MIN_ROWS = PERIODS;
|
||||
private static final int MAX_ROWS = 91 * MIN_ROWS;
|
||||
private static final long THREE_MONTHS = 91l * 24 * 60 * 60 * 1000;
|
||||
|
||||
public SummaryListener(Rate r) {
|
||||
_context = I2PAppContext.getGlobalContext();
|
||||
_rate = r;
|
||||
_log = _context.logManager().getLog(SummaryListener.class);
|
||||
_isPersistent = _context.getBooleanPropertyDefaultTrue(PROP_PERSISTENT);
|
||||
}
|
||||
|
||||
public void add(double totalValue, long eventCount, double totalEventTime, long period) {
|
||||
@ -86,34 +103,73 @@ class SummaryListener implements RateSummaryListener {
|
||||
}
|
||||
|
||||
public Rate getRate() { return _rate; }
|
||||
public void startListening() {
|
||||
|
||||
/**
|
||||
* @return success
|
||||
*/
|
||||
public boolean startListening() {
|
||||
RateStat rs = _rate.getRateStat();
|
||||
long period = _rate.getPeriod();
|
||||
String baseName = rs.getName() + "." + period;
|
||||
_name = createName(_context, baseName);
|
||||
_eventName = createName(_context, baseName + ".events");
|
||||
try {
|
||||
RrdDef def = new RrdDef(_name, now()/1000, period/1000);
|
||||
// for info on the heartbeat, xff, steps, etc, see the rrdcreate man page, aka
|
||||
// http://www.jrobin.org/support/man/rrdcreate.html
|
||||
long heartbeat = period*10/1000;
|
||||
def.addDatasource(_name, "GAUGE", heartbeat, Double.NaN, Double.NaN);
|
||||
def.addDatasource(_eventName, "GAUGE", heartbeat, 0, Double.NaN);
|
||||
double xff = 0.9;
|
||||
int steps = 1;
|
||||
int rows = PERIODS;
|
||||
def.addArchive("AVERAGE", xff, steps, rows);
|
||||
_factory = (RrdMemoryBackendFactory)RrdBackendFactory.getDefaultFactory();
|
||||
_db = new RrdDb(def, _factory);
|
||||
RrdBackendFactory factory = RrdBackendFactory.getFactory(getBackendName());
|
||||
String rrdDefName;
|
||||
if (_isPersistent) {
|
||||
// generate full path for persistent RRD files
|
||||
File rrdDir = new SecureFile(_context.getRouterDir(), RRD_DIR);
|
||||
File rrdFile = new File(rrdDir, RRD_PREFIX + _name + RRD_SUFFIX);
|
||||
rrdDefName = rrdFile.getAbsolutePath();
|
||||
if (rrdFile.exists()) {
|
||||
_db = new RrdDb(rrdDefName, factory);
|
||||
Archive arch = _db.getArchive(CF, STEPS);
|
||||
if (arch == null)
|
||||
throw new IOException("No average CF in " + rrdDefName);
|
||||
_rows = arch.getRows();
|
||||
if (_log.shouldLog(Log.INFO))
|
||||
_log.info("Existing RRD " + baseName + " (" + rrdDefName + ") with " + _rows + " rows consuming " + _db.getRrdBackend().getLength() + " bytes");
|
||||
} else {
|
||||
rrdDir.mkdir();
|
||||
}
|
||||
} else {
|
||||
rrdDefName = _name;
|
||||
}
|
||||
if (_db == null) {
|
||||
// not persistent or not previously existing
|
||||
RrdDef def = new RrdDef(rrdDefName, now()/1000, period/1000);
|
||||
// for info on the heartbeat, xff, steps, etc, see the rrdcreate man page, aka
|
||||
// http://www.jrobin.org/support/man/rrdcreate.html
|
||||
long heartbeat = period*10/1000;
|
||||
def.addDatasource(_name, "GAUGE", heartbeat, Double.NaN, Double.NaN);
|
||||
def.addDatasource(_eventName, "GAUGE", heartbeat, 0, Double.NaN);
|
||||
int steps = 1;
|
||||
if (_isPersistent) {
|
||||
_rows = (int) Math.max(MIN_ROWS, Math.min(MAX_ROWS, THREE_MONTHS / period));
|
||||
} else {
|
||||
_rows = MIN_ROWS;
|
||||
}
|
||||
def.addArchive(CF, XFF, STEPS, _rows);
|
||||
_db = new RrdDb(def, factory);
|
||||
if (_isPersistent)
|
||||
SecureFileOutputStream.setPerms(new File(rrdDefName));
|
||||
if (_log.shouldLog(Log.INFO))
|
||||
_log.info("New RRD " + baseName + " (" + rrdDefName + ") with " + _rows + " rows consuming " + _db.getRrdBackend().getLength() + " bytes");
|
||||
}
|
||||
_sample = _db.createSample();
|
||||
_renderer = new SummaryRenderer(_context, this);
|
||||
_rate.setSummaryListener(this);
|
||||
return true;
|
||||
} catch (OutOfMemoryError oom) {
|
||||
_log.error("Error starting RRD for stat " + baseName, oom);
|
||||
} catch (RrdException re) {
|
||||
_log.error("Error starting", re);
|
||||
_log.error("Error starting RRD for stat " + baseName, re);
|
||||
} catch (IOException ioe) {
|
||||
_log.error("Error starting", ioe);
|
||||
_log.error("Error starting RRD for stat " + baseName, ioe);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public void stopListening() {
|
||||
if (_db == null) return;
|
||||
try {
|
||||
@ -122,23 +178,50 @@ class SummaryListener implements RateSummaryListener {
|
||||
_log.error("Error closing", ioe);
|
||||
}
|
||||
_rate.setSummaryListener(null);
|
||||
_factory.delete(_db.getPath());
|
||||
if (!_isPersistent) {
|
||||
// close() does not release resources for memory backend
|
||||
try {
|
||||
((RrdMemoryBackendFactory)RrdBackendFactory.getFactory(RrdMemoryBackendFactory.NAME)).delete(_db.getPath());
|
||||
} catch (RrdException re) {}
|
||||
}
|
||||
_db = null;
|
||||
}
|
||||
|
||||
public void renderPng(OutputStream out, int width, int height, boolean hideLegend, boolean hideGrid, boolean hideTitle, boolean showEvents, int periodCount, boolean showCredit) throws IOException {
|
||||
if (_renderer == null || _db == null)
|
||||
throw new IOException("No RRD, check logs for previous errors");
|
||||
_renderer.render(out, width, height, hideLegend, hideGrid, hideTitle, showEvents, periodCount, showCredit);
|
||||
}
|
||||
public void renderPng(OutputStream out) throws IOException { _renderer.render(out); }
|
||||
|
||||
public void renderPng(OutputStream out) throws IOException {
|
||||
if (_renderer == null || _db == null)
|
||||
throw new IOException("No RRD, check logs for previous errors");
|
||||
_renderer.render(out);
|
||||
}
|
||||
|
||||
String getName() { return _name; }
|
||||
|
||||
String getEventName() { return _eventName; }
|
||||
|
||||
RrdDb getData() { return _db; }
|
||||
|
||||
long now() { return _context.clock().now(); }
|
||||
|
||||
/** @since 0.8.6 */
|
||||
String getBackendName() {
|
||||
return _isPersistent ? RrdNioBackendFactory.NAME : RrdMemoryBackendFactory.NAME;
|
||||
}
|
||||
|
||||
/** @since 0.8.6 */
|
||||
int getRows() {
|
||||
return _rows;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
return ((obj instanceof SummaryListener) && ((SummaryListener)obj)._rate.equals(_rate));
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() { return _rate.hashCode(); }
|
||||
}
|
||||
|
@ -1,30 +1,39 @@
|
||||
package net.i2p.router.web;
|
||||
|
||||
import java.awt.Color;
|
||||
import java.awt.Graphics;
|
||||
import java.awt.image.BufferedImage;
|
||||
import java.io.IOException;
|
||||
import java.io.OutputStream;
|
||||
|
||||
import javax.imageio.ImageIO;
|
||||
import javax.imageio.stream.ImageOutputStream;
|
||||
import javax.imageio.stream.MemoryCacheImageOutputStream;
|
||||
|
||||
import net.i2p.I2PAppContext;
|
||||
import net.i2p.data.DataHelper;
|
||||
import net.i2p.router.RouterContext;
|
||||
import net.i2p.stat.Rate;
|
||||
import net.i2p.stat.RateStat;
|
||||
import net.i2p.stat.RateSummaryListener;
|
||||
import net.i2p.util.Log;
|
||||
|
||||
import org.jrobin.core.RrdBackendFactory;
|
||||
import org.jrobin.core.RrdDb;
|
||||
import org.jrobin.core.RrdDef;
|
||||
import org.jrobin.core.RrdException;
|
||||
import org.jrobin.core.RrdMemoryBackendFactory;
|
||||
import org.jrobin.core.Sample;
|
||||
import org.jrobin.graph.RrdGraph;
|
||||
import org.jrobin.graph.RrdGraphDef;
|
||||
import org.jrobin.graph.RrdGraphDefTemplate;
|
||||
|
||||
/**
|
||||
* Generate the RRD graph png images,
|
||||
* except for the combined rate graph, which is
|
||||
* generated in StatSummarizer.
|
||||
*
|
||||
* @since 0.6.1.13
|
||||
*/
|
||||
class SummaryRenderer {
|
||||
private Log _log;
|
||||
private SummaryListener _listener;
|
||||
private I2PAppContext _context;
|
||||
private final Log _log;
|
||||
private final SummaryListener _listener;
|
||||
private final I2PAppContext _context;
|
||||
|
||||
public SummaryRenderer(I2PAppContext ctx, SummaryListener lsnr) {
|
||||
_log = ctx.logManager().getLog(SummaryRenderer.class);
|
||||
@ -38,6 +47,7 @@ class SummaryRenderer {
|
||||
* DOM level 3 load and store support. Perhaps we can bundle that, or
|
||||
* specify who can get it from where, etc.
|
||||
*
|
||||
* @deprecated unsed
|
||||
*/
|
||||
public static synchronized void render(I2PAppContext ctx, OutputStream out, String filename) throws IOException {
|
||||
long end = ctx.clock().now() - 60*1000;
|
||||
@ -45,10 +55,21 @@ class SummaryRenderer {
|
||||
try {
|
||||
RrdGraphDefTemplate template = new RrdGraphDefTemplate(filename);
|
||||
RrdGraphDef def = template.getRrdGraphDef();
|
||||
def.setTimePeriod(start/1000, end/1000); // ignore the periods in the template
|
||||
def.setTimeSpan(start/1000, end/1000); // ignore the periods in the template
|
||||
// FIXME not clear how to get the height and width from the template
|
||||
int width = GraphHelper.DEFAULT_X;
|
||||
int height = GraphHelper.DEFAULT_Y;
|
||||
def.setWidth(width);
|
||||
def.setHeight(height);
|
||||
|
||||
RrdGraph graph = new RrdGraph(def);
|
||||
byte img[] = graph.getPNGBytes();
|
||||
out.write(img);
|
||||
int totalWidth = graph.getRrdGraphInfo().getWidth();
|
||||
int totalHeight = graph.getRrdGraphInfo().getHeight();
|
||||
BufferedImage img = new BufferedImage(totalWidth, totalHeight, BufferedImage.TYPE_USHORT_565_RGB);
|
||||
Graphics gfx = img.getGraphics();
|
||||
graph.render(gfx);
|
||||
ImageOutputStream ios = new MemoryCacheImageOutputStream(out);
|
||||
ImageIO.write(img, "png", ios);
|
||||
} catch (RrdException re) {
|
||||
//_log.error("Error rendering " + filename, re);
|
||||
throw new IOException("Error plotting: " + re.getMessage());
|
||||
@ -58,34 +79,33 @@ class SummaryRenderer {
|
||||
}
|
||||
}
|
||||
|
||||
public void render(OutputStream out) throws IOException { render(out, -1, -1, false, false, false, false, -1, false); }
|
||||
public void render(OutputStream out) throws IOException { render(out, GraphHelper.DEFAULT_X, GraphHelper.DEFAULT_Y,
|
||||
false, false, false, false, -1, false); }
|
||||
|
||||
public void render(OutputStream out, int width, int height, boolean hideLegend, boolean hideGrid, boolean hideTitle, boolean showEvents, int periodCount, boolean showCredit) throws IOException {
|
||||
long end = _listener.now() - 60*1000;
|
||||
if (periodCount <= 0) periodCount = SummaryListener.PERIODS;
|
||||
if (periodCount > SummaryListener.PERIODS)
|
||||
periodCount = SummaryListener.PERIODS;
|
||||
long end = _listener.now() - 75*1000;
|
||||
if (periodCount <= 0 || periodCount > _listener.getRows())
|
||||
periodCount = _listener.getRows();
|
||||
long start = end - _listener.getRate().getPeriod()*periodCount;
|
||||
//long begin = System.currentTimeMillis();
|
||||
try {
|
||||
RrdGraphDef def = new RrdGraphDef();
|
||||
def.setTimePeriod(start/1000, 0);
|
||||
def.setLowerLimit(0d);
|
||||
def.setTimeSpan(start/1000, end/1000);
|
||||
def.setMinValue(0d);
|
||||
String name = _listener.getRate().getRateStat().getName();
|
||||
// heuristic to set K=1024
|
||||
if ((name.startsWith("bw.") || name.indexOf("Size") >= 0 || name.indexOf("Bps") >= 0 || name.indexOf("memory") >= 0)
|
||||
&& !showEvents)
|
||||
def.setBaseValue(1024);
|
||||
def.setBase(1024);
|
||||
if (!hideTitle) {
|
||||
String title;
|
||||
String p;
|
||||
// we want the formatting and translation of formatDuration2(), except not zh, and not the
|
||||
if ("zh".equals(Messages.getLanguage(_context)))
|
||||
p = DataHelper.formatDuration(_listener.getRate().getPeriod());
|
||||
else
|
||||
//if ("zh".equals(Messages.getLanguage(_context)))
|
||||
// p = DataHelper.formatDuration(_listener.getRate().getPeriod());
|
||||
//else
|
||||
p = DataHelper.formatDuration2(_listener.getRate().getPeriod()).replace(" ", " ");
|
||||
if (showEvents)
|
||||
// Note to translators: all runtime zh translation disabled in this file, no font available in RRD
|
||||
title = name + ' ' + _("events in {0}", p);
|
||||
else
|
||||
title = name + ' ' + _("averaged for {0}", p);
|
||||
@ -108,12 +128,18 @@ class SummaryRenderer {
|
||||
// Strings.java
|
||||
descr = _(_listener.getRate().getRateStat().getDescription());
|
||||
}
|
||||
def.datasource(plotName, path, plotName, "AVERAGE", "MEMORY");
|
||||
def.area(plotName, Color.BLUE, descr + "@r");
|
||||
long started = ((RouterContext)_context).router().getWhenStarted();
|
||||
if (started > start && started < end)
|
||||
def.vrule(started / 1000, Color.BLACK, _("Restart"), 4.0f);
|
||||
def.datasource(plotName, path, plotName, SummaryListener.CF, _listener.getBackendName());
|
||||
if (descr.length() > 0)
|
||||
def.area(plotName, Color.BLUE, descr + "\\r");
|
||||
else
|
||||
def.area(plotName, Color.BLUE);
|
||||
if (!hideLegend) {
|
||||
def.gprint(plotName, "AVERAGE", _("avg") + ": @2@s");
|
||||
def.gprint(plotName, "MAX", ' ' + _("max") + ": @2@s");
|
||||
def.gprint(plotName, "LAST", ' ' + _("now") + ": @2@s@r");
|
||||
def.gprint(plotName, SummaryListener.CF, _("avg") + ": %.2f %s");
|
||||
def.gprint(plotName, "MAX", ' ' + _("max") + ": %.2f %S");
|
||||
def.gprint(plotName, "LAST", ' ' + _("now") + ": %.2f %S\\r");
|
||||
}
|
||||
if (!showCredit)
|
||||
def.setShowSignature(false);
|
||||
@ -126,24 +152,28 @@ class SummaryRenderer {
|
||||
def.line(dsNames[1], Color.RED, "Events per period");
|
||||
*/
|
||||
if (hideLegend)
|
||||
def.setShowLegend(false);
|
||||
def.setNoLegend(true);
|
||||
if (hideGrid) {
|
||||
def.setGridX(false);
|
||||
def.setGridY(false);
|
||||
def.setDrawXGrid(false);
|
||||
def.setDrawYGrid(false);
|
||||
}
|
||||
//System.out.println("rendering: path=" + path + " dsNames[0]=" + dsNames[0] + " dsNames[1]=" + dsNames[1] + " lsnr.getName=" + _listener.getName());
|
||||
def.setAntiAliasing(false);
|
||||
//System.out.println("Rendering: \n" + def.exportXmlTemplate());
|
||||
//System.out.println("*****************\nData: \n" + _listener.getData().dump());
|
||||
def.setWidth(width);
|
||||
def.setHeight(height);
|
||||
|
||||
RrdGraph graph = new RrdGraph(def);
|
||||
int totalWidth = graph.getRrdGraphInfo().getWidth();
|
||||
int totalHeight = graph.getRrdGraphInfo().getHeight();
|
||||
BufferedImage img = new BufferedImage(totalWidth, totalHeight, BufferedImage.TYPE_USHORT_565_RGB);
|
||||
Graphics gfx = img.getGraphics();
|
||||
graph.render(gfx);
|
||||
ImageOutputStream ios = new MemoryCacheImageOutputStream(out);
|
||||
ImageIO.write(img, "png", ios);
|
||||
//System.out.println("Graph created");
|
||||
byte data[] = null;
|
||||
if ( (width <= 0) || (height <= 0) )
|
||||
data = graph.getPNGBytes();
|
||||
else
|
||||
data = graph.getPNGBytes(width, height);
|
||||
//long timeToPlot = System.currentTimeMillis() - begin;
|
||||
out.write(data);
|
||||
|
||||
//File t = File.createTempFile("jrobinData", ".xml");
|
||||
//_listener.getData().dumpXml(new FileOutputStream(t));
|
||||
//System.out.println("plotted: " + (data != null ? data.length : 0) + " bytes in " + timeToPlot
|
||||
@ -163,8 +193,9 @@ class SummaryRenderer {
|
||||
/** translate a string */
|
||||
private String _(String s) {
|
||||
// the RRD font doesn't have zh chars, at least on my system
|
||||
if ("zh".equals(Messages.getLanguage(_context)))
|
||||
return s;
|
||||
// Works on 1.5.9
|
||||
//if ("zh".equals(Messages.getLanguage(_context)))
|
||||
// return s;
|
||||
return Messages.getString(s, _context);
|
||||
}
|
||||
|
||||
@ -173,8 +204,9 @@ class SummaryRenderer {
|
||||
*/
|
||||
private String _(String s, String o) {
|
||||
// the RRD font doesn't have zh chars, at least on my system
|
||||
if ("zh".equals(Messages.getLanguage(_context)))
|
||||
return s.replace("{0}", o);
|
||||
// Works on 1.5.9
|
||||
//if ("zh".equals(Messages.getLanguage(_context)))
|
||||
// return s.replace("{0}", o);
|
||||
return Messages.getString(s, o, _context);
|
||||
}
|
||||
}
|
||||
|
@ -165,7 +165,7 @@
|
||||
<input type="radio" class="optbox" name="ntcpAutoPort" value="1" <%=nethelper.getTcpAutoPortChecked(1) %> >
|
||||
<%=intl._("Specify Port")%>:
|
||||
<input name ="ntcpport" type="text" size="5" maxlength="5" value="<jsp:getProperty name="nethelper" property="ntcpport" />" ><br>
|
||||
</p><p><b><%=intl._("Note")%>: <%=intl._("Changing these settings will restart your router.")%></b></p>
|
||||
</p><p><b><%=intl._("Notes")%>: <%=intl._("a) Do not reveal your port numbers to anyone! b) Changing these settings will restart your router.")%></b></p>
|
||||
<hr><div class="formaction">
|
||||
<input type="reset" value="<%=intl._("Cancel")%>" >
|
||||
<input type="submit" name="save" value="<%=intl._("Save changes")%>" >
|
||||
|
@ -11,7 +11,6 @@
|
||||
* flags.jsp?c=de => icons/flags/de.png
|
||||
* with headers set so the browser caches.
|
||||
*/
|
||||
boolean rendered = false;
|
||||
String c = request.getParameter("c");
|
||||
if (c != null && c.length() > 0) {
|
||||
java.io.OutputStream cout = response.getOutputStream();
|
||||
@ -38,17 +37,23 @@ if (c != null && c.length() > 0) {
|
||||
response.setContentType("image/png");
|
||||
try {
|
||||
net.i2p.util.FileUtil.readFile(file, base, cout);
|
||||
rendered = true;
|
||||
} catch (java.io.IOException ioe) {}
|
||||
if (rendered)
|
||||
cout.close();
|
||||
} catch (java.io.IOException ioe) {
|
||||
// prevent 'Committed' IllegalStateException from Jetty
|
||||
if (!response.isCommitted()) {
|
||||
response.sendError(403, ioe.toString());
|
||||
} else {
|
||||
net.i2p.I2PAppContext.getGlobalContext().logManager().getLog(getClass()).error("Error serving flags/" + c + ".png", ioe);
|
||||
// Jetty doesn't log this
|
||||
throw ioe;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
/*
|
||||
* Send a 403 instead of a 404, because the server sends error.jsp
|
||||
* for 404 errors, complete with the summary bar, which would be
|
||||
* a huge load for a page full of flags if the user didn't have the
|
||||
* flags directory for some reason.
|
||||
*/
|
||||
response.sendError(403, "No flag specified");
|
||||
}
|
||||
/*
|
||||
* Send a 403 instead of a 404, because the server sends error.jsp
|
||||
* for 404 errors, complete with the summary bar, which would be
|
||||
* a huge load for a page full of flags if the user didn't have the
|
||||
* flags directory for some reason.
|
||||
*/
|
||||
if (!rendered)
|
||||
response.sendError(403, "Flag not found");
|
||||
%>
|
@ -5,19 +5,26 @@
|
||||
<html><head>
|
||||
<%@include file="css.jsi" %>
|
||||
<%=intl.title("graphs")%>
|
||||
</head><body>
|
||||
|
||||
<%@include file="summary.jsi" %>
|
||||
<h1><%=intl._("I2P Performance Graphs")%></h1>
|
||||
<div class="main" id="main">
|
||||
<div class="graphspanel">
|
||||
<div class="widepanel">
|
||||
<jsp:useBean class="net.i2p.router.web.GraphHelper" id="graphHelper" scope="request" />
|
||||
<% graphHelper.storeMethod(request.getMethod()); %>
|
||||
<jsp:setProperty name="graphHelper" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" />
|
||||
<% /* GraphHelper sets the defaults in setContextId, so setting the properties must be after the context */ %>
|
||||
<jsp:setProperty name="graphHelper" property="*" />
|
||||
<% graphHelper.storeWriter(out); %>
|
||||
<%
|
||||
graphHelper.storeWriter(out);
|
||||
graphHelper.storeMethod(request.getMethod());
|
||||
// meta must be inside the head
|
||||
boolean allowRefresh = intl.allowIFrame(request.getHeader("User-Agent"));
|
||||
if (allowRefresh) {
|
||||
out.print(graphHelper.getRefreshMeta());
|
||||
}
|
||||
%>
|
||||
</head><body>
|
||||
<%@include file="summary.jsi" %>
|
||||
<h1><%=intl._("I2P Performance Graphs")%></h1>
|
||||
<div class="main" id="main">
|
||||
<div class="graphspanel">
|
||||
<div class="widepanel">
|
||||
<jsp:getProperty name="graphHelper" property="allMessages" />
|
||||
<jsp:getProperty name="graphHelper" property="images" />
|
||||
<jsp:getProperty name="graphHelper" property="form" />
|
||||
|
@ -47,7 +47,7 @@ This may range from 8-10 to several hundred, depending on your total bandwidth,
|
||||
shared bandwidth, and locally-generated traffic.
|
||||
The second number is the number of peers seen in the last hour or so.
|
||||
Do not be concerned if these numbers vary widely.
|
||||
<a href="configstats.jsp#router.activePeers">[Enable graphing]</a>.
|
||||
First enable all stats to <a href="configstats.jsp#router.activePeers">[Enable graphing]</a>.
|
||||
<li class="tidylist"><b>Fast:</b>
|
||||
This is the number of peers you use for building client tunnels. It is generally in the
|
||||
range 8-30. Your fast peers are shown on the <a href="profiles.jsp">profiles page</a>.
|
||||
@ -56,7 +56,7 @@ range 8-30. Your fast peers are shown on the <a href="profiles.jsp">profiles pag
|
||||
This is the number of peers you use for building some of your exploratory tunnels. It is generally in the
|
||||
range 8-75. The fast peers are included in the high capacity tier.
|
||||
Your high capacity peers are shown on the <a href="profiles.jsp">profiles page</a>.
|
||||
<a href="configstats.jsp#router.highCapacityPeers">[Enable graphing]</a>.
|
||||
First enable all stats to <a href="configstats.jsp#router.highCapacityPeers">[Enable graphing]</a>.
|
||||
<li class="tidylist"><b>Well Integrated:</b>
|
||||
This is the number of peers you use for network database inquiries.
|
||||
These are usually the "floodfill" peers.
|
||||
|
160
apps/routerconsole/jsp/help_fr.jsp
Normal file
160
apps/routerconsole/jsp/help_fr.jsp
Normal file
@ -0,0 +1,160 @@
|
||||
<%@page contentType="text/html"%>
|
||||
<%@page pageEncoding="UTF-8"%>
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<%
|
||||
/*
|
||||
* Do not tag this file for translation - copy it to help_xx.jsp and translate inline.
|
||||
*/
|
||||
%>
|
||||
<html><head><title>Console du routeur I2P - Aide</title>
|
||||
<%@include file="css.jsi" %>
|
||||
</head><body>
|
||||
<%@include file="summary.jsi" %>
|
||||
Traduction de mars 2011 (magma@mail.i2p)
|
||||
<h1>Aide et assistance du routeur I2P</h1>
|
||||
<div class="main" id="main"><p>
|
||||
Si vous souhaitez améliorer ou traduire la documentation ou d'autres versants du projet, merci de vous reporter à
|
||||
la page consacrée aux <a href="http://www.i2p2.i2p/getinvolved_fr.html">volontaires</a>.
|
||||
</p><p>D'autres détails sont disponibles ici:
|
||||
<ul class="links">
|
||||
<li class="tidylist"><a href="http://www.i2p2.i2p/faq.html">FAQ en anglais sur www.i2p2.i2p</a>
|
||||
<li class="tidylist"><a href="http://www.i2p2.i2p/faq_fr.html">les FAQ en français</a>.</ul>
|
||||
<br>Il y a aussi le <a href="http://forum.i2p/">forum I2P</a>
|
||||
et l'IRC.</p>
|
||||
|
||||
<h2>Informations du panneau de surveillance</h2><p>
|
||||
Plusieurs des statistiques affichées dans le panneau de surveillance peuvent être
|
||||
<a href="configstats.jsp">configurées</a> pour être affichées sous forme de <a href="graphs.jsp">graphiques</a> pour
|
||||
analyse sur la durée.
|
||||
</p><h3>GÉNÉRAL</h3><ul>
|
||||
<li class="tidylist"><b>Identité locale:</b>
|
||||
Cliquez sur "Afficher" pour voir l'empreinte Base64 à 44 caractères (256 bits) de votre routeur. Le hachage
|
||||
complet est affiché sur votre <a href="netdb.jsp?r=.">page d'infos routeur</a>. Ne la divulguez jamais à personne,
|
||||
car l'info routeur contient votre adresse IP.
|
||||
<li class="tidylist"><b>Version:</b>
|
||||
La version d'I2P qui vous affiche actuellement cette page.
|
||||
<li class="tidylist"><b>Lancé depuis:</b>
|
||||
Indique depuis combien de temps le routeur tourne.
|
||||
<li class="tidylist"><b>Réseau:</b>
|
||||
Statut de joignabilité du routeur par les autres routeurs.
|
||||
Plus d'infos sur la page de <a href="config.jsp#help">configuration</a>.
|
||||
</ul><h3>Pairs</h3><ul>
|
||||
<li class="tidylist"><b>Actifs:</b>
|
||||
le premier nombre est celui des routeurs avec qui le votre a communiqué dans les dernières minutes. Ça peut varier de
|
||||
8-10 à plusieurs centaines, selon votre bande passante et son rapport de partage, et le trafic généré localement. Le
|
||||
second est celui des pairs vus dans les dernières heures. Ces nombres penvent varier sensiblement sans conséquence.
|
||||
<a href="configstats.jsp#router.activePeers">[Activer le graphique]</a> (activer auparavant "toutes
|
||||
les statistiques").
|
||||
<li class="tidylist"><b>Rapides:</b>
|
||||
le nombre de pairs que vous mettez à contribution pour construire vos tunnels clients. En général dans une tranche de
|
||||
8 à 30. Vos pairs rapides sont détaillés sur la page <a href="profiles.jsp">profils</a>.
|
||||
<a href="configstats.jsp#router.fastPeers">[Activer le graphique]</a>.
|
||||
<li class="tidylist"><b>Hautes capacités:</b>
|
||||
nombre des pairs que vous utilisez pour construire quelques uns de vos tunnels exploratoires. Habituellement de 8 à 75.
|
||||
Les pairs rapides font partie du groupe des "Hautes capacités". Vos pairs à hautes capacités sont aussi listés sur
|
||||
la page <a href="profiles.jsp">profils</a>.
|
||||
<a href="configstats.jsp#router.highCapacityPeers">[Activer le graphique]</a> (activer auparavant "toutes les
|
||||
statistiques").
|
||||
<li class="tidylist"><b>Bien intégrés:</b>
|
||||
vous utilisez ce groupe pour vos requêtes à la base de données du réseau. Ils sont souvent des pairs de remplissage par
|
||||
diffusion ("floodfill"). Vos pairs "bien intégrés" sont affichés en bas de la même page
|
||||
<a href="profiles.jsp">profils</a>.
|
||||
<li class="tidylist"><b>Connus:</b> c'est tous les routeurs dont vous connaissez l'existance. Il sont listés sur la
|
||||
page <a href="netdb.jsp">base de données du réseau</a>. De moins de 100 à 1000 ou plus. Ce nombre ne représente pas la
|
||||
taille totale du réseau; il varie en fonction de votre bande passante totale et son rapport de partage, et du trafic
|
||||
local. I2P n'a pas besoin que chaque routeur connaisse tous les autres.
|
||||
</ul><h3>Bande passante entrée/sortie</h3><div align="justify">
|
||||
Ça parle tout seul. Toutes les valeurs sont en octets par seconde (o/s), pas en bits par seconde (b/s). Modifiez vos
|
||||
limites de bande passante sur la page de <a href="config.jsp#help">configuration</a>.
|
||||
Le <a href="graphs.jsp">graphique de bande passante</a> est activé par défaut.</div>
|
||||
|
||||
<h3>Destinations locales</h3><div align="justify">
|
||||
C'est le nom I2P des applications qui se connectent par votre routeur. Elles peuvent être des clients lancés depuis
|
||||
<a href="i2ptunnel/index.jsp">I2PTunnel</a> ou des programmes tiers qui se connectent via SAM, BOB ou directement à
|
||||
I2CP.
|
||||
</div><h3>TUNNELS:</h3><div align="justify">
|
||||
Les tunnels actuels sont affichés sur la page <a href="tunnels.jsp">tunnels</a>.</div><ul>
|
||||
<li class="tidylist"><div align="justify"><b>Exploratoires:</b> tunnels créés par votre routeur et utilisés avec les
|
||||
pairs diffuseurs pour la création des nouveaux tunnels et le test des tunnels existants.</div>
|
||||
<li class="tidylist"><b>Clients:</b> tunnels créés par votre routeur pour chaque utilisation cliente.
|
||||
<li class="tidylist"><b>Participants:</b> les tunnels créés par d'autres routeurs et qui passent par le votre. Leur
|
||||
nombre dépend largement de la demande du réseau, de votre part de bande passante partagée, et du trafic local.
|
||||
La méthode recommandée pour limiter leur nombre est de diminuer le rapport de bande passante partagée dans la
|
||||
<a href="config.jsp#help">configuration</a>. Vous pouvez également limiter ce nombre en définissant la variable
|
||||
<tt>router.maxParticipatingTunnels=nnn</tt> dans la <a href="configadvanced.jsp">configuration avancée</a>.
|
||||
<a href="configstats.jsp#tunnel.participatingTunnels">[Activer le graphique]</a>.
|
||||
<li class="tidylist"><b>Rapport de partage:</b> le nombre de tunnels participants que vous routez pour les autres,
|
||||
divisé par le nombre total de sauts dans tous vos tunnels exploratoires et clients. S'il est supérieur à 1, cela
|
||||
signifie que vous contribuez à plus de tunnels que vous n'en utilisez.
|
||||
</ul>
|
||||
|
||||
<h3>ENCOMBREMENT</h3><div align="justify">
|
||||
Indications de base sur la charge du routeur:</div><ul>
|
||||
<li class="tidylist"><b>Retard de tâches:</b> temps d'attente des tâches avant exécution. La file d'attente est
|
||||
présentée la pages des <a href="jobs.jsp">tâches</a>. Malheureusement, il y a dans le routeur plusieurs autres files
|
||||
d'attentes qui ne peuvent être affichées dans la console. Le retard de tâches devrait rester à zéro en permamence. s'il
|
||||
régulièrement supérieur à 500ms, soit votre PC est très lent, soit le routeur a de sérieux problèmes.
|
||||
<a href="configstats.jsp#jobQueue.jobLag">[Activer le graphique]</a>.
|
||||
<li class="tidylist"><b>Retard de messages:</b> temps de rétention des messages en file d'attente d'envois, normalement
|
||||
quelques centaines de ms ou moins. Au dessus d'une seconde, votre PC est très lent, vous devriez fignoler vos réglages
|
||||
de bande passante, ou vos clients (bittorrent, iMule...?) envoient trop de données et il faudrait voir à leur tenir
|
||||
la bride. <a href="configstats.jsp#transport.sendProcessingTime">[Activer le graphique]</a>
|
||||
(transport.sendProcessingTime).
|
||||
<li class="tidylist"><b>Retard de tunnels:</b> le temps d'aller-retour pour un test de tunnel (envoi d'un seul message
|
||||
par un tunnel client et dans un tunnel exploratoire ou vice versa. Normalement inférieur à 5s. Si c'est constamment
|
||||
supérieur, votre PC est très lent, vous devriez retoucher vos limites de bande passante, ou il y a un problème réseau.
|
||||
<a href="configstats.jsp#tunnel.testSuccessTime">[Activer le graphique]</a> (tunnel.testSuccessTime).
|
||||
<li class="tidylist"><b>En attente:</b> nombre de requêtes de création de tunnels participants en attente provenant
|
||||
d'autres routeurs. Normalement proche de zéro. Sinon, votre ordinateur est trop lent et vous devriez diminuer votre
|
||||
limite de bande passante partagée.
|
||||
<li class="tidylist"><b>Accepte/Refuse:</b> c'est le statut de votre routeur au regard de son comportement vis à vis
|
||||
des demandes de création de tunnels participants provenant d'autres routeurs. Votre routeur peut accepter ou refuser
|
||||
tout ou partie des requêtes, ou les refuser en totalité pour des raisons prévues telles que le contrôle de la bande
|
||||
passante et des ressources CPU en vue de préserver les performances des clients locaux.</ul>
|
||||
|
||||
<h2>Informations légales</h2><p>Le routeur I2P (router.jar) et le SDK (i2p.jar) sont presque entièrement dans le
|
||||
domaine public, à quelques notobles exceptions près:</p><ul>
|
||||
<li class="tidylist">Le code ElGamal et DSA, sous licence BSD, écrits par TheCrypto</li>
|
||||
<li class="tidylist">SHA256 et HMAC-SHA256, sous licence MIT, écrits par the Legion of the Bouncycastle</li>
|
||||
<li class="tidylist">Le code AES, sous licence Cryptix (MIT), écrit pas l'équipe the Cryptix</li>
|
||||
<li class="tidylist">Le code SNTP, sous licence BSD, écrit par Adam Buckley</li>
|
||||
<li class="tidylist">Le reste, directement issu du domaine public, est écrit par jrandom, mihi, hypercubus, oOo,
|
||||
ugha, duck, shendaras, et d'autres.</li>
|
||||
</ul>
|
||||
|
||||
<p>Au-dessus du routeur I2P on a une série d'applications clientes, ayant chacune ses particularités en termes de
|
||||
licences et de dépendances. Cette page est affichée en tant qu'élément de l'application cliente console du routeur I2P,
|
||||
qui est une version allégée d'une instance <a href="http://jetty.mortbay.com/jetty/index.html">Jetty</a> (allégée en
|
||||
ce que nous n'avons pas inclus les applications de démo et autres compléments, et que nous avons simplifié la
|
||||
configuration), vous permettant de déployer dans votre routeur des applications web JSP/Servlet standards. De son côté
|
||||
Jetty fait usage de l'implémentation javax.servlet d'Apache. Ce dispositif inclus du logiciel développé par la
|
||||
fondation Apache Software (http://www.apache.org/). </p>
|
||||
|
||||
<p>Une autre application visible sur cette page: <a href="http://www.i2p2.i2p/i2ptunnel">I2PTunnel</a>
|
||||
(votre <a href="i2ptunnel/" target="_blank">interface web</a>) sous licence GPL écrite par mihi qui vous permet de
|
||||
mettre en tunnels le trafic normal TCP/IP sur I2P (comme les proxy eep et le proxy irc). Il y a aussi un client webmail
|
||||
<a href="http://susi.i2p/">susimail</a> <a href="susimail/susimail">disponible</a> dans la console, qui est sous
|
||||
licence GPL et écrit par susi23. L'application carnet d'adresses, écrite par
|
||||
<a href="http://ragnarok.i2p/">Ragnarok</a> gère votre fichier hosts.txt (voir ./addressbook/ pour plus de détails).</p>
|
||||
|
||||
<p>Le routeur inclu aussi par défaut le pont <a href="http://www.i2p2.i2p/sam">SAM</a> du domaine public de l'humanité,
|
||||
que les autres applications clientes (comme le <a href="http://duck.i2p/i2p-bt/">portage bittorrent</a>) peuvent à leur
|
||||
tour utiliser. Il y a aussi une bibliothèque optimisée pour les calculs sur les grand nombres - jbigi - qui de son
|
||||
côté utilise la bibliothèque sous licence LGPL <a href="http://swox.com/gmp/">GMP</a>, adaptée à diverses architectures
|
||||
PC. Les lanceurs pour Windows sont faits avec <a href="http://launch4j.sourceforge.net/">Launch4J</a>, et l'installeur
|
||||
avec <a href="http://www.izforge.com/izpack/">IzPack</a>. Les détails sur les autres applications disponibles comme sur
|
||||
leurs licences respectives, référez-vous à notre <a href="http://www.i2p2.i2p/licenses">politique de licences</a>.
|
||||
Les sources du code I2P et de la plupart des applications jointes est sur notre page de
|
||||
<a href="http://www.i2p2.i2p/download_fr">téléchargements</a>.
|
||||
.</p>
|
||||
|
||||
<h2>Historique des évolutions</h2>
|
||||
<jsp:useBean class="net.i2p.router.web.ContentHelper" id="contenthelper" scope="request" />
|
||||
<% java.io.File fpath = new java.io.File(net.i2p.I2PAppContext.getGlobalContext().getBaseDir(), "history.txt"); %>
|
||||
<jsp:setProperty name="contenthelper" property="page" value="<%=fpath.getAbsolutePath()%>" />
|
||||
<jsp:setProperty name="contenthelper" property="maxLines" value="256" />
|
||||
<jsp:setProperty name="contenthelper" property="startAtBeginning" value="true" />
|
||||
<jsp:getProperty name="contenthelper" property="textContent" />
|
||||
|
||||
<p><a href="/history.txt">Historique complet</a>
|
||||
</p><hr></div></body></html>
|
@ -11,6 +11,13 @@ String base = net.i2p.I2PAppContext.getGlobalContext().getBaseDir().getAbsoluteP
|
||||
try {
|
||||
net.i2p.util.FileUtil.readFile("history.txt", base, response.getOutputStream());
|
||||
} catch (java.io.IOException ioe) {
|
||||
response.sendError(403, ioe.toString());
|
||||
// prevent 'Committed' IllegalStateException from Jetty
|
||||
if (!response.isCommitted()) {
|
||||
response.sendError(403, ioe.toString());
|
||||
} else {
|
||||
net.i2p.I2PAppContext.getGlobalContext().logManager().getLog(getClass()).error("Error serving history.txt", ioe);
|
||||
// Jetty doesn't log this
|
||||
throw ioe;
|
||||
}
|
||||
}
|
||||
%>
|
@ -8,17 +8,21 @@
|
||||
*/
|
||||
|
||||
boolean rendered = false;
|
||||
/**** unused
|
||||
String templateFile = request.getParameter("template");
|
||||
if (templateFile != null) {
|
||||
java.io.OutputStream cout = response.getOutputStream();
|
||||
response.setContentType("image/png");
|
||||
rendered = net.i2p.router.web.StatSummarizer.instance().renderPng(cout, templateFile);
|
||||
}
|
||||
****/
|
||||
net.i2p.stat.Rate rate = null;
|
||||
String stat = request.getParameter("stat");
|
||||
String period = request.getParameter("period");
|
||||
boolean fakeBw = (stat != null && ("bw.combined".equals(stat)));
|
||||
net.i2p.stat.RateStat rs = net.i2p.I2PAppContext.getGlobalContext().statManager().getRate(stat);
|
||||
net.i2p.stat.RateStat rs = null;
|
||||
if (stat != null)
|
||||
rs = net.i2p.I2PAppContext.getGlobalContext().statManager().getRate(stat);
|
||||
if ( !rendered && ((rs != null) || fakeBw) ) {
|
||||
long per = -1;
|
||||
try {
|
||||
@ -38,6 +42,8 @@ if ( !rendered && ((rs != null) || fakeBw) ) {
|
||||
}
|
||||
} else {
|
||||
response.setContentType("image/png");
|
||||
// very brief 45 sec expire
|
||||
response.setDateHeader("Expires", net.i2p.I2PAppContext.getGlobalContext().clock().now() + (45*1000));
|
||||
int width = -1;
|
||||
int height = -1;
|
||||
int periodCount = -1;
|
||||
@ -71,6 +77,9 @@ if ( !rendered && ((rs != null) || fakeBw) ) {
|
||||
* a huge load for a page full of graphs if there's a problem
|
||||
*/
|
||||
if (!rendered) {
|
||||
response.sendError(403, "That stat is not available");
|
||||
if (stat != null)
|
||||
response.sendError(403, "The stat " + stat + " is not available, it must be enabled for graphing on the stats configuration page.");
|
||||
else
|
||||
response.sendError(403, "No stat specified");
|
||||
}
|
||||
%>
|
@ -63,6 +63,13 @@ if (length > 0)
|
||||
try {
|
||||
net.i2p.util.FileUtil.readFile(uri, base, response.getOutputStream());
|
||||
} catch (java.io.IOException ioe) {
|
||||
response.sendError(403, ioe.toString());
|
||||
// prevent 'Committed' IllegalStateException from Jetty
|
||||
if (!response.isCommitted()) {
|
||||
response.sendError(403, ioe.toString());
|
||||
} else {
|
||||
net.i2p.I2PAppContext.getGlobalContext().logManager().getLog(getClass()).error("Error serving " + uri, ioe);
|
||||
// Jetty doesn't log this
|
||||
throw ioe;
|
||||
}
|
||||
}
|
||||
%>
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
544
apps/susidns/locale/messages_es.po
Normal file
544
apps/susidns/locale/messages_es.po
Normal file
@ -0,0 +1,544 @@
|
||||
# I2P
|
||||
# Copyright (C) 2009 The I2P Project
|
||||
# This file is distributed under the same license as the susidns package.
|
||||
# To contribute translations, see http://www.i2p2.de/newdevelopers
|
||||
# foo <foo@bar>, 2009.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: I2P\n"
|
||||
"Report-Msgid-Bugs-To: https://trac.i2p2.de/\n"
|
||||
"POT-Creation-Date: 2011-03-03 18:29+0000\n"
|
||||
"PO-Revision-Date: 2011-03-22 15:48+0000\n"
|
||||
"Last-Translator: punkibastardo <punkibastardo@gmail.com>\n"
|
||||
"Language-Team: Spanish (Castilian) <None>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: es\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:200
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:193
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:197
|
||||
msgid "Search"
|
||||
msgstr "Buscar"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:204
|
||||
msgid "Search within filtered list"
|
||||
msgstr "Buscar con la lista filtrada"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:206
|
||||
msgid "Filtered list"
|
||||
msgstr "Lista filtrada"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:210
|
||||
msgid "no matches"
|
||||
msgstr "No hay coincidencias"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:213
|
||||
msgid "Addressbook"
|
||||
msgstr "Libreta de direcciones"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:215
|
||||
msgid "contains no entries"
|
||||
msgstr "no contiene entradas"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:217
|
||||
msgid "contains 1 entry"
|
||||
msgstr "contiene 1 entrada"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:219
|
||||
#, java-format
|
||||
msgid "contains {0} entries"
|
||||
msgstr "contiene {0} entradas"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:229
|
||||
#, java-format
|
||||
msgid "Showing {0} of {1}"
|
||||
msgstr "Mostrando {0} de {1}"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:260
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:368
|
||||
msgid "Add"
|
||||
msgstr "Agregar"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:260
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:265
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:366
|
||||
msgid "Replace"
|
||||
msgstr "Reemplazar"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:264
|
||||
#, java-format
|
||||
msgid "Host name {0} is already in addressbook, unchanged."
|
||||
msgstr ""
|
||||
"El nombre del host {0} ya está en la libreta de direcciones, sin cambios."
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:266
|
||||
#, java-format
|
||||
msgid ""
|
||||
"Host name {0} is already in addressbook with a different destination. Click "
|
||||
"\"Replace\" to overwrite."
|
||||
msgstr ""
|
||||
"El nombre del host {0} ya está en la libreta de direcciones con un destino "
|
||||
"diferente. Haga clic en \"reemplazar\" para sobrescribir."
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:278
|
||||
#, java-format
|
||||
msgid "Destination added for {0}."
|
||||
msgstr "Destino añadido para {0}."
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:280
|
||||
#, java-format
|
||||
msgid "Destination changed for {0}."
|
||||
msgstr "Destino cambiado para {0}."
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:285
|
||||
msgid "Invalid Base 64 destination."
|
||||
msgstr "Destino en Base 64 no válido"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:289
|
||||
msgid "Please enter a host name and destination"
|
||||
msgstr "Por favor, introduzca un nombre de host y destino"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:293
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:314
|
||||
msgid "Delete Selected"
|
||||
msgstr "Eliminar seleccionados"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:303
|
||||
#, java-format
|
||||
msgid "Destination {0} deleted."
|
||||
msgstr "Destino {0} eliminado."
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:305
|
||||
#, java-format
|
||||
msgid "{0} destinations deleted."
|
||||
msgstr "{0} destinos eliminados."
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:311
|
||||
msgid "Addressbook saved."
|
||||
msgstr "Libreta de direcciones guardada."
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:314
|
||||
msgid "ERROR: Could not write addressbook file."
|
||||
msgstr "ERROR: No se pudo escribir el archivo de la libreta direcciones."
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:319
|
||||
#: ../src/java/src/i2p/susi/dns/ConfigBean.java:148
|
||||
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:151
|
||||
msgid ""
|
||||
"Invalid form submission, probably because you used the \"back\" or "
|
||||
"\"reload\" button on your browser. Please resubmit."
|
||||
msgstr ""
|
||||
"presentación de formulario no válido, probablemente debido a que ha "
|
||||
"utilizado el botón \"atrás\" o \"recargar\" de su navegador. Por favor, "
|
||||
"vuelva a enviarlo."
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/ConfigBean.java:139
|
||||
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:130
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:130
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:130
|
||||
msgid "Save"
|
||||
msgstr "Guardar"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/ConfigBean.java:141
|
||||
msgid "Configuration saved."
|
||||
msgstr "Configuración guardada."
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/ConfigBean.java:142
|
||||
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:145
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:128
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:128
|
||||
msgid "Reload"
|
||||
msgstr "Recargar"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/ConfigBean.java:144
|
||||
msgid "Configuration reloaded."
|
||||
msgstr "Configuración recargada."
|
||||
|
||||
#. Yes this is a hack.
|
||||
#. No it doesn't work on a text-mode browser.
|
||||
#. Fetching from the addressbook servlet
|
||||
#. with the correct parameters will kick off a
|
||||
#. config reload and fetch.
|
||||
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:139
|
||||
msgid ""
|
||||
"Subscriptions saved, updating addressbook from subscription sources now."
|
||||
msgstr ""
|
||||
"Suscripciones guardadas, actualizando la libreta de direcciones a partir de "
|
||||
"las fuentes de suscripción ahora."
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:143
|
||||
msgid "Subscriptions saved."
|
||||
msgstr "Suscripciones guardadas."
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:147
|
||||
msgid "Subscriptions reloaded."
|
||||
msgstr "Suscripciones recargadas."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:125
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:145
|
||||
msgid "addressbook"
|
||||
msgstr "libreta de direcciones"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:127
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:104
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:93
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:104
|
||||
msgid "addressbooks"
|
||||
msgstr "libretas de direcciones"
|
||||
|
||||
#: ../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/index_jsp.java:95
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:106
|
||||
msgid "private"
|
||||
msgstr "privado"
|
||||
|
||||
#: ../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/index_jsp.java:97
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:108
|
||||
msgid "master"
|
||||
msgstr "maestro"
|
||||
|
||||
#: ../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/index_jsp.java:99
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:110
|
||||
msgid "router"
|
||||
msgstr "router"
|
||||
|
||||
#: ../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/index_jsp.java:101
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:112
|
||||
msgid "published"
|
||||
msgstr "publicado"
|
||||
|
||||
#: ../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/index_jsp.java:103
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:102
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:114
|
||||
msgid "subscriptions"
|
||||
msgstr "suscripciones"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:139
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:102
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:116
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:105
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:116
|
||||
msgid "configuration"
|
||||
msgstr "configuración"
|
||||
|
||||
#: ../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/index_jsp.java:107
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:118
|
||||
msgid "overview"
|
||||
msgstr "resumen"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:163
|
||||
msgid "Filter"
|
||||
msgstr "Filtro"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:166
|
||||
msgid "all"
|
||||
msgstr "todos"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:177
|
||||
msgid "Current filter"
|
||||
msgstr "Filtro actual"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:182
|
||||
msgid "clear filter"
|
||||
msgstr "filtro actual"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:224
|
||||
msgid "Name"
|
||||
msgstr "Nombre"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:226
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:362
|
||||
msgid "Destination"
|
||||
msgstr "Destino"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:257
|
||||
msgid "Mark for deletion"
|
||||
msgstr "Marcar para eliminar"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:279
|
||||
msgid "address helper link"
|
||||
msgstr "ayudante de dirección del enlace"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:312
|
||||
msgid "Cancel"
|
||||
msgstr "Cancelar"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:345
|
||||
msgid "This addressbook is empty."
|
||||
msgstr "Esta libreta de direcciones está vacía."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:356
|
||||
msgid "Add new destination"
|
||||
msgstr "Añadir nuevo destino"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:358
|
||||
msgid "Hostname"
|
||||
msgstr "Nombre de Host"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:132
|
||||
msgid "Hints"
|
||||
msgstr "Consejos"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:134
|
||||
msgid ""
|
||||
"File and directory paths here are relative to the addressbook's working "
|
||||
"directory, which is normally ~/.i2p/addressbook/ (Linux) or "
|
||||
"%APPDATA%\\I2P\\addressbook\\ (Windows)."
|
||||
msgstr ""
|
||||
"Las rutas de archivos y de directorios mostradas aquí son relativas al "
|
||||
"directorio de trabajo de la libreta de direcciones, que es normalmente "
|
||||
"~/.i2p/addressbook/ (Linux) o %APPDATA%\\I2P\\addressbook\\ (Windows)."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:136
|
||||
msgid ""
|
||||
"If you want to manually add lines to an addressbook, add them to the private"
|
||||
" or master addressbooks."
|
||||
msgstr ""
|
||||
"Si desea agregar manualmente líneas a una libreta de direcciones, añadalos a"
|
||||
" la libreta de direcciones privada o maestra."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:138
|
||||
msgid ""
|
||||
"The router addressbook and the published addressbook are updated by the "
|
||||
"addressbook application."
|
||||
msgstr ""
|
||||
"La libreta de direcciones del router y la libreta de direcciones publicada "
|
||||
"son actualizadas por la aplicación libreta de direcciones."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:140
|
||||
msgid ""
|
||||
"When you publish your addressbook, ALL destinations from the master and "
|
||||
"router addressbooks appear there."
|
||||
msgstr ""
|
||||
"Al publicar su libro de direcciones, TODOS los destinos de la libreta "
|
||||
"maestra y la libreta de direcciones del router aparecen ahí."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:142
|
||||
msgid ""
|
||||
"Use the private addressbook for private destinations, these are not "
|
||||
"published."
|
||||
msgstr ""
|
||||
"Utilice la libreta de direcciones privada para destinos privados, éstos no "
|
||||
"serán publicados."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:144
|
||||
msgid "Options"
|
||||
msgstr "Opciones"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:146
|
||||
msgid "File containing the list of subscriptions URLs (no need to change)"
|
||||
msgstr ""
|
||||
"El archivo que contiene la lista de suscripciones URL (no es necesario "
|
||||
"cambiarlo)"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:148
|
||||
msgid "Update interval in hours"
|
||||
msgstr "Intervalo de actualización en horas"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:150
|
||||
msgid ""
|
||||
"Your public hosts.txt file (choose a path within your webserver document "
|
||||
"root)"
|
||||
msgstr ""
|
||||
"Su archivo hosts.txt público (elija una ruta dentro de la raíz de la "
|
||||
"documentación de su servidor web)"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:152
|
||||
msgid "Your hosts.txt (don't change)"
|
||||
msgstr "Su hosts.txt (no cambiar)"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:154
|
||||
msgid "Your personal addressbook, these hosts will be published"
|
||||
msgstr "Su libreta de direcciones personal, estos hosts serán publicados"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:156
|
||||
msgid "Your private addressbook, it is never published"
|
||||
msgstr "Su libreta de direcciones privada, nunca se publica"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:158
|
||||
msgid "Port for your eepProxy (no need to change)"
|
||||
msgstr "Puerto para su eepProxy (no es necesario cambiarlo)"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:160
|
||||
msgid "Hostname for your eepProxy (no need to change)"
|
||||
msgstr "Nombre de la host para su eepProxy (no es necesario cambiarlo)"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:162
|
||||
msgid "Whether to update the published addressbook"
|
||||
msgstr "Sea para actualizar la libreta de direcciones publicadas"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:164
|
||||
msgid ""
|
||||
"File containing the etags header from the fetched subscription URLs (no need"
|
||||
" to change)"
|
||||
msgstr ""
|
||||
"Archivo que contiene la cabecera de los etags desde la URL de subscripciones"
|
||||
" capturada (no es necesario cambiarlo)"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:166
|
||||
msgid ""
|
||||
"File containing the modification timestamp for each fetched subscription URL"
|
||||
" (no need to change)"
|
||||
msgstr ""
|
||||
"Archivo que contiene la fecha y hora de modificación para cada URL de "
|
||||
"suscripción capturada (no es necesario cambiarlo)"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:168
|
||||
msgid "File to log activity to (change to /dev/null if you like)"
|
||||
msgstr ""
|
||||
"El archivo en el que se guarda el registro de actividad (cambielo a "
|
||||
"/dev/null si quiere)"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:91
|
||||
msgid "Introduction"
|
||||
msgstr "Introducción"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:109
|
||||
msgid "What is the addressbook?"
|
||||
msgstr "¿Qué es la libreta de direcciones?"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:111
|
||||
msgid "The addressbook application is part of your i2p installation."
|
||||
msgstr ""
|
||||
"La aplicación de libreta de direcciones es parte de la instalación I2P."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:113
|
||||
msgid ""
|
||||
"It regularly updates your hosts.txt file from distributed sources or "
|
||||
"\"subscriptions\"."
|
||||
msgstr ""
|
||||
"Actualiza constantemente su archivo hosts.txt desde fuentes distribuidas o "
|
||||
"\"suscripciones\"."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:115
|
||||
msgid ""
|
||||
"In the default configuration, the addressbook is only subscribed to "
|
||||
"www.i2p2.i2p."
|
||||
msgstr ""
|
||||
"Con la configuración predeterminada, la libreta de direcciones sólo está "
|
||||
"suscrita a www.i2p2.i2p."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:117
|
||||
msgid ""
|
||||
"Subscribing to additional sites is easy, just add them to your <a "
|
||||
"href=\"subscriptions.jsp\">subscriptions</a> file."
|
||||
msgstr ""
|
||||
"Suscribirse a otros sitios es fácil, sólo tiene que añadirlos a su archivo "
|
||||
"de <a href=\"subscriptions.jsp\">suscripciones</a>."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:119
|
||||
msgid ""
|
||||
"For more information on naming in i2p, see <a "
|
||||
"href=\"http://www.i2p2.i2p/naming.html\">the overview on www.i2p2.i2p</a>."
|
||||
msgstr ""
|
||||
"Para obtener más información sobre los nombres en I2P, consulte <a "
|
||||
"href=\"http://www.i2p2.i2p/naming.html\">la información general en "
|
||||
"www.i2p2.i2p</a> ."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:121
|
||||
msgid "How does the addressbook work?"
|
||||
msgstr "¿Cómo funciona la libreta de direcciones?"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:123
|
||||
msgid ""
|
||||
"The addressbook application regularly polls your subscriptions and merges "
|
||||
"their content into your \"router\" addressbook, stored in the hosts.txt "
|
||||
"file."
|
||||
msgstr ""
|
||||
"La aplicación de libreta de direcciones comprueba periódicamente sus "
|
||||
"suscripciones y funde su contenido con la libreta de direcciones de su "
|
||||
"\"router\" almacenada en el archivo hosts.txt."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:125
|
||||
msgid ""
|
||||
"Then it merges your \"master\" addressbook (userhosts.txt) into the router "
|
||||
"addressbook as well."
|
||||
msgstr ""
|
||||
"Luego también une su libreta de direcciones \"maestra\" (userhosts.txt) con "
|
||||
"la libreta de direcciones del router."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:127
|
||||
msgid ""
|
||||
"If configured, the router addressbook is now written to the \"published\" "
|
||||
"addressbook, which will be publicly available if you are running an eepsite."
|
||||
msgstr ""
|
||||
"Si está configurada, la libreta de direcciones del router ahora se escribirá"
|
||||
" a la libreta \"publicada\", que estará disponible al público si está "
|
||||
"ejecutando un eepsite."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:129
|
||||
msgid ""
|
||||
"The router also uses a private addressbook (privatehosts.txt, not shown in "
|
||||
"the picture), which is not merged or published."
|
||||
msgstr ""
|
||||
"El router también utiliza una libreta de direcciones privadas "
|
||||
"(privatehosts.txt, no se muestra en la imagen), que ni se fusiona ni es "
|
||||
"publicada."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:131
|
||||
msgid ""
|
||||
"Hosts in the private addressbook can be accessed by you but their addresses "
|
||||
"are never distributed to others."
|
||||
msgstr ""
|
||||
"Puede visitar a los hosts que aparecen en su libreta de direcciones privada,"
|
||||
" pero su dirección no se distribuye a terceros."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:133
|
||||
msgid ""
|
||||
"The private addressbook can also be used for aliases of hosts in your other "
|
||||
"addressbooks."
|
||||
msgstr ""
|
||||
"La libreta de direcciones privada también se pueden utilizar para alias de "
|
||||
"los hosts en sus otras libretas de direcciones."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:132
|
||||
msgid "The subscription file contains a list of i2p URLs."
|
||||
msgstr "El archivo de suscripción contiene una lista de URLs I2P."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:134
|
||||
msgid ""
|
||||
"The addressbook application regularly checks this list for new eepsites."
|
||||
msgstr ""
|
||||
"La aplicación de libreta de direcciones comprueba regularmente esta lista en"
|
||||
" busca de nuevos eepsites."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:136
|
||||
msgid "Those URLs refer to published hosts.txt files."
|
||||
msgstr "Esas URLs referencian a los archivos hosts.txt publicados."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:138
|
||||
msgid ""
|
||||
"The default subscription is the hosts.txt from www.i2p2.i2p, which is "
|
||||
"updated infrequently."
|
||||
msgstr ""
|
||||
"La suscripción por defecto es el hosts.txt de www.i2p2.i2p, que se actualiza"
|
||||
" con poca frecuencia."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:140
|
||||
msgid ""
|
||||
"So it is a good idea to add additional subscriptions to sites that have the "
|
||||
"latest addresses."
|
||||
msgstr ""
|
||||
"Por lo tanto, es una buena idea agregar suscripciones adicionales a sitios "
|
||||
"que ttengan las direcciones más recientes"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:142
|
||||
msgid "See the FAQ for a list of subscription URLs."
|
||||
msgstr ""
|
||||
"Ver las preguntas frecuentes para obtener una lista de direcciones URL de "
|
||||
"suscripciónes."
|
435
apps/susidns/locale/messages_fr.po
Normal file
435
apps/susidns/locale/messages_fr.po
Normal file
@ -0,0 +1,435 @@
|
||||
# I2P
|
||||
# Copyright (C) 2009 The I2P Project
|
||||
# This file is distributed under the same license as the susidns package.
|
||||
# To contribute translations, see http://www.i2p2.de/newdevelopers
|
||||
# foo <foo@bar>, 2009.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: I2P susidns\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2011-03-24 16:49+0000\n"
|
||||
"PO-Revision-Date: 2011-04-09 02:53+0100\n"
|
||||
"Last-Translator: magma <magma@mail.i2p>\n"
|
||||
"Language-Team: duck <duck@mail.i2p>\n"
|
||||
"Language: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n >= 2)\n"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:200
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:193
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:197
|
||||
msgid "Search"
|
||||
msgstr "Chercher"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:204
|
||||
msgid "Search within filtered list"
|
||||
msgstr "Chercher dans la liste filtrée"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:206
|
||||
msgid "Filtered list"
|
||||
msgstr "Liste filtrée"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:210
|
||||
msgid "no matches"
|
||||
msgstr "aucune correspondance"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:213
|
||||
msgid "Addressbook"
|
||||
msgstr "Le carnet d'adresses"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:215
|
||||
msgid "contains no entries"
|
||||
msgstr "est vide"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:217
|
||||
msgid "contains 1 entry"
|
||||
msgstr "contient 1 entrée"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:219
|
||||
#, java-format
|
||||
msgid "contains {0} entries"
|
||||
msgstr "contient {0} entrée(s)"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:229
|
||||
#, java-format
|
||||
msgid "Showing {0} of {1}"
|
||||
msgstr "Affichage {0} sur {1}"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:260
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:368
|
||||
msgid "Add"
|
||||
msgstr "Ajouter"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:260
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:265
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:366
|
||||
msgid "Replace"
|
||||
msgstr "Remplacer"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:264
|
||||
#, java-format
|
||||
msgid "Host name {0} is already in addressbook, unchanged."
|
||||
msgstr "L''hôte {0} est déjà présent: inchangé."
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:266
|
||||
#, java-format
|
||||
msgid "Host name {0} is already in addressbook with a different destination. Click \"Replace\" to overwrite."
|
||||
msgstr "L''hôte {0} est déjà présent avec une destination différente. Cliquez sur \"Remplacer\"...pour le remplacer."
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:278
|
||||
#, java-format
|
||||
msgid "Destination added for {0}."
|
||||
msgstr "Destination ajoutée pour {0}."
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:280
|
||||
#, java-format
|
||||
msgid "Destination changed for {0}."
|
||||
msgstr "Destination modifiée pour {0}."
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:285
|
||||
msgid "Invalid Base 64 destination."
|
||||
msgstr "Destination Base64 incorrecte."
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:289
|
||||
msgid "Please enter a host name and destination"
|
||||
msgstr "Entrez un nom d'hôte et sa destination"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:293
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:314
|
||||
msgid "Delete Selected"
|
||||
msgstr "Supprimer les éléments sélectionnés"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:303
|
||||
#, java-format
|
||||
msgid "Destination {0} deleted."
|
||||
msgstr "Destination {0} supprimée."
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:305
|
||||
#, java-format
|
||||
msgid "{0} destinations deleted."
|
||||
msgstr "{0} destination(s) supprimée(s)."
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:311
|
||||
msgid "Addressbook saved."
|
||||
msgstr "Carnet d'adresses enregistré."
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:314
|
||||
msgid "ERROR: Could not write addressbook file."
|
||||
msgstr "ERREUR: impossible d'enregistrer le fichier carnet d'adresses."
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:319
|
||||
#: ../src/java/src/i2p/susi/dns/ConfigBean.java:148
|
||||
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:151
|
||||
msgid "Invalid form submission, probably because you used the \"back\" or \"reload\" button on your browser. Please resubmit."
|
||||
msgstr "Soumission du formulaire incorrecte: vous avez peut-être utilisé le bouton \"Page précédente\" ou \"Recharger\". Merci de soumettre à nouveau."
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/ConfigBean.java:139
|
||||
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:130
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:130
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:130
|
||||
msgid "Save"
|
||||
msgstr "Enregistrer"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/ConfigBean.java:141
|
||||
msgid "Configuration saved."
|
||||
msgstr "Configuration enregistrée."
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/ConfigBean.java:142
|
||||
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:145
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:128
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:128
|
||||
msgid "Reload"
|
||||
msgstr "Recharger"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/ConfigBean.java:144
|
||||
msgid "Configuration reloaded."
|
||||
msgstr "Configuration rechargée."
|
||||
|
||||
#. Yes this is a hack.
|
||||
#. No it doesn't work on a text-mode browser.
|
||||
#. Fetching from the addressbook servlet
|
||||
#. with the correct parameters will kick off a
|
||||
#. config reload and fetch.
|
||||
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:139
|
||||
msgid "Subscriptions saved, updating addressbook from subscription sources now."
|
||||
msgstr "Souscriptions enregistrées, mise à jour en cours du carnet d'adresses à partir de celles-ci."
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:143
|
||||
msgid "Subscriptions saved."
|
||||
msgstr "Souscription enregistrée."
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:147
|
||||
msgid "Subscriptions reloaded."
|
||||
msgstr "Souscription rechargée."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:125
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:145
|
||||
msgid "addressbook"
|
||||
msgstr "carnet d'adresses"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:127
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:104
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:93
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:104
|
||||
msgid "addressbooks"
|
||||
msgstr "carnets d'adresses"
|
||||
|
||||
#: ../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/index_jsp.java:95
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:106
|
||||
msgid "private"
|
||||
msgstr "privé"
|
||||
|
||||
#: ../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/index_jsp.java:97
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:108
|
||||
msgid "master"
|
||||
msgstr "principal"
|
||||
|
||||
#: ../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/index_jsp.java:99
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:110
|
||||
msgid "router"
|
||||
msgstr "routeur"
|
||||
|
||||
#: ../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/index_jsp.java:101
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:112
|
||||
msgid "published"
|
||||
msgstr "publié"
|
||||
|
||||
#: ../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/index_jsp.java:103
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:102
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:114
|
||||
msgid "subscriptions"
|
||||
msgstr "souscriptions"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:139
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:102
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:116
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:105
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:116
|
||||
msgid "configuration"
|
||||
msgstr "configuration"
|
||||
|
||||
#: ../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/index_jsp.java:107
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:118
|
||||
msgid "overview"
|
||||
msgstr "aperçu"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:163
|
||||
msgid "Filter"
|
||||
msgstr "Filtrer"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:166
|
||||
msgid "all"
|
||||
msgstr "tout"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:177
|
||||
msgid "Current filter"
|
||||
msgstr "Filtre courant"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:182
|
||||
msgid "clear filter"
|
||||
msgstr "effacer le filtre"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:224
|
||||
msgid "Name"
|
||||
msgstr "Nom"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:226
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:362
|
||||
msgid "Destination"
|
||||
msgstr "Destination"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:257
|
||||
msgid "Mark for deletion"
|
||||
msgstr "Marquer pour suppression"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:279
|
||||
msgid "address helper link"
|
||||
msgstr "lien d'aide d'adresse"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:312
|
||||
msgid "Cancel"
|
||||
msgstr "Annuler"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:345
|
||||
msgid "This addressbook is empty."
|
||||
msgstr "Ce carnet d'adresses est vide"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:356
|
||||
msgid "Add new destination"
|
||||
msgstr "Ajoutez une nouvelle destination"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:358
|
||||
msgid "Hostname"
|
||||
msgstr "Nom d'hôte"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:132
|
||||
msgid "Hints"
|
||||
msgstr "Aides"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:134
|
||||
msgid "File and directory paths here are relative to the addressbook's working directory, which is normally ~/.i2p/addressbook/ (Linux) or %APPDATA%\\I2P\\addressbook\\ (Windows)."
|
||||
msgstr "Les chemins des fichiers et dossiers listés sont relatifs au répertoire de travail du carnet d'adresses, normalement ~/.i2p/addressbook/ (Linux) ou %APPDATA%\\I2P\\addressbook\\ (Windows)."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:136
|
||||
msgid "If you want to manually add lines to an addressbook, add them to the private or master addressbooks."
|
||||
msgstr "si vous voulez ajouter manuellement des lignes dans un carnet d'adresses, faites-le dans le carnet privé ou principal."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:138
|
||||
msgid "The router addressbook and the published addressbook are updated by the addressbook application."
|
||||
msgstr "Le carnet d'adresses du routeur et le carnet d'adresses publié sont mis à jour par l'application carnet d'adresses."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:140
|
||||
msgid "When you publish your addressbook, ALL destinations from the master and router addressbooks appear there."
|
||||
msgstr "Quand vous publiez votre carnet d'adresses, TOUTES les destinations des carnets principal et routeur le sont."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:142
|
||||
msgid "Use the private addressbook for private destinations, these are not published."
|
||||
msgstr "Utilisez le carnet d'adresses privé pour les destinations privées: elles ne seront pas publiées."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:144
|
||||
msgid "Options"
|
||||
msgstr "Options"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:146
|
||||
msgid "File containing the list of subscriptions URLs (no need to change)"
|
||||
msgstr "fichier contenant la liste des URLs de souscriptions (inutile de modifier)"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:148
|
||||
msgid "Update interval in hours"
|
||||
msgstr "Intervalle de mise à jour (en heures)"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:150
|
||||
msgid "Your public hosts.txt file (choose a path within your webserver document root)"
|
||||
msgstr "Votre fichier hosts.txt (choisissez un emplacement dans la racine de votre serveur web)"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:152
|
||||
msgid "Your hosts.txt (don't change)"
|
||||
msgstr "Votre hosts.txt (ne pas modifier)"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:154
|
||||
msgid "Your personal addressbook, these hosts will be published"
|
||||
msgstr "Votre carnet d'adresses personnel: ces hôtes peuvent être publiés"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:156
|
||||
msgid "Your private addressbook, it is never published"
|
||||
msgstr "Votre carnet d'adresses privé n'est jamais publié"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:158
|
||||
msgid "Port for your eepProxy (no need to change)"
|
||||
msgstr "Port de votre proxy eep (inutile de modifier)"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:160
|
||||
msgid "Hostname for your eepProxy (no need to change)"
|
||||
msgstr "nom d'hôte de votre proxy eep (inutile de modifier)"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:162
|
||||
msgid "Whether to update the published addressbook"
|
||||
msgstr "S'il faut actualiser le carnet d'adresses publié"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:164
|
||||
msgid "File containing the etags header from the fetched subscription URLs (no need to change)"
|
||||
msgstr "Fichier contenant les en-têtes etag des URLs de souscription (inutile de changer)"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:166
|
||||
msgid "File containing the modification timestamp for each fetched subscription URL (no need to change)"
|
||||
msgstr "Fichier contenant les tampons horaires de modification de chaque URL de souscription importée (inutile de modifier)"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:168
|
||||
msgid "File to log activity to (change to /dev/null if you like)"
|
||||
msgstr "Fichier d'historiques (modifiez en /dev/null si ça vous chante) "
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:91
|
||||
msgid "Introduction"
|
||||
msgstr "Introduction"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:109
|
||||
msgid "What is the addressbook?"
|
||||
msgstr "Qu'est-ce que le carnet d'adresses?"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:111
|
||||
msgid "The addressbook application is part of your i2p installation."
|
||||
msgstr "L'application carnet d'adresses fait partie intégrante de votre installation I2P."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:113
|
||||
msgid "It regularly updates your hosts.txt file from distributed sources or \"subscriptions\"."
|
||||
msgstr "Elle actualise votre fichier hosts.txt à intervalle régulier à partir de sources décentralisées (\"souscriptions\" ou \"abonnements\")"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:115
|
||||
msgid "In the default configuration, the addressbook is only subscribed to www.i2p2.i2p."
|
||||
msgstr "Dans sa configuration par défaut, le carnet d'adresses est seulement abonné à www.i2p2.i2p."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:117
|
||||
msgid "Subscribing to additional sites is easy, just add them to your <a href=\"subscriptions.jsp\">subscriptions</a> file."
|
||||
msgstr "La souscription à des sites supplémentaires est aisée: ajoutez-les simplement à votre fichier de <a href=\"subscriptions.jsp\">souscriptions</a> ."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:119
|
||||
msgid "For more information on naming in i2p, see <a href=\"http://www.i2p2.i2p/naming.html\">the overview on www.i2p2.i2p</a>."
|
||||
msgstr "Plus d'infos sur <a href=\"http://www.i2p2.i2p/techintro_fr.html#app.naming\">le nommage dans I2P</a>."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:121
|
||||
msgid "How does the addressbook work?"
|
||||
msgstr "Fonctionnement du carnet d'adresses."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:123
|
||||
msgid "The addressbook application regularly polls your subscriptions and merges their content into your \"router\" addressbook, stored in the hosts.txt file."
|
||||
msgstr "L'application carnet d'adresses interroge vos souscriptions à intervalle régulier et fusionne leurs contenus dans le carnet d'adresses du \"routeur\", stocké dans le fichier hosts.txt."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:125
|
||||
msgid "Then it merges your \"master\" addressbook (userhosts.txt) into the router addressbook as well."
|
||||
msgstr "Puis elle fusionne votre carnet d'adresses \"principal\" (userhosts.txt) dans celui du routeur. "
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:127
|
||||
msgid "If configured, the router addressbook is now written to the \"published\" addressbook, which will be publicly available if you are running an eepsite."
|
||||
msgstr "Si c'est activé, le carnet du routeur est alors écrit dans le carnet d'adresses \"publié\" qui devient publiquement disponible si vous avez votre propre site eep."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:129
|
||||
msgid "The router also uses a private addressbook (privatehosts.txt, not shown in the picture), which is not merged or published."
|
||||
msgstr "Le routeur utilise également un carnet privé (privatehosts.txt, non illustré), qui n'est ni fusionné ni publié."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:131
|
||||
msgid "Hosts in the private addressbook can be accessed by you but their addresses are never distributed to others."
|
||||
msgstr "Les hôtes du carnet privé ne sont accessibles qu'à vous, et leurs adresses ne sont jamais distribuées à personne."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:133
|
||||
msgid "The private addressbook can also be used for aliases of hosts in your other addressbooks."
|
||||
msgstr "Le carnet privé peut aussi servir à stocker des alias/pseudos pour des hôtes des autres carnets."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:132
|
||||
msgid "The subscription file contains a list of i2p URLs."
|
||||
msgstr "Le fichier de souscriptions contient une liste d'URLs I2P."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:134
|
||||
msgid "The addressbook application regularly checks this list for new eepsites."
|
||||
msgstr "L'application vérifie régulièrement cette liste pour trouver de nouveaux sites eep."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:136
|
||||
msgid "Those URLs refer to published hosts.txt files."
|
||||
msgstr "Ces URLs font référence aux fichiers hosts.txt des autres utilisateurs."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:138
|
||||
msgid "The default subscription is the hosts.txt from www.i2p2.i2p, which is updated infrequently."
|
||||
msgstr "L'abonnement par défaut est le fichier hosts.txt de www.i2p2.i2p, mais il est très peu actualisé."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:140
|
||||
msgid "So it is a good idea to add additional subscriptions to sites that have the latest addresses."
|
||||
msgstr "C'est donc une bonne idée d'ajouter des souscriptions supplémentaires à des sites qui disposent des dernières adresses."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:142
|
||||
msgid "See the FAQ for a list of subscription URLs."
|
||||
msgstr "Voir la <a href=\"http://www.i2p2.i2p/faq_fr.html#subscriptions\">FAQ</a> pour une liste d'URLs de souscriptions."
|
||||
|
BIN
apps/susidns/src/images/how_fr.png
Normal file
BIN
apps/susidns/src/images/how_fr.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 11 KiB |
441
apps/susimail/locale/messages_es.po
Normal file
441
apps/susimail/locale/messages_es.po
Normal file
@ -0,0 +1,441 @@
|
||||
# I2P
|
||||
# Copyright (C) 2009 The I2P Project
|
||||
# This file is distributed under the same license as the susimail package.
|
||||
# To contribute translations, see http://www.i2p2.de/newdevelopers
|
||||
# foo <foo@bar>, 2009.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: I2P\n"
|
||||
"Report-Msgid-Bugs-To: https://trac.i2p2.de/\n"
|
||||
"POT-Creation-Date: 2011-03-12 20:49+0000\n"
|
||||
"PO-Revision-Date: 2011-04-18 21:35+0100\n"
|
||||
"Last-Translator: mixxy <m1xxy@mail.i2p>\n"
|
||||
"Language-Team: Spanish (Castilian) <None>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: es\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:454
|
||||
msgid "unknown"
|
||||
msgstr "desconocido"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:473
|
||||
msgid "Warning: no transfer encoding found, fallback to 7bit."
|
||||
msgstr "Aviso: no se encuentra codificación de transferencia, volviendo a 7 bits."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:478
|
||||
#, java-format
|
||||
msgid "No encoder found for encoding \\''{0}\\''."
|
||||
msgstr "No se ha encontrado codificador para la codificación \\''{0}''\\."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:484
|
||||
msgid "Warning: no charset found, fallback to US-ASCII."
|
||||
msgstr "Aviso: no se ha encontrado el juego de caracteres, volviendo a US-ASCII."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:498
|
||||
#, java-format
|
||||
msgid "Charset \\''{0}\\'' not supported."
|
||||
msgstr "juego de caracteres \\''{0}\\''no soportado."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:502
|
||||
#, java-format
|
||||
msgid "Part ({0}) not shown, because of {1}"
|
||||
msgstr "La parte ({0}) no se muestra, debido a {1}"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:525
|
||||
msgid "Download"
|
||||
msgstr "Descarga"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:525
|
||||
msgid "File is packed into a zipfile for security reasons."
|
||||
msgstr "El archivo está empaquetado en un archivo zip por razones de seguridad."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:525
|
||||
#, java-format
|
||||
msgid "attachment ({0})."
|
||||
msgstr "adjunto ({0})."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:529
|
||||
#, java-format
|
||||
msgid "Attachment ({0})."
|
||||
msgstr "Adjunto ({0})."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:579
|
||||
msgid "Need username for authentication."
|
||||
msgstr "Es necesario un nombre de usuario para la autenticación."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:583
|
||||
msgid "Need password for authentication."
|
||||
msgstr "Es necesaria una contraseña para la autenticación."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:587
|
||||
msgid "Need hostname for connect."
|
||||
msgstr "Es necesario un nombre de host para la conexión."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:592
|
||||
msgid "Need port number for pop3 connect."
|
||||
msgstr "Es necesario el número de puerto para conectar pop3."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:599
|
||||
msgid "POP3 port number is not in range 0..65535."
|
||||
msgstr "El puerto POP3 no está en el rango 0..65535."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:605
|
||||
msgid "POP3 port number is invalid."
|
||||
msgstr "El puerto POP3 no es válido."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:611
|
||||
msgid "Need port number for smtp connect."
|
||||
msgstr "Es necesario el número de puerto para conectar smtp."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:618
|
||||
msgid "SMTP port number is not in range 0..65535."
|
||||
msgstr "El puerto SMTP no está en el rango 0..65535."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:624
|
||||
msgid "SMTP port number is invalid."
|
||||
msgstr "El puerto SMTP no es válido."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:671
|
||||
msgid "User logged out."
|
||||
msgstr "Usuario desconectado."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:675
|
||||
msgid "Internal error, lost connection."
|
||||
msgstr "Error interno, pérdida de conexión."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:771
|
||||
#, java-format
|
||||
msgid "On {0} {1} wrote:"
|
||||
msgstr "En {0} {1} escribió:"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:818
|
||||
msgid "begin forwarded mail"
|
||||
msgstr "comenzar correo reenviado"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:840
|
||||
msgid "end forwarded mail"
|
||||
msgstr "terminar correo reenviado"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:847
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1701
|
||||
msgid "Could not fetch mail body."
|
||||
msgstr "No se pudo obtener el cuerpo del correo."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:875
|
||||
msgid "Message id not valid."
|
||||
msgstr "ID del mensaje no válida."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:958
|
||||
#, java-format
|
||||
msgid "No Encoding found for {0}"
|
||||
msgstr "No se ha encontrado codificación para {0}"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:962
|
||||
#, java-format
|
||||
msgid "Could not encode data: {0}"
|
||||
msgstr "No se pudo codificar los datos: {0}"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:967
|
||||
#, java-format
|
||||
msgid "Error reading uploaded file: {0}"
|
||||
msgstr "Error al leer el archivo subido: {0}"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1045
|
||||
msgid "Error parsing download parameter."
|
||||
msgstr "Error al analizar parámetros de descarga."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1089
|
||||
msgid "Invalid pagesize number, resetting to default value."
|
||||
msgstr "Tamaño de página no válida, restableciendo a los valores predeterminados."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1113
|
||||
msgid "No messages marked for deletion."
|
||||
msgstr "No hay mensajes marcados para su eliminación."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1133
|
||||
#, java-format
|
||||
msgid "Error deleting message: {0}"
|
||||
msgstr "Error al eliminar el mensaje: {0}"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1144
|
||||
#, java-format
|
||||
msgid "1 message deleted."
|
||||
msgid_plural "{0} messages deleted."
|
||||
msgstr[0] "1 mensaje eliminado."
|
||||
msgstr[1] "{0} mensajes eliminados."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1264
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1587
|
||||
msgid "Login"
|
||||
msgstr "Iniciar sesión"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1266
|
||||
#, java-format
|
||||
msgid "1 Message"
|
||||
msgid_plural "{0} Messages"
|
||||
msgstr[0] "1 Mensaje"
|
||||
msgstr[1] "{0} Mensajes"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1268
|
||||
msgid "Show Message"
|
||||
msgstr "Mostrar mensaje"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1325
|
||||
#, java-format
|
||||
msgid "Error decoding content: {0}"
|
||||
msgstr "Error al descifrar el contenido: {0}"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1330
|
||||
msgid "Error decoding content: No encoder found."
|
||||
msgstr "Error al descifrar el contenido: No se ha encontrado codificador."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1377
|
||||
msgid "no subject"
|
||||
msgstr "sin asunto"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1394
|
||||
msgid "Found no valid sender address."
|
||||
msgstr "No se ha encontrado una dirección de remitente válida."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1400
|
||||
#, java-format
|
||||
msgid "Found no valid address in \\''{0}\\''."
|
||||
msgstr "No se ha encontrado ninguna dirección válida en \\''{0}\\''."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1419
|
||||
msgid "No recipients found."
|
||||
msgstr "No se han encontrado destinatarios."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1426
|
||||
msgid "Quoted printable encoder not available."
|
||||
msgstr "El codificador imprimible citado no se encuentra disponible."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1431
|
||||
msgid "Header line encoder not available."
|
||||
msgstr "El codificador de línea de encabezado no está disponible."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1482
|
||||
msgid "Mail sent."
|
||||
msgstr "Correo enviado."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1519
|
||||
msgid "Send"
|
||||
msgstr "Enviar"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1520
|
||||
msgid "Cancel"
|
||||
msgstr "Cancelar"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1521
|
||||
msgid "Delete Attachment"
|
||||
msgstr "Eliminar datos adjuntos"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1522
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1607
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1688
|
||||
msgid "Reload Config"
|
||||
msgstr "Actualizar configuración"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1523
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1608
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1689
|
||||
msgid "Logout"
|
||||
msgstr "Desconectarse"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1546
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1693
|
||||
msgid "From:"
|
||||
msgstr "De:"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1547
|
||||
msgid "To:"
|
||||
msgstr "Para:"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1548
|
||||
msgid "Cc:"
|
||||
msgstr "Cc:"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1549
|
||||
msgid "Bcc:"
|
||||
msgstr "CCO:"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1550
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1695
|
||||
msgid "Subject:"
|
||||
msgstr "Asunto:"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1551
|
||||
msgid "Bcc to self"
|
||||
msgstr "CCO a mí mismo"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1554
|
||||
msgid "New Attachment:"
|
||||
msgstr "Nuevo Archivo adjunto:"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1554
|
||||
msgid "Upload File"
|
||||
msgstr "Subir Archivo"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1560
|
||||
msgid "Attachments:"
|
||||
msgstr "Archivos adjuntos:"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1582
|
||||
msgid "User"
|
||||
msgstr "Usuario"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1583
|
||||
msgid "Pass"
|
||||
msgstr "Contraseña"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1584
|
||||
msgid "Host"
|
||||
msgstr "Host"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1585
|
||||
msgid "POP3-Port"
|
||||
msgstr "Puerto-POP3"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1586
|
||||
msgid "SMTP-Port"
|
||||
msgstr "Puerto-SMTP"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1587
|
||||
msgid "Create Account"
|
||||
msgstr "Crear una cuenta"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1587
|
||||
msgid "Reset"
|
||||
msgstr "Cancelar"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1599
|
||||
msgid "Really delete the marked messages?"
|
||||
msgstr "¿Realmente deseas borrar los mensajes marcados?"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1599
|
||||
msgid "Yes, really delete them!"
|
||||
msgstr "Sí, realmente eliminarlos!"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1601
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1680
|
||||
msgid "New"
|
||||
msgstr "Nuevo"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1602
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1681
|
||||
msgid "Reply"
|
||||
msgstr "Responder"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1603
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1682
|
||||
msgid "Reply All"
|
||||
msgstr "Responder a todos"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1604
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1683
|
||||
msgid "Forward"
|
||||
msgstr "Reenviar"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1605
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1684
|
||||
msgid "Delete"
|
||||
msgstr "Eliminar"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1606
|
||||
msgid "Check Mail"
|
||||
msgstr "Comprobar correo"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1610
|
||||
msgid "Sender"
|
||||
msgstr "Remitente"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1611
|
||||
msgid "Subject"
|
||||
msgstr "Asunto"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1612
|
||||
msgid "Date"
|
||||
msgstr "Fecha"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1613
|
||||
msgid "Size"
|
||||
msgstr "Tamaño"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1639
|
||||
#, java-format
|
||||
msgid "1 Byte"
|
||||
msgid_plural "{0} Bytes"
|
||||
msgstr[0] "1 Byte"
|
||||
msgstr[1] "{0} Bytes"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1644
|
||||
msgid "Mark All"
|
||||
msgstr "Marcar todos"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1645
|
||||
msgid "Invert Selection"
|
||||
msgstr "Invertir selección"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1646
|
||||
msgid "Clear"
|
||||
msgstr "Despejar"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1649
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1650
|
||||
msgid "First"
|
||||
msgstr "Primero"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1649
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1650
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1685
|
||||
msgid "Previous"
|
||||
msgstr "Anterior"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1651
|
||||
#, java-format
|
||||
msgid "Page {0} of {1}"
|
||||
msgstr "Página {0} de {1}"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1653
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1654
|
||||
msgid "Last"
|
||||
msgstr "Última"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1653
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1654
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1686
|
||||
msgid "Next"
|
||||
msgstr "Siguiente"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1657
|
||||
msgid "Pagesize:"
|
||||
msgstr "Tamaño de página:"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1658
|
||||
msgid "Set"
|
||||
msgstr "Set"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1668
|
||||
msgid "Really delete this message?"
|
||||
msgstr "¿Realmente deseas borrar este mensaje?"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1668
|
||||
msgid "Yes, really delete it!"
|
||||
msgstr "Sí, realmente eliminarlo!"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1687
|
||||
msgid "Back to Folder"
|
||||
msgstr "Volver a carpeta"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1694
|
||||
msgid "Date:"
|
||||
msgstr "Fecha:"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1705
|
||||
msgid "Could not fetch mail."
|
||||
msgstr "No se pudo descargar el correo."
|
||||
|
441
apps/susimail/locale/messages_fr.po
Normal file
441
apps/susimail/locale/messages_fr.po
Normal file
@ -0,0 +1,441 @@
|
||||
# I2P
|
||||
# Copyright (C) 2009 The I2P Project
|
||||
# This file is distributed under the same license as the susimail package.
|
||||
# To contribute translations, see http://www.i2p2.de/newdevelopers
|
||||
# foo <foo@bar>, 2009.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: I2P susimail\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2011-03-24 16:49+0000\n"
|
||||
"PO-Revision-Date: 2011-04-09 03:06+0100\n"
|
||||
"Last-Translator: magma <magma@mail.i2p>\n"
|
||||
"Language-Team: duck <duck@mail.i2p>\n"
|
||||
"Language: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n >= 2)\n"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:454
|
||||
msgid "unknown"
|
||||
msgstr "inconnu"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:473
|
||||
msgid "Warning: no transfer encoding found, fallback to 7bit."
|
||||
msgstr "Avertissement: pas d'encodage de transfert trouvé: retour en 7bits."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:478
|
||||
#, java-format
|
||||
msgid "No encoder found for encoding \\''{0}\\''."
|
||||
msgstr "Pas d''encodeur trouvé pour encoder \"{0}\"."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:484
|
||||
msgid "Warning: no charset found, fallback to US-ASCII."
|
||||
msgstr "Avertissement: aucun jeu de caractères trouvé, retour en ASCII-US"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:498
|
||||
#, java-format
|
||||
msgid "Charset \\''{0}\\'' not supported."
|
||||
msgstr "Jeu de caractères \\''{0}\\'' non pris en charge."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:502
|
||||
#, java-format
|
||||
msgid "Part ({0}) not shown, because of {1}"
|
||||
msgstr "Partie ({0}) non affichée car {1}"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:525
|
||||
msgid "Download"
|
||||
msgstr "Télécharger"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:525
|
||||
msgid "File is packed into a zipfile for security reasons."
|
||||
msgstr "Fichier compressé en zip par sécurité."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:525
|
||||
#, java-format
|
||||
msgid "attachment ({0})."
|
||||
msgstr "pièce jointe ({0})."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:529
|
||||
#, java-format
|
||||
msgid "Attachment ({0})."
|
||||
msgstr "Pièce jointe ({0})."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:579
|
||||
msgid "Need username for authentication."
|
||||
msgstr "Identifiant requis pour l'authentification."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:583
|
||||
msgid "Need password for authentication."
|
||||
msgstr "Mot de passe requis pour l'authentification."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:587
|
||||
msgid "Need hostname for connect."
|
||||
msgstr "Nom d'hôte requis pour la connexion."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:592
|
||||
msgid "Need port number for pop3 connect."
|
||||
msgstr "Port requis pour la connexion POP3."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:599
|
||||
msgid "POP3 port number is not in range 0..65535."
|
||||
msgstr "Le port POP3 n'est pas compris entre 0 et 65535."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:605
|
||||
msgid "POP3 port number is invalid."
|
||||
msgstr "Port POP3 incorrect."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:611
|
||||
msgid "Need port number for smtp connect."
|
||||
msgstr "Port requis pour la connexion SMTP."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:618
|
||||
msgid "SMTP port number is not in range 0..65535."
|
||||
msgstr "Le port SMTP n'est pas compris entre 0 et 65535."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:624
|
||||
msgid "SMTP port number is invalid."
|
||||
msgstr "Port SMTP incorrect."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:671
|
||||
msgid "User logged out."
|
||||
msgstr "Utilisateur déconnecté."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:675
|
||||
msgid "Internal error, lost connection."
|
||||
msgstr "Erreur interne, connexion perdue."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:771
|
||||
#, java-format
|
||||
msgid "On {0} {1} wrote:"
|
||||
msgstr "Sur {0} {1} écrit:"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:818
|
||||
msgid "begin forwarded mail"
|
||||
msgstr "tranfert du message commencé"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:840
|
||||
msgid "end forwarded mail"
|
||||
msgstr "tranfert du message terminé"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:847
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1701
|
||||
msgid "Could not fetch mail body."
|
||||
msgstr "Impossible de ramener le corps du message."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:875
|
||||
msgid "Message id not valid."
|
||||
msgstr "ID de message incorrecte."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:958
|
||||
#, java-format
|
||||
msgid "No Encoding found for {0}"
|
||||
msgstr "Pas d''encodage trouvé pour {0}"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:962
|
||||
#, java-format
|
||||
msgid "Could not encode data: {0}"
|
||||
msgstr "Impossible d''encoder les données: {0}"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:967
|
||||
#, java-format
|
||||
msgid "Error reading uploaded file: {0}"
|
||||
msgstr "Erreur de lecture du fichier envoyé: {0}"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1045
|
||||
msgid "Error parsing download parameter."
|
||||
msgstr "Erreur d'analyse des paramètres de téléchargement."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1089
|
||||
msgid "Invalid pagesize number, resetting to default value."
|
||||
msgstr "Taille de page incorrecte: réinitialisation à la valeur par défaut."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1113
|
||||
msgid "No messages marked for deletion."
|
||||
msgstr "Aucun message marqué pour suppression"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1133
|
||||
#, java-format
|
||||
msgid "Error deleting message: {0}"
|
||||
msgstr "Erreur de suppression du message: {0}"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1144
|
||||
#, java-format
|
||||
msgid "1 message deleted."
|
||||
msgid_plural "{0} messages deleted."
|
||||
msgstr[0] "{0} message supprimé"
|
||||
msgstr[1] "{0} messages supprimés"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1264
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1587
|
||||
msgid "Login"
|
||||
msgstr "Identification"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1266
|
||||
#, java-format
|
||||
msgid "1 Message"
|
||||
msgid_plural "{0} Messages"
|
||||
msgstr[0] "{0} Message"
|
||||
msgstr[1] "{0} Messages"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1268
|
||||
msgid "Show Message"
|
||||
msgstr "Afficher le message"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1325
|
||||
#, java-format
|
||||
msgid "Error decoding content: {0}"
|
||||
msgstr "Erreur de décodage de contenu: {0}"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1330
|
||||
msgid "Error decoding content: No encoder found."
|
||||
msgstr "Erreur de décodage de contenu: pas d'encodeur trouvé."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1377
|
||||
msgid "no subject"
|
||||
msgstr "pas d'objet"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1394
|
||||
msgid "Found no valid sender address."
|
||||
msgstr "Adresse d'expéditeur correcte non trouvée"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1400
|
||||
#, java-format
|
||||
msgid "Found no valid address in \\''{0}\\''."
|
||||
msgstr "Pas d''adresse correcte dans \\''{0}\\''."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1419
|
||||
msgid "No recipients found."
|
||||
msgstr "Pas de destinataire trouvé."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1426
|
||||
msgid "Quoted printable encoder not available."
|
||||
msgstr "Encodeur \"Quoted printable\" non disponible."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1431
|
||||
msgid "Header line encoder not available."
|
||||
msgstr "Ligne d'en-tête \"Encodeur\" non disponible."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1482
|
||||
msgid "Mail sent."
|
||||
msgstr "Message envoyé."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1519
|
||||
msgid "Send"
|
||||
msgstr "Envoyer"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1520
|
||||
msgid "Cancel"
|
||||
msgstr "Annuler"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1521
|
||||
msgid "Delete Attachment"
|
||||
msgstr "Supprimer la pièce jointe"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1522
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1607
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1688
|
||||
msgid "Reload Config"
|
||||
msgstr "Recharger la configuration"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1523
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1608
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1689
|
||||
msgid "Logout"
|
||||
msgstr "Déconnexion"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1546
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1693
|
||||
msgid "From:"
|
||||
msgstr "De:"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1547
|
||||
msgid "To:"
|
||||
msgstr "À:"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1548
|
||||
msgid "Cc:"
|
||||
msgstr "Cc:"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1549
|
||||
msgid "Bcc:"
|
||||
msgstr "Cci:"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1550
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1695
|
||||
msgid "Subject:"
|
||||
msgstr "Objet:"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1551
|
||||
msgid "Bcc to self"
|
||||
msgstr "Cci à moi-même"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1554
|
||||
msgid "New Attachment:"
|
||||
msgstr "Nouvelle pièce jointe:"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1554
|
||||
msgid "Upload File"
|
||||
msgstr "Envoyer le fichier"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1560
|
||||
msgid "Attachments:"
|
||||
msgstr "Pièces jointes:"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1582
|
||||
msgid "User"
|
||||
msgstr "Utilisateur"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1583
|
||||
msgid "Pass"
|
||||
msgstr "Mot de passe"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1584
|
||||
msgid "Host"
|
||||
msgstr "Hôte"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1585
|
||||
msgid "POP3-Port"
|
||||
msgstr "Port POP3"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1586
|
||||
msgid "SMTP-Port"
|
||||
msgstr "Port SMTP"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1587
|
||||
msgid "Create Account"
|
||||
msgstr "Créer un compte"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1587
|
||||
msgid "Reset"
|
||||
msgstr "Remise à zéro"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1599
|
||||
msgid "Really delete the marked messages?"
|
||||
msgstr "voulez-vous vraiment supprimer les messages marqués?"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1599
|
||||
msgid "Yes, really delete them!"
|
||||
msgstr "Oui, suppression!"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1601
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1680
|
||||
msgid "New"
|
||||
msgstr "Nouveau message"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1602
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1681
|
||||
msgid "Reply"
|
||||
msgstr "Répondre"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1603
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1682
|
||||
msgid "Reply All"
|
||||
msgstr "Répondre à tous"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1604
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1683
|
||||
msgid "Forward"
|
||||
msgstr "Transférer"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1605
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1684
|
||||
msgid "Delete"
|
||||
msgstr "Supprimer"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1606
|
||||
msgid "Check Mail"
|
||||
msgstr "Relever le courrier"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1610
|
||||
msgid "Sender"
|
||||
msgstr "De"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1611
|
||||
msgid "Subject"
|
||||
msgstr "Objet"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1612
|
||||
msgid "Date"
|
||||
msgstr "Date"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1613
|
||||
msgid "Size"
|
||||
msgstr "Taille"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1639
|
||||
#, java-format
|
||||
msgid "1 Byte"
|
||||
msgid_plural "{0} Bytes"
|
||||
msgstr[0] "{0} octet"
|
||||
msgstr[1] "{0} octets"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1644
|
||||
msgid "Mark All"
|
||||
msgstr "Tout cocher"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1645
|
||||
msgid "Invert Selection"
|
||||
msgstr "Inverser la sélection"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1646
|
||||
msgid "Clear"
|
||||
msgstr "Effacer"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1649
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1650
|
||||
msgid "First"
|
||||
msgstr "Premier"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1649
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1650
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1685
|
||||
msgid "Previous"
|
||||
msgstr "Précédent"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1651
|
||||
#, java-format
|
||||
msgid "Page {0} of {1}"
|
||||
msgstr "Page {0} sur {1}"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1653
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1654
|
||||
msgid "Last"
|
||||
msgstr "Dernier"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1653
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1654
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1686
|
||||
msgid "Next"
|
||||
msgstr "Suivant"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1657
|
||||
msgid "Pagesize:"
|
||||
msgstr "Taille de page:"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1658
|
||||
msgid "Set"
|
||||
msgstr "Définir"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1668
|
||||
msgid "Really delete this message?"
|
||||
msgstr "Voulez-vous vraiment supprimer ce message?"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1668
|
||||
msgid "Yes, really delete it!"
|
||||
msgstr "Oui, supprimer!"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1687
|
||||
msgid "Back to Folder"
|
||||
msgstr "Retour au dossier"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1694
|
||||
msgid "Date:"
|
||||
msgstr "Date:"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1705
|
||||
msgid "Could not fetch mail."
|
||||
msgstr "Impossible de ramener le courrier."
|
||||
|
83
build.xml
83
build.xml
@ -135,6 +135,18 @@
|
||||
<copy file="core/java/build/i2p.jar" todir="build/" />
|
||||
</target>
|
||||
|
||||
<target name="buildJrobin" depends="buildProperties" >
|
||||
<!-- take only what we need from the jrobin jar -->
|
||||
<jar destfile="build/jrobin.jar" >
|
||||
<zipfileset src="apps/jrobin/jrobin-1.5.9.1.jar"
|
||||
excludes="org/jrobin/cmd/ org/jrobin/convertor/ org/jrobin/inspector/" />
|
||||
<manifest>
|
||||
<attribute name="Build-Date" value="${build.timestamp}" />
|
||||
<attribute name="Base-Revision" value="${workspace.version}" />
|
||||
</manifest>
|
||||
</jar>
|
||||
</target>
|
||||
|
||||
<target name="buildProperties" >
|
||||
<exec executable="mtn" outputproperty="workspace.version" errorproperty="mtn.error1" failifexecutionfails="false" >
|
||||
<arg value="automate" />
|
||||
@ -194,7 +206,7 @@
|
||||
<launch4j configFile="./installer/i2pstandalone.xml" />
|
||||
<!-- thazzit -->
|
||||
</target>
|
||||
<target name="compile" />
|
||||
|
||||
<target name="jar" depends="jarSmall" >
|
||||
<copy file="apps/BOB/dist/BOB.jar" todir="build/" />
|
||||
<copy file="apps/sam/java/build/sam.jar" todir="build/" />
|
||||
@ -202,8 +214,9 @@
|
||||
<copy file="apps/susidns/src/susidns.war" todir="build/" />
|
||||
<copy file="apps/i2psnark/i2psnark.war" todir="build/" />
|
||||
<copy file="apps/i2psnark/java/build/i2psnark.jar" todir="build/" />
|
||||
|
||||
</target>
|
||||
<target name="jarSmall" depends="compile" >
|
||||
<target name="jarSmall" depends="builddepSmall, buildJrobin" >
|
||||
<copy file="core/java/build/i2p.jar" todir="build/" />
|
||||
<copy file="router/java/build/router.jar" todir="build/" />
|
||||
<copy file="apps/ministreaming/java/build/mstreaming.jar" todir="build/" />
|
||||
@ -212,9 +225,27 @@
|
||||
<copy file="apps/i2ptunnel/java/build/i2ptunnel.war" todir="build/" />
|
||||
<copy file="apps/systray/java/build/systray.jar" todir="build/" />
|
||||
<copy file="apps/desktopgui/dist/desktopgui.jar" todir="build/" />
|
||||
<copy file="installer/lib/jbigi/jbigi.jar" todir="build" />
|
||||
<copy file="apps/addressbook/dist/addressbook.war" todir="build/" />
|
||||
</target>
|
||||
|
||||
<target name="jbigi">
|
||||
<jar destfile="build/jbigi.jar" whenmanifestonly="fail" >
|
||||
<fileset dir="installer/lib/jbigi" includes="*.so *.dll *.jnilib" />
|
||||
</jar>
|
||||
</target>
|
||||
|
||||
<target name="jbigi-windows-only" >
|
||||
<jar destfile="build/jbigi.jar" whenmanifestonly="fail" >
|
||||
<fileset dir="installer/lib/jbigi" includes="*windows*.dll" />
|
||||
</jar>
|
||||
</target>
|
||||
|
||||
<target name="jbigi-linux-only">
|
||||
<jar destfile="build/jbigi.jar" whenmanifestonly="fail" >
|
||||
<fileset dir="installer/lib/jbigi" includes="*linux*.so" />
|
||||
</jar>
|
||||
</target>
|
||||
|
||||
<!-- the apps need to compile the jsps to poupdate -->
|
||||
<target name="poupdate" depends="buildRouter, buildStreaming, buildSystray, buildJetty, buildDesktopGui" >
|
||||
<echo message="Setting environment variable LG2 to a lang code (eg: de,zh,nl etc)" />
|
||||
@ -293,7 +324,7 @@
|
||||
<pathelement location="apps/jetty/jettylib/org.mortbay.jetty.jar" />
|
||||
<pathelement location="apps/jetty/jettylib/javax.servlet.jar" />
|
||||
<pathelement location="apps/systray/java/lib/systray4j.jar" />
|
||||
<pathelement location="apps/jrobin/jrobin-1.4.0.jar" />
|
||||
<pathelement location="apps/jrobin/jrobin-1.5.9.1.jar" />
|
||||
<pathelement location="installer/lib/wrapper/win32/wrapper.jar" />
|
||||
<pathelement location="core/lib/junit.jar" />
|
||||
</classpath>
|
||||
@ -385,7 +416,7 @@
|
||||
</delete>
|
||||
</target>
|
||||
|
||||
<target name="preppkg" depends="preppkg-linux, preppkg-windows">
|
||||
<target name="preppkg" depends="preppkg-linux, preppkg-windows, jbigi">
|
||||
<copy file="build/jbigi.jar" todir="pkg-temp/lib" />
|
||||
<copy todir="pkg-temp/lib/wrapper/freebsd/">
|
||||
<fileset dir="installer/lib/wrapper/freebsd/" />
|
||||
@ -408,6 +439,7 @@
|
||||
<copy file="installer/resources/fixperms.bat" todir="pkg-temp/" />
|
||||
<copy file="installer/resources/install_i2p_service_winnt.bat" todir="pkg-temp/" />
|
||||
<copy file="installer/resources/postinstall.bat" todir="pkg-temp/" />
|
||||
<copy file="installer/resources/set_config_dir_for_nt_service.bat" todir="pkg-temp/" />
|
||||
<copy file="installer/resources/uninstall_i2p_service_winnt.bat" todir="pkg-temp/" />
|
||||
<copy todir="pkg-temp/lib/wrapper/win32/">
|
||||
<fileset dir="installer/lib/wrapper/win32/" />
|
||||
@ -415,14 +447,8 @@
|
||||
</target>
|
||||
|
||||
<!-- only what is needed for debian, etc. -->
|
||||
<target name="preppkg-linux-only" depends="preppkg-linux">
|
||||
<!-- rip the non-linux stuff out of jbigi.jar -->
|
||||
<mkdir dir="tmpextract" />
|
||||
<unjar src="build/jbigi.jar" dest="tmpextract/" />
|
||||
<jar destfile="pkg-temp/lib/jbigi.jar" >
|
||||
<fileset dir="tmpextract/" includes="*linux*" />
|
||||
</jar>
|
||||
<delete dir="tmpextract/" />
|
||||
<target name="preppkg-linux-only" depends="preppkg-linux, jbigi-linux-only" >
|
||||
<copy file="build/jbigi.jar" todir="pkg-temp/lib" />
|
||||
</target>
|
||||
|
||||
<target name="preppkg-linux" depends="preppkg-base">
|
||||
@ -462,7 +488,7 @@
|
||||
<copy file="build/desktopgui.jar" todir="pkg-temp/lib/" />
|
||||
<copy file="build/routerconsole.jar" todir="pkg-temp/lib/" />
|
||||
<!-- pulled out of routerconsole.jar in 0.7.12; name without version so we can overwrite if we upgrade -->
|
||||
<copy file="apps/jrobin/jrobin-1.4.0.jar" tofile="pkg-temp/lib/jrobin.jar" />
|
||||
<copy file="build/jrobin.jar" tofile="pkg-temp/lib/jrobin.jar" />
|
||||
<copy file="build/sam.jar" todir="pkg-temp/lib/" />
|
||||
<copy file="build/BOB.jar" todir="pkg-temp/lib/" />
|
||||
<copy file="build/systray.jar" todir="pkg-temp/lib" />
|
||||
@ -665,7 +691,7 @@
|
||||
<copy file="build/routerconsole.jar" todir="pkg-temp/lib/" />
|
||||
<!-- pulled out of routerconsole.jar in 0.7.12, someday we can take out of updater -->
|
||||
<!-- name without version so we can overwrite if we upgrade -->
|
||||
<copy file="apps/jrobin/jrobin-1.4.0.jar" tofile="pkg-temp/lib/jrobin.jar" />
|
||||
<copy file="build/jrobin.jar" tofile="pkg-temp/lib/jrobin.jar" />
|
||||
<copy file="build/i2ptunnel.war" todir="pkg-temp/webapps/" />
|
||||
<copy file="build/routerconsole.war" todir="pkg-temp/webapps/" />
|
||||
<copy file="build/addressbook.war" todir="pkg-temp/webapps/" />
|
||||
@ -824,7 +850,7 @@
|
||||
<arg value="-output"/>
|
||||
<arg value="i2p.fba"/>
|
||||
<arg value="-auxclasspath"/>
|
||||
<arg value="build/commons-el.jar:build/commons-logging.jar:build/jasper-compiler.jar:build/jasper-runtime.jar:build/javax.servlet.jar:build/org.mortbay.jetty.jar:apps/jrobin/jrobin-1.4.0.jar:apps/systray/java/lib/systray4j.jar:installer/lib/wrapper/linux/wrapper.jar:apps/susidns/src/WEB-INF/lib/standard.jar:apps/susidns/src/WEB-INF/lib/jstl.jar:apps/jrobin/jrobin-1.4.0.jar"/>
|
||||
<arg value="build/commons-el.jar:build/commons-logging.jar:build/jasper-compiler.jar:build/jasper-runtime.jar:build/javax.servlet.jar:build/org.mortbay.jetty.jar:apps/jrobin/jrobin-1.5.9.1.jar:apps/systray/java/lib/systray4j.jar:installer/lib/wrapper/linux/wrapper.jar:apps/susidns/src/WEB-INF/lib/standard.jar:apps/susidns/src/WEB-INF/lib/jstl.jar:apps/jrobin/jrobin-1.5.9.1.jar"/>
|
||||
<arg value="-sourcepath"/>
|
||||
<arg value="apps/BOB/src/:apps/addressbook/java/src/:apps/i2psnark/java/src/:apps/i2ptunnel/java/src/:apps/ministreaming/java/src/:apps/routerconsole/java/src/:apps/sam/java/src/:apps/streaming/java/src/:apps/susidns/src/java/src/:apps/susimail/src/src/:apps/systray/java/src/:core/java/src/:router/java/src/"/>
|
||||
<!-- start of the files to be analyzed -->
|
||||
@ -835,7 +861,6 @@
|
||||
<arg value="build/i2psnark.war"/>
|
||||
<arg value="build/i2ptunnel.jar"/>
|
||||
<arg value="build/i2ptunnel.war"/>
|
||||
<arg value="build/jbigi.jar"/>
|
||||
<arg value="build/mstreaming.jar"/>
|
||||
<arg value="build/router.jar/"/>
|
||||
<arg value="build/desktopgui.jar"/>
|
||||
@ -1053,25 +1078,11 @@
|
||||
we need to make sure its small, with NO redundent jars or wars.
|
||||
thus cleaning is required before each build-->
|
||||
<target name="buildSmallOnly" depends="pkg-portable-clean,buildSmall"/>
|
||||
|
||||
<!-- *1* preparing the jars by OS dependent de-bloating -->
|
||||
<target name="preppkg-portable-win32-jbigi" depends="buildSmallOnly">
|
||||
<!-- rip the non-windows stuff out of jbigi.jar -->
|
||||
<mkdir dir="tmpextract" />
|
||||
<unjar src="build/jbigi.jar" dest="tmpextract/" />
|
||||
<jar destfile="build/jbigi.jar" >
|
||||
<fileset dir="tmpextract/" includes="*windows*" />
|
||||
</jar>
|
||||
<delete dir="tmpextract/" />
|
||||
</target>
|
||||
<target name="preppkg-portable-linux-jbigi" depends="buildSmallOnly">
|
||||
<!-- rip the non-linux stuff out of jbigi.jar -->
|
||||
<mkdir dir="tmpextract" />
|
||||
<unjar src="build/jbigi.jar" dest="tmpextract/" />
|
||||
<jar destfile="build/jbigi.jar" >
|
||||
<fileset dir="tmpextract/" includes="*linux*" />
|
||||
</jar>
|
||||
<delete dir="tmpextract/" />
|
||||
</target>
|
||||
<target name="preppkg-portable-win32-jbigi" depends="buildSmallOnly, jbigi-windows-only" />
|
||||
|
||||
<target name="preppkg-portable-linux-jbigi" depends="buildSmallOnly, jbigi-linux-only" />
|
||||
|
||||
<!-- *2* os independent procedure -->
|
||||
<target name="preppkg-portable-basic" >
|
||||
@ -1120,7 +1131,7 @@
|
||||
</copy>
|
||||
<!-- 3rd party jars from apps/ -->
|
||||
<!-- jrobin - without jobin , you lost graph and get a lot error entry in logs -->
|
||||
<copy file="apps/jrobin/jrobin-1.4.0.jar" tofile="pkg-temp/lib/jrobin.jar" />
|
||||
<copy file="build/jrobin.jar" tofile="pkg-temp/lib/jrobin.jar" />
|
||||
</target>
|
||||
<!-- *3* os dependent procedure/commands -->
|
||||
<target name = "preppkg-portable-win32" depends="preppkg-portable-win32-jbigi,preppkg-portable-basic">
|
||||
|
@ -9,9 +9,19 @@ TODO: Document generated folder structure
|
||||
TODO: Instructions for adding the libraries to a jar
|
||||
|
||||
Linux-specific information:
|
||||
===========================
|
||||
Some linux distributions comes bundled with GMP.
|
||||
There is currently no out-of-the-box support for this in the current build-scripts.
|
||||
Try 'locate lib/libgmp.so' to see.
|
||||
If so, install the the libgmp3-dev debian package to get the libgmp headers.
|
||||
Then export I2P=/path/to/your/i2p/install.
|
||||
Then do 'build.sh dynamic'. This will do a quick build using your installed libgmp library
|
||||
and then test it and the jbigi in your I2P installation to see which is faster.
|
||||
|
||||
If the new jbigi is slower, then run 'build.sh' (without the 'dynamic'), which will download
|
||||
the 4.3.1 libgmp library, build, and test that.
|
||||
|
||||
|
||||
Windows-specific information:
|
||||
=============================
|
||||
The best way of building the jbigi dll's is to install Mingw {URL} and msys {URL}.
|
||||
The combination of these two should be able to run the included build-scripts without modifications.
|
||||
|
@ -57,33 +57,6 @@ JNIEXPORT jbyteArray JNICALL Java_net_i2p_util_NativeBigInteger_nativeModPow
|
||||
return jresult;
|
||||
}
|
||||
|
||||
/******** nativeDoubleValue() */
|
||||
/*
|
||||
* Class: net_i2p_util_NativeBigInteger
|
||||
* Method: nativeDoubleValue
|
||||
* Signature: ([B)D
|
||||
*
|
||||
* From the Javadoc:
|
||||
*
|
||||
* Converts a BigInteger byte-array to a 'double'
|
||||
* @param ba Big endian twos complement representation of the BigInteger to convert to a double
|
||||
* @return The plain double-value represented by 'ba'
|
||||
*/
|
||||
JNIEXPORT jdouble JNICALL Java_net_i2p_util_NativeBigInteger_nativeDoubleValue
|
||||
(JNIEnv * env, jclass cls, jbyteArray jba){
|
||||
/* 1) Convert the bytearray BigInteger value into the format libgmp understands
|
||||
* 2) Call libgmp's mpz_get_d.
|
||||
* 3) Convert libgmp's result into a big endian twos complement number.
|
||||
*/
|
||||
mpz_t mval;
|
||||
jdouble retval;
|
||||
convert_j2mp(env, jba, &mval);
|
||||
|
||||
retval = mpz_get_d(mval);
|
||||
mpz_clear(mval);
|
||||
return retval;
|
||||
}
|
||||
|
||||
/******************************
|
||||
*****Conversion methods*******
|
||||
******************************/
|
||||
|
@ -1,5 +1,44 @@
|
||||
#include "jcpuid.h"
|
||||
|
||||
/**
|
||||
|
||||
From: http://sam.zoy.org/blog/2007-04-13-shlib-with-non-pic-code-have-inline-assembly-and-pic-mix-well
|
||||
|
||||
Perhaps the most accessible documentation on what PIC code is and how an ELF dynamic linker works is
|
||||
John Levine's Linkers and Loaders (and it has amazing sketches, too!). The Gentoo documentation also
|
||||
has an Introduction to Position Independent Code. I'd like to give a few hints on how to fix the
|
||||
shlib-with-non-pic-code lintian error caused by inline assembly on the i386 and amd64 platforms,
|
||||
as well as build errors that may occur due to inline assembly being used.
|
||||
|
||||
I'm not going to cover the trivial "all objects were not built using gcc's -fPIC flag" problem.
|
||||
It usually requires a fix to the build system, not to the code.
|
||||
|
||||
gcc can't find a register (i386)
|
||||
|
||||
PIC on i386 uses a register to store the GOT (global offset table) address.
|
||||
This register is usually %ebx, making it unavailable for use by inline assembly
|
||||
(and also restricting the compiler's register usage when compiling C or C++ code).
|
||||
So the following perfectly valid code will not build with the -fPIC flag:
|
||||
|
||||
void cpuid(uint32_t op, uint32_t reg[4])
|
||||
{
|
||||
asm volatile("cpuid"
|
||||
: "=a"(reg[0]), "=b"(reg[1]), "=c"(reg[2]), "=d"(reg[3])
|
||||
: "a"(op)
|
||||
: "cc");
|
||||
}
|
||||
|
||||
Using -fPIC, gcc will say something around the lines of error: can't find a register in class 'BREG'
|
||||
while reloading 'asm'. Several things need to be done to fix this:
|
||||
|
||||
* use a register other than %ebx
|
||||
* save %ebx if it risks being clobbered by the assembly code, and don't tell gcc about %ebx at all (it doesn't need to know anyway)
|
||||
* if we saved %ebx by pushing it on the stack, make sure the inline assembly code takes the new stack offset into account
|
||||
|
||||
And here is the PIC-compliant version:
|
||||
|
||||
**/
|
||||
|
||||
//Executes the indicated subfunction of the CPUID operation
|
||||
JNIEXPORT jobject JNICALL Java_freenet_support_CPUInformation_CPUID_doCPUID
|
||||
(JNIEnv * env, jclass cls, jint iFunction)
|
||||
@ -20,14 +59,15 @@ JNIEXPORT jobject JNICALL Java_freenet_support_CPUInformation_CPUID_doCPUID
|
||||
}
|
||||
#else
|
||||
//Use GCC assembler notation
|
||||
asm
|
||||
asm volatile
|
||||
(
|
||||
"cpuid"
|
||||
: "=a" (a),
|
||||
"=b" (b),
|
||||
"=c"(c),
|
||||
"=d"(d)
|
||||
"pushl %%ebx \n\t" /* save %ebx */
|
||||
"cpuid \n\t"
|
||||
"movl %%ebx, %1 \n\t" /* save what cpuid just put in %ebx */
|
||||
"popl %%ebx \n\t" /* restore the old %ebx */
|
||||
: "=a" (a), "=r" (b), "=c" (c), "=d" (d)
|
||||
:"a"(iFunction)
|
||||
: "cc"
|
||||
);
|
||||
#endif
|
||||
return (*env)->NewObject(env, clsResult,constructor,a,b,c,d);
|
||||
|
@ -38,8 +38,8 @@ public class AsyncFortunaStandalone extends FortunaStandalone implements Runnabl
|
||||
for (int i = 0; i < _bufferCount; i++)
|
||||
status[i] = STATUS_NEED_FILL;
|
||||
_context = context;
|
||||
context.statManager().createRateStat("prng.bufferWaitTime", "", "Encryption", new long[] { 60*1000, 10*60*1000, 60*60*1000 } );
|
||||
context.statManager().createRateStat("prng.bufferFillTime", "", "Encryption", new long[] { 60*1000, 10*60*1000, 60*60*1000 } );
|
||||
context.statManager().createRequiredRateStat("prng.bufferWaitTime", "Delay for random number buffer (ms)", "Encryption", new long[] { 60*1000, 10*60*1000, 60*60*1000 } );
|
||||
context.statManager().createRequiredRateStat("prng.bufferFillTime", "Time to fill random number buffer (ms)", "Encryption", new long[] { 60*1000, 10*60*1000, 60*60*1000 } );
|
||||
_log = context.logManager().getLog(AsyncFortunaStandalone.class);
|
||||
}
|
||||
|
||||
|
@ -16,7 +16,7 @@ package net.i2p;
|
||||
public class CoreVersion {
|
||||
/** deprecated */
|
||||
public final static String ID = "Monotone";
|
||||
public final static String VERSION = "0.8.4";
|
||||
public final static String VERSION = "0.8.6";
|
||||
|
||||
public static void main(String args[]) {
|
||||
System.out.println("I2P Core version: " + VERSION);
|
||||
|
@ -64,11 +64,11 @@ public class ElGamalEngine {
|
||||
*
|
||||
*/
|
||||
public ElGamalEngine(I2PAppContext context) {
|
||||
context.statManager().createRateStat("crypto.elGamal.encrypt",
|
||||
"how long does it take to do a full ElGamal encryption", "Encryption",
|
||||
context.statManager().createRequiredRateStat("crypto.elGamal.encrypt",
|
||||
"Time for ElGamal encryption (ms)", "Encryption",
|
||||
new long[] { 60 * 60 * 1000});
|
||||
context.statManager().createRateStat("crypto.elGamal.decrypt",
|
||||
"how long does it take to do a full ElGamal decryption", "Encryption",
|
||||
context.statManager().createRequiredRateStat("crypto.elGamal.decrypt",
|
||||
"Time for ElGamal decryption (ms)", "Encryption",
|
||||
new long[] { 60 * 60 * 1000});
|
||||
_context = context;
|
||||
_log = context.logManager().getLog(ElGamalEngine.class);
|
||||
|
@ -44,7 +44,7 @@ public class Certificate extends DataStructureImpl {
|
||||
public final static int CERTIFICATE_TYPE_MULTIPLE = 4;
|
||||
|
||||
/**
|
||||
* Pull from cache or return new
|
||||
* If null cert, return immutable static instance, else create new
|
||||
* @throws AIOOBE if not enough bytes
|
||||
* @since 0.8.3
|
||||
*/
|
||||
@ -57,7 +57,7 @@ public class Certificate extends DataStructureImpl {
|
||||
if (length == 0)
|
||||
return new Certificate(type, null);
|
||||
byte[] payload = new byte[length];
|
||||
System.arraycopy(data, off = 3, payload, 0, length);
|
||||
System.arraycopy(data, off + 3, payload, 0, length);
|
||||
return new Certificate(type, payload);
|
||||
}
|
||||
|
||||
|
@ -823,11 +823,10 @@ public class DataHelper {
|
||||
* This treats (null == null) as true, (null == (!null)) as false,
|
||||
* and unequal length arrays as false.
|
||||
*
|
||||
* @return Arrays.equals(lhs, rhs)
|
||||
*/
|
||||
public final static boolean eq(byte lhs[], byte rhs[]) {
|
||||
// this appears to be the way Arrays.equals is defined, so all the extra tests are unnecessary?
|
||||
boolean eq = (((lhs == null) && (rhs == null)) || ((lhs != null) && (rhs != null) && (Arrays.equals(lhs, rhs))));
|
||||
return eq;
|
||||
return Arrays.equals(lhs, rhs);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -21,8 +21,8 @@ import net.i2p.util.Log;
|
||||
*
|
||||
*/
|
||||
public class StatManager {
|
||||
private Log _log;
|
||||
private I2PAppContext _context;
|
||||
private final Log _log;
|
||||
private final I2PAppContext _context;
|
||||
|
||||
/** stat name to FrequencyStat */
|
||||
private final ConcurrentHashMap<String, FrequencyStat> _frequencyStats;
|
||||
@ -39,28 +39,8 @@ public class StatManager {
|
||||
public static final String PROP_STAT_FILTER = "stat.logFilters";
|
||||
public static final String PROP_STAT_FILE = "stat.logFile";
|
||||
public static final String DEFAULT_STAT_FILE = "stats.log";
|
||||
/** default true */
|
||||
/** default false */
|
||||
public static final String PROP_STAT_FULL = "stat.full";
|
||||
public static final String PROP_STAT_REQUIRED = "stat.required";
|
||||
/**
|
||||
* These are all the stats published in netDb, plus those required for the operation of
|
||||
* the router (many in RouterThrottleImpl), plus those that are on graphs.jsp by default,
|
||||
* plus those used on the summary bar (SummaryHelper.java).
|
||||
* Wildcard ('*') allowed at end of stat only.
|
||||
* Ignore all the rest of the stats unless stat.full=true.
|
||||
*/
|
||||
public static final String DEFAULT_STAT_REQUIRED =
|
||||
"bw.recvRate,bw.sendBps,bw.sendRate,client.sendAckTime,clock.skew,crypto.elGamal.encrypt," +
|
||||
"jobQueue.jobLag,netDb.successTime,peer.failedLookupRate,router.fastPeers," +
|
||||
"prng.bufferFillTime,prng.bufferWaitTime,router.memoryUsed," +
|
||||
"transport.receiveMessageSize,transport.sendMessageSize,transport.sendProcessingTime," +
|
||||
"tunnel.acceptLoad,tunnel.buildRequestTime,tunnel.rejectOverloaded,tunnel.rejectTimeout," +
|
||||
"tunnel.buildClientExpire,tunnel.buildClientReject,tunnel.buildClientSuccess," +
|
||||
"tunnel.buildExploratoryExpire,tunnel.buildExploratoryReject,tunnel.buildExploratorySuccess," +
|
||||
"tunnel.buildRatio.*,tunnel.corruptMessage,tunnel.dropLoad*," +
|
||||
"tunnel.decryptRequestTime,tunnel.fragmentedDropped,tunnel.participatingMessageCount,"+
|
||||
"tunnel.participatingTunnels,tunnel.testFailedTime,tunnel.testSuccessTime," +
|
||||
"tunnel.participatingBandwidth,udp.sendPacketSize,udp.packetsRetransmitted,udp.sendException" ;
|
||||
|
||||
/**
|
||||
* The stat manager should only be constructed and accessed through the
|
||||
@ -89,6 +69,7 @@ public class StatManager {
|
||||
|
||||
/**
|
||||
* Create a new statistic to monitor the frequency of some event.
|
||||
* The stat is ONLY created if the stat.full property is true or we are not in the router context.
|
||||
*
|
||||
* @param name unique name of the statistic
|
||||
* @param description simple description of the statistic
|
||||
@ -97,12 +78,27 @@ public class StatManager {
|
||||
*/
|
||||
public void createFrequencyStat(String name, String description, String group, long periods[]) {
|
||||
if (ignoreStat(name)) return;
|
||||
createRequiredFrequencyStat(name, description, group, periods);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a new statistic to monitor the frequency of some event.
|
||||
* The stat is always created, independent of the stat.full setting or context.
|
||||
*
|
||||
* @param name unique name of the statistic
|
||||
* @param description simple description of the statistic
|
||||
* @param group used to group statistics together
|
||||
* @param periods array of period lengths (in milliseconds)
|
||||
* @since 0.8.6
|
||||
*/
|
||||
public void createRequiredFrequencyStat(String name, String description, String group, long periods[]) {
|
||||
if (_frequencyStats.containsKey(name)) return;
|
||||
_frequencyStats.putIfAbsent(name, new FrequencyStat(name, description, group, periods));
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a new statistic to monitor the average value and confidence of some action.
|
||||
* The stat is ONLY created if the stat.full property is true or we are not in the router context.
|
||||
*
|
||||
* @param name unique name of the statistic
|
||||
* @param description simple description of the statistic
|
||||
@ -111,6 +107,20 @@ public class StatManager {
|
||||
*/
|
||||
public void createRateStat(String name, String description, String group, long periods[]) {
|
||||
if (ignoreStat(name)) return;
|
||||
createRequiredRateStat(name, description, group, periods);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a new statistic to monitor the average value and confidence of some action.
|
||||
* The stat is always created, independent of the stat.full setting or context.
|
||||
*
|
||||
* @param name unique name of the statistic
|
||||
* @param description simple description of the statistic
|
||||
* @param group used to group statistics together
|
||||
* @param periods array of period lengths (in milliseconds)
|
||||
* @since 0.8.6
|
||||
*/
|
||||
public void createRequiredRateStat(String name, String description, String group, long periods[]) {
|
||||
if (_rateStats.containsKey(name)) return;
|
||||
RateStat rs = new RateStat(name, description, group, periods);
|
||||
if (_statLog != null) rs.setStatLog(_statLog);
|
||||
@ -202,20 +212,13 @@ public class StatManager {
|
||||
public String getStatFile() { return _context.getProperty(PROP_STAT_FILE, DEFAULT_STAT_FILE); }
|
||||
|
||||
/**
|
||||
* Save memory by not creating stats unless they are required for router operation
|
||||
* Save memory by not creating stats unless they are required for router operation.
|
||||
* For backward compatibility of any external clients, always returns false if not in router context.
|
||||
*
|
||||
* @param statName ignored
|
||||
* @return true if the stat should be ignored.
|
||||
*/
|
||||
public boolean ignoreStat(String statName) {
|
||||
if (_context.getBooleanProperty(PROP_STAT_FULL))
|
||||
return false;
|
||||
String required = _context.getProperty(PROP_STAT_REQUIRED, DEFAULT_STAT_REQUIRED);
|
||||
String req[] = required.split(",");
|
||||
for (int i=0; i<req.length; i++) {
|
||||
if (req[i].equals(statName))
|
||||
return false;
|
||||
if (req[i].endsWith("*") && statName.startsWith(req[i].substring(0, req[i].length() - 2)))
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
return _context.isRouterContext() && !_context.getBooleanProperty(PROP_STAT_FULL);
|
||||
}
|
||||
}
|
||||
|
@ -97,7 +97,7 @@ public class Clock implements Timestamper.UpdateListener {
|
||||
getLog().info("Updating clock offset to " + offsetMs + "ms from " + _offset + "ms");
|
||||
|
||||
if (!_statCreated) {
|
||||
_context.statManager().createRateStat("clock.skew", "How far is the already adjusted clock being skewed?", "Clock", new long[] { 10*60*1000, 3*60*60*1000, 24*60*60*60 });
|
||||
_context.statManager().createRequiredRateStat("clock.skew", "Clock step adjustment (ms)", "Clock", new long[] { 10*60*1000, 3*60*60*1000, 24*60*60*60 });
|
||||
_statCreated = true;
|
||||
}
|
||||
_context.statManager().addRateData("clock.skew", delta, 0);
|
||||
|
@ -357,6 +357,9 @@ public class FileUtil {
|
||||
* Dump the contents of the given path (relative to the root) to the output
|
||||
* stream. The path must not go above the root, either - if it does, it will
|
||||
* throw a FileNotFoundException
|
||||
*
|
||||
* Closes the OutputStream out on successful completion
|
||||
* but leaves it open when throwing IOE.
|
||||
*/
|
||||
public static void readFile(String path, String root, OutputStream out) throws IOException {
|
||||
File rootDir = new File(root);
|
||||
@ -376,10 +379,10 @@ public class FileUtil {
|
||||
int read = 0;
|
||||
while ( (read = in.read(buf)) != -1)
|
||||
out.write(buf, 0, read);
|
||||
out.close();
|
||||
try { out.close(); } catch (IOException ioe) {}
|
||||
} finally {
|
||||
if (in != null)
|
||||
in.close();
|
||||
try { in.close(); } catch (IOException ioe) {}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -28,8 +28,7 @@ import net.i2p.I2PAppContext;
|
||||
/**
|
||||
* <p>BigInteger that takes advantage of the jbigi library for the modPow operation,
|
||||
* which accounts for a massive segment of the processing cost of asymmetric
|
||||
* crypto. It also takes advantage of the jbigi library for converting a BigInteger
|
||||
* value to a double. Sun's implementation of the 'doubleValue()' method is _very_ lousy.
|
||||
* crypto.
|
||||
*
|
||||
* The jbigi library itself is basically just a JNI wrapper around the
|
||||
* GMP library - a collection of insanely efficient routines for dealing with
|
||||
@ -64,7 +63,7 @@ import net.i2p.I2PAppContext;
|
||||
* "net/i2p/util/jbigi-windows-none.dll").</p>
|
||||
*
|
||||
* <p>Running this class by itself does a basic unit test and benchmarks the
|
||||
* NativeBigInteger.modPow/doubleValue vs. the BigInteger.modPow/doubleValue by running a 2Kbit op 100
|
||||
* NativeBigInteger.modPow vs. the BigInteger.modPow by running a 2Kbit op 100
|
||||
* times. At the end of each test, if the native implementation is loaded this will output
|
||||
* something like:</p>
|
||||
* <pre>
|
||||
@ -194,14 +193,6 @@ public class NativeBigInteger extends BigInteger {
|
||||
*/
|
||||
public native static byte[] nativeModPow(byte base[], byte exponent[], byte modulus[]);
|
||||
|
||||
/**
|
||||
* Converts a BigInteger byte-array to a 'double'
|
||||
* @param ba Big endian twos complement representation of the BigInteger to convert to a double
|
||||
* @return The plain double-value represented by 'ba'
|
||||
* @deprecated unused
|
||||
*/
|
||||
public native static double nativeDoubleValue(byte ba[]);
|
||||
|
||||
private byte[] cachedBa;
|
||||
|
||||
public NativeBigInteger(byte[] val) {
|
||||
@ -250,12 +241,9 @@ public class NativeBigInteger extends BigInteger {
|
||||
return cachedBa;
|
||||
}
|
||||
|
||||
/** @deprecated unused */
|
||||
/** @deprecated unused, does not call native */
|
||||
@Override
|
||||
public double doubleValue() {
|
||||
if (_nativeOk)
|
||||
return nativeDoubleValue(toByteArray());
|
||||
else
|
||||
return super.doubleValue();
|
||||
}
|
||||
/**
|
||||
@ -281,7 +269,7 @@ public class NativeBigInteger extends BigInteger {
|
||||
}
|
||||
|
||||
/**
|
||||
* <p>Compare the BigInteger.modPow/doubleValue vs the NativeBigInteger.modPow/doubleValue of some
|
||||
* <p>Compare the BigInteger.modPow vs the NativeBigInteger.modPow of some
|
||||
* really big (2Kbit) numbers 100 different times and benchmark the
|
||||
* performance (or shit a brick if they don't match). </p>
|
||||
*
|
||||
@ -289,8 +277,6 @@ public class NativeBigInteger extends BigInteger {
|
||||
public static void main(String args[]) {
|
||||
_doLog = true;
|
||||
runModPowTest(100);
|
||||
// i2p doesn't care about the double values
|
||||
//runDoubleValueTest(100);
|
||||
}
|
||||
|
||||
/* the sample numbers are elG generator/prime so we can test with reasonable numbers */
|
||||
@ -361,64 +347,6 @@ public class NativeBigInteger extends BigInteger {
|
||||
}
|
||||
}
|
||||
|
||||
/********
|
||||
private static void runDoubleValueTest(int numRuns) {
|
||||
System.out.println("DEBUG: Warming up the random number generator...");
|
||||
SecureRandom rand = new SecureRandom();
|
||||
rand.nextBoolean();
|
||||
System.out.println("DEBUG: Random number generator warmed up");
|
||||
|
||||
BigInteger jg = new BigInteger(_sampleGenerator);
|
||||
|
||||
long totalTime = 0;
|
||||
long javaTime = 0;
|
||||
|
||||
int MULTIPLICATOR = 50000; //Run the doubleValue() calls within a loop since they are pretty fast..
|
||||
int runsProcessed = 0;
|
||||
for (runsProcessed = 0; runsProcessed < numRuns; runsProcessed++) {
|
||||
NativeBigInteger g = new NativeBigInteger(_sampleGenerator);
|
||||
long beforeDoubleValue = System.currentTimeMillis();
|
||||
double dNative=0;
|
||||
for(int mult=0;mult<MULTIPLICATOR;mult++)
|
||||
dNative = g.doubleValue();
|
||||
long afterDoubleValue = System.currentTimeMillis();
|
||||
double jval=0;
|
||||
for(int mult=0;mult<MULTIPLICATOR;mult++)
|
||||
jval = jg.doubleValue();
|
||||
long afterJavaDoubleValue = System.currentTimeMillis();
|
||||
|
||||
totalTime += (afterDoubleValue - beforeDoubleValue);
|
||||
javaTime += (afterJavaDoubleValue - afterDoubleValue);
|
||||
if (dNative!=jval) {
|
||||
System.err.println("ERROR: [" + runsProcessed + "]\tnative double != java double");
|
||||
System.err.println("ERROR: native double value: " + dNative);
|
||||
System.err.println("ERROR: java double value: " + jval);
|
||||
System.err.println("ERROR: run time: " + totalTime + "ms (" + (totalTime / (runsProcessed + 1)) + "ms each)");
|
||||
break;
|
||||
} else {
|
||||
System.out.println("DEBUG: current run time: " + (afterDoubleValue - beforeDoubleValue) + "ms (total: "
|
||||
+ totalTime + "ms, " + (totalTime / (runsProcessed + 1)) + "ms each)");
|
||||
}
|
||||
}
|
||||
System.out.println("INFO: run time: " + totalTime + "ms (" + (totalTime / (runsProcessed + 1)) + "ms each)");
|
||||
if (numRuns == runsProcessed)
|
||||
System.out.println("INFO: " + runsProcessed + " runs complete without any errors");
|
||||
else
|
||||
System.out.println("ERROR: " + runsProcessed + " runs until we got an error");
|
||||
|
||||
if (_nativeOk) {
|
||||
System.out.println("native run time: \t" + totalTime + "ms (" + (totalTime / (runsProcessed + 1))
|
||||
+ "ms each)");
|
||||
System.out.println("java run time: \t" + javaTime + "ms (" + (javaTime / (runsProcessed + 1)) + "ms each)");
|
||||
System.out.println("native = " + ((totalTime * 100.0d) / (double) javaTime) + "% of pure java time");
|
||||
} else {
|
||||
System.out.println("java run time: \t" + javaTime + "ms (" + (javaTime / (runsProcessed + 1)) + "ms each)");
|
||||
System.out.println("However, we couldn't load the native library, so this doesn't test much");
|
||||
}
|
||||
}
|
||||
*********/
|
||||
|
||||
|
||||
/**
|
||||
* <p>Do whatever we can to load up the native library backing this BigInteger's native methods.
|
||||
* If it can find a custom built jbigi.dll / libjbigi.so, it'll use that. Otherwise
|
||||
|
39
history.txt
39
history.txt
@ -1,3 +1,42 @@
|
||||
* 2011-05-16 0.8.6 released
|
||||
|
||||
2011-05-13 zzz
|
||||
* Increase min floodfills; decrease min routerinfo expiration
|
||||
|
||||
2011-05-11 zzz
|
||||
* Use partitions of fast tier for various hops of client tunnels
|
||||
|
||||
2011-05-06 zzz
|
||||
* Tunnels and profiles:
|
||||
- Increase max fast and high-cap tier sizes
|
||||
- Slow profile eval cycle after sufficient uptime
|
||||
- Fix bug which started a new build after a successful build
|
||||
- Misc. cleanups
|
||||
|
||||
2011-04-28 zzz
|
||||
* Console: Try to prevent cascaded IllegalStateExceptions in .jsp code;
|
||||
add logging for original error
|
||||
* peers.jsp: Tag UPnP strings
|
||||
* UPnP: Strip trailing nulls from incoming XML to prevent
|
||||
"content not allowed in trailing section" exceptions
|
||||
|
||||
* 2011-04-18 0.8.5 released
|
||||
|
||||
2011-04-11 zzz
|
||||
* Console: Hide iframe on mobile browsers
|
||||
* DataHelper: Speed up eq() (Ticket #437)
|
||||
* HTTPServer: Strip inbound X-Accept-Encoding header
|
||||
* netdb.jsp: HTML fixes
|
||||
* Plugins: Log error when console server not found
|
||||
* Reseed: Log tweak
|
||||
|
||||
2011-04-02 m1xxy
|
||||
* routerconsole, i2psnark, ... I2P ahora también en español: ¡Bienvenidos los hispanohablantes!
|
||||
- routerconsole, i2ptunnel, i2psnark, SusiDNS, Susimail fully translated into Spanish
|
||||
(thx to PunkiBastardo and user)
|
||||
* routerconsole, i2psnark, ...
|
||||
- French translations completed by magma
|
||||
|
||||
2011-03-22 zzz
|
||||
* Handle GNU JRE returning Long.MAX_VALUE for max memory
|
||||
* i2ptunnel: HTML fixes
|
||||
|
@ -4,7 +4,7 @@
|
||||
|
||||
<info>
|
||||
<appname>i2p</appname>
|
||||
<appversion>0.8.4</appversion>
|
||||
<appversion>0.8.6</appversion>
|
||||
<authors>
|
||||
<author name="I2P" email="http://forum.i2p2.de/"/>
|
||||
</authors>
|
||||
@ -183,8 +183,8 @@
|
||||
<pack name="Windows Service" required="no">
|
||||
<description>Automatically start I2P in the background</description>
|
||||
<os family="windows" />
|
||||
<executable targetfile="$INSTALL_PATH/set_config_dir_for_nt_service.bat" stage="postinstall" failure="warn" keep="false" />
|
||||
<!--
|
||||
<executable targetfile="$INSTALL_PATH/install_i2p_service_winnt.bat" stage="postinstall" failure="warn" keep="true" />
|
||||
-->
|
||||
<executable targetfile="$INSTALL_PATH/install_i2p_service_winnt.bat" stage="postinstall" failure="warn" keep="true">
|
||||
<args>
|
||||
@ -198,9 +198,6 @@
|
||||
<arg value="$INSTALL_PATH\wrapper.config" />
|
||||
</args>
|
||||
</executable>
|
||||
<!--
|
||||
<executable targetfile="$INSTALL_PATH/uninstall_i2p_service_winnt.bat" stage="uninstall" failure="warn" keep="true" />
|
||||
-->
|
||||
<executable targetfile="$INSTALL_PATH/uninstall_i2p_service_winnt.bat" stage="uninstall" failure="warn" keep="true">
|
||||
<args>
|
||||
<arg value="$INSTALL_PATH\wrapper.config" />
|
||||
|
BIN
installer/lib/jbigi/jbigi-windows-athlon.dll
Normal file
BIN
installer/lib/jbigi/jbigi-windows-athlon.dll
Normal file
Binary file not shown.
BIN
installer/lib/jbigi/jbigi-windows-athlon64.dll
Normal file
BIN
installer/lib/jbigi/jbigi-windows-athlon64.dll
Normal file
Binary file not shown.
BIN
installer/lib/jbigi/jbigi-windows-k6.dll
Normal file
BIN
installer/lib/jbigi/jbigi-windows-k6.dll
Normal file
Binary file not shown.
BIN
installer/lib/jbigi/jbigi-windows-k62.dll
Normal file
BIN
installer/lib/jbigi/jbigi-windows-k62.dll
Normal file
Binary file not shown.
BIN
installer/lib/jbigi/jbigi-windows-k63.dll
Normal file
BIN
installer/lib/jbigi/jbigi-windows-k63.dll
Normal file
Binary file not shown.
BIN
installer/lib/jbigi/jbigi-windows-none.dll
Normal file
BIN
installer/lib/jbigi/jbigi-windows-none.dll
Normal file
Binary file not shown.
BIN
installer/lib/jbigi/jbigi-windows-pentium.dll
Normal file
BIN
installer/lib/jbigi/jbigi-windows-pentium.dll
Normal file
Binary file not shown.
BIN
installer/lib/jbigi/jbigi-windows-pentium2.dll
Normal file
BIN
installer/lib/jbigi/jbigi-windows-pentium2.dll
Normal file
Binary file not shown.
BIN
installer/lib/jbigi/jbigi-windows-pentium3.dll
Normal file
BIN
installer/lib/jbigi/jbigi-windows-pentium3.dll
Normal file
Binary file not shown.
BIN
installer/lib/jbigi/jbigi-windows-pentium4.dll
Normal file
BIN
installer/lib/jbigi/jbigi-windows-pentium4.dll
Normal file
Binary file not shown.
BIN
installer/lib/jbigi/jbigi-windows-pentiummmx.dll
Normal file
BIN
installer/lib/jbigi/jbigi-windows-pentiummmx.dll
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
installer/lib/jbigi/jcpuid-x86-windows.dll
Normal file
BIN
installer/lib/jbigi/jcpuid-x86-windows.dll
Normal file
Binary file not shown.
BIN
installer/lib/jbigi/libjbigi-freebsd-athlon.so
Normal file
BIN
installer/lib/jbigi/libjbigi-freebsd-athlon.so
Normal file
Binary file not shown.
BIN
installer/lib/jbigi/libjbigi-freebsd-k6.so
Normal file
BIN
installer/lib/jbigi/libjbigi-freebsd-k6.so
Normal file
Binary file not shown.
BIN
installer/lib/jbigi/libjbigi-freebsd-k62.so
Normal file
BIN
installer/lib/jbigi/libjbigi-freebsd-k62.so
Normal file
Binary file not shown.
BIN
installer/lib/jbigi/libjbigi-freebsd-k63.so
Normal file
BIN
installer/lib/jbigi/libjbigi-freebsd-k63.so
Normal file
Binary file not shown.
BIN
installer/lib/jbigi/libjbigi-freebsd-none.so
Normal file
BIN
installer/lib/jbigi/libjbigi-freebsd-none.so
Normal file
Binary file not shown.
BIN
installer/lib/jbigi/libjbigi-freebsd-pentium.so
Normal file
BIN
installer/lib/jbigi/libjbigi-freebsd-pentium.so
Normal file
Binary file not shown.
BIN
installer/lib/jbigi/libjbigi-freebsd-pentium2.so
Normal file
BIN
installer/lib/jbigi/libjbigi-freebsd-pentium2.so
Normal file
Binary file not shown.
BIN
installer/lib/jbigi/libjbigi-freebsd-pentium3.so
Normal file
BIN
installer/lib/jbigi/libjbigi-freebsd-pentium3.so
Normal file
Binary file not shown.
BIN
installer/lib/jbigi/libjbigi-freebsd-pentium4.so
Normal file
BIN
installer/lib/jbigi/libjbigi-freebsd-pentium4.so
Normal file
Binary file not shown.
BIN
installer/lib/jbigi/libjbigi-freebsd-pentiummmx.so
Normal file
BIN
installer/lib/jbigi/libjbigi-freebsd-pentiummmx.so
Normal file
Binary file not shown.
BIN
installer/lib/jbigi/libjbigi-linux-athlon.so
Normal file
BIN
installer/lib/jbigi/libjbigi-linux-athlon.so
Normal file
Binary file not shown.
BIN
installer/lib/jbigi/libjbigi-linux-athlon64.so
Normal file
BIN
installer/lib/jbigi/libjbigi-linux-athlon64.so
Normal file
Binary file not shown.
BIN
installer/lib/jbigi/libjbigi-linux-k6.so
Normal file
BIN
installer/lib/jbigi/libjbigi-linux-k6.so
Normal file
Binary file not shown.
BIN
installer/lib/jbigi/libjbigi-linux-k62.so
Normal file
BIN
installer/lib/jbigi/libjbigi-linux-k62.so
Normal file
Binary file not shown.
BIN
installer/lib/jbigi/libjbigi-linux-k63.so
Normal file
BIN
installer/lib/jbigi/libjbigi-linux-k63.so
Normal file
Binary file not shown.
BIN
installer/lib/jbigi/libjbigi-linux-none.so
Normal file
BIN
installer/lib/jbigi/libjbigi-linux-none.so
Normal file
Binary file not shown.
BIN
installer/lib/jbigi/libjbigi-linux-pentium.so
Normal file
BIN
installer/lib/jbigi/libjbigi-linux-pentium.so
Normal file
Binary file not shown.
BIN
installer/lib/jbigi/libjbigi-linux-pentium2.so
Normal file
BIN
installer/lib/jbigi/libjbigi-linux-pentium2.so
Normal file
Binary file not shown.
BIN
installer/lib/jbigi/libjbigi-linux-pentium3.so
Normal file
BIN
installer/lib/jbigi/libjbigi-linux-pentium3.so
Normal file
Binary file not shown.
BIN
installer/lib/jbigi/libjbigi-linux-pentium4.so
Normal file
BIN
installer/lib/jbigi/libjbigi-linux-pentium4.so
Normal file
Binary file not shown.
BIN
installer/lib/jbigi/libjbigi-linux-pentiummmx.so
Normal file
BIN
installer/lib/jbigi/libjbigi-linux-pentiummmx.so
Normal file
Binary file not shown.
BIN
installer/lib/jbigi/libjbigi-linux-viac3.so
Normal file
BIN
installer/lib/jbigi/libjbigi-linux-viac3.so
Normal file
Binary file not shown.
BIN
installer/lib/jbigi/libjbigi-osx-none.jnilib
Normal file
BIN
installer/lib/jbigi/libjbigi-osx-none.jnilib
Normal file
Binary file not shown.
BIN
installer/lib/jbigi/libjcpuid-x86-freebsd.so
Normal file
BIN
installer/lib/jbigi/libjcpuid-x86-freebsd.so
Normal file
Binary file not shown.
BIN
installer/lib/jbigi/libjcpuid-x86-linux.so
Normal file
BIN
installer/lib/jbigi/libjcpuid-x86-linux.so
Normal file
Binary file not shown.
@ -326,3 +326,4 @@ i2pbote.i2p=~taSfBfeiMM5fW~qwUGZr4kAXmSoentWVjlQhTCKWhVj04KV34tLguNQEpHb1cA2eIwl
|
||||
planet.i2p=W0omtMApOdlTkgJoct08QnzDkeb~xc60df5Cx3k3qqOFmyEkRB65NdpSdvldI5STmXmXlZe68f8Hu1dfBMmKvfpBFMpP-mRVYuHbEa4N1dRkp3AOswZFO51lSC~MVPMZKGHAv0cfv5WFaJ9nfuaR7iYYWJF11xotoPTMbJdB-I3XPC8rxHI-73ATlOD4cU9oZ6BYcBE0dun9zw4IHBcRpnFRx~s-TkevNfPnBqujB-NNgA8a5s~QUj0h3FwwUWsNB8f1Uwy~DwoQh7pMp6dsZ3umEyBn2HaXZasSmbzB30qkQRs9vrAtIFdIzCQ~8gI2cHdHEPgExUQX~xlM8QZEgnLXSfS93asWPdpitv~KT7bO-35BgTBdCozHTCcvys6bYJ24UnkFVBE0D2L0t98neelWkJSaEU0QzxdRphoCZY8OABQIaS4qw6PEFD1Un1vxNCh~TDFWcYBZ3Rqsc~ISW0wF7oOS6-DPT3q5O8cGLc8iAEdRchrU9XyAHAKVlEZxAAAA
|
||||
exotrack.i2p=Ly1vs4plBuGisqlMiQOjhVkXFZPBMy9joSCrus~tuLXBRXDrPYG9WXJMzY4gb3LiW0VVawv0kLgikX8eeeruXmgKwQW5zB9UPSP0CQnXTRelE3Jn7lev~re4woHvgS-EGBwWikxqXF3f7W8-LhieI0JhBZxItiWhJJME07oncW0kgS8UIMl0wqN2Y-p0sryFCN056TfGNTXigfxrSLqKnpi6a2OyEkF62qvRID3qXzRque0vKQjqvavq2mqxjFrSgLUoyKod5h9Px6qK08gtoAyDKMLPk7fPgReYKj6awiOxRSGfsMpZD3~ZuV0Sts2XtCau3S3myYMIDe5oKziPtZRIej4KBDxT0YYIw5v4RoqzqF88gNgHDfkPZ25JKTOt5xGcPTG8kwYrtx39PX6NrJmv-I~LUz6sZZlIW24k1qbO7zBxZ6mazldQY1~FJGXzn5MNzsxp44iOZdMDJJh18N0Psthk2hqlQOS4L0Ss1Odm1czhBxf1Y~j3L-QsMttcAAAA
|
||||
outproxyng.h2ik.i2p=1RqMQd58RgA4D~XT34rCjQteJVQwFKQbPK5P03GetL-DyCfKV6Vg61xyxGOZK-K4KTXXf45PG~oDAWIzE7UY5aXN9oAjHXfPrU9hHxv35BaxFqUpsJLgjWu41OwSjl5aN2-freH4gGVSiL62I1y2bcXHc2kVHlbToQOy8bJoS3KSDHEeU0r79f~cY3xf6rBHpHNMJtdYdnWlLq5KFc2cz~8lIut~sSIAwUEfebBkhfl2ctvdEGdSshBWGTxXiahtQX0xraynF-Cex2hxvBAl0g9aoOnrLx~Gses54WPD-m3RArI3fiaxEALRuFa0mfrrEgjOhBtVU8IlTYrTEkR8JSGofsEmuqqM03FIrwOv6lJZi-xemiNUr3OX6VdO4ckIg69BxpCYzP2IxLO5r8lSwyHqGbYPFxBIjbSMsv6tGWWdglV4Y9sQHTarboA-XDih3DzDpomb1~78cSiV3PRidjj4MDggn1abkQbRVd6WLV~eTi54bctS-JwW-I5Xyqq~AAAA
|
||||
inr.i2p=GGB99wXYBnX-wOxQ~Xrvo7AvngoYgifvZZL54ksZWzclcirG7AysqfkAKyv906PxfM4y2DcN2K9m4-D99yFj-1BdnUuIEqfi2yuaaVoWuOffT3h9ne~kZnq3C-wrmczD70Gxk4shvSVxMdUEFvEip8QY4K0R-FiKBsFAfWGTE3b9d-QCzP0H9VP5V-CaYjYVQuMRgMluk9gnoLRipvV7483f~rmGgYX8xwygEAQ3v9P4hrAlJrP0lWJLI1K6KQucP3THIxZ4A9Xxnl0I7EZAT8bHwzschFrcDPYM~DtQdkJTz2VphocbNLfIExTrFt88-xC69WE-fSbaMf9jucT4f5kdpfpRu0kM~am40etxPs8uXGF-L9IXCjgUkJHrWdPHeGhnx-ye2xvUTLO2jyga8iY89Ee3IpqivVUg-iAQJzX9NXC29sf0YzNj8d8mdWRNuzbLSx9CVJ3l1NPJr4k7hmCqf8lBGXNIFZQL4Wez1PPcM4gw0o73gqIxkxvVzVcpAAAA
|
||||
|
20
installer/resources/initialNews/initialNews_fr.xml
Normal file
20
installer/resources/initialNews/initialNews_fr.xml
Normal file
@ -0,0 +1,20 @@
|
||||
<div lang="fr">
|
||||
<h3>Merci d'utiliser I2P !</h3>
|
||||
<p>
|
||||
<b>Bienvenue sur I2P !</b>
|
||||
Merci de <b>patienter</b> le temps qu'I2P démarre et trouve des pairs.
|
||||
</p>
|
||||
<p>
|
||||
Pendant ce temps, merci d'<b>adjuster vos réglages de bande passante</b> sur la page de
|
||||
<a href="config.jsp">configuration</a>.
|
||||
</p>
|
||||
<p>
|
||||
Une fois que vous avez une indication "clients partagés…" listée sur la gauche,
|
||||
merci de <b>jeter un œil</b> à la <a href="http://www.i2p2.i2p/faq_fr.html">FAQ</a>.
|
||||
</p>
|
||||
<p>
|
||||
Pointez votre client IRC sur <b>localhost:6668</b> et venez nous faire coucou sur
|
||||
<a href="irc://127.0.0.1:6668/i2p-help">#i2p-help</a>, <a href="irc://127.0.0.1:6668/i2p-fr">#i2p-fr</a>
|
||||
ou <a href="irc://127.0.0.1:6668/i2p">#i2p</a>.
|
||||
</p>
|
||||
</div>
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user