propagate from branch 'i2p.i2p.zzz.jetty8' (head 0a03ce60906c508b08cc84b3044954844a6ee157)

to branch 'i2p.i2p' (head d99392e09883a92b99a316b4deed0586dcf4ea5b)
This commit is contained in:
zzz
2014-02-17 14:01:13 +00:00
184 changed files with 9055 additions and 4769 deletions

View File

@@ -78,6 +78,7 @@ trans.ar = apps/routerconsole/locale-news/messages_ar.po
trans.de = apps/routerconsole/locale-news/messages_de.po
trans.es = apps/routerconsole/locale-news/messages_es.po
trans.fr = apps/routerconsole/locale-news/messages_fr.po
trans.he = apps/routerconsole/locale-news/messages_he.po
trans.ja = apps/routerconsole/locale-news/messages_ja.po
trans.it = apps/routerconsole/locale-news/messages_it.po
trans.nl = apps/routerconsole/locale-news/messages_nl.po
@@ -214,6 +215,8 @@ trans.es = debian/po/es.po
trans.fr = debian/po/fr.po
trans.it = debian/po/it.po
trans.hu = debian/po/hu.po
trans.ja = debian/po/ja.po
trans.ko = debian/po/ko.po
trans.pl = debian/po/pl.po
trans.pt = debian/po/pt.po
trans.ro = debian/po/ro.po
@@ -230,6 +233,7 @@ trans.de = installer/resources/locale/po/messages_de.po
trans.es = installer/resources/locale/po/messages_es.po
trans.fr = installer/resources/locale/po/messages_fr.po
trans.it = installer/resources/locale/po/messages_it.po
trans.pl = installer/resources/locale/po/messages_pl.po
trans.pt = installer/resources/locale/po/messages_pt.po
trans.pt_BR = installer/resources/locale/po/messages_pt_BR.po
trans.ro = installer/resources/locale/po/messages_ro.po
@@ -238,6 +242,23 @@ trans.ru_RU = installer/resources/locale/po/messages_ru.po
trans.tr_TR = installer/resources/locale/po/messages_tr.po
trans.zh_CN = installer/resources/locale/po/messages_zh.po
[I2P.getopt]
source_file = core/java/src/gnu/getopt/MessagesBundle.properties
source_lang = en
type = PROPERTIES
trans.cs = core/java/src/gnu/getopt/MessagesBundle_cs.properties
trans.de = core/java/src/gnu/getopt/MessagesBundle_de.properties
trans.es = core/java/src/gnu/getopt/MessagesBundle_es.properties
trans.fr = core/java/src/gnu/getopt/MessagesBundle_fr.properties
trans.hu = core/java/src/gnu/getopt/MessagesBundle_hu.properties
trans.it = core/java/src/gnu/getopt/MessagesBundle_it.properties
trans.ja = core/java/src/gnu/getopt/MessagesBundle_ja.properties
trans.nl = core/java/src/gnu/getopt/MessagesBundle_nl.properties
trans.nb = core/java/src/gnu/getopt/MessagesBundle_nb.properties
trans.pl = core/java/src/gnu/getopt/MessagesBundle_pl.properties
trans.ro = core/java/src/gnu/getopt/MessagesBundle_ro.properties
trans.zh_CN = core/java/src/gnu/getopt/MessagesBundle_zh.properties
[main]
host = https://www.transifex.com

View File

@@ -12,7 +12,7 @@ you may use:
to configure the router.
If you're having trouble, swing by http://forum.i2p/, check the
website at http://www.i2p2.de/, or get on irc://irc.freenode.net/#i2p
website at https://geti2p.net/, or get on irc://irc.freenode.net/#i2p
I2P will create and store files and configuration data in the user directory
~/.i2p/ on Linux and %APPDATA%\I2P\ on Windows. This directory is created

View File

@@ -36,7 +36,7 @@ Public domain except as listed below:
Copyright (c) 2003, TheCrypto
See licenses/LICENSE-ElGamalDSA.txt
SHA256 and HMAC-SHA256:
SHA256 and HMAC:
Copyright (c) 2000 - 2004 The Legion Of The Bouncy Castle
See licenses/LICENSE-SHA256.txt
@@ -76,6 +76,11 @@ Public domain except as listed below:
Copyright 2012 Hiroshi Nakamura <nahi@ruby-lang.org>
See licenses/LICENSE-Apache2.0.txt
Getopt:
Copyright (c) 1998 by Aaron M. Renn (arenn@urbanophile.com)
See licenses/LICENSE-LGPLv2.1.txt
Router (router.jar):
Public domain except as listed below:
UPnP.java:

View File

@@ -15,20 +15,20 @@ To build:
ant installer-osx
Run 'ant' with no arguments to see other build options.
See INSTALL.txt or http://www.i2p2.de/download.html for installation instructions.
See INSTALL.txt or https://geti2p.net/download for installation instructions.
Documentation:
http://www.i2p2.de/how
https://geti2p.net/how
API: run 'ant javadoc' then start at build/javadoc/index.html
Latest release:
http://www.i2p2.de/download
https://geti2p.net/download
To get development branch from source control:
http://www.i2p2.de/newdevelopers
https://geti2p.net/newdevelopers
FAQ:
http://www.i2p2.de/faq
https://geti2p.net/faq
Need help?
IRC irc.freenode.net #i2p

View File

@@ -91,7 +91,7 @@ class ConfigParser {
String inputLine;
inputLine = input.readLine();
while (inputLine != null) {
inputLine = ConfigParser.stripComments(inputLine);
inputLine = stripComments(inputLine);
String[] splitLine = inputLine.split("=");
if (splitLine.length == 2) {
result.put(splitLine[0].trim().toLowerCase(Locale.US), splitLine[1].trim());
@@ -116,7 +116,7 @@ class ConfigParser {
FileInputStream fileStream = new FileInputStream(file);
BufferedReader input = new BufferedReader(new InputStreamReader(
fileStream));
Map<String, String> rv = ConfigParser.parse(input);
Map<String, String> rv = parse(input);
try {
fileStream.close();
} catch (IOException ioe) {}
@@ -136,7 +136,7 @@ class ConfigParser {
public static Map<String, String> parse(String string) throws IOException {
StringReader stringReader = new StringReader(string);
BufferedReader input = new BufferedReader(stringReader);
return ConfigParser.parse(input);
return parse(input);
}
/**
@@ -153,7 +153,7 @@ class ConfigParser {
public static Map<String, String> parse(File file, Map<String, String> map) {
Map<String, String> result;
try {
result = ConfigParser.parse(file);
result = parse(file);
for (Map.Entry<String, String> entry : map.entrySet()) {
if (!result.containsKey(entry.getKey()))
result.put(entry.getKey(), entry.getValue());
@@ -161,7 +161,7 @@ class ConfigParser {
} catch (IOException exp) {
result = map;
try {
ConfigParser.write(result, file);
write(result, file);
} catch (IOException exp2) {
}
}
@@ -182,7 +182,7 @@ class ConfigParser {
List<String> result = new LinkedList<String>();
String inputLine = input.readLine();
while (inputLine != null) {
inputLine = ConfigParser.stripComments(inputLine).trim();
inputLine = stripComments(inputLine).trim();
if (inputLine.length() > 0) {
result.add(inputLine);
}
@@ -205,7 +205,7 @@ class ConfigParser {
FileInputStream fileStream = new FileInputStream(file);
BufferedReader input = new BufferedReader(new InputStreamReader(
fileStream));
List<String> rv = ConfigParser.parseSubscriptions(input);
List<String> rv = parseSubscriptions(input);
try {
fileStream.close();
} catch (IOException ioe) {}
@@ -224,7 +224,7 @@ class ConfigParser {
public static List<String> parseSubscriptions(String string) throws IOException {
StringReader stringReader = new StringReader(string);
BufferedReader input = new BufferedReader(stringReader);
return ConfigParser.parseSubscriptions(input);
return parseSubscriptions(input);
}
/**
@@ -234,18 +234,30 @@ class ConfigParser {
*
* @param file
* A File to attempt to parse.
* @param list list of files to parse
* @param list The default subscriptions to be saved and returned if the file cannot be read
* @return A List consisting of one element for each line in file, or if
* file cannot be read, list.
*/
public static List<String> parseSubscriptions(File file, List<String> list) {
List<String> result;
try {
result = ConfigParser.parseSubscriptions(file);
result = parseSubscriptions(file);
// Fix up files that contain the old default
// which was changed in 0.9.11
if (result.remove(Daemon.OLD_DEFAULT_SUB)) {
for (String sub : list) {
if (!result.contains(sub))
result.add(sub);
}
try {
writeSubscriptions(result, file);
// TODO log
} catch (IOException ioe) {}
}
} catch (IOException exp) {
result = list;
try {
ConfigParser.writeSubscriptions(result, file);
writeSubscriptions(result, file);
} catch (IOException exp2) {
}
}
@@ -289,8 +301,7 @@ class ConfigParser {
boolean success = false;
if (!isWindows) {
File tmp = SecureFile.createTempFile("temp-", ".tmp", file.getAbsoluteFile().getParentFile());
ConfigParser
.write(map, new BufferedWriter(new OutputStreamWriter(new SecureFileOutputStream(tmp), "UTF-8")));
write(map, new BufferedWriter(new OutputStreamWriter(new SecureFileOutputStream(tmp), "UTF-8")));
success = tmp.renameTo(file);
if (!success) {
tmp.delete();
@@ -299,8 +310,7 @@ class ConfigParser {
}
if (!success) {
// hmm, that didn't work, try it the old way
ConfigParser
.write(map, new BufferedWriter(new OutputStreamWriter(new SecureFileOutputStream(file), "UTF-8")));
write(map, new BufferedWriter(new OutputStreamWriter(new SecureFileOutputStream(file), "UTF-8")));
}
}
@@ -337,7 +347,7 @@ class ConfigParser {
*/
public static void writeSubscriptions(List<String> list, File file)
throws IOException {
ConfigParser.writeSubscriptions(list, new BufferedWriter(
writeSubscriptions(list, new BufferedWriter(
new OutputStreamWriter(new SecureFileOutputStream(file), "UTF-8")));
}

View File

@@ -50,6 +50,9 @@ public class Daemon {
private static final Daemon _instance = new Daemon();
private volatile boolean _running;
private static final boolean DEBUG = false;
private static final String DEFAULT_SUB = "http://i2p-projekt.i2p/hosts.txt";
/** @since 0.9.12 */
static final String OLD_DEFAULT_SUB = "http://www.i2p2.i2p/hosts.txt";
/**
* Update the router and published address books using remote data from the
@@ -253,7 +256,7 @@ public class Daemon {
List<String> defaultSubs = new LinkedList<String>();
// defaultSubs.add("http://i2p/NF2RLVUxVulR3IqK0sGJR0dHQcGXAzwa6rEO4WAWYXOHw-DoZhKnlbf1nzHXwMEJoex5nFTyiNMqxJMWlY54cvU~UenZdkyQQeUSBZXyuSweflUXFqKN-y8xIoK2w9Ylq1k8IcrAFDsITyOzjUKoOPfVq34rKNDo7fYyis4kT5bAHy~2N1EVMs34pi2RFabATIOBk38Qhab57Umpa6yEoE~rbyR~suDRvD7gjBvBiIKFqhFueXsR2uSrPB-yzwAGofTXuklofK3DdKspciclTVzqbDjsk5UXfu2nTrC1agkhLyqlOfjhyqC~t1IXm-Vs2o7911k7KKLGjB4lmH508YJ7G9fLAUyjuB-wwwhejoWqvg7oWvqo4oIok8LG6ECR71C3dzCvIjY2QcrhoaazA9G4zcGMm6NKND-H4XY6tUWhpB~5GefB3YczOqMbHq4wi0O9MzBFrOJEOs3X4hwboKWANf7DT5PZKJZ5KorQPsYRSq0E3wSOsFCSsdVCKUGsAAAA/i2p/hosts.txt");
defaultSubs.add("http://www.i2p2.i2p/hosts.txt");
defaultSubs.add(DEFAULT_SUB);
SubscriptionList subscriptions = new SubscriptionList(subscriptionFile,
etagsFile, lastModifiedFile, lastFetchedFile, delay, defaultSubs, settings

View File

@@ -52,6 +52,7 @@ class PeerID implements Comparable<PeerID>
private boolean triedDestLookup;
private final int hash;
private final I2PSnarkUtil util;
private String _toStringCache;
public PeerID(byte[] id, Destination address)
{
@@ -216,13 +217,15 @@ class PeerID implements Comparable<PeerID>
}
/**
* Returns the String "id@address" where id is the base64 encoded id
* and address is the base64 dest (was the base64 hash of the dest) which
* Returns the String "id@address" where id is the first 4 chars of the base64 encoded id
* and address is the first 6 chars of the base64 dest (was the base64 hash of the dest) which
* should match what the bytemonsoon tracker reports on its web pages.
*/
@Override
@Override
public String toString()
{
if (_toStringCache != null)
return _toStringCache;
if (id == null || address == null)
return "unkn@" + Base64.encode(destHash).substring(0, 6);
int nonZero = 0;
@@ -232,7 +235,8 @@ class PeerID implements Comparable<PeerID>
break;
}
}
return Base64.encode(id, nonZero, id.length-nonZero).substring(0,4) + "@" + address.toBase64().substring(0,6);
_toStringCache = Base64.encode(id, nonZero, id.length-nonZero).substring(0,4) + "@" + address.toBase64().substring(0,6);
return _toStringCache;
}
/**

View File

@@ -24,6 +24,7 @@ import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.LinkedBlockingQueue;
import net.i2p.I2PAppContext;
import net.i2p.app.ClientAppManager;
import net.i2p.data.Base64;
import net.i2p.data.DataHelper;
import net.i2p.update.*;
@@ -198,7 +199,9 @@ public class SnarkManager implements CompleteListener {
public void timeReached() {
if (!_running)
return;
_umgr = _context.updateManager();
ClientAppManager cmgr = _context.clientAppManager();
if (cmgr != null)
_umgr = (UpdateManager) cmgr.getRegisteredApp(UpdateManager.APP_NAME);
if (_umgr != null) {
_uhandler = new UpdateHandler(_context, _umgr, SnarkManager.this);
_umgr.register(_uhandler, UpdateType.ROUTER_SIGNED, UpdateMethod.TORRENT, 10);

View File

@@ -2,7 +2,7 @@
# Copyright (C) 2009 The I2P Project
# This file is distributed under the same license as the i2psnark package.
# To contribute translations, see http://www.i2p2.de/newdevelopers
#
#
# Translators:
# Boxoa590, 2012-2013
# ducki2p <ducki2p@gmail.com>, 2011
@@ -11,20 +11,19 @@
# Boxoa590, 2013
# Boxoa590, 2012
# jackjack <root@waka.site40.net>, 2011
# Towatowa441, 2013
# Towatowa441, 2013-2014
msgid ""
msgstr ""
"Project-Id-Version: I2P\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-01-09 19:14+0000\n"
"PO-Revision-Date: 2013-11-22 10:17+0000\n"
"POT-Creation-Date: 2014-01-09 19:27+0000\n"
"PO-Revision-Date: 2014-01-23 06:59+0000\n"
"Last-Translator: Towatowa441\n"
"Language-Team: French (http://www.transifex.com/projects/p/I2P/language/"
"fr/)\n"
"Language: fr\n"
"Language-Team: French (http://www.transifex.com/projects/p/I2P/language/fr/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: fr\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#: ../java/src/org/klomp/snark/IdleChecker.java:69
@@ -101,9 +100,7 @@ msgstr "Répertoire des données changé pour {0}"
#: ../java/src/org/klomp/snark/SnarkManager.java:647
msgid "I2CP and tunnel changes will take effect after stopping all torrents"
msgstr ""
"Les modifications sur I2CP et les tunnels seront pris en compte après avoir "
"arrêté tous les torrents"
msgstr "Les modifications sur I2CP et les tunnels seront pris en compte après avoir arrêté tous les torrents"
#: ../java/src/org/klomp/snark/SnarkManager.java:651
#, java-format
@@ -122,9 +119,7 @@ msgstr "Les paramètres I2CP ont été changés à {0}"
#: ../java/src/org/klomp/snark/SnarkManager.java:664
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"
msgstr "Impossible de se connecter avec les nouveaux paramètres, retour à l'ancienne configuration I2CP"
#: ../java/src/org/klomp/snark/SnarkManager.java:668
msgid "Unable to reconnect with the old settings!"
@@ -157,14 +152,11 @@ msgstr "Démarrage automatique désactivé"
#: ../java/src/org/klomp/snark/SnarkManager.java:708
msgid "Enabled open trackers - torrent restart required to take effect."
msgstr ""
"Open trackers activés - redémarrage des torrents requis pour prise en compte."
msgstr "Open trackers activés - redémarrage des torrents requis pour prise en compte."
#: ../java/src/org/klomp/snark/SnarkManager.java:710
msgid "Disabled open trackers - torrent restart required to take effect."
msgstr ""
"Open trackers désactivés - redémarrage des torrents requis pour prise en "
"compte."
msgstr "Open trackers désactivés - redémarrage des torrents requis pour prise en compte."
#: ../java/src/org/klomp/snark/SnarkManager.java:717
msgid "Enabled DHT."
@@ -181,9 +173,7 @@ msgstr "Le changement DHT nécessite la fermeture puis réouverture du tunnel"
#: ../java/src/org/klomp/snark/SnarkManager.java:728
#, java-format
msgid "{0} theme loaded, return to main i2psnark page to view."
msgstr ""
"Thème {0} chargé, revenez à la page d''accueil d''i2psnark pour voir comme "
"il est beau !"
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:738
msgid "Configuration unchanged."
@@ -191,15 +181,11 @@ msgstr "Aucun changement de configuration."
#: ../java/src/org/klomp/snark/SnarkManager.java:770
msgid "Open Tracker list changed - torrent restart required to take effect."
msgstr ""
"Liste des Open trackers modifiée - redémarrage des torrents requis pour "
"prise 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:780
msgid "Private tracker list changed - affects newly created torrents only."
msgstr ""
"Liste tracker privé modifiée - affecte seulement les torrents nouvellement "
"créés."
msgstr "Liste tracker privé modifiée - affecte seulement les torrents nouvellement créés."
#: ../java/src/org/klomp/snark/SnarkManager.java:826
#, java-format
@@ -226,7 +212,8 @@ msgstr "Erreur : Impossible dajouter le torrent : {0}"
msgid "Cannot open \"{0}\""
msgstr "Impossible douvrir: \"{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:957
#: ../java/src/org/klomp/snark/SnarkManager.java:1058
#: ../java/src/org/klomp/snark/SnarkManager.java:1140
@@ -243,30 +230,24 @@ msgstr "ERREUR - Pas de trackers I2P dans le torrent privé \"{0}\""
#: ../java/src/org/klomp/snark/SnarkManager.java:965
#, java-format
msgid ""
"Warning - No I2P trackers in \"{0}\", will announce to I2P open trackers and "
"DHT only."
msgstr ""
"Avertissement - Pas de trackers I2P dans \"{0}\", vais annoncer aux trackers "
"I2P ouverts et DHT seulement."
"Warning - No I2P trackers in \"{0}\", will announce to I2P open trackers and"
" DHT only."
msgstr "Avertissement - Pas de trackers I2P dans \"{0}\", vais annoncer aux trackers I2P ouverts et DHT seulement."
#: ../java/src/org/klomp/snark/SnarkManager.java:968
#, java-format
msgid ""
"Warning - No I2P trackers in \"{0}\", and open trackers are disabled, will "
"announce to DHT only."
msgstr ""
"Avertissement - Pas de trackers I2P dans \"{0}\", et les trackers ouverts "
"sont désactivés, vais annoncer à DHT seulement."
msgstr "Avertissement - Pas de trackers I2P dans \"{0}\", et les trackers ouverts sont désactivés, vais annoncer à DHT seulement."
#: ../java/src/org/klomp/snark/SnarkManager.java:970
#, java-format
msgid ""
"Warning - No I2P trackers in \"{0}\", and DHT and open trackers are "
"disabled, you should enable open trackers or DHT before starting the torrent."
msgstr ""
"Avertissement - Pas de trackers I2P dans \"{0}\", et DHT et les trackers "
"ouverts sont désactivés, vous devriez activer les trackers ouverts ou DHT "
"avant de démarrer le torrent."
"disabled, you should enable open trackers or DHT before starting the "
"torrent."
msgstr "Avertissement - Pas de trackers I2P dans \"{0}\", et DHT et les trackers ouverts sont désactivés, vous devriez activer les trackers ouverts ou DHT avant de démarrer le torrent."
#: ../java/src/org/klomp/snark/SnarkManager.java:992
#, java-format
@@ -277,8 +258,7 @@ msgstr "Le torrent dans \"{0}\" est invalide"
#: ../java/src/org/klomp/snark/web/FetchAndAdd.java:186
#, java-format
msgid "ERROR - Out of memory, cannot create torrent from {0}"
msgstr ""
"ERREUR - Mémoire insuffisante, impossible de créer le torrent depuis {0}"
msgstr "ERREUR - Mémoire insuffisante, impossible de créer le torrent depuis {0}"
#: ../java/src/org/klomp/snark/SnarkManager.java:1011
#, java-format
@@ -300,11 +280,9 @@ msgstr "Envoi {0}"
#, java-format
msgid ""
"Open trackers are disabled and we have no DHT peers. Fetch of {0} may not "
"succeed until you start another torrent, enable open trackers, or enable DHT."
msgstr ""
"Les trackers ouverts sont désactivés et nous n''avons pas de pairs DHT. La "
"recherche de {0} pourrait ne pas réussir jusqu''à ce que vous démarriez un "
"autre torrent, activiez trackers ouverts, ou activeiz DHT."
"succeed until you start another torrent, enable open trackers, or enable "
"DHT."
msgstr "Les trackers ouverts sont désactivés et nous n''avons pas de pairs DHT. La recherche de {0} pourrait ne pas réussir jusqu''à ce que vous démarriez un autre torrent, activiez trackers ouverts, ou activeiz DHT."
#: ../java/src/org/klomp/snark/SnarkManager.java:1079
#, java-format
@@ -331,9 +309,7 @@ msgstr "Trop de fichiers dans \"{0}\" ({1}), suppression! "
#: ../java/src/org/klomp/snark/SnarkManager.java:1402
#, 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!"
msgstr "Le fichier torrent \"{0}\" ne peut pas se terminer par \".torrent\", suppression!"
#: ../java/src/org/klomp/snark/SnarkManager.java:1404
#, java-format
@@ -363,9 +339,7 @@ msgstr "Le fichier torrent \"{0}\" n'a pas de données, suppression!"
#: ../java/src/org/klomp/snark/SnarkManager.java:1419
#, 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:1435
#, java-format
@@ -670,8 +644,7 @@ msgstr "Dernière page"
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:744
#, java-format
msgid "Invalid URL: Must start with \"http://\", \"{0}\", or \"{1}\""
msgstr ""
"URL incorrecte - elle doit débuter par \"http://\", \"{0}\", ou \"{1}\""
msgstr "URL incorrecte - elle doit débuter par \"http://\", \"{0}\", ou \"{1}\""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:785
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:814
@@ -714,9 +687,7 @@ msgstr "Répertoire effacé: {0}"
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:933
msgid "Error - Cannot include alternate trackers without a primary tracker"
msgstr ""
"Erreur - Ne peut pas inclure de trackers trackers alternatifs sans un "
"tracker primaire"
msgstr "Erreur - Ne peut pas inclure de trackers trackers alternatifs sans un tracker primaire"
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:946
msgid "Error - Cannot mix private and public trackers in a torrent"
@@ -732,9 +703,7 @@ msgstr "Torrent créé pour \"{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 denregistrer les nouveaux torrents "
"avant de seeder - faites-le avant de démarrer \"{0}\"!"
msgstr "De nombreux trackers I2P nécessitent denregistrer les nouveaux torrents avant de seeder - faites-le avant de démarrer \"{0}\"!"
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:970
#, java-format
@@ -748,8 +717,7 @@ msgstr "Impossible de créer un torrent pour des données inexistantes: {0}"
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:977
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:1008
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2018
@@ -776,7 +744,8 @@ msgstr "Ajout tracker"
msgid "Enter valid tracker name and URLs"
msgstr "Entrez nom de tracker valide et URLs"
#. "<input type=\"reset\" class=\"cancel\" value=\"").append(_("Cancel")).append("\">\n" +
#. "<input type=\"reset\" class=\"cancel\"
#. value=\"").append(_("Cancel")).append("\">\n" +
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1082
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2021
msgid "Restore defaults"
@@ -897,9 +866,7 @@ msgstr "Enlever le torrent de la liste active, suprression du fichier .torrent"
msgid ""
"Are you sure you want to delete the file \\''{0}\\'' (downloaded data will "
"not be deleted) ?"
msgstr ""
"Êtes-vous sûr que vous voulez supprimer le fichier \\''{0}\\'' (les données "
"téléchargées ne seront pas supprimées) ?"
msgstr "Êtes-vous sûr que vous voulez supprimer le fichier \\''{0}\\'' (les données téléchargées ne seront pas supprimées) ?"
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1438
msgid "Remove"
@@ -907,8 +874,7 @@ msgstr "Enlever"
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1450
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.
@@ -918,9 +884,7 @@ msgstr ""
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 ?"
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:1458
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1988
@@ -970,11 +934,9 @@ msgstr "Depuis l'URL"
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1680
msgid ""
"Enter the torrent file download URL (I2P only), magnet link, maggot link, or "
"info hash"
msgstr ""
"Entrez l'URL de téléchargement du fichier torrent (I2P seulement), lien "
"magnet, lien maggot, or l'info hash"
"Enter the torrent file download URL (I2P only), magnet link, maggot link, or"
" info hash"
msgstr "Entrez l'URL de téléchargement du fichier torrent (I2P seulement), lien magnet, lien maggot, or l'info hash"
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1685
msgid "Add torrent"
@@ -993,7 +955,8 @@ msgstr "La suppression d'un fichier .torrent entraîne l'arrêt du torrent."
msgid "Create Torrent"
msgstr "Créer 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:1716
msgid "Data to seed"
msgstr "Données à seeder"
@@ -1038,8 +1001,7 @@ msgstr "Fichiers lisibles par tous"
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1792
msgid "If checked, other users may access the downloaded files"
msgstr ""
"SI coché, les autres utilisateurs pourront accéder aux fichiers téléchargés."
msgstr "Si coché, les autres utilisateurs pourront accéder aux fichiers téléchargés."
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1796
msgid "Auto start"
@@ -1103,11 +1065,9 @@ msgstr "Utiliser les open trackers aussi"
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1888
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"
"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:1892
msgid "Enable DHT"

View File

@@ -53,6 +53,9 @@ import java.util.StringTokenizer;
import java.util.concurrent.CopyOnWriteArraySet;
import java.util.concurrent.atomic.AtomicLong;
import gnu.getopt.Getopt;
import gnu.getopt.LongOpt;
import net.i2p.I2PAppContext;
import net.i2p.I2PException;
import net.i2p.client.I2PClient;
@@ -107,18 +110,46 @@ public class I2PTunnel extends EventDispatcherImpl implements Logging {
private final Set<ConnectionEventListener> listeners = new CopyOnWriteArraySet<ConnectionEventListener>();
public static void main(String[] args) throws IOException {
new I2PTunnel(args);
private static final int NOGUI = 99999;
private static final LongOpt[] longopts = new LongOpt[] {
new LongOpt("cli", LongOpt.NO_ARGUMENT, null, 'c'),
new LongOpt("die", LongOpt.NO_ARGUMENT, null, 'd'),
new LongOpt("gui", LongOpt.NO_ARGUMENT, null, 'g'),
new LongOpt("help", LongOpt.NO_ARGUMENT, null, 'h'),
new LongOpt("nocli", LongOpt.NO_ARGUMENT, null, 'w'),
new LongOpt("nogui", LongOpt.NO_ARGUMENT, null, NOGUI),
new LongOpt("wait", LongOpt.NO_ARGUMENT, null, 'w')
};
public static void main(String[] args) {
try {
new I2PTunnel(args);
} catch (IllegalArgumentException iae) {
System.err.println(iae.toString());
System.exit(1);
}
}
/**
* Standard constructor for embedded, uses args "-nocli -die" to return immediately
*/
public I2PTunnel() {
this(nocli_args);
}
/**
* See usage() for options
* @throws IllegalArgumentException
*/
public I2PTunnel(String[] args) {
this(args, null);
}
/**
* See usage() for options
* @param lsnr may be null
* @throws IllegalArgumentException
*/
public I2PTunnel(String[] args, ConnectionEventListener lsnr) {
super();
_context = I2PAppContext.getGlobalContext(); // new I2PAppContext();
@@ -134,37 +165,95 @@ public class I2PTunnel extends EventDispatcherImpl implements Logging {
boolean checkRunByE = true;
boolean cli = true;
boolean dontDie = true;
for (int i = 0; i < args.length; i++) {
if (args[i].equals("-die")) {
boolean error = false;
List<String> eargs = null;
Getopt g = new Getopt("i2ptunnel", args, "d::n:c::w::e:h::", longopts);
int c;
while ((c = g.getopt()) != -1) {
switch (c) {
case 'd': // -d, -die, --die
dontDie = false;
gui = false;
cli = false;
checkRunByE = false;
} else if (args[i].equals("-nogui")) {
break;
case 'n': // -noc, -nog, -nocli, -nogui
String a = g.getOptarg();
if (a.startsWith("oc")) {
gui = false;
cli = false;
checkRunByE = false;
break;
} else if (a.startsWith("og")) {
// fall thru
} else {
error = true;
break;
}
// fall thru for -nogui only
case NOGUI: // --nogui
gui = false;
_log.warn(getPrefix() + "The `-nogui' option of I2PTunnel is deprecated.\n"
if (_log.shouldLog(Log.WARN))
_log.warn(getPrefix() + "The `-nogui' option of I2PTunnel is deprecated.\n"
+ "Use `-cli', `-nocli' (aka `-wait') or `-die' instead.");
} else if (args[i].equals("-cli")) {
case 'c': // -c, -cli, --cli
gui = false;
cli = true;
checkRunByE = false;
} else if (args[i].equals("-nocli") || args[i].equals("-wait")) {
break;
case 'w': // -w, -wait, --nocli
gui = false;
cli = false;
checkRunByE = false;
} else if (args[i].equals("-e")) {
runCommand(args[i + 1], this);
i++;
break;
case 'e':
if (eargs == null)
eargs = new ArrayList<String>(4);
eargs.add(g.getOptarg());
if (checkRunByE) {
checkRunByE = false;
cli = false;
}
} else if (new File(args[i]).exists()) {
runCommand("run " + args[i], this);
} else {
System.out.println("Unknown parameter " + args[i]);
break;
case 'h':
case '?':
case ':':
default:
error = true;
}
}
int remaining = args.length - g.getOptind();
if (error || remaining > 1) {
System.err.println(usage());
throw new IllegalArgumentException();
}
if (eargs != null) {
for (String arg : eargs) {
runCommand(arg, this);
}
}
if (remaining == 1) {
String f = args[g.getOptind()];
File file = new File(f);
// This is probably just a problem with the options, so
// throw from here
if (!file.exists()) {
System.err.println(usage());
throw new IllegalArgumentException("Command file does not exist: " + f);
}
runCommand("run " + f, this);
}
if (gui) {
new I2PTunnelGUI(this);
} else if (cli) {
@@ -185,6 +274,9 @@ public class I2PTunnel extends EventDispatcherImpl implements Logging {
} catch (IOException ex) {
ex.printStackTrace();
}
} else if (eargs == null && remaining == 0 && dontDie) {
System.err.println(usage());
throw new IllegalArgumentException("Waiting for nothing! Specify gui, cli, command, command file, or die");
}
while (dontDie) {
@@ -197,6 +289,23 @@ public class I2PTunnel extends EventDispatcherImpl implements Logging {
}
}
/** with newlines except for last line */
private static String usage() {
// not sure this all makes sense, just documenting what's above
return
"Usage: i2ptunnel [options] [commandFile]\n" +
" Default is to run the GUI.\n" +
" commandFile: run all commands in this file\n" +
" Options:\n" +
" -c, -cli, --cli : run the command line interface\n" +
" -d, -die, --die : exit immediately, do not wait for commands to finish\n" +
" -e 'command [args]' : run the command\n" +
" -h, --help : display this help\n" +
" -nocli, --nocli : do not run the command line interface or GUI\n" +
" -nogui, --nogui : do not run the GUI\n" +
" -w, -wait, --wait : do not run the command line interface or GUI";
}
/** @return A copy, non-null */
List<I2PSession> getSessions() {
return new ArrayList<I2PSession>(_sessions);
@@ -312,30 +421,30 @@ public class I2PTunnel extends EventDispatcherImpl implements Logging {
* @param l logger to receive events and output
*/
private static void runHelp(Logging l) {
l.log("Command list:");
l.log("Command list:\n" +
// alphabetical please...
l.log(" auth <username> <password>");
l.log(" client <port> <pubkey>[,<pubkey,...]|file:<pubkeyfile> [<sharedClient>]");
l.log(" clientoptions [-acx] [key=value ]*");
l.log(" close [forced] <jobnumber>|all");
l.log(" config [-s] <i2phost> <i2pport>");
l.log(" connectclient <port> [<sharedClient>] [<proxy>]");
l.log(" genkeys <privkeyfile> [<pubkeyfile>]");
l.log(" gentextkeys");
l.log(" httpbidirserver <host> <port> <proxyport> <spoofedhost> <privkeyfile>");
l.log(" httpclient <port> [<sharedClient>] [<proxy>]");
l.log(" httpserver <host> <port> <spoofedhost> <privkeyfile>");
l.log(" ircclient <port> <pubkey>[,<pubkey,...]|file:<pubkeyfile> [<sharedClient>]");
l.log(" list");
l.log(" listen_on <ip>");
l.log(" lookup <name>");
l.log(" owndest yes|no");
l.log(" ping <args>");
l.log(" quit");
l.log(" read_timeout <msecs>");
l.log(" run <commandfile>");
l.log(" server <host> <port> <privkeyfile>");
l.log(" textserver <host> <port> <privkey>");
" auth <username> <password>\n" +
" client <port> <pubkey>[,<pubkey,...]|file:<pubkeyfile> [<sharedClient>]\n" +
" clientoptions [-acx] [key=value ]*\n" +
" close [forced] <jobnumber>|all\n" +
" config [-s] <i2phost> <i2pport>\n" +
" connectclient <port> [<sharedClient>] [<proxy>]\n" +
" genkeys <privkeyfile> [<pubkeyfile>]\n" +
" gentextkeys\n" +
" httpbidirserver <host> <port> <proxyport> <spoofedhost> <privkeyfile>\n" +
" httpclient <port> [<sharedClient>] [<proxy>]\n" +
" httpserver <host> <port> <spoofedhost> <privkeyfile>\n" +
" ircclient <port> <pubkey>[,<pubkey,...]|file:<pubkeyfile> [<sharedClient>]\n" +
" list\n" +
" listen_on <ip>\n" +
" lookup <name>\n" +
" owndest yes|no\n" +
" ping <args>\n" +
" quit\n" +
" read_timeout <msecs>\n" +
" run <commandfile>\n" +
" server <host> <port> <privkeyfile>\n" +
" textserver <host> <port> <privkey>\n");
}
/**
@@ -378,12 +487,12 @@ public class I2PTunnel extends EventDispatcherImpl implements Logging {
_clientOptions.setProperty(key, val);
}
} else {
l.log("Usage:");
l.log(" clientoptions [key=value ]* // sets current options");
l.log(" clientoptions -a [key=value ]* // adds to current options");
l.log(" clientoptions -c // clears current options");
l.log(" clientoptions -x [key ]* // removes listed options");
l.log("Current options:");
l.log("Usage:\n" +
" clientoptions [key=value ]* // sets current options\n" +
" clientoptions -a [key=value ]* // adds to current options\n" +
" clientoptions -c // clears current options\n" +
" clientoptions -x [key ]* // removes listed options\n" +
"Current options:\n");
Properties p = new OrderedProperties();
p.putAll(_clientOptions);
for (Map.Entry<Object, Object> e : p.entrySet()) {
@@ -466,8 +575,8 @@ public class I2PTunnel extends EventDispatcherImpl implements Logging {
notifyEvent("serverTaskId", Integer.valueOf(serv.getId()));
return;
} else {
l.log("server <host> <port> <privkeyfile>");
l.log(" creates a server that sends all incoming data\n" + " of its destination to host:port.");
l.log("server <host> <port> <privkeyfile>\n" +
" creates a server that sends all incoming data\n" + " of its destination to host:port.");
notifyEvent("serverTaskId", Integer.valueOf(-1));
}
}
@@ -517,8 +626,8 @@ public class I2PTunnel extends EventDispatcherImpl implements Logging {
notifyEvent("serverTaskId", Integer.valueOf(serv.getId()));
return;
} else {
l.log("server <host> <port> <privkeyfile>");
l.log(" creates a server that sends all incoming data\n" + " of its destination to host:port.");
l.log("server <host> <port> <privkeyfile>\n" +
" creates a server that sends all incoming data\n" + " of its destination to host:port.");
notifyEvent("serverTaskId", Integer.valueOf(-1));
}
}
@@ -578,8 +687,8 @@ public class I2PTunnel extends EventDispatcherImpl implements Logging {
notifyEvent("serverTaskId", Integer.valueOf(serv.getId()));
return;
} else {
l.log("httpserver <host> <port> <spoofedhost> <privkeyfile>");
l.log(" creates an HTTP server that sends all incoming data\n"
l.log("httpserver <host> <port> <spoofedhost> <privkeyfile>\n" +
" creates an HTTP server that sends all incoming data\n"
+ " of its destination to host:port., filtering the HTTP\n"
+ " headers so it looks like the request is to the spoofed host.");
notifyEvent("serverTaskId", Integer.valueOf(-1));
@@ -654,8 +763,8 @@ public class I2PTunnel extends EventDispatcherImpl implements Logging {
notifyEvent("serverTaskId", Integer.valueOf(serv.getId()));
return;
} else {
l.log("httpserver <host> <port> <proxyport> <spoofedhost> <privkeyfile>");
l.log(" creates a bidirectional HTTP server that sends all incoming data\n"
l.log("httpserver <host> <port> <proxyport> <spoofedhost> <privkeyfile>\n" +
" creates a bidirectional HTTP server that sends all incoming data\n"
+ " of its destination to host:port., filtering the HTTP\n"
+ " headers so it looks like the request is to the spoofed host,"
+ " and listens to host:proxyport to proxy HTTP requests.");
@@ -707,8 +816,8 @@ public class I2PTunnel extends EventDispatcherImpl implements Logging {
addtask(serv);
notifyEvent("serverTaskId", Integer.valueOf(serv.getId()));
} else {
l.log("textserver <host> <port> <privkey>");
l.log(" creates a server that sends all incoming data\n" + " of its destination to host:port.");
l.log("textserver <host> <port> <privkey>\n" +
" creates a server that sends all incoming data\n" + " of its destination to host:port.");
notifyEvent("textserverTaskId", Integer.valueOf(-1));
}
}
@@ -765,8 +874,8 @@ public class I2PTunnel extends EventDispatcherImpl implements Logging {
throw iae;
}
} else {
l.log("client <port> <pubkey>[,<pubkey>]|file:<pubkeyfile>[ <sharedClient>] [<privKeyFile>]");
l.log(" creates a client that forwards port to the pubkey.\n"
l.log("client <port> <pubkey>[,<pubkey>]|file:<pubkeyfile>[ <sharedClient>] [<privKeyFile>]\n" +
" creates a client that forwards port to the pubkey.\n"
+ " use 0 as port to get a free port assigned. If you specify\n"
+ " a comma delimited list of pubkeys, it will rotate among them\n"
+ " randomlyl. sharedClient indicates if this client shares \n"
@@ -841,11 +950,11 @@ public class I2PTunnel extends EventDispatcherImpl implements Logging {
throw iae;
}
} else {
l.log("httpclient <port> [<sharedClient>] [<proxy>]");
l.log(" creates a client that distributes HTTP requests.");
l.log(" <sharedClient> (optional) indicates if this client shares tunnels with other clients (true of false)");
l.log(" <proxy> (optional) indicates a proxy server to be used");
l.log(" when trying to access an address out of the .i2p domain");
l.log("httpclient <port> [<sharedClient>] [<proxy>]\n" +
" creates a client that distributes HTTP requests.\n" +
" <sharedClient> (optional) indicates if this client shares tunnels with other clients (true of false)\n" +
" <proxy> (optional) indicates a proxy server to be used\n" +
" when trying to access an address out of the .i2p domain");
notifyEvent("httpclientTaskId", Integer.valueOf(-1));
}
}
@@ -908,11 +1017,11 @@ public class I2PTunnel extends EventDispatcherImpl implements Logging {
throw iae;
}
} else {
l.log("connectclient <port> [<sharedClient>] [<proxy>]");
l.log(" creates a client that for SSL/HTTPS requests.");
l.log(" <sharedClient> (optional) indicates if this client shares tunnels with other clients (true of false)");
l.log(" <proxy> (optional) indicates a proxy server to be used");
l.log(" when trying to access an address out of the .i2p domain");
l.log("connectclient <port> [<sharedClient>] [<proxy>]\n" +
" creates a client that for SSL/HTTPS requests.\n" +
" <sharedClient> (optional) indicates if this client shares tunnels with other clients (true of false)\n" +
" <proxy> (optional) indicates a proxy server to be used\n" +
" when trying to access an address out of the .i2p domain\n");
}
}
@@ -975,9 +1084,9 @@ public class I2PTunnel extends EventDispatcherImpl implements Logging {
throw iae;
}
} else {
l.log("ircclient <port> [<sharedClient> [<privKeyFile>]]");
l.log(" creates a client that filter IRC protocol.");
l.log(" <sharedClient> (optional) indicates if this client shares tunnels with other clients (true of false)");
l.log("ircclient <port> [<sharedClient> [<privKeyFile>]]\n" +
" creates a client that filter IRC protocol.\n" +
" <sharedClient> (optional) indicates if this client shares tunnels with other clients (true of false)\n");
notifyEvent("ircclientTaskId", Integer.valueOf(-1));
}
}
@@ -1028,8 +1137,8 @@ public class I2PTunnel extends EventDispatcherImpl implements Logging {
throw iae;
}
} else {
l.log("sockstunnel <port>");
l.log(" creates a tunnel that distributes SOCKS requests.");
l.log("sockstunnel <port>\n" +
" creates a tunnel that distributes SOCKS requests.");
notifyEvent("sockstunnelTaskId", Integer.valueOf(-1));
}
}
@@ -1075,8 +1184,8 @@ public class I2PTunnel extends EventDispatcherImpl implements Logging {
throw iae;
}
} else {
l.log("socksirctunnel <port> [<sharedClient> [<privKeyFile>]]");
l.log(" creates a tunnel for SOCKS IRC.");
l.log("socksirctunnel <port> [<sharedClient> [<privKeyFile>]]\n" +
" creates a tunnel for SOCKS IRC.");
notifyEvent("sockstunnelTaskId", Integer.valueOf(-1));
}
}
@@ -1125,8 +1234,8 @@ public class I2PTunnel extends EventDispatcherImpl implements Logging {
throw iae;
}
} else {
l.log("streamrclient <host> <port> <destination>");
l.log(" creates a tunnel that receives streaming data.");
l.log("streamrclient <host> <port> <destination>\n" +
" creates a tunnel that receives streaming data.");
notifyEvent("streamrtunnelTaskId", Integer.valueOf(-1));
}
}
@@ -1166,8 +1275,8 @@ public class I2PTunnel extends EventDispatcherImpl implements Logging {
addtask(task);
notifyEvent("streamrtunnelTaskId", Integer.valueOf(task.getId()));
} else {
l.log("streamrserver <port> <privkeyfile>");
l.log(" creates a tunnel that sends streaming data.");
l.log("streamrserver <port> <privkeyfile>\n" +
" creates a tunnel that sends streaming data.");
notifyEvent("streamrtunnelTaskId", Integer.valueOf(-1));
}
}
@@ -1195,12 +1304,12 @@ public class I2PTunnel extends EventDispatcherImpl implements Logging {
port = args[i];
notifyEvent("configResult", "ok");
} else {
l.log("Usage:");
l.log(" config [-s] <i2phost> <i2pport>");
l.log(" sets the connection to the i2p router.");
l.log("Current setting:");
boolean ssl = Boolean.parseBoolean(_clientOptions.getProperty("i2cp.SSL"));
l.log(" " + host + ' ' + port + (ssl ? " SSL" : ""));
l.log("Usage:\n" +
" config [-s] <i2phost> <i2pport>\n" +
" sets the connection to the i2p router.\n" +
"Current setting:\n" +
" " + host + ' ' + port + (ssl ? " SSL" : ""));
notifyEvent("configResult", "error");
}
}
@@ -1210,16 +1319,16 @@ public class I2PTunnel extends EventDispatcherImpl implements Logging {
*
* @param args {username, password}
* @param l logger to receive events and output
* @since 0.9.10
* @since 0.9.11
*/
private void runAuth(String args[], Logging l) {
if (args.length == 2) {
_clientOptions.setProperty("i2cp.username", args[0]);
_clientOptions.setProperty("i2cp.password", args[1]);
} else {
l.log("Usage:");
l.log(" auth <username> <password>");
l.log(" Sets the i2cp credentials");
l.log("Usage:\n" +
" auth <username> <password>\n" +
" Sets the i2cp credentials");
}
}
@@ -1237,8 +1346,8 @@ public class I2PTunnel extends EventDispatcherImpl implements Logging {
ownDest = args[0].equalsIgnoreCase("yes");
notifyEvent("owndestResult", "ok");
} else {
l.log("owndest yes|no");
l.log(" Specifies whether to use its own destination \n" + " for each outgoing tunnel");
l.log("owndest yes|no\n" +
" Specifies whether to use its own destination \n" + " for each outgoing tunnel");
notifyEvent("owndestResult", "error");
}
}
@@ -1256,8 +1365,8 @@ public class I2PTunnel extends EventDispatcherImpl implements Logging {
listenHost = args[0];
notifyEvent("listen_onResult", "ok");
} else {
l.log("listen_on <ip>");
l.log(" sets the interface to listen for the I2PClient.");
l.log("listen_on <ip>\n" +
" sets the interface to listen for the I2PClient.");
notifyEvent("listen_onResult", "error");
}
}
@@ -1279,15 +1388,16 @@ public class I2PTunnel extends EventDispatcherImpl implements Logging {
}
notifyEvent("read_timeoutResult", "ok");
} else {
l.log("read_timeout <msecs>");
l.log(" sets the read timeout (in milliseconds) for I2P connections\n"
l.log("read_timeout <msecs>\n" +
" sets the read timeout (in milliseconds) for I2P connections\n"
+" Negative values will make the connections wait forever");
notifyEvent("read_timeoutResult", "error");
}
}
/**
* Generate a new keypair
* Generate a new keypair.
* Does NOT support non-default sig types.
* Deprecated - only used by CLI
*
* Sets the event "genkeysResult" = "ok" or "error" after the generation is complete
@@ -1307,8 +1417,8 @@ public class I2PTunnel extends EventDispatcherImpl implements Logging {
return;
}
} else if (args.length != 1) {
l.log("genkeys <privkeyfile> [<pubkeyfile>]");
l.log(" creates a new keypair and prints the public key.\n"
l.log("genkeys <privkeyfile> [<pubkeyfile>]\n" +
" creates a new keypair and prints the public key.\n"
+ " if pubkeyfile is given, saves the public key there." + "\n"
+ " if the privkeyfile already exists, just print/save" + "the pubkey.");
//notifyEvent("genkeysResult", "error");
@@ -1330,7 +1440,8 @@ public class I2PTunnel extends EventDispatcherImpl implements Logging {
}
/**
* Generate a new keypair
* Generate a new keypair.
* Does NOT support non-default sig types.
* Deprecated - only used by CLI
*
* Sets the event "privateKey" = base64 of the privateKey stream and
@@ -1339,7 +1450,7 @@ public class I2PTunnel extends EventDispatcherImpl implements Logging {
* @param l logger to receive events and output
*/
private static void runGenTextKeys(Logging l) {
ByteArrayOutputStream privkey = new ByteArrayOutputStream(512);
ByteArrayOutputStream privkey = new ByteArrayOutputStream(1024);
ByteArrayOutputStream pubkey = new ByteArrayOutputStream(512);
makeKey(privkey, pubkey, l);
l.log("Private key: " + Base64.encode(privkey.toByteArray()));
@@ -1394,8 +1505,8 @@ public class I2PTunnel extends EventDispatcherImpl implements Logging {
*/
public void runClose(String args[], Logging l) {
if (args.length == 0 || args.length > 2) {
l.log("close [forced] <jobnumber>|all");
l.log(" stop running tasks. either only one or all.\n"
l.log("close [forced] <jobnumber>|all\n" +
" stop running tasks. either only one or all.\n"
+ " use 'forced' to also stop tasks with active connections.\n"
+ " use the 'list' command to show the job numbers");
notifyEvent("closeResult", "error");
@@ -1456,8 +1567,8 @@ public class I2PTunnel extends EventDispatcherImpl implements Logging {
notifyEvent("runResult", "error");
}
} else {
l.log("run <commandfile>");
l.log(" loads commandfile and runs each line in it. \n"
l.log("run <commandfile>\n" +
" loads commandfile and runs each line in it. \n"
+ " You can also give the filename on the commandline.");
notifyEvent("runResult", "error");
}
@@ -1474,8 +1585,8 @@ public class I2PTunnel extends EventDispatcherImpl implements Logging {
*/
private void runLookup(String args[], Logging l) {
if (args.length != 1) {
l.log("lookup <name>");
l.log(" try to resolve the name into a destination key");
l.log("lookup <name>\n" +
" try to resolve the name into a destination key");
notifyEvent("lookupResult", "invalidUsage");
} else {
try {
@@ -1513,15 +1624,7 @@ public class I2PTunnel extends EventDispatcherImpl implements Logging {
addtask(task);
notifyEvent("pingTaskId", Integer.valueOf(task.getId()));
} else {
l.log("ping <opts> <b64dest|host>");
l.log("ping <opts> -h (pings all hosts in hosts.txt)");
l.log("ping <opts> -l <destlistfile> (pings a list of hosts in a file)");
l.log(" Options:\n" +
" -c (require 5 consecutive pings to report success)\n" +
" -m maxSimultaneousPings (default 10)\n" +
" -n numberOfPings (default 3)\n" +
" -t timeout (ms, default 30000)\n");
l.log(" Tests communication with peers.\n");
l.log(I2Ping.usage());
notifyEvent("pingTaskId", Integer.valueOf(-1));
}
}
@@ -1593,10 +1696,11 @@ public class I2PTunnel extends EventDispatcherImpl implements Logging {
/**
* Create a new destination, storing the destination and its private keys where
* instructed
* instructed.
* Does NOT support non-default sig types.
* Deprecated - only used by CLI
*
* @param writeTo location to store the private keys
* @param writeTo location to store the destination and private keys
* @param pubDest location to store the destination
* @param l logger to send messages to
*/
@@ -1605,8 +1709,8 @@ public class I2PTunnel extends EventDispatcherImpl implements Logging {
l.log("Generating new keys...");
I2PClient client = I2PClientFactory.createClient();
Destination d = client.createDestination(writeTo);
l.log("Secret key saved.");
l.log("Public key: " + d.toBase64());
l.log("Secret key saved.\n" +
"Public key: " + d.toBase64());
writeTo.flush();
writeTo.close();
writePubKey(d, pubDest, l);
@@ -1673,7 +1777,7 @@ public class I2PTunnel extends EventDispatcherImpl implements Logging {
* @param i2cpPort may be null
* @param user may be null
* @param pw may be null
* @since 0.9.10
* @since 0.9.11
*/
private static Destination destFromName(String name, String i2cpHost,
String i2cpPort, boolean isSSL,

View File

@@ -55,7 +55,7 @@ public abstract class I2PTunnelClientBase extends I2PTunnelTask implements Runna
private int localPort;
/**
* Protected for I2Ping since 0.9.10. Not for use outside package.
* Protected for I2Ping since 0.9.11. Not for use outside package.
*/
protected boolean listenerReady;
@@ -586,7 +586,7 @@ public abstract class I2PTunnelClientBase extends I2PTunnelTask implements Runna
}
/**
* Non-final since 0.9.10.
* Non-final since 0.9.11.
* Any overrides must set listenerReady = true.
*/
public void run() {

View File

@@ -24,6 +24,7 @@ import net.i2p.I2PAppContext;
import net.i2p.client.streaming.I2PSocketManager;
import net.i2p.data.Base64;
import net.i2p.data.DataHelper;
import net.i2p.util.EepGet;
import net.i2p.util.EventDispatcher;
import net.i2p.util.InternalSocket;
import net.i2p.util.Log;
@@ -409,60 +410,8 @@ public abstract class I2PTunnelHTTPClientBase extends I2PTunnelClientBase implem
* @since 0.9.4
*/
private static Map<String, String> parseArgs(String args) {
Map<String, String> rv = new HashMap<String, String>(8);
char data[] = args.toCharArray();
StringBuilder buf = new StringBuilder(32);
boolean isQuoted = false;
String key = null;
for (int i = 0; i < data.length; i++) {
switch (data[i]) {
case '\"':
if (isQuoted) {
// keys never quoted
if (key != null) {
rv.put(key, buf.toString().trim());
key = null;
}
buf.setLength(0);
}
isQuoted = !isQuoted;
break;
case ' ':
case '\r':
case '\n':
case '\t':
case ',':
// whitespace - if we're in a quoted section, keep this as part of the quote,
// otherwise use it as a delim
if (isQuoted) {
buf.append(data[i]);
} else {
if (key != null) {
rv.put(key, buf.toString().trim());
key = null;
}
buf.setLength(0);
}
break;
case '=':
if (isQuoted) {
buf.append(data[i]);
} else {
key = buf.toString().trim().toLowerCase(Locale.US);
buf.setLength(0);
}
break;
default:
buf.append(data[i]);
break;
}
}
if (key != null)
rv.put(key, buf.toString().trim());
return rv;
// moved to EepGet, since it needs this too
return EepGet.parseAuthArgs(args);
}
//////// Error page stuff

View File

@@ -18,6 +18,7 @@ import javax.net.ssl.SSLException;
import net.i2p.I2PAppContext;
import net.i2p.client.streaming.I2PSocket;
import net.i2p.data.ByteArray;
import net.i2p.data.DataHelper;
import net.i2p.util.ByteCache;
import net.i2p.util.Clock;
import net.i2p.util.I2PAppThread;
@@ -137,6 +138,8 @@ public class I2PTunnelRunner extends I2PAppThread implements I2PSocket.SocketErr
protected InputStream getSocketIn() throws IOException { return s.getInputStream(); }
protected OutputStream getSocketOut() throws IOException { return s.getOutputStream(); }
private static final byte[] POST = { 'P', 'O', 'S', 'T', ' ' };
@Override
public void run() {
try {
@@ -159,8 +162,12 @@ public class I2PTunnelRunner extends I2PAppThread implements I2PSocket.SocketErr
// So we now get a fast return from flush(), and can do it here to save 250 ms.
// To make sure we are under the initial window size and don't hang waiting for accept,
// only flush if it fits in one message.
if (initialI2PData.length <= 1730) // ConnectionOptions.DEFAULT_MAX_MESSAGE_SIZE
i2pout.flush();
if (initialI2PData.length <= 1730) { // ConnectionOptions.DEFAULT_MAX_MESSAGE_SIZE
// Don't flush if POST, so we can get POST data into the initial packet
if (initialI2PData.length < 5 ||
!DataHelper.eq(POST, 0, initialI2PData, 0, 5))
i2pout.flush();
}
//}
}
if (initialSocketData != null) {

View File

@@ -11,6 +11,8 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
import gnu.getopt.Getopt;
import net.i2p.I2PAppContext;
import net.i2p.I2PException;
import net.i2p.client.I2PSession;
@@ -86,48 +88,76 @@ public class I2Ping extends I2PTunnelClientBase {
int count = PING_COUNT;
boolean countPing = false;
boolean reportTimes = true;
while (true) {
if (cmd.startsWith("-t ")) { // timeout
cmd = cmd.substring(3);
int pos = cmd.indexOf(" ");
if (pos == -1) {
l.log("Syntax error");
return;
} else {
timeout = Long.parseLong(cmd.substring(0, pos));
String hostListFile = null;
int localPort = 0;
int remotePort = 0;
boolean error = false;
String[] argv = cmd.split(" ");
Getopt g = new Getopt("ping", argv, "t:m:n:chl:f:p:");
int c;
while ((c = g.getopt()) != -1) {
switch (c) {
case 't': // timeout
timeout = Long.parseLong(g.getOptarg());
// convenience, convert msec to sec
if (timeout < 100)
timeout *= 1000;
cmd = cmd.substring(pos + 1);
}
} else if (cmd.startsWith("-m ")) { // max simultaneous pings
cmd = cmd.substring(3);
int pos = cmd.indexOf(" ");
if (pos == -1) {
l.log("Syntax error");
return;
} else {
MAX_SIMUL_PINGS = Integer.parseInt(cmd.substring(0, pos));
cmd = cmd.substring(pos + 1);
}
} else if (cmd.startsWith("-n ")) { // number of pings
cmd = cmd.substring(3);
int pos = cmd.indexOf(" ");
if (pos == -1) {
l.log("Syntax error");
return;
} else {
count = Integer.parseInt(cmd.substring(0, pos));
cmd = cmd.substring(pos + 1);
}
} else if (cmd.startsWith("-c ")) { // "count" ping
break;
case 'm': // max simultaneous pings
MAX_SIMUL_PINGS = Integer.parseInt(g.getOptarg());
break;
case 'n': // number of pings
count = Integer.parseInt(g.getOptarg());
break;
case 'c': // "count" ping
countPing = true;
count = CPING_COUNT;
cmd = cmd.substring(3);
} else if (cmd.equals("-h")) { // ping all hosts
cmd = "-l hosts.txt";
} else if (cmd.startsWith("-l ")) { // ping a list of hosts
BufferedReader br = new BufferedReader(new FileReader(cmd.substring(3)));
break;
case 'h': // ping all hosts
if (hostListFile != null)
error = true;
else
hostListFile = "hosts.txt";
break;
case 'l': // ping a list of hosts
if (hostListFile != null)
error = true;
else
hostListFile = g.getOptarg();
break;
case 'f': // local port
localPort = Integer.parseInt(g.getOptarg());
break;
case 'p': // remote port
remotePort = Integer.parseInt(g.getOptarg());
break;
case '?':
case ':':
default:
error = true;
}
}
int remaining = argv.length - g.getOptind();
if (error ||
remaining > 1 ||
(remaining <= 0 && hostListFile == null) ||
(remaining > 0 && hostListFile != null)) {
System.out.println(usage());
return;
}
if (hostListFile != null) {
BufferedReader br = new BufferedReader(new FileReader(hostListFile));
String line;
List<PingHandler> pingHandlers = new ArrayList<PingHandler>();
int i = 0;
@@ -138,7 +168,8 @@ public class I2Ping extends I2PTunnelClientBase {
if (line.indexOf("=") != -1) { // maybe file is hosts.txt?
line = line.substring(0, line.indexOf("="));
}
PingHandler ph = new PingHandler(line, count, timeout, countPing, reportTimes);
PingHandler ph = new PingHandler(line, count, localPort, remotePort,
timeout, countPing, reportTimes);
ph.start();
pingHandlers.add(ph);
if (++i > 1)
@@ -148,13 +179,31 @@ public class I2Ping extends I2PTunnelClientBase {
for (Thread t : pingHandlers)
t.join();
return;
} else {
Thread t = new PingHandler(cmd, count, timeout, countPing, reportTimes);
t.start();
t.join();
return;
}
}
String host = argv[g.getOptind()];
Thread t = new PingHandler(host, count, localPort, remotePort,
timeout, countPing, reportTimes);
t.start();
t.join();
}
/**
* With newlines except for last line
* @since 0.9.12
*/
public static String usage() {
return
"ping <opts> <b64dest|host>\n" +
"ping <opts> -h (pings all hosts in hosts.txt)\n" +
"ping <opts> -l <destlistfile> (pings a list of hosts in a file)\n" +
"Options:\n" +
" -c (require 5 consecutive pings to report success)\n" +
" -m maxSimultaneousPings (default 10)\n" +
" -n numberOfPings (default 3)\n" +
" -t timeout (ms, default 30000)\n" +
" -f fromPort\n" +
" -p toPort";
}
@Override
@@ -170,7 +219,7 @@ public class I2Ping extends I2PTunnelClientBase {
return true;
}
private boolean ping(Destination dest, long timeout) throws I2PException {
private boolean ping(Destination dest, int fromPort, int toPort, long timeout) throws I2PException {
try {
synchronized (simulLock) {
while (simulPings >= MAX_SIMUL_PINGS) {
@@ -183,7 +232,7 @@ public class I2Ping extends I2PTunnelClientBase {
}
lastPingTime = System.currentTimeMillis();
}
boolean sent = sockMgr.ping(dest, timeout);
boolean sent = sockMgr.ping(dest, fromPort, toPort, timeout);
synchronized (simulLock) {
simulPings--;
simulLock.notifyAll();
@@ -197,7 +246,7 @@ public class I2Ping extends I2PTunnelClientBase {
/**
* Does nothing.
* @since 0.9.10
* @since 0.9.11
*/
protected void clientConnectionRun(Socket s) {}
@@ -207,15 +256,20 @@ public class I2Ping extends I2PTunnelClientBase {
private final long timeout;
private final boolean countPing;
private final boolean reportTimes;
private final int localPort;
private final int remotePort;
/**
* As of 0.9.10, does NOT start itself.
* As of 0.9.11, does NOT start itself.
* Caller must call start()
* @param dest b64 or b32 or host name
*/
public PingHandler(String dest, int count, long timeout, boolean countPings, boolean report) {
public PingHandler(String dest, int count, int fromPort, int toPort,
long timeout, boolean countPings, boolean report) {
this.destination = dest;
cnt = count;
localPort = fromPort;
remotePort = toPort;
this.timeout = timeout;
countPing = countPings;
reportTimes = report;
@@ -235,8 +289,7 @@ public class I2Ping extends I2PTunnelClientBase {
long totalTime = 0;
StringBuilder pingResults = new StringBuilder(2 * cnt + destination.length() + 3);
for (int i = 0; i < cnt; i++) {
boolean sent;
sent = ping(dest, timeout);
boolean sent = ping(dest, localPort, remotePort, timeout);
if (countPing) {
if (!sent) {
pingResults.append(i).append(" ");
@@ -276,7 +329,7 @@ public class I2Ping extends I2PTunnelClientBase {
/**
* @param name b64 or b32 or host name
* @since 0.9.10
* @since 0.9.11
*/
private Destination lookup(String name) {
I2PAppContext ctx = I2PAppContext.getGlobalContext();

View File

@@ -7,11 +7,13 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import net.i2p.I2PAppContext;
import net.i2p.I2PException;
import net.i2p.client.I2PClient;
import net.i2p.client.I2PClientFactory;
import net.i2p.client.I2PSession;
import net.i2p.crypto.SigType;
import net.i2p.data.Base32;
import net.i2p.data.Destination;
import net.i2p.i2ptunnel.socks.I2PSOCKSTunnel;
@@ -49,8 +51,8 @@ public class TunnelController implements Logging {
* the prefix should be used (and, in turn, that prefix should be stripped off
* before being interpreted by this controller)
*
* @param config original key=value mapping
* @param prefix beginning of key values that are relevent to this tunnel
* @param config original key=value mapping non-null
* @param prefix beginning of key values that are relevant to this tunnel
*/
public TunnelController(Properties config, String prefix) {
this(config, prefix, true);
@@ -58,6 +60,8 @@ public class TunnelController implements Logging {
/**
*
* @param config original key=value mapping non-null
* @param prefix beginning of key values that are relevant to this tunnel
* @param createKey for servers, whether we want to create a brand new destination
* with private keys at the location specified or not (does not
* overwrite existing ones)
@@ -99,7 +103,16 @@ public class TunnelController implements Logging {
FileOutputStream fos = null;
try {
fos = new SecureFileOutputStream(keyFile);
Destination dest = client.createDestination(fos);
SigType stype = I2PClient.DEFAULT_SIGTYPE;
String st = _config.getProperty("option." + I2PClient.PROP_SIGTYPE);
if (st != null) {
SigType type = SigType.parseSigType(st);
if (type != null)
stype = type;
else
log("Unsupported sig type " + st);
}
Destination dest = client.createDestination(fos, stype);
String destStr = dest.toBase64();
log("Private key created and saved in " + keyFile.getAbsolutePath());
log("You should backup this file in a secure place.");

View File

@@ -12,6 +12,7 @@ import net.i2p.client.I2PClient;
import net.i2p.client.I2PClientFactory;
import net.i2p.client.I2PSession;
import net.i2p.client.I2PSessionException;
import net.i2p.crypto.SigType;
import net.i2p.data.Destination;
import net.i2p.i2ptunnel.I2PTunnel;
import net.i2p.i2ptunnel.I2PTunnelTask;
@@ -78,8 +79,17 @@ import net.i2p.util.EventDispatcher;
I2PClient client = I2PClientFactory.createClient();
byte[] key;
try {
ByteArrayOutputStream out = new ByteArrayOutputStream(512);
client.createDestination(out);
ByteArrayOutputStream out = new ByteArrayOutputStream(1024);
SigType stype = I2PClient.DEFAULT_SIGTYPE;
String st = tunnel.getClientOptions().getProperty(I2PClient.PROP_SIGTYPE);
if (st != null) {
SigType type = SigType.parseSigType(st);
if (type != null)
stype = type;
else
l.log("Unsupported sig type " + st);
}
client.createDestination(out, stype);
key = out.toByteArray();
} catch(Exception exc) {
throw new RuntimeException("failed to create i2p-destination", exc);

View File

@@ -14,6 +14,7 @@ import java.util.Properties;
import java.util.Set;
import java.util.TreeMap;
import net.i2p.client.I2PClient;
import net.i2p.data.Base64;
import net.i2p.data.Destination;
import net.i2p.data.PrivateKeyFile;
@@ -177,6 +178,11 @@ public class EditBean extends IndexBean {
return getBooleanProperty(tunnel, "i2cp.encryptLeaseSet");
}
/** @since 0.9.12 */
public int getSigType(int tunnel) {
return getProperty(tunnel, I2PClient.PROP_SIGTYPE, 0);
}
/** @since 0.8.9 */
public boolean getDCC(int tunnel) {
return getBooleanProperty(tunnel, I2PTunnelIRCClient.PROP_DCC);
@@ -358,6 +364,11 @@ public class EditBean extends IndexBean {
return Addresses.getAllAddresses();
}
/** @since 0.9.12 */
public boolean isAdvanced() {
return _context.getBooleanProperty("routerconsole.advanced");
}
public String getI2CPHost(int tunnel) {
if (_context.isRouterContext())
return _("internal");

View File

@@ -24,6 +24,7 @@ import java.util.concurrent.ConcurrentHashMap;
import net.i2p.I2PAppContext;
import net.i2p.app.ClientAppManager;
import net.i2p.app.Outproxy;
import net.i2p.client.I2PClient;
import net.i2p.data.Base32;
import net.i2p.data.Certificate;
import net.i2p.data.Destination;
@@ -983,6 +984,7 @@ public class IndexBean {
} catch (NumberFormatException nfe) {}
}
}
public void setCert(String val) {
if (val != null) {
try {
@@ -990,10 +992,24 @@ public class IndexBean {
} catch (NumberFormatException nfe) {}
}
}
public void setSigner(String val) {
_certSigner = val;
}
/** @since 0.9.12 */
public void setSigType(String val) {
if (val != null) {
_otherOptions.put(I2PClient.PROP_SIGTYPE, val);
if (val.equals("0"))
_certType = 0;
else
_certType = 5;
}
// TODO: Call modifyDestination??
// Otherwise this only works on a new tunnel...
}
/** Modify or create a destination */
private String modifyDestination() {
if (_privKeyFile == null || _privKeyFile.trim().length() <= 0)
@@ -1234,13 +1250,14 @@ public class IndexBean {
"outproxyUsername", "outproxyPassword",
I2PTunnelHTTPClient.PROP_JUMP_SERVERS,
I2PTunnelHTTPClientBase.PROP_AUTH,
I2PClient.PROP_SIGTYPE,
I2PTunnelHTTPClient.PROP_SSL_OUTPROXIES
};
private static final String _otherServerOpts[] = {
"i2cp.reduceIdleTime", "i2cp.reduceQuantity", "i2cp.leaseSetKey", "i2cp.accessList",
PROP_MAX_CONNS_MIN, PROP_MAX_CONNS_HOUR, PROP_MAX_CONNS_DAY,
PROP_MAX_TOTAL_CONNS_MIN, PROP_MAX_TOTAL_CONNS_HOUR, PROP_MAX_TOTAL_CONNS_DAY,
PROP_MAX_STREAMS
PROP_MAX_STREAMS, I2PClient.PROP_SIGTYPE
};
private static final String _httpServerOpts[] = {
I2PTunnelHTTPServer.OPT_POST_WINDOW,

View File

@@ -449,6 +449,37 @@ input.default { width: 1px; height: 1px; visibility: hidden; }
</div>
<% } %>
<% if (editBean.isAdvanced()) { %>
<div id="tunnelOptionsField" class="rowItem">
<label>
<%=intl._("Signature type")%>
(<%=intl._("Experts only!")%>)
</label>
</div>
<div id="hostField" class="rowItem">
<div id="portField" class="rowItem">
<label>DSA-SHA1</label>
<input value="0" type="radio" id="startOnLoad" name="sigType" title="Default"<%=(editBean.getSigType(curTunnel)==0 ? " checked=\"checked\"" : "")%> class="tickbox" />
</div>
<div id="portField" class="rowItem">
<label>ECDSA-P256</label>
<input value="1" type="radio" id="startOnLoad" name="sigType" title="Advanced users only"<%=(editBean.getSigType(curTunnel)==1 ? " checked=\"checked\"" : "")%> class="tickbox" />
</div>
<div id="portField" class="rowItem">
<label>ECDSA-P384</label>
<input value="2" type="radio" id="startOnLoad" name="sigType" title="Advanced users only"<%=(editBean.getSigType(curTunnel)==2 ? " checked=\"checked\"" : "")%> class="tickbox" />
</div>
<div id="portField" class="rowItem">
<label>ECDSA-P521</label>
<input value="3" type="radio" id="startOnLoad" name="sigType" title="Advanced users only"<%=(editBean.getSigType(curTunnel)==3 ? " checked=\"checked\"" : "")%> class="tickbox" />
</div>
</div>
<div class="subdivider">
<hr />
</div>
<% } // isAdvanced %>>
<% if ("httpclient".equals(tunnelType) || "connectclient".equals(tunnelType) || "sockstunnel".equals(tunnelType) || "socksirctunnel".equals(tunnelType)) { %>
<div id="accessField" class="rowItem">
<label><%=intl._("Local Authorization")%>:</label>

View File

@@ -491,6 +491,7 @@ input.default { width: 1px; height: 1px; visibility: hidden; }
<hr />
</div>
<% /***************** %>
<div id="tunnelOptionsField" class="rowItem">
<label for="cert" accesskey="c">
<%=intl._("New Certificate type")%>(<span class="accessKey">C</span>):
@@ -533,10 +534,38 @@ input.default { width: 1px; height: 1px; visibility: hidden; }
<button accesskey="S" class="control" type="submit" name="action" value="Modify" title="Force New Cert Now"><%=intl._("Modify")%></button>
<span class="comment"><%=intl._("(Tunnel must be stopped first)")%></span>
</div>
<% **********************/ %>
<% if (editBean.isAdvanced()) { %>
<div id="tunnelOptionsField" class="rowItem">
<label>
<%=intl._("Signature type")%>
(<%=intl._("Experts only! Changes B32!")%>)
</label>
</div>
<div id="hostField" class="rowItem">
<div id="portField" class="rowItem">
<label>DSA-SHA1</label>
<input value="0" type="radio" id="startOnLoad" name="sigType" title="Default"<%=(editBean.getSigType(curTunnel)==0 ? " checked=\"checked\"" : "")%> class="tickbox" />
</div>
<div id="portField" class="rowItem">
<label>ECDSA-P256</label>
<input value="1" type="radio" id="startOnLoad" name="sigType" title="Advanced users only"<%=(editBean.getSigType(curTunnel)==1 ? " checked=\"checked\"" : "")%> class="tickbox" />
</div>
<div id="portField" class="rowItem">
<label>ECDSA-P384</label>
<input value="2" type="radio" id="startOnLoad" name="sigType" title="Advanced users only"<%=(editBean.getSigType(curTunnel)==2 ? " checked=\"checked\"" : "")%> class="tickbox" />
</div>
<div id="portField" class="rowItem">
<label>ECDSA-P521</label>
<input value="3" type="radio" id="startOnLoad" name="sigType" title="Advanced users only"<%=(editBean.getSigType(curTunnel)==3 ? " checked=\"checked\"" : "")%> class="tickbox" />
</div>
</div>
<div class="subdivider">
<hr />
</div>
<% } // isAdvanced %>>
<div id="customOptionsField" class="rowItem">
<label for="customOptions" accesskey="u">

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: I2P i2ptunnel\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-12-01 20:06+0000\n"
"POT-Creation-Date: 2014-02-06 18:27+0000\n"
"PO-Revision-Date: 2010-06-15 14:09+0100\n"
"Last-Translator: duck <duck@mail.i2p>\n"
"Language-Team: duck <duck@mail.i2p>\n"
@@ -339,25 +339,22 @@ msgid "The request uses a bad protocol."
msgstr ""
#: ../java/build/Proxy.java:133
#, java-format
msgid "The I2P HTTP Proxy supports {0}http://{1} requests ONLY."
msgid "The I2P HTTP Proxy supports HTTP and HTTPS requests only."
msgstr ""
#: ../java/build/Proxy.java:134
#, java-format
msgid ""
"Other protocols such as {0}https://{1} and {0}ftp://{1} are not allowed."
msgid "Other protocols such as FTP are not allowed."
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:571
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:595
msgid "This seems to be a bad destination:"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:571
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:595
msgid "i2paddresshelper cannot help you with a destination like that!"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:638
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:662
#, java-format
msgid ""
"To visit the destination in your host database, click <a href=\"{0}\">here</"
@@ -365,50 +362,50 @@ msgid ""
"\"{1}\">here</a>."
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1042
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1151
msgid "Host"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1046
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1155
msgid "Base 32"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1050
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1159
msgid "Destination"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1056
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1165
#, java-format
msgid "Continue to {0} without saving"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1061
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1170
#, java-format
msgid "Save {0} to router address book and continue to eepsite"
msgstr ""
#. only blockfile supports multiple books
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1064
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1173
#, java-format
msgid "Save {0} to master address book and continue to eepsite"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1065
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1174
#, java-format
msgid "Save {0} to private address book and continue to eepsite"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1180
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1290
msgid "HTTP Outproxy"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1216
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1326
msgid ""
"Click a link below to look for an address helper by using a \"jump\" service:"
msgstr ""
#. Translators: parameter is a host name
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1224
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1334
#, java-format
msgid "{0} jump service"
msgstr ""

View File

@@ -4,6 +4,7 @@
# To contribute translations, see http://www.i2p2.de/newdevelopers
#
# Translators:
# kgtm <fabio.h.f.antunes@gmail.com>, 2014
# hxdcmls, 2013
# hxdcmls, 2013
# rafaelbf, 2013
@@ -14,8 +15,8 @@ msgstr ""
"Project-Id-Version: I2P\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-12-01 20:06+0000\n"
"PO-Revision-Date: 2013-11-19 23:51+0000\n"
"Last-Translator: kytv <killyourtv@i2pmail.org>\n"
"PO-Revision-Date: 2014-01-22 18:42+0000\n"
"Last-Translator: kgtm <fabio.h.f.antunes@gmail.com>\n"
"Language-Team: Portuguese (http://www.transifex.com/projects/p/I2P/language/pt/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -432,15 +433,15 @@ msgstr "Adicionado pelo auxiliar de endereços"
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:187
msgid "router"
msgstr ""
msgstr "roteador"
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:189
msgid "master"
msgstr ""
msgstr "mestre"
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:191
msgid "private"
msgstr ""
msgstr "privado"
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:198
#, java-format

View File

@@ -2,23 +2,22 @@
# 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
#
#
# Translators:
# blueboy, 2013
# blueboy, 2013
# blueboy, 2013-2014
msgid ""
msgstr ""
"Project-Id-Version: I2P\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-01-09 18:16+0000\n"
"PO-Revision-Date: 2013-12-13 11:55+0000\n"
"POT-Creation-Date: 2013-12-01 20:06+0000\n"
"PO-Revision-Date: 2014-01-29 00:46+0000\n"
"Last-Translator: blueboy\n"
"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/I2P/"
"language/pt_BR/)\n"
"Language: pt_BR\n"
"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/I2P/language/pt_BR/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: pt_BR\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#: ../java/build/Proxy.java:5 ../java/build/Proxy.java:11
@@ -94,8 +93,8 @@ msgstr ""
#: ../java/build/Proxy.java:15
#, java-format
msgid ""
"If you continue to have trouble you may want to edit your outproxy list {0}"
"here{1}."
"If you continue to have trouble you may want to edit your outproxy list "
"{0}here{1}."
msgstr ""
#: ../java/build/Proxy.java:16 ../java/build/Proxy.java:38
@@ -113,7 +112,7 @@ msgstr "Erro: Acesso Local"
#: ../java/build/Proxy.java:24
msgid "Your browser is misconfigured."
msgstr ""
msgstr "O seu navegador está mal-configurado."
#: ../java/build/Proxy.java:25
msgid ""
@@ -140,14 +139,12 @@ msgstr "Verifique o linque ou procure por um endereço de Base 32 ou Base 64."
#: ../java/build/Proxy.java:35
#, java-format
msgid "If you have the Base 64 address, {0}add it to your addressbook{1}."
msgstr ""
"Se você tem o endereço de Base 64, {0}adicione-o ao seu livro de "
"endereços{1}."
msgstr "Se você tem o endereço de Base 64, {0}adicione-o ao seu livro de endereços{1}."
#: ../java/build/Proxy.java:36
msgid ""
"Otherwise, find a Base 32 or address helper link, or use a jump service link "
"below."
"Otherwise, find a Base 32 or address helper link, or use a jump service link"
" below."
msgstr ""
#: ../java/build/Proxy.java:37
@@ -183,8 +180,8 @@ msgstr ""
#: ../java/build/Proxy.java:56
msgid ""
"Perhaps you pasted in the wrong Base 64 string or the link you are following "
"is bad."
"Perhaps you pasted in the wrong Base 64 string or the link you are following"
" is bad."
msgstr ""
#: ../java/build/Proxy.java:57
@@ -212,9 +209,7 @@ msgstr "Aviso: Nenhum proxy de saída configurado"
msgid ""
"Your request was for a site outside of I2P, but you have no HTTP outproxy "
"configured."
msgstr ""
"O seu pedido foi para um site fora da I2P, mas você não possui nenhum proxy "
"de saída para HTTP configurado"
msgstr "O seu pedido foi para um site fora da I2P, mas você não possui nenhum proxy de saída para HTTP configurado"
#: ../java/build/Proxy.java:76
msgid "Please configure an outproxy in I2PTunnel."
@@ -222,7 +217,7 @@ msgstr "Por favor, configurar um proxy de saída no túnel I2P."
#: ../java/build/Proxy.java:77 ../java/build/Proxy.java:83
msgid "Warning: Destination Key Conflict"
msgstr ""
msgstr "Aviso: Conflito de chave de destino"
#: ../java/build/Proxy.java:84
msgid ""
@@ -232,8 +227,8 @@ msgstr ""
#: ../java/build/Proxy.java:85
msgid ""
"Someone could be trying to impersonate another eepsite, or people have given "
"two eepsites identical names."
"Someone could be trying to impersonate another eepsite, or people have given"
" two eepsites identical names."
msgstr ""
#: ../java/build/Proxy.java:86
@@ -249,28 +244,26 @@ msgstr "Autorização do proxy necessária"
#: ../java/build/Proxy.java:88
msgid "I2P HTTP Proxy Authorization Required"
msgstr ""
msgstr "É necessária a autorização do proxy http da I2P"
#: ../java/build/Proxy.java:89
msgid "This proxy is configured to require a username and password for access."
msgstr ""
"Este proxy está configurado para pedir um nome de usuário e uma senha para "
"acesso."
msgid ""
"This proxy is configured to require a username and password for access."
msgstr "Este proxy está configurado para pedir um nome de usuário e uma senha para acesso."
#: ../java/build/Proxy.java:90
#, java-format
msgid ""
"Please enter your username and password, or check your {0}router "
"configuration{1} or {2}I2PTunnel configuration{3}."
msgstr ""
"Por favor, forneça o seu nome de usuário e senha, ou verifique sua {0}"
"configuração de roteamento{1} ou {2}configuração do túnel I2P{3};"
msgstr "Por favor, forneça o seu nome de usuário e senha, ou verifique sua {0}configuração de roteamento{1} ou {2}configuração do túnel I2P{3};"
#: ../java/build/Proxy.java:91
#, java-format
msgid ""
"To disable authorization, remove the configuration {0}i2ptunnel.proxy."
"auth=basic{1}, then stop and restart the HTTP Proxy tunnel."
"To disable authorization, remove the configuration "
"{0}i2ptunnel.proxy.auth=basic{1}, then stop and restart the HTTP Proxy "
"tunnel."
msgstr ""
#: ../java/build/Proxy.java:92 ../java/build/Proxy.java:98
@@ -279,7 +272,7 @@ msgstr "Aviso: eepsite inalcançável"
#: ../java/build/Proxy.java:99
msgid "The eepsite was not reachable."
msgstr ""
msgstr "O eepsite não se encontra alcançável."
#: ../java/build/Proxy.java:100
msgid ""
@@ -293,7 +286,7 @@ msgstr "Informação: novo nome de host"
#: ../java/build/Proxy.java:109
msgid "Information: New Host Name with Address Helper"
msgstr ""
msgstr "Informação: novo nome de host com auxiliar de endereço"
#: ../java/build/Proxy.java:110
msgid ""
@@ -312,8 +305,8 @@ msgstr ""
#: ../java/build/Proxy.java:113
msgid ""
"If you do not save it, the host name will be forgotten after the next router "
"restart."
"If you do not save it, the host name will be forgotten after the next router"
" restart."
msgstr ""
#: ../java/build/Proxy.java:114
@@ -324,7 +317,7 @@ msgstr ""
#: ../java/build/Proxy.java:115 ../java/build/Proxy.java:121
msgid "Warning: Bad Address Helper"
msgstr ""
msgstr "Aviso: Auxiliar de endereço ruim"
#: ../java/build/Proxy.java:122
#, java-format
@@ -343,7 +336,7 @@ msgstr ""
#: ../java/build/Proxy.java:125 ../java/build/Proxy.java:131
msgid "Warning: Non-HTTP Protocol"
msgstr ""
msgstr "Aviso: Protocolo não-HTTP"
#: ../java/build/Proxy.java:132
msgid "The request uses a bad protocol."
@@ -352,15 +345,13 @@ msgstr "O pedido usa um protocolo inadequado."
#: ../java/build/Proxy.java:133
#, java-format
msgid "The I2P HTTP Proxy supports {0}http://{1} requests ONLY."
msgstr ""
msgstr "O proxy HTTP da I2P suporta {0}http://{1} pedidos APENAS."
#: ../java/build/Proxy.java:134
#, java-format
msgid ""
"Other protocols such as {0}https://{1} and {0}ftp://{1} are not allowed."
msgstr ""
"Outros protocolos, tais como {0}https://{1} e {0}ftp://{1}, não são "
"permitidos."
msgstr "Outros protocolos, tais como {0}https://{1} e {0}ftp://{1}, não são permitidos."
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:571
msgid "This seems to be a bad destination:"
@@ -368,14 +359,14 @@ msgstr "Parece que este destino é inadequado:"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:571
msgid "i2paddresshelper cannot help you with a destination like that!"
msgstr ""
msgstr "O auxiliar de endereços da I2P não pode ajudá-lo com um destino como este!"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:638
#, 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>."
"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 ""
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1042
@@ -417,23 +408,24 @@ msgstr ""
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1216
msgid ""
"Click a link below to look for an address helper by using a \"jump\" service:"
"Click a link below to look for an address helper by using a \"jump\" "
"service:"
msgstr ""
#. Translators: parameter is a host name
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1224
#, java-format
msgid "{0} jump service"
msgstr ""
msgstr "{0} saltar serviço"
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:162
#, java-format
msgid "Added via address helper from {0}"
msgstr ""
msgstr "Adicionado via auxiliar de endereços de {0}"
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:164
msgid "Added via address helper"
msgstr ""
msgstr "Adicionado via auxiliar de endereços"
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:187
msgid "router"
@@ -441,7 +433,7 @@ msgstr "roteador"
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:189
msgid "master"
msgstr ""
msgstr "mestre"
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:191
msgid "private"
@@ -464,4 +456,4 @@ msgstr ""
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:213
msgid "Click here if you are not redirected automatically."
msgstr ""
msgstr "Clique aqui se você não foi automaticamente redirecionado."

View File

@@ -6,13 +6,14 @@
# Translators:
# Денис Лысенко <gribua@gmail.com>, 2011
# Денис Лысенко <gribua@gmail.com>, 2012
# jonny_nut, 2014
msgid ""
msgstr ""
"Project-Id-Version: I2P\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-12-01 20:06+0000\n"
"PO-Revision-Date: 2013-11-19 23:52+0000\n"
"Last-Translator: kytv <killyourtv@i2pmail.org>\n"
"PO-Revision-Date: 2014-01-23 16:58+0000\n"
"Last-Translator: jonny_nut\n"
"Language-Team: Ukrainian (Ukraine) (http://www.transifex.com/projects/p/I2P/language/uk_UA/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -249,14 +250,14 @@ msgstr "Авторизація outproxy"
#: ../java/build/Proxy.java:89
msgid ""
"This proxy is configured to require a username and password for access."
msgstr ""
msgstr "Цей проксі налаштований конечно вимагати ім'я користувача і пароль для доступу."
#: ../java/build/Proxy.java:90
#, java-format
msgid ""
"Please enter your username and password, or check your {0}router "
"configuration{1} or {2}I2PTunnel configuration{3}."
msgstr ""
msgstr "Будь ласка, ввести ваш логін і пароль, або перевірити {0}router configuration{1} або {2}I2PTunnel configuration{3}."
#: ../java/build/Proxy.java:91
#, java-format

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: I2P i2ptunnel\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-01-09 19:27+0000\n"
"POT-Creation-Date: 2014-02-06 18:27+0000\n"
"PO-Revision-Date: 2010-06-15 14:09+0100\n"
"Last-Translator: duck <duck@mail.i2p>\n"
"Language-Team: duck <duck@mail.i2p>\n"
@@ -18,141 +18,141 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
#: ../java/src/net/i2p/i2ptunnel/web/EditBean.java:350
#: ../java/src/net/i2p/i2ptunnel/web/EditBean.java:360
#: ../java/src/net/i2p/i2ptunnel/web/EditBean.java:363
#: ../java/src/net/i2p/i2ptunnel/web/EditBean.java:373
msgid "internal"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/web/EditBean.java:436
#: ../java/src/net/i2p/i2ptunnel/web/EditBean.java:449
#, java-format
msgid "{0} inbound, {0} outbound tunnel"
msgid_plural "{0} inbound, {0} outbound tunnels"
msgstr[0] ""
msgstr[1] ""
#: ../java/src/net/i2p/i2ptunnel/web/EditBean.java:440
#: ../java/src/net/i2p/i2ptunnel/web/EditBean.java:453
msgid "lower bandwidth and reliability"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/web/EditBean.java:442
#: ../java/src/net/i2p/i2ptunnel/web/EditBean.java:455
msgid "standard bandwidth and reliability"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/web/EditBean.java:444
#: ../java/src/net/i2p/i2ptunnel/web/EditBean.java:457
msgid "higher bandwidth and reliability"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:121
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:123
msgid "Tunnels are not initialized yet, please reload in two minutes."
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:194
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:196
msgid ""
"Invalid form submission, probably because you used the 'back' or 'reload' "
"button on your browser. Please resubmit."
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:196
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:198
msgid ""
"If the problem persists, verify that you have cookies enabled in your "
"browser."
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:242
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:244
msgid "Configuration reloaded for all tunnels"
msgstr ""
#. and give them something to look at in any case
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:255
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:257
msgid "Starting tunnel"
msgstr ""
#. and give them something to look at in any case
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:268
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:270
msgid "Stopping tunnel"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:334
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:336
msgid "Configuration changes saved"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:337
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:339
msgid "Failed to save configuration"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:459
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:461
msgid "New Tunnel"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:482
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:492
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:609
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:484
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:494
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:611
msgid "Port not set"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:485
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:611
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:487
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:613
msgid "Invalid port"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:488
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:490
msgid "Warning - ports less than 1024 are not recommended"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:504
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:506
msgid "Standard client"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:505
msgid "HTTP client"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:506
msgid "IRC client"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:507
msgid "Standard server"
msgid "HTTP/HTTPS client"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:508
msgid "HTTP server"
msgid "IRC client"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:509
msgid "SOCKS 4/4a/5 proxy"
msgid "Standard server"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:510
msgid "SOCKS IRC proxy"
msgid "HTTP server"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:511
msgid "CONNECT/SSL/HTTPS proxy"
msgid "SOCKS 4/4a/5 proxy"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:512
msgid "IRC server"
msgid "SOCKS IRC proxy"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:513
msgid "Streamr client"
msgid "CONNECT/SSL/HTTPS proxy"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:514
msgid "Streamr server"
msgid "IRC server"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:515
msgid "Streamr client"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:516
msgid "Streamr server"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:517
msgid "HTTP bidir"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:603
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:605
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:313
msgid "Host not set"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:605
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:607
msgid "Invalid address"
msgstr ""
@@ -188,7 +188,7 @@ msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:137
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:137
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:255
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:413
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:422
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:330
msgid "Description"
msgstr ""
@@ -206,7 +206,7 @@ msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:154
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:167
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:208
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:223
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:170
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:191
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:236
@@ -225,202 +225,211 @@ msgid "Outproxies"
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:203
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:378
msgid "Tunnel Destination"
msgid "SSL Outproxies"
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:215
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:382
msgid "name, name:port, or destination"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:209
msgid "Use Outproxy Plugin"
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:218
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:386
msgid "b32 not recommended"
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:224
msgid "Shared Client"
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:228
msgid ""
"(Share tunnels with other clients and irc/httpclients? Change requires "
"restart of client proxy)"
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:232
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:141
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:522
msgid "Auto Start"
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:236
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:244
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:213
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:251
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:259
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:145
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:526
msgid "(Check the Box for 'YES')"
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:240
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:218
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:378
msgid "Tunnel Destination"
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:230
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:382
msgid "name, name:port, or destination"
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:233
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:386
msgid "b32 not recommended"
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:239
msgid "Shared Client"
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:243
msgid ""
"(Share tunnels with other clients and irc/httpclients? Change requires "
"restart of client proxy)"
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:247
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:141
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:522
msgid "Auto Start"
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:255
msgid "Enable DCC"
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:248
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:263
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:266
msgid "Advanced networking options"
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:250
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:265
msgid ""
"(NOTE: when this client proxy is configured to share tunnels, then these "
"options are for all the shared proxy clients!)"
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:252
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:267
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:268
msgid "Tunnel Options"
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:254
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:269
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:270
msgid "Length"
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:261
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:276
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:277
msgid "0 hop tunnel (no anonymity)"
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:265
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:280
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:281
msgid "1 hop tunnel (low anonymity)"
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:269
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:284
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:285
msgid "2 hop tunnel (medium anonymity)"
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:273
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:288
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:289
msgid "3 hop tunnel (high anonymity)"
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:281
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:296
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:297
msgid "hop tunnel (very poor performance)"
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:286
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:301
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:302
msgid "Variance"
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:293
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:308
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:309
msgid "0 hop variance (no randomisation, consistant performance)"
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:297
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:312
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:313
msgid ""
"+ 0-1 hop variance (medium additive randomisation, subtractive performance)"
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:301
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:316
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:317
msgid ""
"+ 0-2 hop variance (high additive randomisation, subtractive performance)"
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:305
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:320
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:321
msgid "+/- 0-1 hop variance (standard randomisation, standard performance)"
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:309
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:324
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:325
msgid "+/- 0-2 hop variance (not recommended)"
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:320
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:335
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:336
msgid "hop variance"
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:325
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:340
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:341
msgid "Count"
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:329
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:344
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:345
msgid "Backup Count"
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:336
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:351
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:352
msgid "0 backup tunnels (0 redundancy, no added resource usage)"
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:340
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:355
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:356
msgid "1 backup tunnel each direction (low redundancy, low resource usage)"
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:344
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:359
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:360
msgid ""
"2 backup tunnels each direction (medium redundancy, medium resource usage)"
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:348
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:363
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:364
msgid "3 backup tunnels each direction (high redundancy, high resource usage)"
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:356
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:371
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:372
msgid "backup tunnels"
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:363
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:378
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:379
msgid "Profile"
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:370
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:385
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:386
msgid "interactive connection"
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:374
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:389
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:390
msgid "bulk connection (downloads/websites/BT)"
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:376
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:391
msgid "Delay Connect"
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:380
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:395
msgid "for request/response connections"
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:384
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:399
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:394
msgid "Router I2CP Address"
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:386
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:401
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:159
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:396
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:413
msgid "Host"
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:394
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:409
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:165
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:404
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:273
@@ -429,107 +438,107 @@ msgstr ""
msgid "Port"
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:404
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:419
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:502
msgid "Reduce tunnel quantity when idle"
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:406
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:420
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:428
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:440
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:450
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:478
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:488
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:421
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:435
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:443
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:455
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:465
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:493
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:503
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:414
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:504
msgid "Enable"
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:410
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:425
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:508
msgid "Reduced tunnel count"
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:414
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:434
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:429
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:449
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:512
msgid "Idle minutes"
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:418
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:433
msgid "Close tunnels when idle"
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:424
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:439
msgid "New Keys on Reopen"
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:432
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:447
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:430
msgid "Disable"
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:438
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:453
msgid "Delay tunnel open until required"
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:448
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:463
msgid "Persistent private key"
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:454
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:469
msgid "File"
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:463
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:478
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:243
msgid "Local destination"
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:467
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:482
msgid "Local Base 32"
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:476
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:491
msgid "Local Authorization"
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:482
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:492
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:497
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:507
msgid "Username"
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:484
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:496
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:499
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:511
msgid "Password"
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:486
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:501
msgid "Outproxy Authorization"
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:503
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:518
msgid "Jump URL List"
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:509
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:524
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:548
msgid "Custom options"
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:513
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:528
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:552
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:702
msgid "Cancel"
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:517
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:532
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:556
msgid "Delete"
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:519
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:534
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:558
msgid "Save"
msgstr ""
@@ -780,7 +789,7 @@ msgid "New server tunnel"
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:265
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:423
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:432
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:223
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:265
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:295
@@ -790,7 +799,7 @@ msgid "Standard"
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:267
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:425
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:434
msgid "Create"
msgstr ""
@@ -815,11 +824,15 @@ msgstr ""
msgid "Destination"
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:408
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:395
msgid "internal plugin"
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:414
msgid "none"
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:421
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:430
msgid "New client tunnel"
msgstr ""

View File

@@ -12,8 +12,8 @@ msgid ""
msgstr ""
"Project-Id-Version: I2P\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-12-01 20:06+0000\n"
"PO-Revision-Date: 2014-01-05 19:47+0000\n"
"POT-Creation-Date: 2014-01-09 19:27+0000\n"
"PO-Revision-Date: 2014-02-05 22:26+0000\n"
"Last-Translator: sebx\n"
"Language-Team: Polish (http://www.transifex.com/projects/p/I2P/language/pl/)\n"
"MIME-Version: 1.0\n"
@@ -320,18 +320,18 @@ msgstr "tunel skoku (bardzo mała wydajność)"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:286
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:302
msgid "Variance"
msgstr ""
msgstr "Zmienność"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:293
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:309
msgid "0 hop variance (no randomisation, consistant performance)"
msgstr ""
msgstr "0 skoków zmiennych (brak randomizacji, stała wydajność)"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:297
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:313
msgid ""
"+ 0-1 hop variance (medium additive randomisation, subtractive performance)"
msgstr ""
msgstr "+ 0-1 zmienność przeskoków (średni dodatek randomizacji, subtraktywna wydajność)"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:301
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:317
@@ -352,7 +352,7 @@ msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:320
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:336
msgid "hop variance"
msgstr ""
msgstr "Zmienność przeskoków"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:325
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:341
@@ -444,8 +444,8 @@ msgstr "Zredukuj ilość tuneli podczas bezczynności"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:428
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:440
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:450
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:469
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:479
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:478
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:488
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:414
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:504
msgid "Enable"
@@ -487,54 +487,54 @@ msgstr ""
msgid "File"
msgstr "Plik"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:458
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:463
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:243
msgid "Local destination"
msgstr "Cel localny"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:462
msgid "(if known)"
msgstr "(jeżeli znane)"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:467
msgid "Local Base 32"
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:476
msgid "Local Authorization"
msgstr "Lokalna autoryzacja"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:473
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:483
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:482
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:492
msgid "Username"
msgstr "Użytkownik"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:475
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:487
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:484
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:496
msgid "Password"
msgstr "Hasło"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:477
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:486
msgid "Outproxy Authorization"
msgstr "Autoryzacja Outproxy"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:494
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:503
msgid "Jump URL List"
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:500
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:509
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:548
msgid "Custom options"
msgstr "Dodatkowe opcje"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:504
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:513
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:552
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:702
msgid "Cancel"
msgstr "Anuluj"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:508
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:517
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:556
msgid "Delete"
msgstr "Usuń"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:510
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:519
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:558
msgid "Save"
msgstr "Zapisz"
@@ -708,7 +708,7 @@ msgstr "Odśwież"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:109
msgid "Tunnel Wizard"
msgstr ""
msgstr "Kreator Tunelu"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:113
msgid "Stop All"
@@ -830,7 +830,7 @@ msgstr "Nowy tunel klienta"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:119
msgid "I2P Tunnel Manager - Tunnel Creation Wizard"
msgstr ""
msgstr "Menager Tunelu I2P - Kreator Tunelu"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:139
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:567
@@ -845,12 +845,12 @@ msgstr "Typ tunelu"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:151
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:601
msgid "Tunnel name and description"
msgstr ""
msgstr "Nazwa tunelu i opis"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:157
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:610
msgid "Tunnel destination"
msgstr ""
msgstr "Miejsce przeznaczenia tunelu"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:163
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:626
@@ -860,11 +860,11 @@ msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:169
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:652
msgid "Tunnel auto-start"
msgstr ""
msgstr "Auto-Start Tunnelu"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:175
msgid "Wizard completed"
msgstr ""
msgstr "Kreator zakończony"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:189
msgid ""
@@ -892,11 +892,11 @@ msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:197
msgid "Server Tunnel"
msgstr ""
msgstr "Tunnel Serwera"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:199
msgid "Client Tunnel"
msgstr ""
msgstr "Tunnel Klienta"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:217
msgid "There are several types of tunnels to choose from:"
@@ -1156,16 +1156,16 @@ msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:707
msgid "Previous"
msgstr ""
msgstr "Poprzedni"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:715
msgid "Save Tunnel"
msgstr ""
msgstr "Zapisz Tunnel"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:721
msgid "Finish"
msgstr ""
msgstr "Zakończ"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:727
msgid "Next"
msgstr ""
msgstr "Następny"

View File

@@ -4,6 +4,7 @@
# To contribute translations, see http://www.i2p2.de/newdevelopers
#
# Translators:
# kgtm <fabio.h.f.antunes@gmail.com>, 2014
# rafaelbf, 2013
# tuliouel, 2013
# wicked, 2012
@@ -12,8 +13,8 @@ msgstr ""
"Project-Id-Version: I2P\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-01-09 19:27+0000\n"
"PO-Revision-Date: 2014-01-09 19:27+0000\n"
"Last-Translator: kytv <killyourtv@i2pmail.org>\n"
"PO-Revision-Date: 2014-01-28 13:01+0000\n"
"Last-Translator: kgtm <fabio.h.f.antunes@gmail.com>\n"
"Language-Team: Portuguese (http://www.transifex.com/projects/p/I2P/language/pt/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -235,7 +236,7 @@ msgstr "Destino do Túnel"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:215
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:382
msgid "name, name:port, or destination"
msgstr ""
msgstr "nome, nome:porta, ou destino"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:218
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:386
@@ -293,22 +294,22 @@ msgstr "Comprimento"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:261
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:277
msgid "0 hop tunnel (no anonymity)"
msgstr ""
msgstr "0 saltos túnel (sem anonimato)"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:265
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:281
msgid "1 hop tunnel (low anonymity)"
msgstr ""
msgstr "1 saltos túnel (baixo anonimato)"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:269
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:285
msgid "2 hop tunnel (medium anonymity)"
msgstr ""
msgstr "2 saltos túnel (médio anonimato)"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:273
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:289
msgid "3 hop tunnel (high anonymity)"
msgstr ""
msgstr "3 saltos túnel (grande anonimato)"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:281
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:297
@@ -492,7 +493,7 @@ msgstr "Destino local"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:467
msgid "Local Base 32"
msgstr ""
msgstr "Base 32 do endereço local"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:476
msgid "Local Authorization"
@@ -551,7 +552,7 @@ msgstr "Nova configuração de servidor"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:179
msgid "Use SSL?"
msgstr ""
msgstr "Usar SSL?"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:222
msgid "Website name"
@@ -642,19 +643,19 @@ msgstr "Max. de conexões simultâneas (0 = ilimitado)"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:477
msgid "POST limits (0=unlimited)"
msgstr ""
msgstr "Limite de submissões HTTP POST (0 = ilimitado)"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:481
msgid "Per period"
msgstr ""
msgstr "Por período"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:485
msgid "Ban minutes"
msgstr ""
msgstr "Minutos de proibição"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:495
msgid "POST limit period (minutes)"
msgstr ""
msgstr "Período de limite submissões HTTP POST (minutos)"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:516
msgid "New Certificate type"

View File

@@ -2,23 +2,22 @@
# 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
#
#
# Translators:
# blueboy, 2013
# blueboy, 2013
# blueboy, 2013-2014
msgid ""
msgstr ""
"Project-Id-Version: I2P\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-01-09 18:16+0000\n"
"PO-Revision-Date: 2013-11-25 22:03+0000\n"
"POT-Creation-Date: 2014-01-09 19:27+0000\n"
"PO-Revision-Date: 2014-01-29 00:58+0000\n"
"Last-Translator: blueboy\n"
"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/I2P/"
"language/pt_BR/)\n"
"Language: pt_BR\n"
"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/I2P/language/pt_BR/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: pt_BR\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#: ../java/src/net/i2p/i2ptunnel/web/EditBean.java:350
@@ -47,7 +46,7 @@ msgstr ""
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:121
msgid "Tunnels are not initialized yet, please reload in two minutes."
msgstr ""
msgstr "Os túneis não foram inicializados ainda, por favor, recarregue em dois minutos."
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:194
msgid ""
@@ -59,7 +58,7 @@ msgstr ""
msgid ""
"If the problem persists, verify that you have cookies enabled in your "
"browser."
msgstr ""
msgstr "Se o problema persistir, verifique se o seu navegador está configurado para permitir cookies."
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:242
msgid "Configuration reloaded for all tunnels"
@@ -68,12 +67,12 @@ msgstr ""
#. and give them something to look at in any case
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:255
msgid "Starting tunnel"
msgstr ""
msgstr "Inicializando túnel"
#. and give them something to look at in any case
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:268
msgid "Stopping tunnel"
msgstr ""
msgstr "Parando túnel"
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:334
msgid "Configuration changes saved"
@@ -100,7 +99,7 @@ msgstr "Porta inválida"
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:488
msgid "Warning - ports less than 1024 are not recommended"
msgstr ""
msgstr "Aviso - portas abaixo de 1024 não são recomendadas"
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:504
msgid "Standard client"
@@ -250,7 +249,7 @@ msgstr "Cliente compartilhado"
msgid ""
"(Share tunnels with other clients and irc/httpclients? Change requires "
"restart of client proxy)"
msgstr ""
msgstr "(Compartilhar túneis com outros clientes e clientes irc/http? Alterar requer a reinicialização do proxy de cliente)"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:232
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:141
@@ -263,7 +262,7 @@ msgstr "Inicialização automática"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:145
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:526
msgid "(Check the Box for 'YES')"
msgstr ""
msgstr "(Selecione a caixa para 'SIM')"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:240
msgid "Enable DCC"
@@ -272,7 +271,7 @@ msgstr "Permitir DCC"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:248
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:266
msgid "Advanced networking options"
msgstr ""
msgstr "Opções de rede avançadas"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:250
msgid ""
@@ -421,7 +420,7 @@ msgstr "Endereço I2CP do roteador"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:396
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:413
msgid "Host"
msgstr ""
msgstr "Host"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:394
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:165
@@ -471,7 +470,7 @@ msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:432
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:430
msgid "Disable"
msgstr ""
msgstr "Desabilitar"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:438
msgid "Delay tunnel open until required"
@@ -571,7 +570,7 @@ msgstr "Adicionar ao livro de endereços local"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:260
msgid "Hostname Signature"
msgstr ""
msgstr "Assinatura do nome do host"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:412
msgid "Encrypt Leaseset"
@@ -698,7 +697,7 @@ msgstr "Gerenciador de túneis I2P - Lista"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:97
msgid "Status Messages"
msgstr ""
msgstr "Mensagens de Estado"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:101
msgid "Refresh"
@@ -722,7 +721,7 @@ msgstr "Reinicializar todos"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:124
msgid "I2P Server Tunnels"
msgstr ""
msgstr "Túneis de servidor I2P"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:128
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:149
@@ -740,7 +739,7 @@ msgstr "Mostrar previsão"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:279
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:320
msgid "Status"
msgstr ""
msgstr "Estado"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:192
msgid "Base32 Address"
@@ -799,7 +798,7 @@ msgstr "Criar"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:269
msgid "I2P Client Tunnels"
msgstr ""
msgstr "Túneis de cliente I2P"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:277
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:306
@@ -866,20 +865,20 @@ msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:189
msgid ""
"This wizard will take you through the various options available for creating "
"tunnels in I2P."
"This wizard will take you through the various options available for creating"
" tunnels in I2P."
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:191
msgid ""
"The first thing to decide is whether you want to create a server or a client "
"tunnel."
"The first thing to decide is whether you want to create a server or a client"
" tunnel."
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:193
msgid ""
"If you need to connect to a remote service, such as an IRC server inside I2P "
"or a code repository, then you will require a CLIENT tunnel."
"If you need to connect to a remote service, such as an IRC server inside I2P"
" or a code repository, then you will require a CLIENT tunnel."
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:195
@@ -918,8 +917,8 @@ msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:231
msgid ""
"Set your browser to use this tunnel as an http proxy, or set your "
"\"http_proxy\" environment variable for command-line applications in GNU/"
"Linux."
"\"http_proxy\" environment variable for command-line applications in "
"GNU/Linux."
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:233
@@ -946,7 +945,7 @@ msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:241
msgid "A tunnel that implements the SOCKS protocol."
msgstr ""
msgstr "Um túnel que implementa o protocolo SOCKS."
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:243
msgid ""
@@ -982,7 +981,7 @@ msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:253
msgid "A client tunnel that implements the HTTP CONNECT command."
msgstr ""
msgstr "Um túnel de cliente que implementa o comando HTTP CONNECT."
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:255
msgid ""
@@ -1137,7 +1136,7 @@ msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:565
msgid "Below is a summary of the options you chose:"
msgstr ""
msgstr "Abaixo um resumo das opções que você escolheu:"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:663
msgid ""
@@ -1167,6 +1166,3 @@ msgstr "Terminar"
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:727
msgid "Next"
msgstr "Próximo"
#~ msgid "(if known)"
#~ msgstr "(se conhecido)"

View File

@@ -126,12 +126,31 @@ public interface I2PSocketManager {
* Ping the specified peer, returning true if they replied to the ping within
* the timeout specified, false otherwise. This call blocks.
*
* Uses the ports from the default options.
*
* @param peer Destination to ping
* @param timeoutMs timeout in ms
* @param timeoutMs timeout in ms, greater than zero
* @throws IllegalArgumentException
* @return success or failure
*/
public boolean ping(Destination peer, long timeoutMs);
/**
* Ping the specified peer, returning true if they replied to the ping within
* the timeout specified, false otherwise. This call blocks.
*
* Uses the ports specified.
*
* @param peer Destination to ping
* @param localPort 0 - 65535
* @param remotePort 0 - 65535
* @param timeoutMs timeout in ms, greater than zero
* @return success or failure
* @throws IllegalArgumentException
* @since 0.9.12
*/
public boolean ping(Destination peer, int localPort, int remotePort, long timeoutMs);
public String getName();
public void setName(String name);

View File

@@ -14,6 +14,7 @@ import net.i2p.client.I2PClient;
import net.i2p.client.I2PClientFactory;
import net.i2p.client.I2PSession;
import net.i2p.client.I2PSessionException;
import net.i2p.crypto.SigType;
import net.i2p.util.Log;
/**
@@ -26,7 +27,7 @@ public class I2PSocketManagerFactory {
public static final String PROP_MANAGER = "i2p.streaming.manager";
public static final String DEFAULT_MANAGER = "net.i2p.client.streaming.impl.I2PSocketManagerFull";
/**
* Create a socket manager using a brand new destination connected to the
* I2CP router on the local machine on the default port (7654).
@@ -79,9 +80,9 @@ public class I2PSocketManagerFactory {
*/
public static I2PSocketManager createManager(String i2cpHost, int i2cpPort, Properties opts) {
I2PClient client = I2PClientFactory.createClient();
ByteArrayOutputStream keyStream = new ByteArrayOutputStream(512);
ByteArrayOutputStream keyStream = new ByteArrayOutputStream(1024);
try {
client.createDestination(keyStream);
client.createDestination(keyStream, getSigType(opts));
ByteArrayInputStream in = new ByteArrayInputStream(keyStream.toByteArray());
return createManager(in, i2cpHost, i2cpPort, opts);
} catch (IOException ioe) {
@@ -168,9 +169,9 @@ public class I2PSocketManagerFactory {
int i2cpPort, Properties opts) throws I2PSessionException {
if (myPrivateKeyStream == null) {
I2PClient client = I2PClientFactory.createClient();
ByteArrayOutputStream keyStream = new ByteArrayOutputStream(512);
ByteArrayOutputStream keyStream = new ByteArrayOutputStream(1024);
try {
client.createDestination(keyStream);
client.createDestination(keyStream, getSigType(opts));
} catch (Exception e) {
throw new I2PSessionException("Error creating keys", e);
}
@@ -257,6 +258,23 @@ public class I2PSocketManagerFactory {
return i2cpPort;
}
/**
* @param opts may be null
* @since 0.9.12
*/
private static SigType getSigType(Properties opts) {
if (opts != null) {
String st = opts.getProperty(I2PClient.PROP_SIGTYPE);
if (st != null) {
SigType rv = SigType.parseSigType(st);
if (rv != null)
return rv;
getLog().error("Unsupported sig type " + st);
}
}
return I2PClient.DEFAULT_SIGTYPE;
}
/** @since 0.9.7 */
private static Log getLog() {
return I2PAppContext.getGlobalContext().logManager().getLog(I2PSocketManagerFactory.class);

View File

@@ -17,12 +17,16 @@ import java.util.StringTokenizer;
import java.util.concurrent.ConcurrentHashMap;
import net.i2p.I2PAppContext;
import net.i2p.app.ClientAppManager;
import net.i2p.app.ClientAppState;
import static net.i2p.app.ClientAppState.*;
import net.i2p.crypto.SU3File;
import net.i2p.crypto.TrustedUpdate;
import net.i2p.data.DataHelper;
import net.i2p.router.Router;
import net.i2p.router.RouterContext;
import net.i2p.router.RouterVersion;
import net.i2p.router.app.RouterApp;
import net.i2p.router.web.ConfigServiceHandler;
import net.i2p.router.web.ConfigUpdateHandler;
import net.i2p.router.web.Messages;
@@ -50,7 +54,7 @@ import net.i2p.util.VersionComparator;
*
* @since 0.9.4
*/
public class ConsoleUpdateManager implements UpdateManager {
public class ConsoleUpdateManager implements UpdateManager, RouterApp {
private final RouterContext _context;
private final Log _log;
@@ -68,6 +72,8 @@ public class ConsoleUpdateManager implements UpdateManager {
private final Map<UpdateItem, Version> _installed;
private final boolean _allowTorrent;
private static final DecimalFormat _pct = new DecimalFormat("0.0%");
private final ClientAppManager _cmgr;
private volatile ClientAppState _state = UNINITIALIZED;
private volatile String _status;
@@ -77,8 +83,12 @@ public class ConsoleUpdateManager implements UpdateManager {
private static final long TASK_CLEANER_TIME = 15*60*1000;
private static final String PROP_UNSIGNED_AVAILABLE = "router.updateUnsignedAvailable";
public ConsoleUpdateManager(RouterContext ctx) {
/**
* @param args ignored
*/
public ConsoleUpdateManager(RouterContext ctx, ClientAppManager listener, String[] args) {
_context = ctx;
_cmgr = listener;
_log = ctx.logManager().getLog(ConsoleUpdateManager.class);
_registeredUpdaters = new ConcurrentHashSet<RegisteredUpdater>();
_registeredCheckers = new ConcurrentHashSet<RegisteredChecker>();
@@ -98,13 +108,34 @@ public class ConsoleUpdateManager implements UpdateManager {
//_allowTorrent = RouterVersion.BUILD != 0 || _context.random().nextInt(100) < 60;
// Finally, for 0.9.12, 18 months later...
_allowTorrent = true;
_state = INITIALIZED;
}
/**
* @return null if not found
*/
public static ConsoleUpdateManager getInstance() {
return (ConsoleUpdateManager) I2PAppContext.getGlobalContext().updateManager();
ClientAppManager cmgr = I2PAppContext.getGlobalContext().clientAppManager();
if (cmgr == null)
return null;
return (ConsoleUpdateManager) cmgr.getRegisteredApp(APP_NAME);
}
/////// ClientApp methods
/**
* UpdateManager interface
*/
public void start() {
startup();
}
/**
* ClientApp interface
* @since 0.9.12
*/
public synchronized void startup() {
changeState(STARTING);
notifyInstalled(NEWS, "", Long.toString(NewsHelper.lastUpdated(_context)));
notifyInstalled(ROUTER_SIGNED, "", RouterVersion.VERSION);
notifyInstalled(ROUTER_SIGNED_SU3, "", RouterVersion.VERSION);
@@ -118,7 +149,6 @@ public class ConsoleUpdateManager implements UpdateManager {
notifyInstalled(PLUGIN, plugin, ver);
}
_context.registerUpdateManager(this);
DummyHandler dh = new DummyHandler(_context, this);
register((Checker)dh, TYPE_DUMMY, METHOD_DUMMY, 0);
register((Updater)dh, TYPE_DUMMY, METHOD_DUMMY, 0);
@@ -162,10 +192,27 @@ public class ConsoleUpdateManager implements UpdateManager {
//register((Updater)puh, PLUGIN, FILE, 0);
new NewsTimerTask(_context, this);
_context.simpleScheduler().addPeriodicEvent(new TaskCleaner(), TASK_CLEANER_TIME);
changeState(RUNNING);
if (_cmgr != null)
_cmgr.register(this);
}
/**
* UpdateManager interface
*/
public void shutdown() {
_context.unregisterUpdateManager(this);
shutdown(null);
}
/**
* ClientApp interface
* @param args ignored
* @since 0.9.12
*/
public synchronized void shutdown(String[] args) {
if (_state == STOPPED)
return;
changeState(STOPPING);
stopChecks();
stopUpdates();
_registeredUpdaters.clear();
@@ -173,6 +220,30 @@ public class ConsoleUpdateManager implements UpdateManager {
_available.clear();
_downloaded.clear();
_installed.clear();
changeState(STOPPED);
}
/** @since 0.9.12 */
public ClientAppState getState() {
return _state;
}
/** @since 0.9.12 */
public String getName() {
return APP_NAME;
}
/** @since 0.9.12 */
public String getDisplayName() {
return "Console Update Manager";
}
/////// end ClientApp methods
private synchronized void changeState(ClientAppState state) {
_state = state;
if (_cmgr != null)
_cmgr.notify(this, state, null, null);
}
/**

View File

@@ -21,8 +21,14 @@ import static net.i2p.update.UpdateMethod.*;
*/
class NewsHandler extends UpdateHandler implements Checker {
/** @since 0.7.14 not configurable */
private static final String BACKUP_NEWS_URL = "http://www.i2p2.i2p/_static/news/news.xml";
/**
* Changed in 0.9.11 to the b32 for psi.i2p, run by psi.
* We may be able to change it to psi.i2p in a future release after
* the hostname propagates.
*
* @since 0.7.14 not configurable
*/
private static final String BACKUP_NEWS_URL = "http://avviiexdngd32ccoy4kuckvc3mkf53ycvzbz6vz75vzhv4tbpk5a.b32.i2p/news.xml";
public NewsHandler(RouterContext ctx, ConsoleUpdateManager mgr) {
super(ctx, mgr);

View File

@@ -370,7 +370,7 @@ public class ConfigClientsHandler extends FormHandler {
* @param app null for a new install
*/
private void installPlugin(String app, String url) {
ConsoleUpdateManager mgr = (ConsoleUpdateManager) _context.updateManager();
ConsoleUpdateManager mgr = UpdateHandler.updateManager(_context);
if (mgr == null) {
addFormError("Update manager not registered, cannot install");
return;
@@ -397,7 +397,7 @@ public class ConfigClientsHandler extends FormHandler {
}
private void checkPlugin(String app) {
ConsoleUpdateManager mgr = (ConsoleUpdateManager) _context.updateManager();
ConsoleUpdateManager mgr = UpdateHandler.updateManager(_context);
if (mgr == null) {
addFormError("Update manager not registered, cannot check");
return;

View File

@@ -90,8 +90,11 @@ public class ConfigClientsHelper extends HelperBase {
/** clients */
public String getForm1() {
StringBuilder buf = new StringBuilder(1024);
buf.append("<table>\n");
buf.append("<tr><th align=\"right\">" + _("Client") + "</th><th>" + _("Run at Startup?") + "</th><th>" + _("Control") + "</th><th align=\"left\">" + _("Class and arguments") + "</th></tr>\n");
buf.append("<table>\n" +
"<tr><th align=\"right\">").append(_("Client")).append("</th><th>")
.append(_("Run at Startup?")).append("</th><th>")
.append(_("Control")).append("</th><th align=\"left\">")
.append(_("Class and arguments")).append("</th></tr>\n");
List<ClientAppConfig> clients = ClientAppConfig.getClientApps(_context);
for (int cur = 0; cur < clients.size(); cur++) {
@@ -134,8 +137,11 @@ public class ConfigClientsHelper extends HelperBase {
/** webapps */
public String getForm2() {
StringBuilder buf = new StringBuilder(1024);
buf.append("<table>\n");
buf.append("<tr><th align=\"right\">" + _("WebApp") + "</th><th>" + _("Run at Startup?") + "</th><th>" + _("Control") + "</th><th align=\"left\">" + _("Description") + "</th></tr>\n");
buf.append("<table>\n" +
"<tr><th align=\"right\">").append(_("WebApp")).append("</th><th>")
.append(_("Run at Startup?")).append("</th><th>")
.append(_("Control")).append("</th><th align=\"left\">")
.append(_("Description")).append("</th></tr>\n");
Properties props = RouterConsoleRunner.webAppProperties(_context);
Set<String> keys = new TreeSet(props.keySet());
for (String name : keys) {
@@ -159,8 +165,11 @@ public class ConfigClientsHelper extends HelperBase {
/** plugins */
public String getForm3() {
StringBuilder buf = new StringBuilder(1024);
buf.append("<table>\n");
buf.append("<tr><th align=\"right\">" + _("Plugin") + "</th><th>" + _("Run at Startup?") + "</th><th>" + _("Control") + "</th><th align=\"left\">" + _("Description") + "</th></tr>\n");
buf.append("<table>\n" +
"<tr><th align=\"right\">").append(_("Plugin")).append("</th><th>")
.append(_("Run at Startup?")).append("</th><th>")
.append(_("Control")).append("</th><th align=\"left\">")
.append(_("Description")).append("</th></tr>\n");
Properties props = PluginStarter.pluginProperties();
Set<String> keys = new TreeSet(props.keySet());
for (String name : keys) {
@@ -273,15 +282,20 @@ public class ConfigClientsHelper extends HelperBase {
// The icons were way too much, so there's an X in each button class,
// remove if you wnat to put them back
if (showStartButton && (!ro) && !edit) {
buf.append("<button type=\"submit\" class=\"Xaccept\" name=\"action\" value=\"Start ").append(index).append("\" >" + _("Start") + "<span class=hide> ").append(index).append("</span></button>");
buf.append("<button type=\"submit\" class=\"Xaccept\" name=\"action\" value=\"Start ").append(index).append("\" >")
.append(_("Start")).append("<span class=hide> ").append(index).append("</span></button>");
}
if (showStopButton && (!edit))
buf.append("<button type=\"submit\" class=\"Xstop\" name=\"action\" value=\"Stop ").append(index).append("\" >" + _("Stop") + "<span class=hide> ").append(index).append("</span></button>");
buf.append("<button type=\"submit\" class=\"Xstop\" name=\"action\" value=\"Stop ").append(index).append("\" >")
.append(_("Stop")).append("<span class=hide> ").append(index).append("</span></button>");
if (showEditButton && (!edit) && !ro)
buf.append("<button type=\"submit\" class=\"Xadd\" name=\"edit\" value=\"Edit ").append(index).append("\" >" + _("Edit") + "<span class=hide> ").append(index).append("</span></button>");
buf.append("<button type=\"submit\" class=\"Xadd\" name=\"edit\" value=\"Edit ").append(index).append("\" >")
.append(_("Edit")).append("<span class=hide> ").append(index).append("</span></button>");
if (showUpdateButton && (!edit) && !ro) {
buf.append("<button type=\"submit\" class=\"Xcheck\" name=\"action\" value=\"Check ").append(index).append("\" >" + _("Check for updates") + "<span class=hide> ").append(index).append("</span></button>");
buf.append("<button type=\"submit\" class=\"Xdownload\" name=\"action\" value=\"Update ").append(index).append("\" >" + _("Update") + "<span class=hide> ").append(index).append("</span></button>");
buf.append("<button type=\"submit\" class=\"Xcheck\" name=\"action\" value=\"Check ").append(index).append("\" >")
.append(_("Check for updates")).append("<span class=hide> ").append(index).append("</span></button>");
buf.append("<button type=\"submit\" class=\"Xdownload\" name=\"action\" value=\"Update ").append(index).append("\" >")
.append(_("Update")).append("<span class=hide> ").append(index).append("</span></button>");
}
if (showDeleteButton && (!edit) && !ro) {
buf.append("<button type=\"submit\" class=\"Xdelete\" name=\"action\" value=\"Delete ").append(index)

View File

@@ -45,9 +45,9 @@ public class ConfigLoggingHelper extends HelperBase {
buf.append(prefix).append('=').append(level).append('\n');
}
buf.append("</textarea><br>\n");
buf.append("<i>" + _("Add additional logging statements above. Example: net.i2p.router.tunnel=WARN") + "</i><br>");
buf.append("<i>" + _("Or put entries in the logger.config file. Example: logger.record.net.i2p.router.tunnel=WARN") + "</i><br>");
buf.append("<i>" + _("Valid levels are DEBUG, INFO, WARN, ERROR, CRIT") + "</i>\n");
buf.append("<i>").append(_("Add additional logging statements above. Example: net.i2p.router.tunnel=WARN")).append("</i><br>");
buf.append("<i>").append(_("Or put entries in the logger.config file. Example: logger.record.net.i2p.router.tunnel=WARN")).append("</i><br>");
buf.append("<i>").append(_("Valid levels are DEBUG, INFO, WARN, ERROR, CRIT")).append("</i>\n");
/****
// this is too big and ugly

View File

@@ -103,11 +103,33 @@ public class ConfigUIHelper extends HelperBase {
/** todo sort by translated string */
public String getLangSettings() {
StringBuilder buf = new StringBuilder(512);
String current = Messages.getLanguage(_context);
String clang = Messages.getLanguage(_context);
String current = clang;
String country = Messages.getCountry(_context);
if (country != null && country.length() > 0)
current += '_' + country;
// find best match
boolean found = false;
for (int i = 0; i < langs.length; i++) {
if (langs[i][0].equals(current)) {
found = true;
break;
}
}
if (!found) {
if (country != null && country.length() > 0) {
current = clang;
for (int i = 0; i < langs.length; i++) {
if (langs[i][0].equals(current)) {
found = true;
break;
}
}
}
if (!found)
current = "en";
}
StringBuilder buf = new StringBuilder(512);
for (int i = 0; i < langs.length; i++) {
// we use "lang" so it is set automagically in CSSHelper
buf.append("<input type=\"radio\" class=\"optbox\" name=\"lang\" ");

View File

@@ -67,7 +67,7 @@ public class ConfigUpdateHandler extends FormHandler {
"http://inr.i2p/i2p/i2pupdate.su2\r\n" +
"http://meeh.i2p/i2pupdate/i2pupdate.su2\r\n" +
"http://stats.i2p/i2p/i2pupdate.su2\r\n" +
"http://www.i2p2.i2p/_static/i2pupdate.su2\r\n" +
// "http://www.i2p2.i2p/_static/i2pupdate.su2\r\n" +
"http://update.dg.i2p/files/i2pupdate.su2\r\n" +
"http://update.killyourtv.i2p/i2pupdate.su2\r\n" +
"http://update.postman.i2p/i2pupdate.su2" ;
@@ -77,7 +77,7 @@ public class ConfigUpdateHandler extends FormHandler {
"http://inr.i2p/i2p/i2pupdate.sud\r\n" +
"http://meeh.i2p/i2pupdate/i2pupdate.sud\r\n" +
"http://stats.i2p/i2p/i2pupdate.sud\r\n" +
"http://www.i2p2.i2p/_static/i2pupdate.sud\r\n" +
// "http://www.i2p2.i2p/_static/i2pupdate.sud\r\n" +
"http://update.dg.i2p/files/i2pupdate.sud\r\n" +
"http://update.killyourtv.i2p/i2pupdate.sud\r\n" +
"http://update.postman.i2p/i2pupdate.sud" ;
@@ -111,7 +111,7 @@ public class ConfigUpdateHandler extends FormHandler {
"http://inr.i2p/i2p/i2pupdate.su3\r\n" +
"http://meeh.i2p/i2pupdate/i2pupdate.su3\r\n" +
"http://stats.i2p/i2p/i2pupdate.su3\r\n" +
"http://www.i2p2.i2p/_static/i2pupdate.su3\r\n" +
// "http://www.i2p2.i2p/_static/i2pupdate.su3\r\n" +
"http://update.dg.i2p/files/i2pupdate.su3\r\n" +
"http://update.killyourtv.i2p/i2pupdate.su3\r\n" +
"http://update.postman.i2p/i2pupdate.su3" ;
@@ -139,7 +139,7 @@ public class ConfigUpdateHandler extends FormHandler {
if (_action == null)
return;
if (_action.equals(_("Check for updates"))) {
ConsoleUpdateManager mgr = (ConsoleUpdateManager) _context.updateManager();
ConsoleUpdateManager mgr = UpdateHandler.updateManager(_context);
if (mgr == null) {
addFormError("Update manager not registered, cannot check");
return;

View File

@@ -115,9 +115,9 @@ public class ConfigUpdateHelper extends HelperBase {
buf.append("\" selected=\"selected");
if (PERIODS[i] == -1)
buf.append("\">" + _("Never") + "</option>\n");
buf.append("\">").append(_("Never")).append("</option>\n");
else
buf.append("\">" + _("Every") + " ").append(DataHelper.formatDuration2(PERIODS[i])).append("</option>\n");
buf.append("\">").append(_("Every")).append(' ').append(DataHelper.formatDuration2(PERIODS[i])).append("</option>\n");
}
buf.append("</select>\n");
return buf.toString();

View File

@@ -351,7 +351,7 @@ public class GraphHelper extends FormHandler {
try {
_out.write("<br><h3>" + _("Configure Graph Display") + " [<a href=\"configstats\">" + _("Select Stats") + "</a>]</h3>");
_out.write("<form action=\"graphs\" method=\"POST\">\n" +
"<input type=\"hidden\" name=\"action\" value=\"foo\">\n" +
"<input type=\"hidden\" name=\"action\" value=\"save\">\n" +
"<input type=\"hidden\" name=\"nonce\" value=\"" + nonce + "\" >\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=\"checked\" ") + "> ");
@@ -380,7 +380,7 @@ public class GraphHelper extends FormHandler {
if (persistent)
_out.write(" checked=\"checked\"");
_out.write(">" +
"<hr><div class=\"formaction\"><input type=\"submit\" class=\"acceot\" value=\"" + _("Save settings and redraw graphs") + "\"></div></form>");
"<hr><div class=\"formaction\"><input type=\"submit\" class=\"accept\" value=\"" + _("Save settings and redraw graphs") + "\"></div></form>");
} catch (IOException ioe) {
ioe.printStackTrace();
}
@@ -413,7 +413,8 @@ public class GraphHelper extends FormHandler {
*/
@Override
protected void processForm() {
saveSettings();
if ("save".equals(_action))
saveSettings();
}
/**

View File

@@ -23,6 +23,7 @@ import java.util.Map;
import java.util.Set;
import java.util.TreeSet;
import net.i2p.data.Base32;
import net.i2p.data.DataHelper;
import net.i2p.data.Destination;
import net.i2p.data.Hash;
@@ -167,6 +168,8 @@ public class NetDbRenderer {
median = dist;
}
buf.append(" Dist: <b>").append(fmt.format(biLog2(dist))).append("</b><br>");
buf.append(Base32.encode(key.getData())).append(".b32.i2p<br>");
buf.append("Sig type: ").append(dest.getSigningPublicKey().getType()).append("<br>");
buf.append("Routing Key: ").append(ls.getRoutingKey().toBase64());
buf.append("<br>");
buf.append("Encryption Key: ").append(ls.getEncryptionKey().toBase64().substring(0, 20)).append("...<br>");

View File

@@ -121,7 +121,7 @@ public class PluginStarter implements Runnable {
if (toUpdate.isEmpty())
return;
ConsoleUpdateManager mgr = (ConsoleUpdateManager) ctx.updateManager();
ConsoleUpdateManager mgr = UpdateHandler.updateManager(ctx);
if (mgr == null)
return;
if (mgr.isUpdateInProgress())

View File

@@ -645,7 +645,7 @@ public class RouterConsoleRunner implements RouterApp {
t.setPriority(Thread.NORM_PRIORITY - 1);
t.start();
ConsoleUpdateManager um = new ConsoleUpdateManager(_context);
ConsoleUpdateManager um = new ConsoleUpdateManager(_context, _mgr, null);
um.start();
if (PluginStarter.pluginsEnabled(_context)) {

View File

@@ -422,11 +422,11 @@ public class SummaryHelper extends HelperBase {
buf.append("<tr><td align=\"right\"><img src=\"/themes/console/images/");
if (_context.clientManager().shouldPublishLeaseSet(h))
buf.append("server.png\" alt=\"Server\" title=\"" + _("Server") + "\">");
buf.append("server.png\" alt=\"Server\" title=\"").append(_("Server")).append("\">");
else
buf.append("client.png\" alt=\"Client\" title=\"" + _("Client") + "\">");
buf.append("client.png\" alt=\"Client\" title=\"").append(_("Client")).append("\">");
buf.append("</td><td align=\"left\"><b><a href=\"tunnels#").append(h.toBase64().substring(0,4));
buf.append("\" target=\"_top\" title=\"" + _("Show tunnels") + "\">");
buf.append("\" target=\"_top\" title=\"").append(_("Show tunnels")).append("\">");
if (name.length() < 18)
buf.append(name);
else
@@ -861,7 +861,7 @@ public class SummaryHelper extends HelperBase {
.append("\"></td><td align=\"left\">")
.append(_(sectionNames.get(section)))
.append("</td><td align=\"right\"><input type=\"hidden\" name=\"order_")
.append(i + "_" + section)
.append(i).append('_').append(section)
.append("\" value=\"")
.append(i)
.append("\">");

View File

@@ -78,8 +78,17 @@ class SummaryListener implements RateSummaryListener {
//String names[] = _sample.getDsNames();
//System.out.println("Add " + val + " over " + eventCount + " for " + _name
// + " [" + names[0] + ", " + names[1] + "]");
} catch (IllegalArgumentException iae) {
// ticket #1186
// apparently a corrupt file, thrown from update()
_log.error("Error adding", iae);
String path = _isPersistent ? _db.getPath() : null;
stopListening();
if (path != null)
(new File(path)).delete();
} catch (IOException ioe) {
_log.error("Error adding", ioe);
stopListening();
} catch (RrdException re) {
// this can happen after the time slews backwards, so don't make it an error
// org.jrobin.core.RrdException: Bad sample timestamp 1264343107. Last update time was 1264343172, at least one second step is required

View File

@@ -1,7 +1,9 @@
package net.i2p.router.web;
import net.i2p.app.ClientAppManager;
import net.i2p.router.RouterContext;
import net.i2p.router.update.ConsoleUpdateManager;
import net.i2p.update.UpdateManager;
import net.i2p.update.UpdateType;
import static net.i2p.update.UpdateType.*;
import net.i2p.util.Log;
@@ -33,6 +35,17 @@ public class UpdateHandler {
_context = ctx;
_log = ctx.logManager().getLog(UpdateHandler.class);
}
/**
* @return null if not found
* @since 0.9.12
*/
public static ConsoleUpdateManager updateManager(RouterContext ctx) {
ClientAppManager cmgr = ctx.clientAppManager();
if (cmgr == null)
return null;
return (ConsoleUpdateManager) cmgr.getRegisteredApp(UpdateManager.APP_NAME);
}
/**
* Configure this bean to query a particular router context
@@ -75,7 +88,7 @@ public class UpdateHandler {
}
private void update(UpdateType type) {
ConsoleUpdateManager mgr = (ConsoleUpdateManager) _context.updateManager();
ConsoleUpdateManager mgr = updateManager(_context);
if (mgr == null)
return;
if (mgr.isUpdateInProgress(ROUTER_SIGNED) || mgr.isUpdateInProgress(ROUTER_UNSIGNED) ||

View File

@@ -26,7 +26,7 @@
<%=intl._("If reseeding has failed, you should first check your network connection.")%>
<p><b><%=intl._("The default settings will work for most people.")%></b>
<%=intl._("Change these only if HTTP is blocked by a restrictive firewall, reseed has failed, and you have access to an HTTP proxy.")%>
<%=intl._("See {0} for instructions on reseeding manually.", "<a href=\"http://www.i2p2.de/faq.html#manual_reseed\">" + intl._("the FAQ") + "</a>")%>
<%=intl._("See {0} for instructions on reseeding manually.", "<a href=\"https://geti2p.net/faq#manual_reseed\">" + intl._("the FAQ") + "</a>")%>
</p>
<div class="wideload">
<table border="0" cellspacing="5">

View File

@@ -30,7 +30,14 @@
/*
* Print out the status for the UpdateManager
*/
ctx.updateManager().renderStatusHTML(out);
net.i2p.app.ClientAppManager cmgr = ctx.clientAppManager();
if (cmgr != null) {
net.i2p.router.update.ConsoleUpdateManager umgr =
(net.i2p.router.update.ConsoleUpdateManager) cmgr.getRegisteredApp(net.i2p.update.UpdateManager.APP_NAME);
if (umgr != null) {
umgr.renderStatusHTML(out);
}
}
/*
* Print out the status for the AppManager

View File

@@ -34,7 +34,9 @@
%><%=intl._("Please report bugs on {0} or {1}.",
"<a href=\"http://trac.i2p2.i2p/newticket\">trac.i2p2.i2p</a>",
"<a href=\"https://trac.i2p2.de/newticket\">trac.i2p2.de</a>")%>
<!--
<%=intl._("You may use the username \"guest\" and password \"guest\" if you do not wish to register.")%>
-->
<p><%=intl._("Please include this information in bug reports")%>:
</p></div><div class="sorry" id="warning2">
<h3><%=intl._("Error Details")%></h3>

View File

@@ -1,9 +1,9 @@
If you'd like to help improve or translate the documentation, or
help with other aspects of the project, please see the documentation for
<a href="http://i2p-projekt.i2p/getinvolved.html">volunteers.</a>
<a href="http://i2p-projekt.i2p/en/get-involved">volunteers.</a>
</p><p>Further assistance is available here:</p>
<ul class="links">
<li class="tidylist"><a href="http://i2p-projekt.i2p/faq.html">FAQ on i2p-projekt.i2p</a></li>
<li class="tidylist"><a href="http://i2p-projekt.i2p/faq_de.html">Deutsch FAQ</a>.</li></ul>
<li class="tidylist"><a href="http://i2p-projekt.i2p/en/faq">FAQ on i2p-projekt.i2p</a></li>
<li class="tidylist"><a href="http://i2p-projekt.i2p/de/faq">Deutsch FAQ</a>.</li></ul>
<br>You may also try the <a href="http://forum.i2p/">I2P forum</a>
or IRC.

View File

@@ -17,10 +17,10 @@
<div class="main" id="main" dir="rtl" lang="ar"><p>
اذا رغبت في المساعدة أو ترجمة الوثائق، أو المساعدة في أشياء أخرى، انظر اسفله
<a href="http://i2p-projekt.i2p/getinvolved.html">تطوع</a>
<a href="http://i2p-projekt.i2p/ar/get-involved">تطوع</a>
</p>المزيد من المساعدة هنا:
<ul class="links">
<li class="tidylist"><a href="http://i2p-projekt.i2p/faq.html">ابئلة شائعة i2p-projekt.i2p</a>
<li class="tidylist"><a href="http://i2p-projekt.i2p/ar/faq">ابئلة شائعة i2p-projekt.i2p</a>
<br>يمكن ايضا<a href="http://forum.i2p/">I2P منتدى</a>
او بالدردشة على IRC.</li></ul>
@@ -151,7 +151,7 @@ Apache's javax.servlet (javax.servlet.jar) implementation.
This product includes software developed by the Apache Software Foundation
(http://www.apache.org/).</p>
<p>Another application you can see on this webpage is <a href="http://i2p-projekt.i2p/i2ptunnel">I2PTunnel</a>
<p>Another application you can see on this webpage is <a href="http://i2p-projekt.i2p/ar/docs/api/i2ptunnel">I2PTunnel</a>
(your <a href="i2ptunnel/" target="_blank">web interface</a>) - a GPL'ed application written by mihi that
lets you tunnel normal TCP/IP traffic over I2P (such as the eepproxy and the irc proxy). There is also a
<a href="http://susi.i2p/">susimail</a> web based mail client <a href="susimail/susimail">available</a> on
@@ -159,15 +159,15 @@ the console, which is a GPL'ed application written by susi23. The addressbook a
<a href="http://ragnarok.i2p/">Ragnarok</a> helps maintain your hosts.txt files (see ./addressbook/ for
more information).</p>
<p>The router by default also includes human's public domain <a href="http://i2p-projekt.i2p/sam">SAM</a> bridge,
<p>The router by default also includes human's public domain <a href="http://i2p-projekt.i2p/ar/docs/api/sam">SAM</a> bridge,
which other client applications (such the <a href="http://duck.i2p/i2p-bt/">bittorrent port</a>) can use.
There is also an optimized library for doing large number calculations - jbigi - which in turn uses the
LGPL licensed <a href="http://swox.com/gmp/">GMP</a> library, tuned for various PC architectures.
Launchers for windows users are built with <a href="http://launch4j.sourceforge.net/">Launch4J</a>, and
the installer is built with <a href="http://www.izforge.com/izpack/">IzPack</a>. For
details on other applications available, as well as their licenses, please see the
<a href="http://i2p-projekt.i2p/licenses">license policy</a>. Source for the I2P code and most bundled
client applications can be found on our <a href="http://i2p-projekt.i2p/download">download page</a>.
<a href="http://i2p-projekt.i2p/ar/get-involved/develop/licenses">license policy</a>. Source for the I2P code and most bundled
client applications can be found on our <a href="http://i2p-projekt.i2p/ar/download">download page</a>.
.</p>
<h2>Change Log</h2>

View File

@@ -13,15 +13,15 @@
<%@include file="summaryajax.jsi" %>
</head><body onload="initAjax()">
<%@include file="summary.jsi" %>
Traduction de mars 2011 (magma@mail.i2p)
<!-- 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://i2p-projekt.i2p/getinvolved_fr.html">volontaires</a>.
la page consacrée aux <a href="http://i2p-projekt.i2p/fr/get-involved">volontaires</a>.
</p>D'autres détails sont disponibles ici:
<ul class="links">
<li class="tidylist"><a href="http://i2p-projekt.i2p/faq.html">FAQ en anglais sur i2p-projekt.i2p</a></li>
<li class="tidylist"><a href="http://i2p-projekt.i2p/faq_fr.html">les FAQ en français</a>.</li></ul>
<li class="tidylist"><a href="http://i2p-projekt.i2p/en/faq">FAQ en anglais sur i2p-projekt.i2p</a></li>
<li class="tidylist"><a href="http://i2p-projekt.i2p/fr/faq">les FAQ en français</a>.</li></ul>
<br>Il y a aussi le <a href="http://forum.i2p/">forum I2P</a>
et l'IRC.
@@ -131,22 +131,22 @@ configuration), vous permettant de déployer dans votre routeur des applications
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://i2p-projekt.i2p/i2ptunnel">I2PTunnel</a>
<p>Une autre application visible sur cette page: <a href="http://i2p-projekt.i2p/fr/docs/api/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://i2p-projekt.i2p/sam">SAM</a> du domaine public de l'humanité,
<p>Le routeur inclu aussi par défaut le pont <a href="http://i2p-projekt.i2p/fr/docs/api/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://i2p-projekt.i2p/licenses">politique de licences</a>.
leurs licences respectives, référez-vous à notre <a href="http://i2p-projekt.i2p/fr/get-involved/develop/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://i2p-projekt.i2p/download_fr">téléchargements</a>.
<a href="http://i2p-projekt.i2p/fr/download">téléchargements</a>.
.</p>
<h2>Historique des évolutions</h2>

View File

@@ -17,10 +17,10 @@
<div class="main" id="main"><p>
Als je wilt helpen om de documentatie te verbeteren of vertalen, of wilt helpen
met andere aspecten van het project, zie dan de documentatie voor
<a href="http://i2p-projekt.i2p/getinvolved.html">vrijwilligers.</a>
<a href="http://i2p-projekt.i2p/nl/get-involved">vrijwilligers.</a>
</p>Verdere ondersteuning is hier beschikbaar:
<ul class="links">
<li class="tidylist"><a href="http://i2p-projekt.i2p/faq.html">FAQ op i2p-projekt.i2p</a></li>
<li class="tidylist"><a href="http://i2p-projekt.i2p/nl/faq">FAQ op i2p-projekt.i2p</a></li>
</ul>
<br>Je kunt ook het <a href="http://forum.i2p/">I2P forum</a>
of IRC proberen.
@@ -168,7 +168,7 @@ Dit product bevat software ontwikkeld door de Apache Software Foundation
(http://www.apache.org/).</p>
<p>Een andere applicatie op deze webpagina is <a
href="http://i2p-projekt.i2p/i2ptunnel">I2PTunnel</a> (je <a href="i2ptunnel/"
href="http://i2p-projekt.i2p/nl/docs/api/i2ptunnel">I2PTunnel</a> (je <a href="i2ptunnel/"
target="_blank">web interface</a>) - een GPL applicatie geschreven door mihi
die normaal TCP/IP verkeer over I2P laat tunnelen (zoals de eepproxy en de irc
proxy). Er is ook een <a href="http://susi.i2p/">susimail</a> web based mail
@@ -178,7 +178,7 @@ GPL applicatie geschreven door susi23. De adresboek applicatie, geschreven door
hosts.txt bestanden (zie ./addressbook/ voor meer informatie).</p>
<p>De router bevat ook standaard human's public domain <a
href="http://i2p-projekt.i2p/sam">SAM</a> brug, welke andere client applicaties
href="http://i2p-projekt.i2p/nl/docs/api/sam">SAM</a> brug, welke andere client applicaties
(zoals de <a href="http://duck.i2p/i2p-bt/">bittorrent port</a>) kan gebruiken.
Er is ook een geoptimaliseerde library voor het uitvoeren van berekeningen met
grote getallen - jbigi - deze gebruikt de LGPL licensed <a
@@ -187,9 +187,9 @@ architecturen. Opstarters voor windows gebruikers zijn gemaakt met <a
href="http://launch4j.sourceforge.net/">Launch4J</a>, en de installer is
gemaakt met <a href="http://www.izforge.com/izpack/">IzPack</a>. Voor details
over andere beschikbare applicaties, en hun licenties, zie het <a
href="http://i2p-projekt.i2p/licenses">licentie beleid</a>. Broncode voor I2P en
href="http://i2p-projekt.i2p/nl/get-involved/develop/licenses">licentie beleid</a>. Broncode voor I2P en
de meeste gebundelde client applicaties kan gevonden worden op onze <a
href="http://i2p-projekt.i2p/download">download pagina</a>.</p>
href="http://i2p-projekt.i2p/nl/download">download pagina</a>.</p>
<h2>Release geschiedenis</h2>
<jsp:useBean class="net.i2p.router.web.ContentHelper" id="contenthelper" scope="request" />

View File

@@ -19,9 +19,9 @@
<div class="main" id="main">
<p> Если Вы хотите помочь в улучшении или переводе документации, если у Вас есть идеи, как еще помочь проекту, пожалуйста, загляните в раздел документации
<a href="http://i2p-projekt.i2p/getinvolved.html">как стать участником</a>. </p>
<a href="http://i2p-projekt.i2p/ru/get-involved">как стать участником</a>. </p>
<p>Дальнейшие инструкции доступны в <a href="http://i2p-projekt.i2p/faq.html">FAQ на i2p-projekt.i2p</a>
<p>Дальнейшие инструкции доступны в <a href="http://i2p-projekt.i2p/ru/faq">FAQ на i2p-projekt.i2p</a>
<br>Также, имеет смысл зайти на <a href="http://forum.i2p/">форум I2P</a> и IRC-каналы проекта.</p>
@@ -161,9 +161,9 @@
<p>Поверх I2P маршрутизатора работают различные приложения-клиенты, каждое со своим набором лицензий и зависимостей. Например, эта страница входит в приложение консоли маршрутизатора, которое сделано из усеченной версии <a href="http://jetty.mortbay.com/jetty/index.html">Jetty</a> (в сборку не включены демонстрационные приложения и прочие дополнения, настройки упрощены). Jetty позволяет запускать в составе маршрутизатора стандартные JSP/сервлеты. Jetty использует javax.servlet.jar разработанный в составе проекта Apache (http://www.apache.org/).
</p>
<p>Ещё одно приложение на этой странице — <a href="http://i2p-projekt.i2p/i2ptunnel">I2PTunnel</a> (а тут <a href="i2ptunnel/" target="_blank">его вебинтерфейс</a>). Автор mihi, лицензия GPL. I2PTunnel занимается туннелированнием обычного TCP/IP трафика через I2P (может применяться для eepproxy и irc-прокси). <a href="http://susi.i2p/">susimail</a> — почтовый клиент с <a href="susimail/susimail">вебинтерфейсом</a>, автор susi23, лицензия GPL. Адресная книга помогает управлять содержимым Ваших hosts.txt файлов (подробнее см. ./addressbook/), автор <a href="http://ragnarok.i2p/">Ragnarok</a>.</p>
<p>Ещё одно приложение на этой странице — <a href="http://i2p-projekt.i2p/ru/docs/api/i2ptunnel">I2PTunnel</a> (а тут <a href="i2ptunnel/" target="_blank">его вебинтерфейс</a>). Автор mihi, лицензия GPL. I2PTunnel занимается туннелированнием обычного TCP/IP трафика через I2P (может применяться для eepproxy и irc-прокси). <a href="http://susi.i2p/">susimail</a> — почтовый клиент с <a href="susimail/susimail">вебинтерфейсом</a>, автор susi23, лицензия GPL. Адресная книга помогает управлять содержимым Ваших hosts.txt файлов (подробнее см. ./addressbook/), автор <a href="http://ragnarok.i2p/">Ragnarok</a>.</p>
<p>В поставку маршрутизатора включен <a href="http://i2p-projekt.i2p/sam">SAM</a> интерфейс, автор human, приложение в общественном достоянии. SAM предназначен для использования приложениями-клиентами, такими как <a href="http://duck.i2p/i2p-bt/">bittorrent-клиенты</a>. Маршрутизатором используется оптимизированная под разные PC-архитектуры библиотека для вычислений с большими числами jbigi, которая в свою очередь использует библиотеку <a href="http://swox.com/gmp/">GMP</a> (LGPL лицензия). Вспомогательные приложения для Windows созданы с использованием <a href="http://launch4j.sourceforge.net/">Launch4J</a>, а инсталлятор собран при помощи <a href="http://www.izforge.com/izpack/">IzPack</a>. Подробнее о других доступных приложениях и их лицензиях смотрите на странице <a href="http://i2p-projekt.i2p/licenses">I2P Software Licenses</a>. Исходный код I2P маршрутизатора и идущих в комплекте приложений можно найти на нашей <a href="http://i2p-projekt.i2p/download">странице загрузки</a>. </p>
<p>В поставку маршрутизатора включен <a href="http://i2p-projekt.i2p/ru/docs/api/sam">SAM</a> интерфейс, автор human, приложение в общественном достоянии. SAM предназначен для использования приложениями-клиентами, такими как <a href="http://duck.i2p/i2p-bt/">bittorrent-клиенты</a>. Маршрутизатором используется оптимизированная под разные PC-архитектуры библиотека для вычислений с большими числами jbigi, которая в свою очередь использует библиотеку <a href="http://swox.com/gmp/">GMP</a> (LGPL лицензия). Вспомогательные приложения для Windows созданы с использованием <a href="http://launch4j.sourceforge.net/">Launch4J</a>, а инсталлятор собран при помощи <a href="http://www.izforge.com/izpack/">IzPack</a>. Подробнее о других доступных приложениях и их лицензиях смотрите на странице <a href="http://i2p-projekt.i2p/ru/get-involved/develop/licenses">I2P Software Licenses</a>. Исходный код I2P маршрутизатора и идущих в комплекте приложений можно найти на нашей <a href="http://i2p-projekt.i2p/ru/download">странице загрузки</a>. </p>
<h2>История версий</h2>

View File

@@ -17,7 +17,9 @@
%><%=intl._("Please report bugs on {0} or {1}.",
"<a href=\"http://trac.i2p2.i2p/newticket\">trac.i2p2.i2p</a>",
"<a href=\"https://trac.i2p2.de/newticket\">trac.i2p2.de</a>")%>
<!--
<%=intl._("You may use the username \"guest\" and password \"guest\" if you do not wish to register.")%>
-->
<p><i><%=intl._("Please include this information in bug reports")%>:</i>
<p>
<b>I2P version:</b> <%=net.i2p.router.RouterVersion.FULL_VERSION%><br>

View File

@@ -2,22 +2,21 @@
# Copyright (C) 2009 The I2P Project
# This file is distributed under the same license as the routerconsole package.
# To contribute translations, see http://www.i2p2.de/newdevelopers
#
#
# Translators:
# plazmism <gomidori@live.jp>, 2013
# plazmism <gomidori@live.jp>, 2013-2014
msgid ""
msgstr ""
"Project-Id-Version: I2P\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-11-19 22:59+0000\n"
"PO-Revision-Date: 2013-11-17 04:10+0000\n"
"POT-Creation-Date: 2013-10-14 13:33+0000\n"
"PO-Revision-Date: 2014-02-05 11:54+0000\n"
"Last-Translator: plazmism <gomidori@live.jp>\n"
"Language-Team: Japanese (http://www.transifex.com/projects/p/I2P/language/"
"ja/)\n"
"Language: ja\n"
"Language-Team: Japanese (http://www.transifex.com/projects/p/I2P/language/ja/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: ja\n"
"Plural-Forms: nplurals=1; plural=0;\n"
msgid "Anonymous Proxy"
@@ -69,697 +68,697 @@ msgid "Australia"
msgstr "オーストラリア"
msgid "Aruba"
msgstr ""
msgstr "アルバ"
msgid "Åland Islands"
msgstr ""
msgstr "オーランド諸島"
msgid "Azerbaijan"
msgstr ""
msgstr "アゼルバイジャン"
msgid "Bosnia and Herzegovina"
msgstr ""
msgstr "ボスニア・ヘルツェゴビナ"
msgid "Barbados"
msgstr ""
msgstr "バルバドス"
msgid "Bangladesh"
msgstr ""
msgstr "バングラデシュ"
msgid "Belgium"
msgstr ""
msgstr "ベルギー"
msgid "Burkina Faso"
msgstr ""
msgstr "ブルキナファソ"
msgid "Bulgaria"
msgstr ""
msgstr "ブルガリア"
msgid "Bahrain"
msgstr ""
msgstr "バーレーン"
msgid "Burundi"
msgstr ""
msgstr "ブルンジ"
msgid "Benin"
msgstr ""
msgstr "ベナン"
msgid "Bermuda"
msgstr ""
msgstr "バミューダ"
msgid "Brunei Darussalam"
msgstr ""
msgstr "ブルネイ・ダルサラーム"
msgid "Bolivia"
msgstr ""
msgstr "ボリビア"
msgid "Brazil"
msgstr ""
msgstr "ブラジル"
msgid "Bahamas"
msgstr ""
msgstr "バハマ"
msgid "Bhutan"
msgstr ""
msgstr "ブータン"
msgid "Bouvet Island"
msgstr ""
msgstr "ブーヴェ島"
msgid "Botswana"
msgstr ""
msgstr "ボツワナ"
msgid "Belarus"
msgstr ""
msgstr "ベラルーシ"
msgid "Belize"
msgstr ""
msgstr "ベリーズ"
msgid "Canada"
msgstr ""
msgstr "カナダ"
msgid "Cocos (Keeling) Islands"
msgstr ""
msgstr "ココス(キーリング)諸島"
msgid "The Democratic Republic of the Congo"
msgstr ""
msgstr "コンゴ民主共和国"
msgid "Central African Republic"
msgstr ""
msgstr "中央アフリカ共和国"
msgid "Congo"
msgstr ""
msgstr "コンゴ"
msgid "Switzerland"
msgstr ""
msgstr "スイス"
msgid "Cote D'Ivoire"
msgstr ""
msgstr "コートジボワール"
msgid "Cook Islands"
msgstr ""
msgstr "クック諸島"
msgid "Chile"
msgstr ""
msgstr "チリ"
msgid "Cameroon"
msgstr ""
msgstr "カメルーン"
msgid "China"
msgstr ""
msgstr "中国"
msgid "Colombia"
msgstr ""
msgstr "コロンビア"
msgid "Costa Rica"
msgstr ""
msgstr "コスタリカ"
msgid "Serbia and Montenegro"
msgstr ""
msgstr "セルビア・モンテネグロ"
msgid "Cuba"
msgstr ""
msgstr "キューバ"
msgid "Cape Verde"
msgstr ""
msgstr "カーボベルデ"
msgid "Curaçao"
msgstr ""
msgstr "キュラソー"
msgid "Christmas Island"
msgstr ""
msgstr "クリスマス島"
msgid "Cyprus"
msgstr ""
msgstr "キプロス"
msgid "Czech Republic"
msgstr ""
msgstr "チェコ共和国"
msgid "Germany"
msgstr ""
msgstr "ドイツ"
msgid "Djibouti"
msgstr ""
msgstr "ジプチ"
msgid "Denmark"
msgstr ""
msgstr "デンマーク"
msgid "Dominica"
msgstr ""
msgstr "ドミニカ"
msgid "Dominican Republic"
msgstr ""
msgstr "ドミニカ共和国"
msgid "Algeria"
msgstr ""
msgstr "アルジェリア"
msgid "Ecuador"
msgstr ""
msgstr "エクアドル"
msgid "Estonia"
msgstr ""
msgstr "エストニア"
msgid "Egypt"
msgstr ""
msgstr "エジプト"
msgid "Western Sahara"
msgstr ""
msgstr "西サハラ"
msgid "Eritrea"
msgstr ""
msgstr "エリトリア"
msgid "Spain"
msgstr ""
msgstr "スペイン"
msgid "Ethiopia"
msgstr ""
msgstr "エチオピア"
msgid "European Union"
msgstr ""
msgstr "ヨーロッパ連合"
msgid "Finland"
msgstr ""
msgstr "フィンランド"
msgid "Fiji"
msgstr ""
msgstr "フィジー"
msgid "Falkland Islands (Malvinas)"
msgstr ""
msgstr "フォークランド諸島 (マルビナス)"
msgid "Federated States of Micronesia"
msgstr ""
msgstr "ミクロネシア連邦"
msgid "Faroe Islands"
msgstr ""
msgstr "フェロー諸島"
msgid "France"
msgstr ""
msgstr "フランス"
msgid "Gabon"
msgstr ""
msgstr "ガボン"
msgid "United Kingdom"
msgstr ""
msgstr "イギリス"
msgid "Grenada"
msgstr ""
msgstr "グレナダ"
msgid "Georgia"
msgstr ""
msgstr "グルジア"
msgid "French Guiana"
msgstr ""
msgstr "フランス領ギアナ"
msgid "Guernsey"
msgstr ""
msgstr "ガーンジー"
msgid "Ghana"
msgstr ""
msgstr "ガーナ"
msgid "Gibraltar"
msgstr ""
msgstr "ジブラルタル"
msgid "Greenland"
msgstr ""
msgstr "グリーンランド"
msgid "Gambia"
msgstr ""
msgstr "ガンビア"
msgid "Guinea"
msgstr ""
msgstr "ギニア"
msgid "Guadeloupe"
msgstr ""
msgstr "グアドループ"
msgid "Equatorial Guinea"
msgstr ""
msgstr "赤道ギニア"
msgid "Greece"
msgstr ""
msgstr "ギリシャ"
msgid "South Georgia and the South Sandwich Islands"
msgstr ""
msgstr "サウスジョージア・サウスサンドウィッチ諸島"
msgid "Guatemala"
msgstr ""
msgstr "グアテマラ"
msgid "Guam"
msgstr ""
msgstr "グアム"
msgid "Guinea-Bissau"
msgstr ""
msgstr "ギニアビサウ"
msgid "Guyana"
msgstr ""
msgstr "ガイアナ"
msgid "Hong Kong"
msgstr ""
msgstr "香港"
msgid "Honduras"
msgstr ""
msgstr "ホンジュラス"
msgid "Croatia"
msgstr ""
msgstr "クロアチア"
msgid "Haiti"
msgstr ""
msgstr "ハイチ"
msgid "Hungary"
msgstr ""
msgstr "ハンガリー"
msgid "Indonesia"
msgstr ""
msgstr "インドネシア"
msgid "Ireland"
msgstr ""
msgstr "アイルランド"
msgid "Israel"
msgstr ""
msgstr "イスラエル"
msgid "Isle of Man"
msgstr ""
msgstr "マン島"
msgid "India"
msgstr ""
msgstr "インド"
msgid "British Indian Ocean Territory"
msgstr ""
msgstr "イギリス領インド洋地域"
msgid "Iraq"
msgstr ""
msgstr "イラク"
msgid "Islamic Republic of Iran"
msgstr ""
msgstr "イラン・イスラム共和国"
msgid "Iceland"
msgstr ""
msgstr "アイスランド"
msgid "Italy"
msgstr ""
msgstr "イタリア"
msgid "Jersey"
msgstr ""
msgstr "ジャージー"
msgid "Jamaica"
msgstr ""
msgstr "ジャマイカ"
msgid "Jordan"
msgstr ""
msgstr "ヨルダン"
msgid "Japan"
msgstr ""
msgstr "日本"
msgid "Kenya"
msgstr ""
msgstr "ケニア"
msgid "Kyrgyzstan"
msgstr ""
msgstr "キルギスタン"
msgid "Cambodia"
msgstr ""
msgstr "カンボジア"
msgid "Kiribati"
msgstr ""
msgstr "キリバス"
msgid "Comoros"
msgstr ""
msgstr "コモロ"
msgid "Saint Kitts and Nevis"
msgstr ""
msgstr "セントクリストファー・ネイビス"
msgid "The Democratic People's Republic of Korea"
msgstr ""
msgstr "朝鮮民主主義人民共和国"
msgid "Republic of Korea"
msgstr ""
msgstr "大韓民国"
msgid "Kuwait"
msgstr ""
msgstr "クウェート"
msgid "Cayman Islands"
msgstr ""
msgstr "ケイマン諸島"
msgid "Kazakhstan"
msgstr ""
msgstr "カザフスタン"
msgid "Lao People's Democratic Republic"
msgstr ""
msgstr "ラオス人民民主共和国"
msgid "Lebanon"
msgstr ""
msgstr "レバノン"
msgid "Saint Lucia"
msgstr ""
msgstr "セントルシア"
msgid "Liechtenstein"
msgstr ""
msgstr "リヒテンシュタイン"
msgid "Sri Lanka"
msgstr ""
msgstr "スリランカ"
msgid "Liberia"
msgstr ""
msgstr "リベリア"
msgid "Lesotho"
msgstr ""
msgstr "レソト"
msgid "Lithuania"
msgstr ""
msgstr "リトアニア"
msgid "Luxembourg"
msgstr ""
msgstr "ルクセンブルク"
msgid "Latvia"
msgstr ""
msgstr "ラトビア"
msgid "Libyan Arab Jamahiriya"
msgstr ""
msgstr "リビア"
msgid "Morocco"
msgstr ""
msgstr "モロッコ"
msgid "Monaco"
msgstr ""
msgstr "モナコ"
msgid "Republic of Moldova"
msgstr ""
msgstr "モルダビア共和国"
msgid "Montenegro"
msgstr ""
msgstr "モンテネグロ"
msgid "Saint Martin"
msgstr ""
msgstr "サンマルタン"
msgid "Madagascar"
msgstr ""
msgstr "マダガスカル"
msgid "Marshall Islands"
msgstr ""
msgstr "マーシャル諸島"
msgid "The Former Yugoslav Republic of Macedonia"
msgstr ""
msgstr "マケドニア・旧ユーゴスラビア共和国"
msgid "Mali"
msgstr ""
msgstr "マリ"
msgid "Myanmar"
msgstr ""
msgstr "ミャンマー"
msgid "Mongolia"
msgstr ""
msgstr "モンゴル"
msgid "Macao"
msgstr ""
msgstr "マカオ"
msgid "Northern Mariana Islands"
msgstr ""
msgstr "北マリアナ諸島連邦"
msgid "Martinique"
msgstr ""
msgstr "マルティニーク島"
msgid "Mauritania"
msgstr ""
msgstr "モーリタニア"
msgid "Montserrat"
msgstr ""
msgstr "モンセラー"
msgid "Malta"
msgstr ""
msgstr "マルタ"
msgid "Mauritius"
msgstr ""
msgstr "モーリシャス"
msgid "Maldives"
msgstr ""
msgstr "モルジブ"
msgid "Malawi"
msgstr ""
msgstr "マラウイ"
msgid "Mexico"
msgstr ""
msgstr "メキシコ"
msgid "Malaysia"
msgstr ""
msgstr "マレーシア"
msgid "Mozambique"
msgstr ""
msgstr "モザンビーク"
msgid "Namibia"
msgstr ""
msgstr "ナミビア"
msgid "New Caledonia"
msgstr ""
msgstr "ニューカレドニア"
msgid "Niger"
msgstr ""
msgstr "ニジェール"
msgid "Norfolk Island"
msgstr ""
msgstr "ノーフォーク島"
msgid "Nigeria"
msgstr ""
msgstr "ナイジェリア"
msgid "Nicaragua"
msgstr ""
msgstr "ニカラグア"
msgid "Netherlands"
msgstr ""
msgstr "オランダ"
msgid "Norway"
msgstr ""
msgstr "ノルウェー"
msgid "Nepal"
msgstr ""
msgstr "ネパール"
msgid "Nauru"
msgstr ""
msgstr "ナウル"
msgid "Niue"
msgstr ""
msgstr "ニウエ"
msgid "New Zealand"
msgstr ""
msgstr "ニュージーランド"
msgid "Oman"
msgstr ""
msgstr "オマーン"
msgid "Panama"
msgstr ""
msgstr "パナマ"
msgid "Peru"
msgstr ""
msgstr "ペルー"
msgid "French Polynesia"
msgstr ""
msgstr "フランス領ポリネシア"
msgid "Papua New Guinea"
msgstr ""
msgstr "パプアニューギニア"
msgid "Philippines"
msgstr ""
msgstr "フィリピン"
msgid "Pakistan"
msgstr ""
msgstr "パキスタン"
msgid "Poland"
msgstr ""
msgstr "ポーランド"
msgid "Saint Pierre and Miquelon"
msgstr ""
msgstr "サンピエール島・ミクロン島"
msgid "Pitcairn Islands"
msgstr ""
msgstr "ピトケアン諸島"
msgid "Puerto Rico"
msgstr ""
msgstr "プエルトリコ"
msgid "Palestinian Territory"
msgstr ""
msgstr "パレスチナ自治領"
msgid "Portugal"
msgstr ""
msgstr "ポルトガル"
msgid "Palau"
msgstr ""
msgstr "パラオ"
msgid "Paraguay"
msgstr ""
msgstr "パラグアイ"
msgid "Qatar"
msgstr ""
msgstr "カタール"
msgid "Réunion"
msgstr ""
msgstr "レユニオン"
msgid "Romania"
msgstr ""
msgstr "ルーマニア"
msgid "Serbia"
msgstr ""
msgstr "セルビア"
msgid "Russian Federation"
msgstr ""
msgstr "ロシア連邦"
msgid "Rwanda"
msgstr ""
msgstr "ルワンダ"
msgid "Saudi Arabia"
msgstr ""
msgstr "サウジアラビア"
msgid "Solomon Islands"
msgstr ""
msgstr "ソロモン諸島"
msgid "Seychelles"
msgstr ""
msgstr "セイシェル"
msgid "Sudan"
msgstr ""
msgstr "スーダン"
msgid "Sweden"
msgstr ""
msgstr "スウェーデン"
msgid "Singapore"
msgstr ""
msgstr "シンガポール"
msgid "Saint Helena"
msgstr ""
msgstr "セントヘレナ"
msgid "Slovenia"
msgstr ""
msgstr "スロベニア"
msgid "Svalbard and Jan Mayen"
msgstr ""
msgstr "スヴァールバル・ヤンマイエン"
msgid "Slovakia"
msgstr ""
msgstr "スロヴァキア"
msgid "Sierra Leone"
msgstr ""
msgstr "シエラ・レオネ"
msgid "San Marino"
msgstr ""
msgstr "サンマリノ"
msgid "Senegal"
msgstr ""
msgstr "セネガル"
msgid "Somalia"
msgstr ""
msgstr "ソマリア"
msgid "Suriname"
msgstr ""
msgstr "スリナム"
msgid "Sao Tome and Principe"
msgstr ""
msgstr "サントメ・プリンシペ"
msgid "El Salvador"
msgstr ""
msgstr "エルサルバドル"
msgid "Syrian Arab Republic"
msgstr ""
msgstr "シリア・アラブ共和国"
msgid "Swaziland"
msgstr ""
msgstr "スワジランド"
msgid "Turks and Caicos Islands"
msgstr ""
msgstr "タークス・カイコス諸島"
msgid "Chad"
msgstr ""
msgstr "チャド"
msgid "French Southern Territories"
msgstr ""
msgstr "フランス南方領土"
msgid "Togo"
msgstr ""
msgstr "トーゴ"
msgid "Thailand"
msgstr ""
msgstr "タイ"
msgid "Tajikistan"
msgstr ""
msgstr "タジキスタン"
msgid "Tokelau"
msgstr ""
msgstr "トケラウ"
msgid "Timor-Leste"
msgstr ""
msgstr "東ティモール"
msgid "Turkmenistan"
msgstr ""
msgstr "トルクメニスタン"
msgid "Tunisia"
msgstr ""
msgstr "チュニジア"
msgid "Tonga"
msgstr ""
msgstr "トンガ"
msgid "Turkey"
msgstr ""
msgstr "トルコ"
msgid "Trinidad and Tobago"
msgstr ""
msgstr "トリニダード・トバゴ"
msgid "Tuvalu"
msgstr ""
msgstr "ツバル"
msgid "Taiwan"
msgstr ""
msgstr "台湾"
msgid "United Republic of Tanzania"
msgstr ""
msgstr "タンザニア連合共和国"
msgid "Ukraine"
msgstr ""
msgstr "ウクライナ"
msgid "Uganda"
msgstr ""
msgstr "ウガンダ"
msgid "United States Minor Outlying Islands"
msgstr ""
msgstr "合衆国領有小離島"
msgid "United States"
msgstr ""
msgstr "アメリカ合衆国"
msgid "Uruguay"
msgstr ""
msgstr "ウルグアイ"
msgid "Uzbekistan"
msgstr ""
msgstr "ウズベキスタン"
msgid "Holy See (Vatican City State)"
msgstr ""
msgstr "教皇庁 (ヴァチカン市国)"
msgid "Saint Vincent and the Grenadines"
msgstr ""
msgstr "セントビンセントおよびグレナディーン諸島"
msgid "Venezuela"
msgstr ""
msgstr "ベネズエラ"
msgid "Virgin Islands"
msgstr ""
msgstr "バージン諸島"
msgid "Viet Nam"
msgstr ""
msgstr "ベトナム"
msgid "Vanuatu"
msgstr ""
msgstr "バヌアツ"
msgid "Wallis and Futuna"
msgstr ""
msgstr "ウォリス・フトゥーナ"
msgid "Samoa"
msgstr ""
msgstr "サモア"
msgid "Yemen"
msgstr ""
msgstr "イエメン"
msgid "Mayotte"
msgstr ""
msgstr "マヨット"
msgid "South Africa"
msgstr ""
msgstr "南アフリカ"
msgid "Zambia"
msgstr ""
msgstr "ザンビア"
msgid "Zimbabwe"
msgstr ""
msgstr "ジンバブエ"

View File

@@ -5,13 +5,13 @@
#
# Translators:
# blueboy, 2013
# blueboy, 2013
# blueboy, 2013-2014
msgid ""
msgstr ""
"Project-Id-Version: I2P\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-10-14 13:33+0000\n"
"PO-Revision-Date: 2013-12-18 03:19+0000\n"
"PO-Revision-Date: 2014-02-04 19:47+0000\n"
"Last-Translator: blueboy\n"
"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/I2P/language/pt_BR/)\n"
"MIME-Version: 1.0\n"
@@ -210,226 +210,226 @@ msgid "Dominican Republic"
msgstr "República Dominicana"
msgid "Algeria"
msgstr ""
msgstr "Argélia"
msgid "Ecuador"
msgstr ""
msgstr "Equador"
msgid "Estonia"
msgstr ""
msgstr "Estônia"
msgid "Egypt"
msgstr ""
msgstr "Egito"
msgid "Western Sahara"
msgstr ""
msgstr "Saara Ocidental"
msgid "Eritrea"
msgstr ""
msgstr "Eritreia"
msgid "Spain"
msgstr ""
msgstr "Espanha"
msgid "Ethiopia"
msgstr ""
msgstr "Etiópia"
msgid "European Union"
msgstr ""
msgstr "União Europeia"
msgid "Finland"
msgstr ""
msgstr "Finlândia"
msgid "Fiji"
msgstr ""
msgstr "Fiji"
msgid "Falkland Islands (Malvinas)"
msgstr ""
msgstr "Malvinas (Ilhas Falkland)"
msgid "Federated States of Micronesia"
msgstr ""
msgstr "Estados Federados da Micronésia"
msgid "Faroe Islands"
msgstr ""
msgstr "Ilhas Faroé"
msgid "France"
msgstr ""
msgstr "França"
msgid "Gabon"
msgstr ""
msgstr "Gabão"
msgid "United Kingdom"
msgstr ""
msgstr "Reino Unido"
msgid "Grenada"
msgstr ""
msgstr "Granada"
msgid "Georgia"
msgstr ""
msgstr "Geórgia"
msgid "French Guiana"
msgstr ""
msgstr "Guiana Francesa"
msgid "Guernsey"
msgstr ""
msgstr "Guernsey"
msgid "Ghana"
msgstr ""
msgstr "Gana"
msgid "Gibraltar"
msgstr ""
msgstr "Gibraltar"
msgid "Greenland"
msgstr ""
msgstr "Groenlândia"
msgid "Gambia"
msgstr ""
msgstr "Gâmbia"
msgid "Guinea"
msgstr ""
msgstr "Guiné"
msgid "Guadeloupe"
msgstr ""
msgstr "Guadalupe"
msgid "Equatorial Guinea"
msgstr ""
msgstr "Guiné Equatorial"
msgid "Greece"
msgstr ""
msgstr "Grécia"
msgid "South Georgia and the South Sandwich Islands"
msgstr ""
msgstr "Ilhas Geórgia do Sul e Sandwich do Sul"
msgid "Guatemala"
msgstr ""
msgstr "Guatemala"
msgid "Guam"
msgstr ""
msgstr "Guam"
msgid "Guinea-Bissau"
msgstr ""
msgstr "Guiné-Bissau"
msgid "Guyana"
msgstr ""
msgstr "Guiana"
msgid "Hong Kong"
msgstr ""
msgstr "Hong Kong"
msgid "Honduras"
msgstr ""
msgstr "Honduras"
msgid "Croatia"
msgstr ""
msgstr "Croácia"
msgid "Haiti"
msgstr ""
msgstr "Haiti"
msgid "Hungary"
msgstr ""
msgstr "Hungria"
msgid "Indonesia"
msgstr ""
msgstr "Indonésia"
msgid "Ireland"
msgstr ""
msgstr "Irlanda"
msgid "Israel"
msgstr ""
msgstr "Israel"
msgid "Isle of Man"
msgstr ""
msgstr "Ilha de Man"
msgid "India"
msgstr ""
msgstr "Índia"
msgid "British Indian Ocean Territory"
msgstr ""
msgstr "Território Britânico do Oceano Índico"
msgid "Iraq"
msgstr ""
msgstr "Iraque"
msgid "Islamic Republic of Iran"
msgstr ""
msgstr "Irã"
msgid "Iceland"
msgstr ""
msgstr "Islândia"
msgid "Italy"
msgstr ""
msgstr "Itália"
msgid "Jersey"
msgstr ""
msgstr "Jersey"
msgid "Jamaica"
msgstr ""
msgstr "Jamaica"
msgid "Jordan"
msgstr ""
msgstr "Jordânia"
msgid "Japan"
msgstr ""
msgstr "Japão"
msgid "Kenya"
msgstr ""
msgstr "Quênia"
msgid "Kyrgyzstan"
msgstr ""
msgstr "Quirguistão"
msgid "Cambodia"
msgstr ""
msgstr "Camboja"
msgid "Kiribati"
msgstr ""
msgstr "Quiribati"
msgid "Comoros"
msgstr ""
msgstr "Comores"
msgid "Saint Kitts and Nevis"
msgstr ""
msgstr "São Cristóvão e Nevis"
msgid "The Democratic People's Republic of Korea"
msgstr ""
msgstr "Coreia do Norte"
msgid "Republic of Korea"
msgstr ""
msgstr "Coreia do Sul"
msgid "Kuwait"
msgstr ""
msgstr "Kuaite"
msgid "Cayman Islands"
msgstr ""
msgstr "Ilhas Cayman"
msgid "Kazakhstan"
msgstr ""
msgstr "Cazaquistão"
msgid "Lao People's Democratic Republic"
msgstr ""
msgstr "Laos"
msgid "Lebanon"
msgstr ""
msgstr "Líbano"
msgid "Saint Lucia"
msgstr ""
msgstr "Santa Lúcia"
msgid "Liechtenstein"
msgstr ""
msgstr "Liechtenstein"
msgid "Sri Lanka"
msgstr ""
msgstr "Sri Lanka"
msgid "Liberia"
msgstr ""
msgstr "Libéria"
msgid "Lesotho"
msgstr ""
msgstr "Lesoto"
msgid "Lithuania"
msgstr ""
msgstr "Lituânia"
msgid "Luxembourg"
msgstr ""
msgstr "Luxemburgo"
msgid "Latvia"
msgstr ""
msgstr "Letônia"
msgid "Libyan Arab Jamahiriya"
msgstr ""

View File

@@ -2,26 +2,25 @@
# Copyright (C) 2009 The I2P Project
# This file is distributed under the same license as the routerconsole package.
# To contribute translations, see http://www.i2p2.de/newdevelopers
#
#
# Translators:
# plazmism <gomidori@live.jp>, 2013
# plazmism <gomidori@live.jp>, 2013-2014
msgid ""
msgstr ""
"Project-Id-Version: I2P\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-12-01 20:04+0000\n"
"PO-Revision-Date: 2013-11-26 10:49+0000\n"
"POT-Creation-Date: 2013-07-13 21:46+0000\n"
"PO-Revision-Date: 2014-02-05 11:58+0000\n"
"Last-Translator: plazmism <gomidori@live.jp>\n"
"Language-Team: Japanese (http://www.transifex.com/projects/p/I2P/language/"
"ja/)\n"
"Language: ja\n"
"Language-Team: Japanese (http://www.transifex.com/projects/p/I2P/language/ja/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: ja\n"
"Plural-Forms: nplurals=1; plural=0;\n"
msgid "Congratulations on getting I2P installed!"
msgstr "I2P インストールされたことに関する設定"
msgstr "I2P インストールに際する設定"
msgid "Welcome to I2P!"
msgstr "I2P にようこそ!"
@@ -32,21 +31,18 @@ msgstr "I2P が起動し、ピアを検索するまで{0}お待ちください{1
#, java-format
msgid ""
"While you are waiting, please {0}adjust your bandwidth settings{1} on the {2}"
"configuration page{3}."
"While you are waiting, please {0}adjust your bandwidth settings{1} on the "
"{2}configuration page{3}."
msgstr "お待ちの間、{2}設定ページ{3}で{0}帯域幅設定を調整{1}してください。"
msgid "Also you can setup your browser to use the I2P proxy to reach eepsites."
msgstr ""
"また、 eepsite に到達するために I2P プロキシを使用するためにブラウザをセット"
"アップしてください。"
msgid ""
"Also you can setup your browser to use the I2P proxy to reach eepsites."
msgstr "また、 eepsite に到達するために I2P プロキシを使用するためにブラウザをセットアップしてください。"
msgid ""
"Just enter 127.0.0.1 (or localhost) port 4444 as a http proxy into your "
"browser settings."
msgstr ""
"127.0.0.1 (または localhost) ポート 4444番をHTTPプロキシとして、ブラウザ設定"
"に入力してください。"
msgstr "127.0.0.1 (または localhost) ポート 4444番をHTTPプロキシとして、ブラウザ設定に入力してください。"
msgid "Do not use SOCKS for this."
msgstr "これには SOCKS を使用しないでください。"
@@ -54,20 +50,16 @@ msgstr "これには SOCKS を使用しないでください。"
#, java-format
msgid ""
"More information can be found on the {0}I2P browser proxy setup page{1}."
msgstr "さらなる情報は {0}I2P ブラウザプロキシ設定ページ{1}で見つけられます。"
msgstr "詳細は {0}I2P ブラウザプロキシ設定ページ{1} にあります。"
#, java-format
msgid ""
"Once you have a \"shared clients\" destination listed on the left, please {0}"
"check out{1} our {2}FAQ{3}."
msgstr ""
"左にリストされている「共有クライアント」の宛先があれば、{2}FAQ{3}を{0}確認{1}"
"してください。"
"Once you have a \"shared clients\" destination listed on the left, please "
"{0}check out{1} our {2}FAQ{3}."
msgstr "左にリストされている「共有クライアント」の宛先があれば、{2}FAQ{3}を{0}確認{1}してください。"
#, java-format
msgid ""
"Point your IRC client to {0}localhost:6668{1} and say hi to us on {2}#i2p-"
"help{3} or {4}#i2p{5}."
msgstr ""
"IRCクライアントを{0}localhost:6668{1}にポイントし、 {2}#i2p-help{3}かr {4}"
"#i2p{5}で私たちに挨拶してください。"
msgstr "IRCクライアントを{0}localhost:6668{1}に合わせ、 {2}#i2p-help{3}かr {4}#i2p{5}で私たちによろしくどうぞ。"

View File

@@ -2,23 +2,22 @@
# Copyright (C) 2009 The I2P Project
# This file is distributed under the same license as the routerconsole package.
# To contribute translations, see http://www.i2p2.de/newdevelopers
#
#
# Translators:
# blueboy, 2013
# blueboy, 2013
# blueboy, 2013-2014
msgid ""
msgstr ""
"Project-Id-Version: I2P\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-01-09 18:16+0000\n"
"PO-Revision-Date: 2013-12-02 23:17+0000\n"
"POT-Creation-Date: 2013-07-13 21:46+0000\n"
"PO-Revision-Date: 2014-02-04 13:02+0000\n"
"Last-Translator: blueboy\n"
"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/I2P/"
"language/pt_BR/)\n"
"Language: pt_BR\n"
"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/I2P/language/pt_BR/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: pt_BR\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
msgid "Congratulations on getting I2P installed!"
@@ -29,27 +28,22 @@ msgstr "Seja bem-vindo à I2P!"
#, java-format
msgid "Please {0}have patience{1} as I2P boots up and finds peers."
msgstr ""
"Por favor, {0}tenha paciência{1}: a I2P está sendo inicializada e procurando "
"por nós."
msgstr "Por favor, {0}tenha paciência{1}: a I2P está sendo inicializada e procurando por nodos."
#, java-format
msgid ""
"While you are waiting, please {0}adjust your bandwidth settings{1} on the {2}"
"configuration page{3}."
msgstr ""
"Enquanto você aguarda, por favor, {0}ajuste as especificações da sua banda "
"larga{1} na {2}página de configuração{3}."
"While you are waiting, please {0}adjust your bandwidth settings{1} on the "
"{2}configuration page{3}."
msgstr "Enquanto você aguarda, por favor, {0}ajuste as especificações da sua banda larga{1} na {2}página de configuração{3}."
msgid "Also you can setup your browser to use the I2P proxy to reach eepsites."
msgstr ""
"Além disso, você pode configurar o seu navegador para usar o proxy I2P para "
"acessar eepsites."
msgid ""
"Also you can setup your browser to use the I2P proxy to reach eepsites."
msgstr "Além disso, você pode configurar o seu navegador para usar o proxy I2P para acessar eepsites."
msgid ""
"Just enter 127.0.0.1 (or localhost) port 4444 as a http proxy into your "
"browser settings."
msgstr ""
msgstr "Apenas entre com 127.0.0.1 (ou localhost) porta 4444 como um proxy http nas configurações do seu navegador."
msgid "Do not use SOCKS for this."
msgstr "Não use SOCKS para isto!"
@@ -57,18 +51,16 @@ msgstr "Não use SOCKS para isto!"
#, java-format
msgid ""
"More information can be found on the {0}I2P browser proxy setup page{1}."
msgstr ""
msgstr "Informações adicionais podem ser encontradas na {0}página de configuração do proxy de navegação I2P{1}."
#, java-format
msgid ""
"Once you have a \"shared clients\" destination listed on the left, please {0}"
"check out{1} our {2}FAQ{3}."
msgstr ""
"Once you have a \"shared clients\" destination listed on the left, please "
"{0}check out{1} our {2}FAQ{3}."
msgstr "Uma vez que você tenha um destino de \"clientes compartilhados\" listado a esquerda, por favor, {0}verifique{1} nossa página de {2}Perguntas Frequentes{3}."
#, java-format
msgid ""
"Point your IRC client to {0}localhost:6668{1} and say hi to us on {2}#i2p-"
"help{3} or {4}#i2p{5}."
msgstr ""
"Direcione o seu cliente IRC para {0}localhost:6668{1} e nos dê um oi em {2}"
"#i2p-help{3} ou {4}#i2p{5}."
msgstr "Direcione o seu cliente IRC para {0}localhost:6668{1} e nos dê um oi em {2}#i2p-help{3} ou {4}#i2p{5}."

View File

@@ -11,7 +11,7 @@ msgstr ""
"Project-Id-Version: I2P\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-01-09 19:27+0000\n"
"PO-Revision-Date: 2014-01-12 11:28+0000\n"
"PO-Revision-Date: 2014-01-26 21:36+0000\n"
"Last-Translator: cacapo <handelsehorisont@gmail.com>\n"
"Language-Team: Danish (http://www.transifex.com/projects/p/I2P/language/da/)\n"
"MIME-Version: 1.0\n"
@@ -1384,7 +1384,7 @@ msgstr "Opdaterings link"
#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:279
msgid "Stop"
msgstr "Sto"
msgstr "Stop"
#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:283
#: ../java/src/net/i2p/router/web/ConfigUpdateHandler.java:141

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: I2P routerconsole\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-01-09 19:27+0000\n"
"POT-Creation-Date: 2014-02-06 18:27+0000\n"
"PO-Revision-Date: 2010-06-15 14:09+0100\n"
"Last-Translator: duck <duck@mail.i2p>\n"
"Language-Team: duck <duck@mail.i2p>\n"
@@ -170,36 +170,36 @@ msgstr ""
msgid "Rejecting tunnels"
msgstr ""
#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:158
#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:162
#: ../java/src/net/i2p/router/web/ConfigNavHelper.java:22
msgid "Reseeding"
msgstr ""
#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:170
#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:174
#, java-format
msgid "Reseed fetched only 1 router."
msgid_plural "Reseed fetched only {0} routers."
msgstr[0] ""
msgstr[1] ""
#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:177
#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:181
msgid "Reseed failed."
msgstr ""
#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:178
#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:182
#, java-format
msgid "See {0} for help."
msgstr ""
#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:179
#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:183
msgid "reseed configuration page"
msgstr ""
#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:325
#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:329
msgid "Reseeding: fetching seed URL."
msgstr ""
#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:383
#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:387
#, java-format
msgid ""
"Reseeding: fetching router info from seed URL ({0} successful, {1} errors)."
@@ -734,60 +734,60 @@ msgstr ""
msgid "Dropping tunnel requests: Queue time"
msgstr ""
#: ../java/src/net/i2p/router/update/ConsoleUpdateManager.java:760
#: ../java/src/net/i2p/router/update/ConsoleUpdateManager.java:762
#, java-format
msgid "New plugin version {0} is available"
msgstr ""
#: ../java/src/net/i2p/router/update/ConsoleUpdateManager.java:838
#: ../java/src/net/i2p/router/update/ConsoleUpdateManager.java:840
#, java-format
msgid "Update check failed for plugin {0}"
msgstr ""
#: ../java/src/net/i2p/router/update/ConsoleUpdateManager.java:840
#: ../java/src/net/i2p/router/update/ConsoleUpdateManager.java:842
#, java-format
msgid "No new version is available for plugin {0}"
msgstr ""
#: ../java/src/net/i2p/router/update/ConsoleUpdateManager.java:863
#: ../java/src/net/i2p/router/update/ConsoleUpdateManager.java:865
#, java-format
msgid "{0}B transferred"
msgstr ""
#: ../java/src/net/i2p/router/update/ConsoleUpdateManager.java:916
#: ../java/src/net/i2p/router/update/ConsoleUpdateManager.java:918
#: ../java/src/net/i2p/router/update/UpdateRunner.java:288
#, java-format
msgid "Transfer failed from {0}"
msgstr ""
#: ../java/src/net/i2p/router/update/ConsoleUpdateManager.java:1153
#: ../java/src/net/i2p/router/update/ConsoleUpdateManager.java:1217
#: ../java/src/net/i2p/router/update/ConsoleUpdateManager.java:1241
#: ../java/src/net/i2p/router/update/ConsoleUpdateManager.java:1155
#: ../java/src/net/i2p/router/update/ConsoleUpdateManager.java:1219
#: ../java/src/net/i2p/router/update/ConsoleUpdateManager.java:1243
#: ../java/src/net/i2p/router/web/SummaryHelper.java:671
msgid "Update downloaded"
msgstr ""
#: ../java/src/net/i2p/router/update/ConsoleUpdateManager.java:1197
#: ../java/src/net/i2p/router/update/ConsoleUpdateManager.java:1241
#: ../java/src/net/i2p/router/update/ConsoleUpdateManager.java:1199
#: ../java/src/net/i2p/router/update/ConsoleUpdateManager.java:1243
msgid "Restarting"
msgstr ""
#: ../java/src/net/i2p/router/update/ConsoleUpdateManager.java:1197
#: ../java/src/net/i2p/router/update/ConsoleUpdateManager.java:1199
msgid "Update verified"
msgstr ""
#: ../java/src/net/i2p/router/update/ConsoleUpdateManager.java:1206
#: ../java/src/net/i2p/router/update/ConsoleUpdateManager.java:1208
#: ../java/src/net/i2p/router/update/PluginUpdateRunner.java:136
#, java-format
msgid "from {0}"
msgstr ""
#: ../java/src/net/i2p/router/update/ConsoleUpdateManager.java:1221
#: ../java/src/net/i2p/router/update/ConsoleUpdateManager.java:1223
#, java-format
msgid "Unsigned update file from {0} is corrupt"
msgstr ""
#: ../java/src/net/i2p/router/update/ConsoleUpdateManager.java:1250
#: ../java/src/net/i2p/router/update/ConsoleUpdateManager.java:1252
#, java-format
msgid "Failed copy to {0}"
msgstr ""
@@ -1139,13 +1139,13 @@ msgid "Save Plugin Configuration"
msgstr ""
#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:56
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:586
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:590
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:589
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:593
msgid "Install Plugin"
msgstr ""
#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:60
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:592
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:595
msgid "Update All Installed Plugins"
msgstr ""
@@ -1525,7 +1525,7 @@ msgstr ""
#. http://www.dhs.gov/xinfoshare/programs/Copy_of_press_release_0046.shtm
#. but pink instead of yellow for WARN
#: ../java/src/net/i2p/router/web/ConfigLoggingHelper.java:68
#: ../java/src/net/i2p/router/web/LogsHelper.java:117
#: ../java/src/net/i2p/router/web/LogsHelper.java:129
msgid "CRIT"
msgstr ""
@@ -1534,22 +1534,22 @@ msgid "DEBUG"
msgstr ""
#: ../java/src/net/i2p/router/web/ConfigLoggingHelper.java:68
#: ../java/src/net/i2p/router/web/LogsHelper.java:119
#: ../java/src/net/i2p/router/web/LogsHelper.java:131
msgid "ERROR"
msgstr ""
#: ../java/src/net/i2p/router/web/ConfigLoggingHelper.java:68
#: ../java/src/net/i2p/router/web/LogsHelper.java:123
#: ../java/src/net/i2p/router/web/LogsHelper.java:135
msgid "INFO"
msgstr ""
#: ../java/src/net/i2p/router/web/ConfigLoggingHelper.java:68
#: ../java/src/net/i2p/router/web/LogsHelper.java:121
#: ../java/src/net/i2p/router/web/LogsHelper.java:133
msgid "WARN"
msgstr ""
#: ../java/src/net/i2p/router/web/ConfigLoggingHelper.java:88
#: ../java/src/net/i2p/router/web/ConfigUIHelper.java:144
#: ../java/src/net/i2p/router/web/ConfigUIHelper.java:145
#: ../java/src/net/i2p/router/web/HomeHelper.java:195
#: ../java/src/net/i2p/router/web/SummaryHelper.java:851
msgid "Remove"
@@ -2284,77 +2284,81 @@ msgid "French"
msgstr ""
#: ../java/src/net/i2p/router/web/ConfigUIHelper.java:85
msgid "Hungarian"
msgid "Hebrew"
msgstr ""
#: ../java/src/net/i2p/router/web/ConfigUIHelper.java:86
msgid "Italian"
msgid "Hungarian"
msgstr ""
#: ../java/src/net/i2p/router/web/ConfigUIHelper.java:87
msgid "Japanese"
msgid "Italian"
msgstr ""
#: ../java/src/net/i2p/router/web/ConfigUIHelper.java:88
msgid "Dutch"
msgid "Japanese"
msgstr ""
#: ../java/src/net/i2p/router/web/ConfigUIHelper.java:89
msgid "Norwegian Bokmaal"
msgid "Dutch"
msgstr ""
#: ../java/src/net/i2p/router/web/ConfigUIHelper.java:90
msgid "Polish"
msgid "Norwegian Bokmaal"
msgstr ""
#: ../java/src/net/i2p/router/web/ConfigUIHelper.java:91
msgid "Polish"
msgstr ""
#: ../java/src/net/i2p/router/web/ConfigUIHelper.java:92
#: ../java/src/net/i2p/router/web/ConfigUIHelper.java:93
msgid "Portuguese"
msgstr ""
#: ../java/src/net/i2p/router/web/ConfigUIHelper.java:93
#: ../java/src/net/i2p/router/web/ConfigUIHelper.java:94
msgid "Romanian"
msgstr ""
#: ../java/src/net/i2p/router/web/ConfigUIHelper.java:94
#: ../java/src/net/i2p/router/web/ConfigUIHelper.java:95
msgid "Russian"
msgstr ""
#: ../java/src/net/i2p/router/web/ConfigUIHelper.java:95
#: ../java/src/net/i2p/router/web/ConfigUIHelper.java:96
msgid "Swedish"
msgstr ""
#: ../java/src/net/i2p/router/web/ConfigUIHelper.java:96
#: ../java/src/net/i2p/router/web/ConfigUIHelper.java:97
msgid "Turkish"
msgstr ""
#: ../java/src/net/i2p/router/web/ConfigUIHelper.java:97
#: ../java/src/net/i2p/router/web/ConfigUIHelper.java:98
msgid "Ukrainian"
msgstr ""
#: ../java/src/net/i2p/router/web/ConfigUIHelper.java:98
#: ../java/src/net/i2p/router/web/ConfigUIHelper.java:99
msgid "Vietnamese"
msgstr ""
#: ../java/src/net/i2p/router/web/ConfigUIHelper.java:99
#: ../java/src/net/i2p/router/web/ConfigUIHelper.java:100
msgid "Chinese"
msgstr ""
#: ../java/src/net/i2p/router/web/ConfigUIHelper.java:140
#: ../java/src/net/i2p/router/web/ConfigUIHelper.java:141
msgid "Add a user and password to enable."
msgstr ""
#: ../java/src/net/i2p/router/web/ConfigUIHelper.java:146
#: ../java/src/net/i2p/router/web/ConfigUIHelper.java:147
msgid "User Name"
msgstr ""
#: ../java/src/net/i2p/router/web/ConfigUIHelper.java:157
#: ../java/src/net/i2p/router/web/ConfigUIHelper.java:158
#: ../java/src/net/i2p/router/web/HomeHelper.java:217
#: ../java/src/net/i2p/router/web/SummaryHelper.java:899
msgid "Add"
msgstr ""
#: ../java/src/net/i2p/router/web/ConfigUIHelper.java:160
#: ../java/src/net/i2p/router/web/ConfigUIHelper.java:161
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:534
msgid "Password"
msgstr ""
@@ -2899,16 +2903,16 @@ msgstr ""
msgid "Summary"
msgstr ""
#: ../java/src/net/i2p/router/web/LogsHelper.java:32
#: ../java/src/net/i2p/router/web/LogsHelper.java:79
#: ../java/src/net/i2p/router/web/LogsHelper.java:37
#: ../java/src/net/i2p/router/web/LogsHelper.java:91
msgid "File location"
msgstr ""
#: ../java/src/net/i2p/router/web/LogsHelper.java:76
#: ../java/src/net/i2p/router/web/LogsHelper.java:88
msgid "File not found"
msgstr ""
#: ../java/src/net/i2p/router/web/LogsHelper.java:94
#: ../java/src/net/i2p/router/web/LogsHelper.java:106
msgid "No log messages"
msgstr ""
@@ -4496,7 +4500,7 @@ msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:546
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:562
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:576
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:588
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:591
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confighome_jsp.java:470
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confighome_jsp.java:490
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confighome_jsp.java:506
@@ -4652,6 +4656,11 @@ msgid "Plugin Installation"
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:582
#, java-format
msgid "Look for available plugins on {0}."
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:585
msgid "To install a plugin, enter the download URL:"
msgstr ""
@@ -4676,7 +4685,7 @@ msgid "Recommended Eepsites"
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confighome_jsp.java:496
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/home_jsp.java:409
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/home_jsp.java:411
msgid "Local Services"
msgstr ""
@@ -5831,8 +5840,8 @@ msgstr ""
msgid "home"
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/console_jsp.java:396
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/home_jsp.java:377
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/console_jsp.java:398
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/home_jsp.java:379
msgid "Welcome to I2P"
msgstr ""
@@ -5947,11 +5956,11 @@ msgid ""
"change it later."
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/home_jsp.java:385
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/home_jsp.java:387
msgid "Search I2P"
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/home_jsp.java:405
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/home_jsp.java:407
msgid "Eepsites of Interest"
msgstr ""

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -24,7 +24,7 @@ msgstr ""
"Project-Id-Version: I2P\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-01-09 19:27+0000\n"
"PO-Revision-Date: 2014-01-18 22:20+0000\n"
"PO-Revision-Date: 2014-01-22 15:14+0000\n"
"Last-Translator: kgtm <fabio.h.f.antunes@gmail.com>\n"
"Language-Team: Portuguese (http://www.transifex.com/projects/p/I2P/language/pt/)\n"
"MIME-Version: 1.0\n"
@@ -3111,31 +3111,31 @@ msgstr "NTCP e SSU com intermediadores"
#: ../java/src/net/i2p/router/web/NetDbRenderer.java:448
msgid "IPv6 Only SSU, introducers"
msgstr ""
msgstr "Apenas IPv6 com introdutores SSU"
#: ../java/src/net/i2p/router/web/NetDbRenderer.java:448
msgid "IPv6 SSU"
msgstr ""
msgstr "SSU IPv6"
#: ../java/src/net/i2p/router/web/NetDbRenderer.java:448
msgid "IPv6 SSU, introducers"
msgstr ""
msgstr "SSU introdutores com IPv6"
#: ../java/src/net/i2p/router/web/NetDbRenderer.java:449
msgid "IPv6 NTCP"
msgstr ""
msgstr "NTCP IPv6"
#: ../java/src/net/i2p/router/web/NetDbRenderer.java:449
msgid "IPv6 NTCP, SSU"
msgstr ""
msgstr "NTCP e SSU com IPv6"
#: ../java/src/net/i2p/router/web/NetDbRenderer.java:449
msgid "IPv6 NTCP, SSU, introducers"
msgstr ""
msgstr "NTCP e SSU introdutores com IPv6"
#: ../java/src/net/i2p/router/web/NetDbRenderer.java:449
msgid "IPv6 Only NTCP, SSU, introducers"
msgstr ""
msgstr "Apenas NTCP e SSU introdutores com IPv6"
#: ../java/src/net/i2p/router/web/NewsHelper.java:252
#, java-format

View File

@@ -2,31 +2,33 @@
# Copyright (C) 2009 The I2P Project
# This file is distributed under the same license as the routerconsole package.
# To contribute translations, see http://www.i2p2.de/newdevelopers
#
#
# Translators:
# blueboy, 2013
# blueboy, 2013
# blueboy, 2013-2014
msgid ""
msgstr ""
"Project-Id-Version: I2P\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-01-09 18:16+0000\n"
"PO-Revision-Date: 2013-11-25 21:53+0000\n"
"POT-Creation-Date: 2014-01-09 19:27+0000\n"
"PO-Revision-Date: 2014-01-31 17:09+0000\n"
"Last-Translator: blueboy\n"
"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/I2P/"
"language/pt_BR/)\n"
"Language: pt_BR\n"
"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/I2P/language/pt_BR/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: pt_BR\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. NOTE TO TRANSLATORS: Feel free to translate all these as you see fit, there are several options...
#. spaces or not, '.' or not, plural or not. Try not to make it too long, it is used in
#. NOTE TO TRANSLATORS: Feel free to translate all these as you see fit, there
#. are several options...
#. spaces or not, '.' or not, plural or not. Try not to make it too long, it
#. is used in
#. a lot of tables.
#. milliseconds
#. Note to translators, may be negative or zero, 2999 maximum.
#. {0,number,####} prevents 1234 from being output as 1,234 in the English locale.
#. {0,number,####} prevents 1234 from being output as 1,234 in the English
#. locale.
#. If you want the digit separator in your locale, translate as {0}.
#. alternates: msec, msecs
#: ../../../core/java/src/net/i2p/data/DataHelper.java:1484
@@ -119,7 +121,8 @@ msgstr ""
#. NPE, too early
#. if (_context.router().getRouterInfo().getBandwidthTier().equals("K"))
#. setTunnelStatus("Not expecting tunnel requests: Advertised bandwidth too low");
#. setTunnelStatus("Not expecting tunnel requests: Advertised bandwidth too
#. low");
#. else
#: ../../../router/java/src/net/i2p/router/RouterThrottleImpl.java:75
#: ../../../router/java/src/net/i2p/router/RouterThrottleImpl.java:120
@@ -132,7 +135,8 @@ msgid "Rejecting tunnels: High message delay"
msgstr "Rejeitando túneis: mensagens com tempo de retardo alto"
#. hard to do {0} from here
#. setTunnelStatus("Rejecting " + (100 - (int) probAccept*100) + "% of tunnels: High number of requests");
#. setTunnelStatus("Rejecting " + (100 - (int) probAccept*100) + "% of
#. tunnels: High number of requests");
#: ../../../router/java/src/net/i2p/router/RouterThrottleImpl.java:196
msgid "Rejecting most tunnels: High number of requests"
msgstr "Rejeitando a maioria dos túneis: Muitos pedidos"
@@ -149,13 +153,15 @@ msgid "Rejecting tunnels: Bandwidth limit"
msgstr "Rejeitando túneis: limitação na largura de banda"
#. hard to do {0} from here
#. setTunnelStatus("Rejecting " + ((int)(100.0*probReject)) + "% of tunnels: Bandwidth limit");
#. setTunnelStatus("Rejecting " + ((int)(100.0*probReject)) + "% of tunnels:
#. Bandwidth limit");
#: ../../../router/java/src/net/i2p/router/RouterThrottleImpl.java:380
msgid "Rejecting most tunnels: Bandwidth limit"
msgstr "Rejeitando a maioria dos túneis: limitação na largura de banda"
#. hard to do {0} from here
#. setTunnelStatus("Accepting " + (100-(int)(100.0*probReject)) + "% of tunnels");
#. setTunnelStatus("Accepting " + (100-(int)(100.0*probReject)) + "% of
#. tunnels");
#: ../../../router/java/src/net/i2p/router/RouterThrottleImpl.java:384
msgid "Accepting most tunnels"
msgstr "Aceitando a maioria dos túneis"
@@ -208,7 +214,8 @@ msgid ""
"Reseeding: fetching router info from seed URL ({0} successful, {1} errors)."
msgstr ""
#. NOTE TO TRANSLATORS - each of these phrases is a description for a statistic
#. NOTE TO TRANSLATORS - each of these phrases is a description for a
#. statistic
#. to be displayed on /stats.jsp and in the graphs on /graphs.jsp.
#. Please keep relatively short so it will fit on the graphs.
#: ../../../router/java/src/net/i2p/router/tasks/CoalesceStatsEvent.java:33
@@ -239,7 +246,8 @@ msgstr ""
msgid "NetDb entry"
msgstr "Entrada do BD da rede"
#. This used to be "no common transports" but it is almost always no transports at all
#. This used to be "no common transports" but it is almost always no
#. transports at all
#: ../../../router/java/src/net/i2p/router/transport/GetBidsJob.java:73
msgid "No transports (hidden or starting up?)"
msgstr ""
@@ -273,10 +281,7 @@ msgstr ""
msgid ""
"To override these limits, add the settings i2np.ntcp.maxConnections=nnn and "
"i2np.udp.maxConnections=nnn on the advanced configuration page."
msgstr ""
"Para sobrescrever estes limites, adicione as espeficações i2np.ntcp."
"maxConnections=nnn e i2np.udp.maxConnections=nnn na página de configurações "
"avançadas."
msgstr "Para sobrescrever estes limites, adicione as espeficações i2np.ntcp.maxConnections=nnn e i2np.udp.maxConnections=nnn na página de configurações avançadas."
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:586
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:274
@@ -292,7 +297,7 @@ msgstr "Definições"
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:86
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:199
msgid "Peer"
msgstr "Nós"
msgstr "Nodos"
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:587
msgid "The remote peer, identified by router hash"
@@ -317,7 +322,8 @@ msgid "They offered to introduce us (help other peers traverse our firewall)"
msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:595
msgid "We offered to introduce them (help other peers traverse their firewall)"
msgid ""
"We offered to introduce them (help other peers traverse their firewall)"
msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:596
@@ -388,7 +394,9 @@ msgstr ""
msgid "The round trip time in milliseconds"
msgstr ""
#. "<b id=\"def.dev\">").append(_("Dev")).append("</b>: ").append(_("The standard deviation of the round trip time in milliseconds")).append("<br>\n" +
#. "<b id=\"def.dev\">").append(_("Dev")).append("</b>: ").append(_("The
#. standard deviation of the round trip time in
#. milliseconds")).append("<br>\n" +
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:607
msgid "The retransmit timeout in milliseconds"
msgstr ""
@@ -541,7 +549,8 @@ msgid "UPnP reports the maximum upstream bit rate is {0}bits/sec"
msgstr ""
#. {0} is TCP or UDP
#. {1,number,#####} prevents 12345 from being output as 12,345 in the English locale.
#. {1,number,#####} prevents 12345 from being output as 12,345 in the English
#. locale.
#. If you want the digit separator in your locale, translate as {1}.
#: ../../../router/java/src/net/i2p/router/transport/UPnP.java:651
#, java-format
@@ -743,7 +752,7 @@ msgstr ""
#: ../java/src/net/i2p/router/update/ConsoleUpdateManager.java:760
#, java-format
msgid "New plugin version {0} is available"
msgstr ""
msgstr "Um nova versão da extensão {0} está disponível"
#: ../java/src/net/i2p/router/update/ConsoleUpdateManager.java:838
#, java-format
@@ -753,7 +762,7 @@ msgstr ""
#: ../java/src/net/i2p/router/update/ConsoleUpdateManager.java:840
#, java-format
msgid "No new version is available for plugin {0}"
msgstr ""
msgstr "Não há nenhuma nova versão da extensão {0} disponível"
#: ../java/src/net/i2p/router/update/ConsoleUpdateManager.java:863
#, java-format
@@ -858,7 +867,7 @@ msgstr "Extensão baixada"
#: ../java/src/net/i2p/router/update/PluginUpdateRunner.java:363
#, java-format
msgid "Cannot create plugin directory {0}"
msgstr ""
msgstr "Não é possível criar o diretório da extensão {0}"
#: ../java/src/net/i2p/router/update/PluginUpdateRunner.java:146
#, java-format
@@ -870,7 +879,8 @@ msgstr "A extensão de {0} está corrompida"
msgid "Plugin from {0} does not contain the required configuration file"
msgstr "A extensão de {0} não contém o arquivo de configuração necessário"
#. updateStatus("<b>" + "Plugin contains an invalid key" + ' ' + pubkey + ' ' + signer + "</b>");
#. updateStatus("<b>" + "Plugin contains an invalid key" + ' ' + pubkey + ' '
#. + signer + "</b>");
#: ../java/src/net/i2p/router/update/PluginUpdateRunner.java:170
#, java-format
msgid "Plugin from {0} contains an invalid key"
@@ -896,7 +906,7 @@ msgstr ""
#: ../java/src/net/i2p/router/update/PluginUpdateRunner.java:249
#, java-format
msgid "This plugin requires I2P version {0} or higher"
msgstr ""
msgstr "Esta extensão requer a versão {0} ou mais recente do roteador I2P"
#: ../java/src/net/i2p/router/update/PluginUpdateRunner.java:257
#, java-format
@@ -994,7 +1004,7 @@ msgstr ""
#: ../java/src/net/i2p/router/update/UpdateRunner.java:265
#, java-format
msgid "No new version found at {0}"
msgstr ""
msgstr "Nenhuma nova versão de {0} foi encontrada"
#: ../java/src/net/i2p/router/web/BanlistRenderer.java:64
#, java-format
@@ -1126,7 +1136,7 @@ msgstr ""
#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:40
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:478
msgid "Save Client Configuration"
msgstr "Salvar configuração de cliente"
msgstr "Salvar configuração do cliente"
#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:44
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:544
@@ -1519,8 +1529,8 @@ msgstr ""
#: ../java/src/net/i2p/router/web/ConfigLoggingHelper.java:49
msgid ""
"Or put entries in the logger.config file. Example: logger.record.net.i2p."
"router.tunnel=WARN"
"Or put entries in the logger.config file. Example: "
"logger.record.net.i2p.router.tunnel=WARN"
msgstr ""
#: ../java/src/net/i2p/router/web/ConfigLoggingHelper.java:50
@@ -1563,7 +1573,7 @@ msgstr "Remover"
#: ../java/src/net/i2p/router/web/ConfigLoggingHelper.java:125
msgid "Select a class to add"
msgstr "Selecione a classe para adicionar"
msgstr "Selecione uma classe para adicionar"
#. stat groups for stats.jsp
#: ../java/src/net/i2p/router/web/ConfigNavHelper.java:19
@@ -2124,7 +2134,8 @@ msgstr ""
msgid "Saved order of sections."
msgstr ""
#. the count isn't really correct anyway, since we don't check for actual changes
#. the count isn't really correct anyway, since we don't check for actual
#. changes
#. addFormNotice("Updated settings for " + updated + " pools.");
#: ../java/src/net/i2p/router/web/ConfigTunnelsHandler.java:136
msgid "Updated settings for all pools."
@@ -2222,7 +2233,7 @@ msgstr "Alteração do tema salva."
#: ../java/src/net/i2p/router/web/ConfigUIHandler.java:61
#: ../java/src/net/i2p/router/web/ConfigUIHandler.java:66
msgid "Refresh the page to view."
msgstr ""
msgstr "Para visualizar, recarregue a página."
#: ../java/src/net/i2p/router/web/ConfigUIHandler.java:64
msgid "Mobile console option saved."
@@ -2434,11 +2445,11 @@ msgstr ""
#: ../java/src/net/i2p/router/web/ConfigUpdateHelper.java:120
msgid "Every"
msgstr ""
msgstr "Sempre"
#: ../java/src/net/i2p/router/web/ConfigUpdateHelper.java:138
msgid "Notify only"
msgstr ""
msgstr "Informar apenas"
#: ../java/src/net/i2p/router/web/ConfigUpdateHelper.java:145
msgid "Download and verify only"
@@ -2469,7 +2480,7 @@ msgstr ""
#: ../java/src/net/i2p/router/web/GraphHelper.java:232
#, java-format
msgid "{0} for {1}"
msgstr ""
msgstr "{0} para {1}"
#: ../java/src/net/i2p/router/web/GraphHelper.java:219
#: ../java/src/net/i2p/router/web/StatSummarizer.java:304
@@ -2567,7 +2578,7 @@ msgstr "altura"
#: ../java/src/net/i2p/router/web/GraphHelper.java:360
#: ../java/src/net/i2p/router/web/GraphHelper.java:361
msgid "pixels"
msgstr ""
msgstr "pixels"
#: ../java/src/net/i2p/router/web/GraphHelper.java:362
msgid "Refresh delay"
@@ -2664,7 +2675,8 @@ msgstr ""
msgid "Bug tracker"
msgstr ""
#. "colombo-bt.i2p" + S + _x("The Italian Bittorrent Resource") + S + "http://colombo-bt.i2p/" + S + I + "colomboicon.png" + S +
#. "colombo-bt.i2p" + S + _x("The Italian Bittorrent Resource") + S + "http
#. ://colombo-bt.i2p/" + S + I + "colomboicon.png" + S +
#: ../java/src/net/i2p/router/web/HomeHelper.java:41
msgid "Dev Forum"
msgstr ""
@@ -2733,7 +2745,8 @@ msgstr ""
msgid "Simple and fast microblogging website"
msgstr ""
#. _x("Key Server") + S + _x("OpenPGP Keyserver") + S + "http://keys.i2p/" + S + I + "education.png" + S +
#. _x("Key Server") + S + _x("OpenPGP Keyserver") + S + "http://keys.i2p/" + S
#. + I + "education.png" + S +
#: ../java/src/net/i2p/router/web/HomeHelper.java:51
msgid "Debian and Tahoe-LAFS repositories"
msgstr ""
@@ -2963,7 +2976,7 @@ msgstr "Local"
#: ../java/src/net/i2p/router/web/NetDbRenderer.java:139
msgid "Unpublished"
msgstr ""
msgstr "Não publicado"
#: ../java/src/net/i2p/router/web/NetDbRenderer.java:140
#: ../java/src/net/i2p/router/web/NetDbRenderer.java:147
@@ -3049,7 +3062,7 @@ msgstr "{0} atrás"
#: ../java/src/net/i2p/router/web/NetDbRenderer.java:402
#: ../java/src/net/i2p/router/web/NetDbRenderer.java:406
msgid "Published"
msgstr ""
msgstr "Publicado"
#: ../java/src/net/i2p/router/web/NetDbRenderer.java:408
msgid "Address(es)"
@@ -3401,12 +3414,14 @@ msgstr ""
msgid "Highest events per period"
msgstr ""
#. if (showAll && (curFreq.getMaxAverageEventsPerPeriod() > 0) && (curFreq.getAverageEventsPerPeriod() > 0) ) {
#. if (showAll && (curFreq.getMaxAverageEventsPerPeriod() > 0) &&
#. (curFreq.getAverageEventsPerPeriod() > 0) ) {
#. buf.append("(current is ");
#. buf.append(pct(curFreq.getAverageEventsPerPeriod()/curFreq.getMaxAverageEventsPerPeriod()));
#. buf.append(" of max)");
#. }
#. buf.append(" <i>avg interval between updates:</i> (").append(num(curFreq.getAverageInterval())).append("ms, min ");
#. buf.append(" <i>avg interval between updates:</i>
#. (").append(num(curFreq.getAverageInterval())).append("ms, min ");
#. buf.append(num(curFreq.getMinAverageInterval())).append("ms)");
#: ../java/src/net/i2p/router/web/StatsGenerator.java:135
msgid "Lifetime average events per period"
@@ -3484,7 +3499,7 @@ msgstr ""
#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:144
msgid "Help &amp; FAQ"
msgstr "Ajuda &amp; FAQ"
msgstr "Ajuda &amp; Perguntas Frequentes"
#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:152
msgid ""
@@ -3580,11 +3595,11 @@ msgstr "Identidade local"
#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:282
msgid "Your unique I2P router identity is"
msgstr ""
msgstr "O identificador, único, do seu roteador I2P é"
#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:286
msgid "never reveal it to anyone"
msgstr ""
msgstr "nunca revele-o para alguém"
#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:288
msgid "show"
@@ -3672,7 +3687,8 @@ msgstr "Usados"
#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:498
msgid ""
"Used for building and testing tunnels, and communicating with floodfill peers"
"Used for building and testing tunnels, and communicating with floodfill "
"peers"
msgstr ""
#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:501
@@ -3887,7 +3903,8 @@ msgstr ""
#. Note to translators: parameter is a date and time, e.g. "02-Mar 20:34 UTC"
#. <br> is optional, to help the browser make the lines even in the button
#. If the translation is shorter than the English, you should probably not include <br>
#. If the translation is shorter than the English, you should probably not
#. include <br>
#: ../java/src/net/i2p/router/web/SummaryHelper.java:721
#, java-format
msgid "Download Unsigned<br>Update {0}"
@@ -4128,7 +4145,7 @@ msgstr ""
#: ../java/strings/Strings.java:37
msgid "IRC proxy"
msgstr ""
msgstr "Proxy IRC"
#: ../java/strings/Strings.java:38
msgid "eepsite"
@@ -4140,16 +4157,16 @@ msgstr ""
#: ../java/strings/Strings.java:40
msgid "HTTP Proxy"
msgstr ""
msgstr "Proxy HTTP"
#. older names for pre-0.7.4 installs
#: ../java/strings/Strings.java:42
msgid "eepProxy"
msgstr ""
msgstr "eepProxy"
#: ../java/strings/Strings.java:43
msgid "ircProxy"
msgstr ""
msgstr "proxyIrc"
#. hardcoded in i2psnark
#: ../java/strings/Strings.java:45
@@ -4341,7 +4358,8 @@ msgstr ""
msgid "Router is down"
msgstr ""
#. We have intl defined when this is included, but not when compiled standalone.
#. We have intl defined when this is included, but not when compiled
#. standalone.
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:299
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configadvanced_jsp.java:299
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:325
@@ -4540,11 +4558,11 @@ msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:354
msgid "I2P Client Configuration"
msgstr ""
msgstr "Configuração do cliente I2P"
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:451
msgid "Client Configuration"
msgstr ""
msgstr "Configuração do cliente"
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:453
msgid ""
@@ -4554,8 +4572,8 @@ msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:455
msgid ""
"Be careful changing any settings here. The 'router console' and 'application "
"tunnels' are required for most uses of I2P. Only advanced users should "
"Be careful changing any settings here. The 'router console' and 'application"
" tunnels' are required for most uses of I2P. Only advanced users should "
"change these."
msgstr ""
@@ -4603,7 +4621,7 @@ msgstr "Autorização"
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:530
msgid "Require username and password"
msgstr ""
msgstr "Necessário nome de usuário e senha"
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:532
msgid "Username"
@@ -4631,8 +4649,8 @@ msgstr ""
msgid ""
"The Java web applications listed below are started by the webConsole client "
"and run in the same JVM as the router. They are usually web applications "
"accessible through the router console. They may be complete applications (e."
"g. i2psnark),front-ends to another client or application which must be "
"accessible through the router console. They may be complete applications "
"(e.g. i2psnark),front-ends to another client or application which must be "
"separately enabled (e.g. susidns, i2ptunnel), or have no web interface at "
"all (e.g. addressbook)."
msgstr ""
@@ -4682,7 +4700,7 @@ msgid "Recommended Eepsites"
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confighome_jsp.java:496
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/home_jsp.java:407
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/home_jsp.java:409
msgid "Local Services"
msgstr ""
@@ -4818,7 +4836,7 @@ msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confignet_jsp.java:464
msgid "IP Configuration"
msgstr ""
msgstr "Configuração de IP"
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confignet_jsp.java:466
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confignet_jsp.java:552
@@ -4852,7 +4870,7 @@ msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confignet_jsp.java:492
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confignet_jsp.java:570
msgid "Specify hostname or IP"
msgstr ""
msgstr "Especificar o hostname ou IP"
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confignet_jsp.java:496
msgid "Action when IP changes"
@@ -4921,7 +4939,7 @@ msgstr "Usar endereço de IP automaticamente detectado"
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confignet_jsp.java:558
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confignet_jsp.java:590
msgid "currently"
msgstr ""
msgstr "atualmente"
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confignet_jsp.java:562
msgid "if we are not firewalled"
@@ -4970,14 +4988,14 @@ msgstr "Ajuda de configuração"
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confignet_jsp.java:660
msgid ""
"While I2P will work fine behind most firewalls, your speeds and network "
"integration will generally improve if the I2P port is forwarded for both UDP "
"and TCP."
"integration will generally improve if the I2P port is forwarded for both UDP"
" and TCP."
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confignet_jsp.java:613
msgid ""
"If you can, please poke a hole in your firewall to allow unsolicited UDP and "
"TCP packets to reach you."
"If you can, please poke a hole in your firewall to allow unsolicited UDP and"
" TCP packets to reach you."
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confignet_jsp.java:615
@@ -4988,8 +5006,9 @@ msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confignet_jsp.java:617
msgid ""
"Most of the options above are for special situations, for example where UPnP "
"does not work correctly, or a firewall not under your control is doing harm."
"Most of the options above are for special situations, for example where UPnP"
" does not work correctly, or a firewall not under your control is doing "
"harm."
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confignet_jsp.java:619
@@ -5050,7 +5069,8 @@ msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confignet_jsp.java:652
msgid ""
"Also, <b>do not enter a private IP address</b> like 127.0.0.1 or 192.168.1.1."
"Also, <b>do not enter a private IP address</b> like 127.0.0.1 or "
"192.168.1.1."
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confignet_jsp.java:654
@@ -5149,8 +5169,8 @@ msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confignet_jsp.java:700
msgid ""
"You have configured I2P to share more than 128KBps of bandwidth, but you are "
"firewalled."
"You have configured I2P to share more than 128KBps of bandwidth, but you are"
" firewalled."
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confignet_jsp.java:702
@@ -5186,8 +5206,8 @@ msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confignet_jsp.java:714
msgid ""
"If your TCP port is firewalled with inbound TCP enabled, routers will not be "
"able to contact you via TCP, which will hurt the network."
"If your TCP port is firewalled with inbound TCP enabled, routers will not be"
" able to contact you via TCP, which will hurt the network."
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confignet_jsp.java:716
@@ -5297,7 +5317,7 @@ msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confignet_jsp.java:760
msgid "Please configure a TCP host and port above or enable UDP."
msgstr ""
msgstr "Por favor, configure um host e uma porta para o TCP acima ou habilite o UDP."
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/confignet_jsp.java:762
msgid "ERR - Client Manager I2CP Error - check logs"
@@ -5344,8 +5364,8 @@ msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:478
msgid ""
"Bonuses may be positive or negative, and affect the peer's inclusion in Fast "
"and High Capacity tiers. Fast peers are used for client tunnels, and High "
"Bonuses may be positive or negative, and affect the peer's inclusion in Fast"
" and High Capacity tiers. Fast peers are used for client tunnels, and High "
"Capacity peers are used for some exploratory tunnels. Current bonuses are "
"displayed on the"
msgstr ""
@@ -5483,19 +5503,20 @@ msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:439
msgid ""
"Graceful shutdown lets the router satisfy the agreements it has already made "
"before shutting down, but may take a few minutes."
"Graceful shutdown lets the router satisfy the agreements it has already made"
" before shutting down, but may take a few minutes."
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:441
msgid ""
"If you need to kill the router immediately, that option is available as well."
"If you need to kill the router immediately, that option is available as "
"well."
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:451
msgid ""
"If you want the router to restart itself after shutting down, you can choose "
"one of the following."
"If you want the router to restart itself after shutting down, you can choose"
" one of the following."
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:453
@@ -5513,8 +5534,8 @@ msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:457
msgid ""
"After tearing down the router, it will wait 1 minute before starting back up "
"again."
"After tearing down the router, it will wait 1 minute before starting back up"
" again."
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:467
@@ -5534,7 +5555,8 @@ msgid ""
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:473
msgid "If you are on windows, you can either enable or disable that icon here."
msgid ""
"If you are on windows, you can either enable or disable that icon here."
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:475
@@ -5551,8 +5573,8 @@ msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:481
msgid ""
"You can control whether I2P is run on startup or not by selecting one of the "
"following options - I2P will install (or remove) a service accordingly."
"You can control whether I2P is run on startup or not by selecting one of the"
" following options - I2P will install (or remove) a service accordingly."
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:483
@@ -5566,8 +5588,8 @@ msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:493
msgid ""
"If you are running I2P as service right now, removing it will shut down your "
"router immediately."
"If you are running I2P as service right now, removing it will shut down your"
" router immediately."
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:495
@@ -5586,9 +5608,9 @@ msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:505
msgid ""
"At times, it may be helpful to debug I2P by getting a thread dump. To do so, "
"please select the following option and review the thread dumped to <a href="
"\"logs.jsp#servicelogs\">wrapper.log</a>."
"At times, it may be helpful to debug I2P by getting a thread dump. To do so,"
" please select the following option and review the thread dumped to <a "
"href=\"logs.jsp#servicelogs\">wrapper.log</a>."
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:517
@@ -5686,8 +5708,8 @@ msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configtunnels_jsp.java:456
msgid ""
"Tunnels longer than 3 hops (for example 2 hops + 0-2 hops, 3 hops + 0-1 "
"hops, 3 hops + 0-2 hops), or a high quantity + backup quantity, may severely "
"reduce performance or reliability."
"hops, 3 hops + 0-2 hops), or a high quantity + backup quantity, may severely"
" reduce performance or reliability."
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configtunnels_jsp.java:459
@@ -5837,8 +5859,8 @@ msgstr ""
msgid "home"
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/console_jsp.java:394
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/home_jsp.java:375
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/console_jsp.java:396
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/home_jsp.java:377
msgid "Welcome to I2P"
msgstr ""
@@ -5889,8 +5911,8 @@ msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/error500_jsp.java:175
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/logs_jsp.java:346
msgid ""
"You may use the username \"guest\" and password \"guest\" if you do not wish "
"to register."
"You may use the username \"guest\" and password \"guest\" if you do not wish"
" to register."
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/error500_jsp.java:177
@@ -5916,7 +5938,8 @@ msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/logs_jsp.java:397
msgid ""
"Note that system information, log timestamps, and log messages may provide "
"clues to your location; please review everything you include in a bug report."
"clues to your location; please review everything you include in a bug "
"report."
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/error_jsp.java:155
@@ -5953,11 +5976,11 @@ msgid ""
"change it later."
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/home_jsp.java:383
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/home_jsp.java:385
msgid "Search I2P"
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/home_jsp.java:403
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/home_jsp.java:405
msgid "Eepsites of Interest"
msgstr ""
@@ -6023,8 +6046,8 @@ msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/nowebapp_jsp.java:344
msgid ""
"Please visit the <a href=\"/configclients.jsp#webapp\">config clients page</"
"a> to start it."
"Please visit the <a href=\"/configclients.jsp#webapp\">config clients "
"page</a> to start it."
msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/peers_jsp.java:143

File diff suppressed because it is too large Load Diff

View File

@@ -7,13 +7,14 @@
# naeto <a89393@rmqkr.net>, 2012
# Денис Лысенко <gribua@gmail.com>, 2011
# Денис Лысенко <gribua@gmail.com>, 2011
# jonny_nut, 2014
msgid ""
msgstr ""
"Project-Id-Version: I2P\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-01-09 19:27+0000\n"
"PO-Revision-Date: 2014-01-10 11:42+0000\n"
"Last-Translator: kytv <killyourtv@i2pmail.org>\n"
"PO-Revision-Date: 2014-01-23 16:47+0000\n"
"Last-Translator: jonny_nut\n"
"Language-Team: Ukrainian (Ukraine) (http://www.transifex.com/projects/p/I2P/language/uk_UA/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -369,7 +370,7 @@ msgstr "Підключений"
#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:1127
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2542
msgid "Skew"
msgstr ""
msgstr "Нахил"
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:599
msgid "The difference between the peer's clock and your own"
@@ -586,12 +587,12 @@ msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:1117
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2520
msgid "Limit"
msgstr ""
msgstr "Обмеження"
#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:1118
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2521
msgid "Timeout"
msgstr ""
msgstr "Упущення часу бездіяльности"
#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:1123
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2529
@@ -600,23 +601,23 @@ msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:1130
msgid "Out Queue"
msgstr ""
msgstr "Вихідна Черга"
#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:1131
msgid "Backlogged?"
msgstr ""
msgstr "Перевантажено?"
#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:1144
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2583
#: ../java/src/net/i2p/router/web/ConfigTunnelsHelper.java:91
msgid "Inbound"
msgstr ""
msgstr "вхідно"
#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:1146
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2585
#: ../java/src/net/i2p/router/web/ConfigTunnelsHelper.java:91
msgid "Outbound"
msgstr ""
msgstr "вихідно"
#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:1201
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2750
@@ -629,7 +630,7 @@ msgstr[2] ""
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2519
msgid "UDP connections"
msgstr ""
msgstr "зв'язки UDP"
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2526
msgid "Sort by peer hash"
@@ -641,27 +642,27 @@ msgstr ""
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2531
msgid "Sort by idle inbound"
msgstr ""
msgstr "Порядком за вхідню бездіяльність"
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2533
msgid "Sort by idle outbound"
msgstr ""
msgstr "Порядком за вихідню бездіяльність"
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2536
msgid "Sort by inbound rate"
msgstr ""
msgstr "Порядком за вхідну ставку"
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2538
msgid "Sort by outbound rate"
msgstr ""
msgstr "Порядком за вихідну ставку"
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2541
msgid "Sort by connection uptime"
msgstr ""
msgstr "Порядком за тривалість зв'язку"
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2543
msgid "Sort by clock skew"
msgstr ""
msgstr "Порядком за нахилом такту"
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2546
msgid "Sort by congestion window"
@@ -725,7 +726,7 @@ msgstr ""
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:165
#: ../java/src/net/i2p/router/web/ProfilesHelper.java:13
msgid "Banned"
msgstr ""
msgstr "Забороненo"
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:2668
msgid "backlogged"
@@ -1249,7 +1250,7 @@ msgstr ""
#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:326
msgid "started"
msgstr ""
msgstr "почато"
#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:328
msgid "Failed to start"
@@ -1257,7 +1258,7 @@ msgstr ""
#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:333
msgid "Failed to find server."
msgstr ""
msgstr "Провал пошуку за сервер"
#: ../java/src/net/i2p/router/web/ConfigClientsHandler.java:339
msgid "No plugin URL specified."
@@ -1318,7 +1319,7 @@ msgstr ""
#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:76
#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:281
msgid "Edit"
msgstr ""
msgstr "Редагування"
#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:85
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:474
@@ -1333,7 +1334,7 @@ msgstr ""
#: ../java/src/net/i2p/router/web/SummaryBarRenderer.java:510
#: ../java/src/net/i2p/router/web/SummaryHelper.java:427
msgid "Client"
msgstr ""
msgstr "Клієнт"
#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:94
#: ../java/src/net/i2p/router/web/ConfigClientsHelper.java:138

View File

@@ -307,6 +307,8 @@ class Connection {
reply.setSendStreamId(_sendStreamId);
reply.setReceiveStreamId(_receiveStreamId);
reply.setOptionalFrom(_connectionManager.getSession().getMyDestination());
reply.setLocalPort(_localPort);
reply.setRemotePort(_remotePort);
// this just sends the packet - no retries or whatnot
if (_outboundQueue.enqueue(reply)) {
_unackedPacketsReceived = 0;

View File

@@ -206,9 +206,9 @@ class ConnectionDataReceiver implements MessageOutputStream.DataReceiver {
packet.setFlag(Packet.FLAG_SYNCHRONIZE);
packet.setOptionalFrom(con.getSession().getMyDestination());
packet.setOptionalMaxSize(con.getOptions().getMaxMessageSize());
packet.setLocalPort(con.getLocalPort());
packet.setRemotePort(con.getPort());
}
packet.setLocalPort(con.getLocalPort());
packet.setRemotePort(con.getPort());
if (con.getSendStreamId() == Packet.STREAM_ID_UNKNOWN) {
packet.setFlag(Packet.FLAG_NO_ACK);
}

View File

@@ -262,6 +262,8 @@ class ConnectionManager {
reply.setSendStreamId(synPacket.getReceiveStreamId());
reply.setReceiveStreamId(0);
reply.setOptionalFrom(_session.getMyDestination());
reply.setLocalPort(synPacket.getLocalPort());
reply.setRemotePort(synPacket.getRemotePort());
// this just sends the packet - no retries or whatnot
_outboundQueue.enqueue(reply);
return null;
@@ -284,6 +286,44 @@ class ConnectionManager {
return con;
}
/**
* Process a ping by checking for throttling, etc., then sending a pong.
*
* @param con null if unknown
* @param ping Ping packet to process, must have From and Sig fields,
* with signature already verified, only if answerPings() returned true
* @return true if we sent a pong
* @since 0.9.12 from PacketHandler.receivePing()
*/
public boolean receivePing(Connection con, Packet ping) {
Destination dest = ping.getOptionalFrom();
if (dest == null)
return false;
if (con == null) {
// Use the same throttling as for connections
String why = shouldRejectConnection(ping);
if (why != null) {
if ((!_defaultOptions.getDisableRejectLogging()) || _log.shouldLog(Log.WARN))
_log.logAlways(Log.WARN, "Dropping ping since peer is " + why + ": " + dest.calculateHash());
return false;
}
} else {
// in-connection ping to a 3rd party ???
if (!dest.equals(con.getRemotePeer())) {
_log.logAlways(Log.WARN, "Dropping ping from " + con.getRemotePeer().calculateHash() +
" to " + dest.calculateHash());
return false;
}
}
PacketLocal pong = new PacketLocal(_context, dest);
pong.setFlag(Packet.FLAG_ECHO | Packet.FLAG_NO_ACK);
pong.setReceiveStreamId(ping.getSendStreamId());
pong.setLocalPort(ping.getLocalPort());
pong.setRemotePort(ping.getRemotePort());
_outboundQueue.enqueue(pong);
return true;
}
private static final long DEFAULT_STREAM_DELAY_MAX = 10*1000;
/**
@@ -572,24 +612,44 @@ class ConnectionManager {
return new HashSet<Connection>(_connectionByInboundId.values());
}
/** blocking */
/**
* blocking
*
* @param timeoutMs greater than zero
* @return true if pong received
*/
public boolean ping(Destination peer, long timeoutMs) {
return ping(peer, timeoutMs, true, null);
}
public boolean ping(Destination peer, long timeoutMs, boolean blocking) {
return ping(peer, timeoutMs, blocking, null);
return ping(peer, 0, 0, timeoutMs, true, null);
}
/**
* @deprecated I2PSession ignores tags, use non-tag variant
* @param keyToUse ignored
* @param tagsToSend ignored
* blocking
*
* @param timeoutMs greater than zero
* @return true if pong received
* @since 0.9.12 added port args
*/
public boolean ping(Destination peer, long timeoutMs, boolean blocking, SessionKey keyToUse, Set<?> tagsToSend, PingNotifier notifier) {
return ping(peer, timeoutMs, blocking, notifier);
public boolean ping(Destination peer, int fromPort, int toPort, long timeoutMs) {
return ping(peer, fromPort, toPort, timeoutMs, true, null);
}
public boolean ping(Destination peer, long timeoutMs, boolean blocking, PingNotifier notifier) {
/**
* @param timeoutMs greater than zero
* @return true if blocking and pong received
* @since 0.9.12 added port args
*/
public boolean ping(Destination peer, int fromPort, int toPort, long timeoutMs, boolean blocking) {
return ping(peer, fromPort, toPort, timeoutMs, blocking, null);
}
/**
* @param timeoutMs greater than zero
* @param notifier may be null
* @return true if blocking and pong received
* @since 0.9.12 added port args
*/
public boolean ping(Destination peer, int fromPort, int toPort, long timeoutMs,
boolean blocking, PingNotifier notifier) {
Long id = Long.valueOf(_context.random().nextLong(Packet.MAX_STREAM_ID-1)+1);
PacketLocal packet = new PacketLocal(_context, peer);
packet.setSendStreamId(id.longValue());
@@ -597,13 +657,15 @@ class ConnectionManager {
Packet.FLAG_NO_ACK |
Packet.FLAG_SIGNATURE_INCLUDED);
packet.setOptionalFrom(_session.getMyDestination());
packet.setLocalPort(fromPort);
packet.setRemotePort(toPort);
//if ( (keyToUse != null) && (tagsToSend != null) ) {
// packet.setKeyUsed(keyToUse);
// packet.setTagsSent(tagsToSend);
//}
if (_log.shouldLog(Log.INFO)) {
_log.info(String.format("about to ping %s timeout=%d blocking=%b",
peer,timeoutMs,blocking));
_log.info(String.format("about to ping %s port %d from port %d timeout=%d blocking=%b",
peer.calculateHash().toString(), toPort, fromPort, timeoutMs, blocking));
}
@@ -658,6 +720,7 @@ class ConnectionManager {
private boolean _ponged;
private final PingNotifier _notifier;
/** @param notifier may be null */
public PingRequest(PingNotifier notifier) {
_notifier = notifier;
}

View File

@@ -148,13 +148,41 @@ public class I2PSocketManagerFull implements I2PSocketManager {
* Ping the specified peer, returning true if they replied to the ping within
* the timeout specified, false otherwise. This call blocks.
*
* Uses the ports from the default options.
*
* @param peer
* @param timeoutMs
* @param timeoutMs timeout in ms, greater than zero
* @return true on success, false on failure
* @throws IllegalArgumentException
*/
public boolean ping(Destination peer, long timeoutMs) {
return _connectionManager.ping(peer, timeoutMs);
if (timeoutMs <= 0)
throw new IllegalArgumentException("bad timeout");
return _connectionManager.ping(peer, _defaultOptions.getLocalPort(),
_defaultOptions.getPort(), timeoutMs);
}
/**
* Ping the specified peer, returning true if they replied to the ping within
* the timeout specified, false otherwise. This call blocks.
*
* Uses the ports specified.
*
* @param peer Destination to ping
* @param localPort 0 - 65535
* @param remotePort 0 - 65535
* @param timeoutMs timeout in ms, greater than zero
* @return success or failure
* @throws IllegalArgumentException
* @since 0.9.12
*/
public boolean ping(Destination peer, int localPort, int remotePort, long timeoutMs) {
if (localPort < 0 || localPort > 65535 ||
remotePort < 0 || remotePort > 65535)
throw new IllegalArgumentException("bad port");
if (timeoutMs <= 0)
throw new IllegalArgumentException("bad timeout");
return _connectionManager.ping(peer, localPort, remotePort, timeoutMs);
}
/**

View File

@@ -5,6 +5,7 @@ import java.io.IOException;
import java.util.Arrays;
import net.i2p.I2PAppContext;
import net.i2p.crypto.SigType;
import net.i2p.data.Base64;
import net.i2p.data.ByteArray;
import net.i2p.data.DataFormatException;
@@ -403,13 +404,14 @@ class Packet {
* @throws IllegalStateException if there is data missing or otherwise b0rked
*/
public int writePacket(byte buffer[], int offset) throws IllegalStateException {
return writePacket(buffer, offset, true);
return writePacket(buffer, offset, 0);
}
/**
* @param includeSig if true, include the real signature, otherwise put zeroes
* in its place.
* @param fakeSigLen if 0, include the real signature in _optionSignature;
* if nonzero, leave space for that many bytes
*/
private int writePacket(byte buffer[], int offset, boolean includeSig) throws IllegalStateException {
private int writePacket(byte buffer[], int offset, int fakeSigLen) throws IllegalStateException {
int cur = offset;
DataHelper.toLong(buffer, cur, 4, (_sendStreamId >= 0 ? _sendStreamId : STREAM_ID_UNKNOWN));
cur += 4;
@@ -443,8 +445,14 @@ class Packet {
optionSize += _optionFrom.size();
if (isFlagSet(FLAG_MAX_PACKET_SIZE_INCLUDED))
optionSize += 2;
if (isFlagSet(FLAG_SIGNATURE_INCLUDED))
optionSize += Signature.SIGNATURE_BYTES;
if (isFlagSet(FLAG_SIGNATURE_INCLUDED)) {
if (fakeSigLen > 0)
optionSize += fakeSigLen;
else if (_optionSignature != null)
optionSize += _optionSignature.length();
else
throw new IllegalStateException();
}
DataHelper.toLong(buffer, cur, 2, optionSize);
cur += 2;
@@ -461,11 +469,14 @@ class Packet {
cur += 2;
}
if (isFlagSet(FLAG_SIGNATURE_INCLUDED)) {
if (includeSig)
System.arraycopy(_optionSignature.getData(), 0, buffer, cur, Signature.SIGNATURE_BYTES);
else // we're signing (or validating)
Arrays.fill(buffer, cur, cur+Signature.SIGNATURE_BYTES, (byte)0x0);
cur += Signature.SIGNATURE_BYTES;
if (fakeSigLen == 0) {
// we're signing (or validating)
System.arraycopy(_optionSignature.getData(), 0, buffer, cur, _optionSignature.length());
cur += _optionSignature.length();
} else {
Arrays.fill(buffer, cur, cur + fakeSigLen, (byte)0x0);
cur += fakeSigLen;
}
}
if (_payload != null) {
@@ -518,7 +529,7 @@ class Packet {
if (isFlagSet(FLAG_MAX_PACKET_SIZE_INCLUDED))
size += 2;
if (isFlagSet(FLAG_SIGNATURE_INCLUDED))
size += Signature.SIGNATURE_BYTES;
size += _optionSignature.length();
size += 2; // option size
@@ -613,12 +624,37 @@ class Packet {
cur += 2;
}
if (isFlagSet(FLAG_SIGNATURE_INCLUDED)) {
Signature optionSignature = new Signature();
byte buf[] = new byte[Signature.SIGNATURE_BYTES];
System.arraycopy(buffer, cur, buf, 0, Signature.SIGNATURE_BYTES);
Signature optionSignature;
Destination from = getOptionalFrom();
if (from != null) {
optionSignature = new Signature(from.getSigningPublicKey().getType());
} else {
// super cheat for now, look for correct type,
// assume no more options. If we add to the options
// we will have to ask the manager.
int siglen = payloadBegin - cur;
SigType type = null;
for (SigType t : SigType.values()) {
if (t.getSigLen() == siglen) {
type = t;
break;
}
}
if (type == null) {
if (siglen < Signature.SIGNATURE_BYTES)
throw new IllegalArgumentException("unknown sig type len=" + siglen);
// Hope it's the default type with some unknown options following;
// if not the sig will fail later
type = SigType.DSA_SHA1;
siglen = Signature.SIGNATURE_BYTES;
}
optionSignature = new Signature(type);
}
byte buf[] = new byte[optionSignature.length()];
System.arraycopy(buffer, cur, buf, 0, buf.length);
optionSignature.setData(buf);
setOptionalSignature(optionSignature);
cur += Signature.SIGNATURE_BYTES;
cur += buf.length;
}
}
@@ -641,7 +677,7 @@ class Packet {
if (buffer == null)
buffer = new byte[size];
int written = writePacket(buffer, 0, false);
int written = writePacket(buffer, 0, from.getSigningPublicKey().getType().getSigLen());
if (written != size) {
ctx.logManager().getLog(Packet.class).error("Written " + written + " size " + size + " for " + toString(), new Exception("moo"));
return false;
@@ -672,14 +708,14 @@ class Packet {
*/
public int writeSignedPacket(byte buffer[], int offset, I2PAppContext ctx, SigningPrivateKey key) throws IllegalStateException {
setFlag(FLAG_SIGNATURE_INCLUDED);
int size = writePacket(buffer, offset, false);
int size = writePacket(buffer, offset, key.getType().getSigLen());
_optionSignature = ctx.dsa().sign(buffer, offset, size, key);
if (false) {
Log l = ctx.logManager().getLog(Packet.class);
l.error("Signing: " + toString());
l.error(Base64.encode(buffer, 0, size));
l.error("Signature: " + Base64.encode(_optionSignature.getData()));
}
//if (false) {
// Log l = ctx.logManager().getLog(Packet.class);
// l.error("Signing: " + toString());
// l.error(Base64.encode(buffer, 0, size));
// l.error("Signature: " + Base64.encode(_optionSignature.getData()));
//}
// jump into the signed data and inject the signature where we
// previously placed a bunch of zeroes
int signatureOffset = offset
@@ -694,7 +730,7 @@ class Packet {
+ (isFlagSet(FLAG_DELAY_REQUESTED) ? 2 : 0)
+ (isFlagSet(FLAG_FROM_INCLUDED) ? _optionFrom.size() : 0)
+ (isFlagSet(FLAG_MAX_PACKET_SIZE_INCLUDED) ? 2 : 0);
System.arraycopy(_optionSignature.getData(), 0, buffer, signatureOffset, Signature.SIGNATURE_BYTES);
System.arraycopy(_optionSignature.getData(), 0, buffer, signatureOffset, _optionSignature.length());
return size;
}
@@ -740,7 +776,7 @@ class Packet {
if (isFlagSet(FLAG_CLOSE)) buf.append(" CLOSE");
if (isFlagSet(FLAG_DELAY_REQUESTED)) buf.append(" DELAY ").append(_optionDelay);
if (isFlagSet(FLAG_ECHO)) buf.append(" ECHO");
if (isFlagSet(FLAG_FROM_INCLUDED)) buf.append(" FROM");
if (isFlagSet(FLAG_FROM_INCLUDED)) buf.append(" FROM ").append(_optionFrom.size());
if (isFlagSet(FLAG_MAX_PACKET_SIZE_INCLUDED)) buf.append(" MS ").append(_optionMaxSize);
if (isFlagSet(FLAG_PROFILE_INTERACTIVE)) buf.append(" INTERACTIVE");
if (isFlagSet(FLAG_RESET)) buf.append(" RESET");

View File

@@ -136,7 +136,7 @@ class PacketHandler {
if (packet.isFlagSet(Packet.FLAG_ECHO)) {
if (packet.getSendStreamId() > 0) {
if (con.getOptions().getAnswerPings())
receivePing(packet);
receivePing(con, packet);
else if (_log.shouldLog(Log.WARN))
_log.warn("Dropping Echo packet on existing con: " + packet);
} else if (packet.getReceiveStreamId() > 0) {
@@ -247,6 +247,8 @@ class PacketHandler {
reply.setSendStreamId(packet.getReceiveStreamId());
reply.setReceiveStreamId(packet.getSendStreamId());
reply.setOptionalFrom(_manager.getSession().getMyDestination());
reply.setLocalPort(packet.getLocalPort());
reply.setRemotePort(packet.getRemotePort());
// this just sends the packet - no retries or whatnot
_manager.getPacketQueue().enqueue(reply);
}
@@ -255,7 +257,7 @@ class PacketHandler {
if (packet.isFlagSet(Packet.FLAG_ECHO)) {
if (packet.getSendStreamId() > 0) {
if (_manager.answerPings())
receivePing(packet);
receivePing(null, packet);
else if (_log.shouldLog(Log.WARN))
_log.warn("Dropping Echo packet on unknown con: " + packet);
} else if (packet.getReceiveStreamId() > 0) {
@@ -335,7 +337,10 @@ class PacketHandler {
}
}
private void receivePing(Packet packet) {
/**
* @param con null if unknown
*/
private void receivePing(Connection con, Packet packet) {
boolean ok = packet.verifySignature(_context, packet.getOptionalFrom(), null);
if (!ok) {
if (_log.shouldLog(Log.WARN)) {
@@ -348,10 +353,7 @@ class PacketHandler {
+ " sig=" + packet.getOptionalSignature().toBase64() + ")");
}
} else {
PacketLocal pong = new PacketLocal(_context, packet.getOptionalFrom());
pong.setFlag(Packet.FLAG_ECHO | Packet.FLAG_NO_ACK);
pong.setReceiveStreamId(packet.getSendStreamId());
_manager.getPacketQueue().enqueue(pong);
_manager.receivePing(con, packet);
}
}

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: I2P susidns\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-01-09 19:27+0000\n"
"POT-Creation-Date: 2014-02-06 18:27+0000\n"
"PO-Revision-Date: 2010-06-15 14:09+0100\n"
"Last-Translator: duck <duck@mail.i2p>\n"
"Language-Team: duck <duck@mail.i2p>\n"
@@ -628,8 +628,8 @@ msgstr ""
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:140
msgid ""
"For more information on naming in I2P, see <a href=\"http://www.i2p2.i2p/"
"naming.html\" target=\"_top\">the overview on www.i2p2.i2p</a>."
"For more information on naming in I2P, see <a href=\"http://i2p-projekt.i2p/"
"naming.html\" target=\"_top\">the overview</a>."
msgstr ""
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:142

View File

@@ -29,6 +29,7 @@ import java.util.Locale;
import java.util.Properties;
import net.i2p.I2PAppContext;
import net.i2p.crypto.SigType;
import net.i2p.data.Base32;
import net.i2p.data.Base64;
import net.i2p.data.Certificate;
@@ -228,11 +229,38 @@ public class AddressBean
return _("Hidden");
case Certificate.CERTIFICATE_TYPE_SIGNED:
return _("Signed");
case Certificate.CERTIFICATE_TYPE_KEY:
return _("Key");
default:
return _("Type {0}", type);
}
}
/**
* Do this the easy way
* @since 0.9.12
*/
public String getSigType() {
// (4 / 3) * (pubkey length + signing key length)
String cert = destination.substring(512);
if (cert.equals("AAAA"))
return _("DSA 1024 bit");
byte[] enc = Base64.decode(cert);
if (enc == null)
// shouldn't happen
return "invalid";
int type = enc[0] & 0xff;
if (type != Certificate.CERTIFICATE_TYPE_KEY)
return _("DSA 1024 bit");
int st = ((enc[3] & 0xff) << 8) | (enc[4] & 0xff);
if (st == 0)
return _("DSA 1024 bit");
SigType stype = SigType.getByCode(st);
if (stype == null)
return _("Type {0}", st);
return stype.toString();
}
/** @since 0.8.7 */
private String getProp(String p) {
if (props == null)

View File

@@ -20,6 +20,11 @@ public class Messages {
return Translate.getString(key, _context, BUNDLE_NAME);
}
/** @since 0.9.11 */
public String _(String key, Object o) {
return Translate.getString(key, o, _context, BUNDLE_NAME);
}
public static String getString(String s) {
return Translate.getString(s, I2PAppContext.getGlobalContext(), BUNDLE_NAME);
}

View File

@@ -31,7 +31,6 @@
%>
<%@page pageEncoding="UTF-8"%>
<%@page trimDirectiveWhitespaces="true"%>
<%@ page contentType="text/html" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<jsp:useBean id="version" class="i2p.susi.dns.VersionBean" scope="application"/>

View File

@@ -107,7 +107,7 @@
<td><%=intl._("ElGamal 2048 bit")%></td>
</tr><tr class="list${book.trClass}">
<td><%=intl._("Signing Key")%></td>
<td><%=intl._("DSA 1024 bit")%></td>
<td><%=addr.getSigType()%></td>
</tr><tr class="list${book.trClass}">
<td><%=intl._("Certificate")%></td>
<td><%=addr.getCert()%></td>

View File

@@ -31,7 +31,6 @@
%>
<%@page pageEncoding="UTF-8"%>
<%@page trimDirectiveWhitespaces="true"%>
<%@ page contentType="text/html"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<jsp:useBean id="version" class="i2p.susi.dns.VersionBean" scope="application" />
@@ -70,7 +69,7 @@
<%=intl._("It regularly updates your hosts.txt file from distributed sources or \"subscriptions\".")%>
</p>
<p>
<%=intl._("In the default configuration, the address book is only subscribed to www.i2p2.i2p.")%>
<%=intl._("In the default configuration, the address book is only subscribed to {0}.", "i2p-projekt.i2p")%>
<%=intl._("Subscribing to additional sites is easy, just add them to your <a href=\"subscriptions\">subscriptions</a> file.")%>
</p>
<p>

View File

@@ -31,7 +31,6 @@
%>
<%@page pageEncoding="UTF-8"%>
<%@page trimDirectiveWhitespaces="true"%>
<%@ page contentType="text/html"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<jsp:useBean id="version" class="i2p.susi.dns.VersionBean" scope="application" />
@@ -81,9 +80,9 @@
<%=intl._("The subscription file contains a list of i2p URLs.")%>
<%=intl._("The addressbook application regularly checks this list for new eepsites.")%>
<%=intl._("Those URLs refer to published hosts.txt files.")%>
<%=intl._("The default subscription is the hosts.txt from www.i2p2.i2p, which is updated infrequently.")%>
<%=intl._("The default subscription is the hosts.txt from {0}, which is updated infrequently.", "i2p-projekt.i2p")%>
<%=intl._("So it is a good idea to add additional subscriptions to sites that have the latest addresses.")%>
<a href="http://www.i2p2.i2p/faq.html#subscriptions" target="_top"><%=intl._("See the FAQ for a list of subscription URLs.")%></a>
<a href="http://i2p-projekt.i2p/faq.html#subscriptions" target="_top"><%=intl._("See the FAQ for a list of subscription URLs.")%></a>
</p>
</div>
<div id="footer">

View File

@@ -2,226 +2,223 @@
# 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
#
#
# Translators:
# kgtm <fabio.h.f.antunes@gmail.com>, 2014
# tuliouel, 2013
msgid ""
msgstr ""
"Project-Id-Version: I2P\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-08-11 15:44+0000\n"
"PO-Revision-Date: 2013-07-04 19:06+0000\n"
"Last-Translator: tuliouel\n"
"Language-Team: Portuguese (http://www.transifex.com/projects/p/I2P/language/"
"pt/)\n"
"Language: pt\n"
"POT-Creation-Date: 2014-01-09 19:27+0000\n"
"PO-Revision-Date: 2014-01-22 18:41+0000\n"
"Last-Translator: kgtm <fabio.h.f.antunes@gmail.com>\n"
"Language-Team: Portuguese (http://www.transifex.com/projects/p/I2P/language/pt/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: pt\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: src/src/i2p/susi/webmail/WebMail.java:447
#: src/src/i2p/susi/webmail/WebMail.java:443
msgid "unknown"
msgstr "desconhecido"
#: src/src/i2p/susi/webmail/WebMail.java:466
#: src/src/i2p/susi/webmail/WebMail.java:462
msgid "Warning: no transfer encoding found, fallback to 7bit."
msgstr ""
"Aviso: nenhuma codificação de conteúdo de transferência encontrada. Recorrer "
"para 7bit."
msgstr "Aviso: nenhuma codificação de conteúdo de transferência encontrada. Recorrer para 7bit."
#: src/src/i2p/susi/webmail/WebMail.java:471
#: src/src/i2p/susi/webmail/WebMail.java:467
#, java-format
msgid "No encoder found for encoding \\''{0}\\''."
msgstr "Nenhum codificador encontrado para codificar ''{0}\\''."
#: src/src/i2p/susi/webmail/WebMail.java:477
#: src/src/i2p/susi/webmail/WebMail.java:473
msgid "Warning: no charset found, fallback to US-ASCII."
msgstr ""
"Aviso: nenhuma codificação de caracteres encontrada. Recorrer ao US-ASCII."
msgstr "Aviso: nenhuma codificação de caracteres encontrada. Recorrer ao US-ASCII."
#: src/src/i2p/susi/webmail/WebMail.java:491
#: src/src/i2p/susi/webmail/WebMail.java:487
#, java-format
msgid "Charset \\''{0}\\'' not supported."
msgstr "Codificação de caracteres \\''{0}\\'' não admitida."
#: src/src/i2p/susi/webmail/WebMail.java:495
#: src/src/i2p/susi/webmail/WebMail.java:491
#, java-format
msgid "Part ({0}) not shown, because of {1}"
msgstr "Parte ({0}) não exibida por causa de {1}"
#: src/src/i2p/susi/webmail/WebMail.java:518
#: src/src/i2p/susi/webmail/WebMail.java:514
msgid "Download"
msgstr "Baixar"
#: src/src/i2p/susi/webmail/WebMail.java:518
#: src/src/i2p/susi/webmail/WebMail.java:514
msgid "File is packed into a zipfile for security reasons."
msgstr "Arquivo zipado por razões de segurança."
#: src/src/i2p/susi/webmail/WebMail.java:518
#: src/src/i2p/susi/webmail/WebMail.java:514
#, java-format
msgid "attachment ({0})."
msgstr "Anexo ({0})."
#: src/src/i2p/susi/webmail/WebMail.java:522
#: src/src/i2p/susi/webmail/WebMail.java:518
#, java-format
msgid "Attachment ({0})."
msgstr "Anexo ({0})."
#: src/src/i2p/susi/webmail/WebMail.java:572
#: src/src/i2p/susi/webmail/WebMail.java:568
msgid "Need username for authentication."
msgstr "Necessário nome de usuário para autenticação."
#: src/src/i2p/susi/webmail/WebMail.java:576
#: src/src/i2p/susi/webmail/WebMail.java:572
msgid "Need password for authentication."
msgstr "Nova senha para autenticação."
#: src/src/i2p/susi/webmail/WebMail.java:580
#: src/src/i2p/susi/webmail/WebMail.java:576
msgid "Need hostname for connect."
msgstr "Necessário nome do host para conectar."
#: src/src/i2p/susi/webmail/WebMail.java:585
#: src/src/i2p/susi/webmail/WebMail.java:581
msgid "Need port number for pop3 connect."
msgstr "Necessário número de porta para conectar por pop3."
#: src/src/i2p/susi/webmail/WebMail.java:592
#: src/src/i2p/susi/webmail/WebMail.java:588
msgid "POP3 port number is not in range 0..65535."
msgstr "O número da porta do POP3 não pertence ao intervalo 0..65535."
#: src/src/i2p/susi/webmail/WebMail.java:598
#: src/src/i2p/susi/webmail/WebMail.java:594
msgid "POP3 port number is invalid."
msgstr "Número da porta do POP3 é inválido."
#: src/src/i2p/susi/webmail/WebMail.java:604
#: src/src/i2p/susi/webmail/WebMail.java:600
msgid "Need port number for smtp connect."
msgstr "Necessário número da porta para conectar por smtp."
#: src/src/i2p/susi/webmail/WebMail.java:611
#: src/src/i2p/susi/webmail/WebMail.java:607
msgid "SMTP port number is not in range 0..65535."
msgstr "O número da porta do SMTP não pertence ao intervalo 0..65535."
#: src/src/i2p/susi/webmail/WebMail.java:617
#: src/src/i2p/susi/webmail/WebMail.java:613
msgid "SMTP port number is invalid."
msgstr "Número da porta do SMTP é inválido."
#: src/src/i2p/susi/webmail/WebMail.java:664
#: src/src/i2p/susi/webmail/WebMail.java:660
msgid "User logged out."
msgstr "Usuário se desconectou."
#: src/src/i2p/susi/webmail/WebMail.java:668
#: src/src/i2p/susi/webmail/WebMail.java:664
msgid "Internal error, lost connection."
msgstr "Erro interno. Conexão perdida."
#: src/src/i2p/susi/webmail/WebMail.java:764
#: src/src/i2p/susi/webmail/WebMail.java:760
#, java-format
msgid "On {0} {1} wrote:"
msgstr "Em {0} {1} escreveu:"
#: src/src/i2p/susi/webmail/WebMail.java:811
#: src/src/i2p/susi/webmail/WebMail.java:807
msgid "begin forwarded mail"
msgstr "Início da mensagem encaminhada"
#: src/src/i2p/susi/webmail/WebMail.java:833
#: src/src/i2p/susi/webmail/WebMail.java:829
msgid "end forwarded mail"
msgstr "fim da mensagem encaminhada"
#: src/src/i2p/susi/webmail/WebMail.java:840
#: src/src/i2p/susi/webmail/WebMail.java:1770
#: src/src/i2p/susi/webmail/WebMail.java:836
#: src/src/i2p/susi/webmail/WebMail.java:1769
msgid "Could not fetch mail body."
msgstr "Não foi possível recuperar o corpo do e-mail."
#: src/src/i2p/susi/webmail/WebMail.java:868
#: src/src/i2p/susi/webmail/WebMail.java:864
msgid "Message id not valid."
msgstr "ID da mensagem não é válido."
#: src/src/i2p/susi/webmail/WebMail.java:951
#: src/src/i2p/susi/webmail/WebMail.java:947
#, java-format
msgid "No Encoding found for {0}"
msgstr "Nenhuma codificação encontrada para {0}"
#: src/src/i2p/susi/webmail/WebMail.java:955
#: src/src/i2p/susi/webmail/WebMail.java:951
#, java-format
msgid "Could not encode data: {0}"
msgstr "Não foi possível codificar datos: {0}"
#: src/src/i2p/susi/webmail/WebMail.java:960
#: src/src/i2p/susi/webmail/WebMail.java:956
#, java-format
msgid "Error reading uploaded file: {0}"
msgstr "Erro ao ler arquivo enviado: {0}"
#: src/src/i2p/susi/webmail/WebMail.java:1038
#: src/src/i2p/susi/webmail/WebMail.java:1034
msgid "Error parsing download parameter."
msgstr "Erro ao analisar parâmetro de download."
#: src/src/i2p/susi/webmail/WebMail.java:1082
#: src/src/i2p/susi/webmail/WebMail.java:1078
msgid "Invalid pagesize number, resetting to default value."
msgstr "Número inválido de tamanho de página, restituindo ao valor original."
#: src/src/i2p/susi/webmail/WebMail.java:1106
#: src/src/i2p/susi/webmail/WebMail.java:1102
msgid "No messages marked for deletion."
msgstr "Nenhuma mensagem marcada para eliminação."
#: src/src/i2p/susi/webmail/WebMail.java:1126
#: src/src/i2p/susi/webmail/WebMail.java:1122
#, java-format
msgid "Error deleting message: {0}"
msgstr "Erro ao eliminar mensagem: {0}"
#: src/src/i2p/susi/webmail/WebMail.java:1137
#: src/src/i2p/susi/webmail/WebMail.java:1133
#, java-format
msgid "1 message deleted."
msgid_plural "{0} messages deleted."
msgstr[0] "Uma mensagem eliminada"
msgstr[1] "{0} mensagens eliminadas."
#: src/src/i2p/susi/webmail/WebMail.java:1313
#: src/src/i2p/susi/webmail/WebMail.java:1654
#: src/src/i2p/susi/webmail/WebMail.java:1314
#: src/src/i2p/susi/webmail/WebMail.java:1653
msgid "Login"
msgstr "Entrar"
#: src/src/i2p/susi/webmail/WebMail.java:1315
#: src/src/i2p/susi/webmail/WebMail.java:1316
#, java-format
msgid "1 Message"
msgid_plural "{0} Messages"
msgstr[0] "Uma mensagem"
msgstr[1] "{0} Mensagens"
#: src/src/i2p/susi/webmail/WebMail.java:1317
#: src/src/i2p/susi/webmail/WebMail.java:1318
msgid "Show Message"
msgstr "Exibir Mensagem"
#: src/src/i2p/susi/webmail/WebMail.java:1383
#: src/src/i2p/susi/webmail/WebMail.java:1384
#, java-format
msgid "Error decoding content: {0}"
msgstr "Erro ao decodificar conteúdo: {0}"
#: src/src/i2p/susi/webmail/WebMail.java:1388
#: src/src/i2p/susi/webmail/WebMail.java:1389
msgid "Error decoding content: No encoder found."
msgstr "Erro ao decodificar conteúdo: Nenhum codificador encontrado."
#: src/src/i2p/susi/webmail/WebMail.java:1435
#: src/src/i2p/susi/webmail/WebMail.java:1436
msgid "no subject"
msgstr "sem assunto"
#: src/src/i2p/susi/webmail/WebMail.java:1452
#: src/src/i2p/susi/webmail/WebMail.java:1453
msgid "Found no valid sender address."
msgstr "Nenhum endereço válido de remetente encontrado."
#: src/src/i2p/susi/webmail/WebMail.java:1458
#: src/src/i2p/susi/webmail/WebMail.java:1459
#, java-format
msgid "Found no valid address in \\''{0}\\''."
msgstr "Nenhum endereço válido encontrado em \\''{0}\\''."
#: src/src/i2p/susi/webmail/WebMail.java:1477
#: src/src/i2p/susi/webmail/WebMail.java:1478
msgid "No recipients found."
msgstr "Nenhum destinatário encontrado."
#: src/src/i2p/susi/webmail/WebMail.java:1484
#: src/src/i2p/susi/webmail/WebMail.java:1485
msgid "Quoted printable encoder not available."
msgstr ""
msgstr "Codificação de caracteres ASCII imprimíveis não disponível."
#: src/src/i2p/susi/webmail/WebMail.java:1489
#: src/src/i2p/susi/webmail/WebMail.java:1490
msgid "Header line encoder not available."
msgstr ""
msgstr "Cabeçalho da codificação de caracteres não disponível."
#: src/src/i2p/susi/webmail/WebMail.java:1540
msgid "Mail sent."
@@ -240,19 +237,19 @@ msgid "Delete Attachment"
msgstr "Apagar anexo"
#: src/src/i2p/susi/webmail/WebMail.java:1582
#: src/src/i2p/susi/webmail/WebMail.java:1676
#: src/src/i2p/susi/webmail/WebMail.java:1757
#: src/src/i2p/susi/webmail/WebMail.java:1675
#: src/src/i2p/susi/webmail/WebMail.java:1756
msgid "Reload Config"
msgstr "Recarregar Configurações"
#: src/src/i2p/susi/webmail/WebMail.java:1583
#: src/src/i2p/susi/webmail/WebMail.java:1677
#: src/src/i2p/susi/webmail/WebMail.java:1758
#: src/src/i2p/susi/webmail/WebMail.java:1676
#: src/src/i2p/susi/webmail/WebMail.java:1757
msgid "Logout"
msgstr "Desconectar"
#: src/src/i2p/susi/webmail/WebMail.java:1606
#: src/src/i2p/susi/webmail/WebMail.java:1762
#: src/src/i2p/susi/webmail/WebMail.java:1761
msgid "From:"
msgstr "De:"
@@ -269,7 +266,7 @@ msgid "Bcc:"
msgstr "Cópia Oculta:"
#: src/src/i2p/susi/webmail/WebMail.java:1610
#: src/src/i2p/susi/webmail/WebMail.java:1764
#: src/src/i2p/susi/webmail/WebMail.java:1763
msgid "Subject:"
msgstr "Assunto:"
@@ -290,161 +287,161 @@ msgid "Attachments:"
msgstr "Anexos:"
#. current postman hq length limits 16/12, new postman version 32/32
#: src/src/i2p/susi/webmail/WebMail.java:1643
#: src/src/i2p/susi/webmail/WebMail.java:1642
msgid "User"
msgstr "Usuário"
#: src/src/i2p/susi/webmail/WebMail.java:1644
#: src/src/i2p/susi/webmail/WebMail.java:1643
msgid "Password"
msgstr "Senha"
#: src/src/i2p/susi/webmail/WebMail.java:1649
#: src/src/i2p/susi/webmail/WebMail.java:1648
msgid "Host"
msgstr "Servidor"
#: src/src/i2p/susi/webmail/WebMail.java:1650
#: src/src/i2p/susi/webmail/WebMail.java:1649
msgid "POP3-Port"
msgstr "Porta-POP3"
#: src/src/i2p/susi/webmail/WebMail.java:1651
#: src/src/i2p/susi/webmail/WebMail.java:1650
msgid "SMTP-Port"
msgstr "Porta-SMTP"
#: src/src/i2p/susi/webmail/WebMail.java:1654
#: src/src/i2p/susi/webmail/WebMail.java:1653
msgid "Reset"
msgstr "Reiniciar"
#: src/src/i2p/susi/webmail/WebMail.java:1655
#: src/src/i2p/susi/webmail/WebMail.java:1654
msgid "Learn about I2P mail"
msgstr "Aprenda sobre o e-mail do I2P"
#: src/src/i2p/susi/webmail/WebMail.java:1656
#: src/src/i2p/susi/webmail/WebMail.java:1655
msgid "Create Account"
msgstr "Criar Conta"
#: src/src/i2p/susi/webmail/WebMail.java:1668
#: src/src/i2p/susi/webmail/WebMail.java:1667
msgid "Really delete the marked messages?"
msgstr "Eliminar, realmente, as mensagens marcadas?"
#: src/src/i2p/susi/webmail/WebMail.java:1668
#: src/src/i2p/susi/webmail/WebMail.java:1667
msgid "Yes, really delete them!"
msgstr "Sim, realmente elimine-as!"
#: src/src/i2p/susi/webmail/WebMail.java:1670
#: src/src/i2p/susi/webmail/WebMail.java:1749
#: src/src/i2p/susi/webmail/WebMail.java:1669
#: src/src/i2p/susi/webmail/WebMail.java:1748
msgid "New"
msgstr "Novo"
#: src/src/i2p/susi/webmail/WebMail.java:1671
#: src/src/i2p/susi/webmail/WebMail.java:1750
#: src/src/i2p/susi/webmail/WebMail.java:1670
#: src/src/i2p/susi/webmail/WebMail.java:1749
msgid "Reply"
msgstr "Responder"
#: src/src/i2p/susi/webmail/WebMail.java:1672
#: src/src/i2p/susi/webmail/WebMail.java:1751
#: src/src/i2p/susi/webmail/WebMail.java:1671
#: src/src/i2p/susi/webmail/WebMail.java:1750
msgid "Reply All"
msgstr "Responder a todos"
#: src/src/i2p/susi/webmail/WebMail.java:1673
#: src/src/i2p/susi/webmail/WebMail.java:1752
#: src/src/i2p/susi/webmail/WebMail.java:1672
#: src/src/i2p/susi/webmail/WebMail.java:1751
msgid "Forward"
msgstr "Encaminhar"
#: src/src/i2p/susi/webmail/WebMail.java:1674
#: src/src/i2p/susi/webmail/WebMail.java:1753
#: src/src/i2p/susi/webmail/WebMail.java:1673
#: src/src/i2p/susi/webmail/WebMail.java:1752
msgid "Delete"
msgstr "Eliminar"
#: src/src/i2p/susi/webmail/WebMail.java:1675
#: src/src/i2p/susi/webmail/WebMail.java:1674
msgid "Check Mail"
msgstr "Verificar e-mail"
#: src/src/i2p/susi/webmail/WebMail.java:1679
#: src/src/i2p/susi/webmail/WebMail.java:1678
msgid "Sender"
msgstr "Remetente"
#: src/src/i2p/susi/webmail/WebMail.java:1680
#: src/src/i2p/susi/webmail/WebMail.java:1679
msgid "Subject"
msgstr "Assunto"
#: src/src/i2p/susi/webmail/WebMail.java:1681
#: src/src/i2p/susi/webmail/WebMail.java:1680
msgid "Date"
msgstr "Data"
#: src/src/i2p/susi/webmail/WebMail.java:1682
#: src/src/i2p/susi/webmail/WebMail.java:1681
msgid "Size"
msgstr "Tamanho"
#: src/src/i2p/susi/webmail/WebMail.java:1708
#: src/src/i2p/susi/webmail/WebMail.java:1707
#, java-format
msgid "1 Byte"
msgid_plural "{0} Bytes"
msgstr[0] "1 Byte"
msgstr[1] "{0} Bytes"
#: src/src/i2p/susi/webmail/WebMail.java:1713
#: src/src/i2p/susi/webmail/WebMail.java:1712
msgid "Mark All"
msgstr "Marcar todos"
#: src/src/i2p/susi/webmail/WebMail.java:1714
#: src/src/i2p/susi/webmail/WebMail.java:1713
msgid "Invert Selection"
msgstr "Inverter Seleção"
#: src/src/i2p/susi/webmail/WebMail.java:1715
#: src/src/i2p/susi/webmail/WebMail.java:1714
msgid "Clear"
msgstr "Apagar"
#: src/src/i2p/susi/webmail/WebMail.java:1717
#: src/src/i2p/susi/webmail/WebMail.java:1718
#: src/src/i2p/susi/webmail/WebMail.java:1719
msgid "First"
msgstr "Primeiro"
#: src/src/i2p/susi/webmail/WebMail.java:1717
#: src/src/i2p/susi/webmail/WebMail.java:1718
#: src/src/i2p/susi/webmail/WebMail.java:1719
#: src/src/i2p/susi/webmail/WebMail.java:1754
#: src/src/i2p/susi/webmail/WebMail.java:1753
msgid "Previous"
msgstr "Anterior"
#: src/src/i2p/susi/webmail/WebMail.java:1720
#: src/src/i2p/susi/webmail/WebMail.java:1719
#, java-format
msgid "Page {0} of {1}"
msgstr "Página {0} de {1}"
#: src/src/i2p/susi/webmail/WebMail.java:1721
#: src/src/i2p/susi/webmail/WebMail.java:1722
#: src/src/i2p/susi/webmail/WebMail.java:1723
msgid "Last"
msgstr "Última"
#: src/src/i2p/susi/webmail/WebMail.java:1721
#: src/src/i2p/susi/webmail/WebMail.java:1722
#: src/src/i2p/susi/webmail/WebMail.java:1723
#: src/src/i2p/susi/webmail/WebMail.java:1755
#: src/src/i2p/susi/webmail/WebMail.java:1754
msgid "Next"
msgstr "Próxima"
#: src/src/i2p/susi/webmail/WebMail.java:1726
#: src/src/i2p/susi/webmail/WebMail.java:1725
msgid "Pagesize:"
msgstr "Tamanho da página:"
#: src/src/i2p/susi/webmail/WebMail.java:1727
#: src/src/i2p/susi/webmail/WebMail.java:1726
msgid "Set"
msgstr ""
msgstr "Definir"
#: src/src/i2p/susi/webmail/WebMail.java:1737
#: src/src/i2p/susi/webmail/WebMail.java:1736
msgid "Really delete this message?"
msgstr "Eliminar, realmente, esta mensagem?"
#: src/src/i2p/susi/webmail/WebMail.java:1737
#: src/src/i2p/susi/webmail/WebMail.java:1736
msgid "Yes, really delete it!"
msgstr "Sim, realmente elimine-a!"
#: src/src/i2p/susi/webmail/WebMail.java:1756
#: src/src/i2p/susi/webmail/WebMail.java:1755
msgid "Back to Folder"
msgstr "Voltar à Pasta"
#: src/src/i2p/susi/webmail/WebMail.java:1763
#: src/src/i2p/susi/webmail/WebMail.java:1762
msgid "Date:"
msgstr "Data:"
#: src/src/i2p/susi/webmail/WebMail.java:1774
#: src/src/i2p/susi/webmail/WebMail.java:1773
msgid "Could not fetch mail."
msgstr "Não foi possível recuperar o e-mail."

View File

@@ -2,23 +2,22 @@
# 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
#
#
# Translators:
# blueboy, 2013
# blueboy, 2013
# blueboy, 2013-2014
msgid ""
msgstr ""
"Project-Id-Version: I2P\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-01-09 18:16+0000\n"
"PO-Revision-Date: 2013-11-24 16:35+0000\n"
"POT-Creation-Date: 2014-01-09 19:27+0000\n"
"PO-Revision-Date: 2014-02-04 20:01+0000\n"
"Last-Translator: blueboy\n"
"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/I2P/"
"language/pt_BR/)\n"
"Language: pt_BR\n"
"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/I2P/language/pt_BR/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: pt_BR\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#: src/src/i2p/susi/webmail/WebMail.java:443
@@ -32,11 +31,11 @@ msgstr ""
#: src/src/i2p/susi/webmail/WebMail.java:467
#, java-format
msgid "No encoder found for encoding \\''{0}\\''."
msgstr ""
msgstr "Nenhum codificador foi encontrado para codificar \\''{0}\\''."
#: src/src/i2p/susi/webmail/WebMail.java:473
msgid "Warning: no charset found, fallback to US-ASCII."
msgstr ""
msgstr "Aviso: Nenhum conjunto de caractéres foi encontrado. Usando US-ASCII."
#: src/src/i2p/susi/webmail/WebMail.java:487
#, java-format
@@ -46,7 +45,7 @@ msgstr "O conjunto de caractéres \\''{0}\\'' não é suportado."
#: src/src/i2p/susi/webmail/WebMail.java:491
#, java-format
msgid "Part ({0}) not shown, because of {1}"
msgstr ""
msgstr "Parte ({0}) não exibida por causa de {1}"
#: src/src/i2p/susi/webmail/WebMail.java:514
msgid "Download"
@@ -59,12 +58,12 @@ msgstr "Por questões de segurança, o arquivo está zipado."
#: src/src/i2p/susi/webmail/WebMail.java:514
#, java-format
msgid "attachment ({0})."
msgstr ""
msgstr "anexo ({0})."
#: src/src/i2p/susi/webmail/WebMail.java:518
#, java-format
msgid "Attachment ({0})."
msgstr ""
msgstr "Anexo ({0})."
#: src/src/i2p/susi/webmail/WebMail.java:568
msgid "Need username for authentication."
@@ -84,11 +83,11 @@ msgstr "É necessário fornecer o número da porta para o POP3 conectar."
#: src/src/i2p/susi/webmail/WebMail.java:588
msgid "POP3 port number is not in range 0..65535."
msgstr "O número da porta do POP3 não se inclui na faixa 0..65535."
msgstr "O número da porta POP3 não se inclui na faixa 0..65535."
#: src/src/i2p/susi/webmail/WebMail.java:594
msgid "POP3 port number is invalid."
msgstr "Número de porta para o POP3 inválido."
msgstr "O número da porta POP3 é inválido."
#: src/src/i2p/susi/webmail/WebMail.java:600
msgid "Need port number for smtp connect."
@@ -96,11 +95,11 @@ msgstr "É necessário fornecer o número da porta para o SMTP conectar."
#: src/src/i2p/susi/webmail/WebMail.java:607
msgid "SMTP port number is not in range 0..65535."
msgstr "O número da porta do SMTP não se inclui na faixa 0..65535."
msgstr "O número da porta SMTP não se inclui na faixa 0..65535."
#: src/src/i2p/susi/webmail/WebMail.java:613
msgid "SMTP port number is invalid."
msgstr "Número de porta para o SMTP inválido."
msgstr "O número da porta SMTP é inválido."
#: src/src/i2p/susi/webmail/WebMail.java:660
msgid "User logged out."
@@ -126,7 +125,7 @@ msgstr ""
#: src/src/i2p/susi/webmail/WebMail.java:836
#: src/src/i2p/susi/webmail/WebMail.java:1769
msgid "Could not fetch mail body."
msgstr ""
msgstr "Não foi possível recuperar o corpo da mensagem."
#: src/src/i2p/susi/webmail/WebMail.java:864
msgid "Message id not valid."
@@ -145,11 +144,11 @@ msgstr "Não foi possível codificar os dados: {0}"
#: src/src/i2p/susi/webmail/WebMail.java:956
#, java-format
msgid "Error reading uploaded file: {0}"
msgstr ""
msgstr "Erro ao ler arquivo carregado: {0}"
#: src/src/i2p/susi/webmail/WebMail.java:1034
msgid "Error parsing download parameter."
msgstr ""
msgstr "Erro ao analisar parâmetro de download."
#: src/src/i2p/susi/webmail/WebMail.java:1078
msgid "Invalid pagesize number, resetting to default value."
@@ -174,7 +173,7 @@ msgstr[1] "{0} mensagens deletadas."
#: src/src/i2p/susi/webmail/WebMail.java:1314
#: src/src/i2p/susi/webmail/WebMail.java:1653
msgid "Login"
msgstr ""
msgstr "Login"
#: src/src/i2p/susi/webmail/WebMail.java:1316
#, java-format
@@ -235,13 +234,13 @@ msgstr "Cancelar"
#: src/src/i2p/susi/webmail/WebMail.java:1581
msgid "Delete Attachment"
msgstr ""
msgstr "Deletar anexo"
#: src/src/i2p/susi/webmail/WebMail.java:1582
#: src/src/i2p/susi/webmail/WebMail.java:1675
#: src/src/i2p/susi/webmail/WebMail.java:1756
msgid "Reload Config"
msgstr ""
msgstr "Recarregar configurações"
#: src/src/i2p/susi/webmail/WebMail.java:1583
#: src/src/i2p/susi/webmail/WebMail.java:1676
@@ -277,7 +276,7 @@ msgstr ""
#: src/src/i2p/susi/webmail/WebMail.java:1614
msgid "New Attachment:"
msgstr ""
msgstr "Novo anexo:"
#: src/src/i2p/susi/webmail/WebMail.java:1614
msgid "Upload File"
@@ -285,7 +284,7 @@ msgstr "Carregar arquivo"
#: src/src/i2p/susi/webmail/WebMail.java:1620
msgid "Attachments:"
msgstr ""
msgstr "Anexos:"
#. current postman hq length limits 16/12, new postman version 32/32
#: src/src/i2p/susi/webmail/WebMail.java:1642
@@ -298,23 +297,23 @@ msgstr "Senha"
#: src/src/i2p/susi/webmail/WebMail.java:1648
msgid "Host"
msgstr ""
msgstr "Host"
#: src/src/i2p/susi/webmail/WebMail.java:1649
msgid "POP3-Port"
msgstr "Porta do POP3"
msgstr "Porta POP3"
#: src/src/i2p/susi/webmail/WebMail.java:1650
msgid "SMTP-Port"
msgstr "Porta do SMTP"
msgstr "Porta SMTP"
#: src/src/i2p/susi/webmail/WebMail.java:1653
msgid "Reset"
msgstr ""
msgstr "Resetar"
#: src/src/i2p/susi/webmail/WebMail.java:1654
msgid "Learn about I2P mail"
msgstr ""
msgstr "Conheça o correio da rede I2P"
#: src/src/i2p/susi/webmail/WebMail.java:1655
msgid "Create Account"
@@ -326,7 +325,7 @@ msgstr "Quer mesmo deletar as mensagens marcadas?"
#: src/src/i2p/susi/webmail/WebMail.java:1667
msgid "Yes, really delete them!"
msgstr "Sim, quero deletá-los!"
msgstr "Sim, quero deletá-las!"
#: src/src/i2p/susi/webmail/WebMail.java:1669
#: src/src/i2p/susi/webmail/WebMail.java:1748
@@ -401,7 +400,7 @@ msgstr "Primeiro"
#: src/src/i2p/susi/webmail/WebMail.java:1718
#: src/src/i2p/susi/webmail/WebMail.java:1753
msgid "Previous"
msgstr ""
msgstr "Anterior"
#: src/src/i2p/susi/webmail/WebMail.java:1719
#, java-format
@@ -437,7 +436,7 @@ msgstr "Sim, quero deletá-lo!"
#: src/src/i2p/susi/webmail/WebMail.java:1755
msgid "Back to Folder"
msgstr ""
msgstr "Voltar para pasta"
#: src/src/i2p/susi/webmail/WebMail.java:1762
msgid "Date:"
@@ -445,4 +444,4 @@ msgstr "Data:"
#: src/src/i2p/susi/webmail/WebMail.java:1773
msgid "Could not fetch mail."
msgstr ""
msgstr "Não foi possível recuperar o correio."

View File

@@ -448,7 +448,11 @@
<ant dir="installer/resources/locale" target="poupdate" />
</target>
<target name="prep-script-translation" >
<condition property="no.bundle">
<isfalse value="${require.gettext}" />
</condition>
<target name="prep-script-translation" unless="no.bundle" >
<!-- script translation added in 0.8.13, enabled in 0.9.5. -->
<ant dir="installer/resources/locale" target="bundle" />
<copy todir="pkg-temp/locale/">
@@ -467,7 +471,7 @@
splitindex="true"
doctitle="I2P Javadocs for Release ${release.number} Build ${i2p.build.number}${build.extra}"
windowtitle="I2P Anonymous Network - Java Documentation - Version ${release.number}">
<group title="Core SDK (i2p.jar)" packages="net.i2p:net.i2p.*:net.i2p.client:net.i2p.client.*:net.i2p.internal:net.i2p.internal.*:freenet.support.CPUInformation:org.bouncycastle.oldcrypto:org.bouncycastle.oldcrypto.*:gnu.crypto.*:gnu.gettext:com.nettgryppa.security:net.metanotion:net.metanotion.*" />
<group title="Core SDK (i2p.jar)" packages="net.i2p:net.i2p.*:net.i2p.client:net.i2p.client.*:net.i2p.internal:net.i2p.internal.*:freenet.support.CPUInformation:org.bouncycastle.oldcrypto:org.bouncycastle.oldcrypto.*:gnu.crypto.*:gnu.getopt:gnu.gettext:com.nettgryppa.security:net.metanotion:net.metanotion.*" />
<group title="Streaming Library" packages="net.i2p.client.streaming:net.i2p.client.streaming.impl" />
<group title="Router" packages="net.i2p.router:net.i2p.router.*:net.i2p.data.i2np:org.cybergarage.*:org.freenetproject:org.xlattice.crypto.filters" />
<group title="Router Console" packages="net.i2p.router.web:net.i2p.router.update" />

View File

@@ -46,7 +46,10 @@
<target name="jar" depends="compile, jarUpToDate, listChangedFiles" unless="jar.uptodate" >
<!-- set if unset -->
<property name="workspace.changes.tr" value="" />
<jar destfile="./build/i2p.jar" basedir="./build/obj" includes="**/*.class" >
<jar destfile="./build/i2p.jar" >
<fileset dir="./build/obj" includes="**/*.class" />
<!-- the getopt translation files -->
<fileset dir="src" includes="gnu/getopt/*.properties" />
<manifest>
<attribute name="Implementation-Version" value="${full.version}" />
<attribute name="Built-By" value="${build.built-by}" />

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,195 @@
/**************************************************************************
/* LongOpt.java -- Long option object for Getopt
/*
/* Copyright (c) 1998 by Aaron M. Renn (arenn@urbanophile.com)
/*
/* This program is free software; you can redistribute it and/or modify
/* it under the terms of the GNU Library General Public License as published
/* by the Free Software Foundation; either version 2 of the License or
/* (at your option) any later version.
/*
/* This program is distributed in the hope that it will be useful, but
/* WITHOUT ANY WARRANTY; without even the implied warranty of
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
/* GNU Library General Public License for more details.
/*
/* You should have received a copy of the GNU Library General Public License
/* along with this program; see the file COPYING.LIB. If not, write to
/* the Free Software Foundation Inc., 59 Temple Place - Suite 330,
/* Boston, MA 02111-1307 USA
/**************************************************************************/
package gnu.getopt;
import java.util.Locale;
import java.util.ResourceBundle;
import java.text.MessageFormat;
/**************************************************************************/
/**
* This object represents the definition of a long option in the Java port
* of GNU getopt. An array of LongOpt objects is passed to the Getopt
* object to define the list of valid long options for a given parsing
* session. Refer to the getopt documentation for details on the
* format of long options.
*
* @version 1.0.5
* @author Aaron M. Renn (arenn@urbanophile.com)
*
* @see Getopt
*/
public class LongOpt extends Object
{
/**************************************************************************/
/*
* Class Variables
*/
/**
* Constant value used for the "has_arg" constructor argument. This
* value indicates that the option takes no argument.
*/
public static final int NO_ARGUMENT = 0;
/**
* Constant value used for the "has_arg" constructor argument. This
* value indicates that the option takes an argument that is required.
*/
public static final int REQUIRED_ARGUMENT = 1;
/**
* Constant value used for the "has_arg" constructor argument. This
* value indicates that the option takes an argument that is optional.
*/
public static final int OPTIONAL_ARGUMENT = 2;
/**************************************************************************/
/*
* Instance Variables
*/
/**
* The name of the long option
*/
protected String name;
/**
* Indicates whether the option has no argument, a required argument, or
* an optional argument.
*/
protected int has_arg;
/**
* If this variable is not null, then the value stored in "val" is stored
* here when this long option is encountered. If this is null, the value
* stored in "val" is treated as the name of an equivalent short option.
*/
protected StringBuffer flag;
/**
* The value to store in "flag" if flag is not null, otherwise the
* equivalent short option character for this long option.
*/
protected int val;
/**
* Localized strings for error messages
*/
private ResourceBundle _messages = ResourceBundle.getBundle(
"gnu/getopt/MessagesBundle", Locale.getDefault());
/**************************************************************************/
/*
* Constructors
*/
/**
* Create a new LongOpt object with the given parameter values. If the
* value passed as has_arg is not valid, then an exception is thrown.
*
* @param name The long option String.
* @param has_arg Indicates whether the option has no argument (NO_ARGUMENT), a required argument (REQUIRED_ARGUMENT) or an optional argument (OPTIONAL_ARGUMENT).
* @param flag If non-null, this is a location to store the value of "val" when this option is encountered, otherwise "val" is treated as the equivalent short option character.
* @param val The value to return for this long option, or the equivalent single letter option to emulate if flag is null.
*
* @exception IllegalArgumentException If the has_arg param is not one of NO_ARGUMENT, REQUIRED_ARGUMENT or OPTIONAL_ARGUMENT.
*/
public
LongOpt(String name, int has_arg,
StringBuffer flag, int val) throws IllegalArgumentException
{
// Validate has_arg
if ((has_arg != NO_ARGUMENT) && (has_arg != REQUIRED_ARGUMENT)
&& (has_arg != OPTIONAL_ARGUMENT))
{
Object[] msgArgs = { new Integer(has_arg).toString() };
throw new IllegalArgumentException(MessageFormat.format(
_messages.getString("getopt.invalidValue"), msgArgs));
}
// Store off values
this.name = name;
this.has_arg = has_arg;
this.flag = flag;
this.val = val;
}
/**************************************************************************/
/**
* Returns the name of this LongOpt as a String
*
* @return Then name of the long option
*/
public String
getName()
{
return(name);
}
/**************************************************************************/
/**
* Returns the value set for the 'has_arg' field for this long option
*
* @return The value of 'has_arg'
*/
public int
getHasArg()
{
return(has_arg);
}
/**************************************************************************/
/**
* Returns the value of the 'flag' field for this long option
*
* @return The value of 'flag'
*/
public StringBuffer
getFlag()
{
return(flag);
}
/**
* Returns the value of the 'val' field for this long option
*
* @return The value of 'val'
*/
public int
getVal()
{
return(val);
}
/**************************************************************************/
} // Class LongOpt

View File

@@ -0,0 +1,31 @@
#**************************************************************************
#* MessagesBundle.properties -- English language error messages
#*
#* Copyright (c) 1998 by William King (wrking@eng.sun.com) and
#* Aaron M. Renn (arenn@urbanophile.com)
#*
#* This program is free software; you can redistribute it and/or modify
#* it under the terms of the GNU Library General Public License as published
#* by the Free Software Foundation; either version 2 of the License or
#* (at your option) any later version.
#*
#* This program is distributed in the hope that it will be useful, but
#* WITHOUT ANY WARRANTY; without even the implied warranty of
#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
#* GNU Library General Public License for more details.
#*
#* You should have received a copy of the GNU Library General Public License
#* along with this program; see the file COPYING.LIB. If not, write to
#* the Free Software Foundation Inc., 59 Temple Place - Suite 330,
#* Boston, MA 02111-1307 USA
#**************************************************************************/
getopt.ambigious={0}: option ''{1}'' is ambiguous
getopt.arguments1={0}: option ''--{1}'' doesn't allow an argument
getopt.arguments2={0}: option ''{1}{2}'' doesn't allow an argument
getopt.requires={0}: option ''{1}'' requires an argument
getopt.unrecognized={0}: unrecognized option ''--{1}''
getopt.unrecognized2={0}: unrecognized option ''{1}{2}''
getopt.illegal={0}: illegal option -- {1}
getopt.invalid={0}: invalid option -- {1}
getopt.requires2={0}: option requires an argument -- {1}
getopt.invalidValue=Invalid value {0} for parameter 'has_arg'

View File

@@ -0,0 +1,31 @@
#**************************************************************************
#* MessagesBundle_cs.properties -- Czech language error messages
#*
#* Czech Messages Copyright (c) 1998 by Roman Szturc (Roman.Szturc@vsb.cz)
#* These messages are encoded in ISO-8859-2
#*
#* This program is free software; you can redistribute it and/or modify
#* it under the terms of the GNU Library General Public License as published
#* by the Free Software Foundation; either version 2 of the License or
#* (at your option) any later version.
#*
#* This program is distributed in the hope that it will be useful, but
#* WITHOUT ANY WARRANTY; without even the implied warranty of
#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
#* GNU Library General Public License for more details.
#*
#* You should have received a copy of the GNU Library General Public License
#* along with this program; see the file COPYING.LIB. If not, write to
#* the Free Software Foundation Inc., 59 Temple Place - Suite 330,
#* Boston, MA 02111-1307 USA
#**************************************************************************/
getopt.ambigious={0}: volba ''{1}'' je nejednozna\u010Dn\u00E1
getopt.arguments1={0}: volba ''--{1}'' nep\u0159ipou\u0161t\u00ED argument
getopt.arguments2={0}: volba ''{1}{2}'' nep\u0159ipou\u0161t\u00ED argument
getopt.requires={0}: volba ''{1}'' vy\u017Eaduje argument
getopt.unrecognized={0}: nep\u0159\u00EDpustn\u00E1 volba ''--{1}''
getopt.unrecognized2={0}: nep\u0159\u00EDpustn\u00E1 volba ''{1}{2}''
getopt.illegal={0}: nep\u0159\u00EDpustn\u00E1 volba -- {1}
getopt.invalid={0}: neplatn\u00E1 volba -- {1}
getopt.requires2={0}: volba vy\u017Eaduje argument -- {1}
getopt.invalidValue=Neplatn\u00E1 hodnota {0} parameteru 'has_arg'

View File

@@ -0,0 +1,31 @@
#**************************************************************************
#* MessagesBundle.properties -- German language error messages
#*
#* German Messages Copyright (c) 1999 by Bernhard Bablok (bablokb@gmx.net)
#* These messages are encoded in ISO-8859-1
#/*
#* This program is free software; you can redistribute it and/or modify
#* it under the terms of the GNU Library General Public License as published
#* by the Free Software Foundation; either version 2 of the License or
#* (at your option) any later version.
#*
#* This program is distributed in the hope that it will be useful, but
#* WITHOUT ANY WARRANTY; without even the implied warranty of
#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
#* GNU Library General Public License for more details.
#*
#* You should have received a copy of the GNU Library General Public License
#* along with this program; see the file COPYING.LIB. If not, write to
#* the Free Software Foundation Inc., 59 Temple Place - Suite 330,
#* Boston, MA 02111-1307 USA
#**************************************************************************/
getopt.ambigious={0}: Option ''{1}'' ist zweideutig
getopt.arguments1={0}: Option ''--{1}'' erlaubt kein Argument
getopt.arguments2={0}: Option ''{1}{2}'' erlaubt kein Argument
getopt.requires={0}: Option ''{1}'' ben\u00F6tigt ein Argument
getopt.unrecognized={0}: Unbekannte Option ''--{1}''
getopt.unrecognized2={0}: Unbekannte Option ''{1}{2}''
getopt.illegal={0}: Verbotene Option -- {1}
getopt.invalid={0}: Ung\u00FCltige Option -- {1}
getopt.requires2={0}: Option ben\u00F6tigt ein Argument -- {1}
getopt.invalidValue=Ung\u00FCltiger Wert {0} f\u00FCr Parameter 'has_arg'

View File

@@ -0,0 +1,31 @@
#**************************************************************************
#* MessagesBundle_es.properties -- Spanish language error messages
#*
#* Spanish Messages Copyright (c) 2004 by Daniel P\u00E9rez (dondani@gmail.com)
#* These messages are encoded in ISO-8859-1
#*
#* This program is free software; you can redistribute it and/or modify
#* it under the terms of the GNU Library General Public License as published
#* by the Free Software Foundation; either version 2 of the License or
#* (at your option) any later version.
#*
#* This program is distributed in the hope that it will be useful, but
#* WITHOUT ANY WARRANTY; without even the implied warranty of
#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
#* GNU Library General Public License for more details.
#*
#* You should have received a copy of the GNU Library General Public License
#* along with this program; see the file COPYING.LIB. If not, write to
#* the Free Software Foundation Inc., 59 Temple Place - Suite 330,
#* Boston, MA 02111-1307 USA
#**************************************************************************/
getopt.ambigious={0}: la opci\u00F3n ''{1}'' es ambigua
getopt.arguments1={0}: la opci\u00F3n ''--{1}'' no permite un argumento
getopt.arguments2={0}: la opci\u00F3n ''{1}{2}'' no permite un argumento
getopt.requires={0}: la opci\u00F3n ''{1}'' requiere un argumento
getopt.unrecognized={0}: opci\u00F3n no reconocida ''--{1}''
getopt.unrecognized2={0}: opci\u00F3n no reconocida ''{1}{2}''
getopt.illegal={0}: opci\u00F3n ilegal -- {1}
getopt.invalid={0}: opci\u00F3n no v\u00E1lida -- {1}
getopt.requires2={0}: la opci\u00F3n requiere un argumento -- {1}
getopt.invalidValue=Valor no v\u00E1lido {0} para el par\u00E1metro 'has_arg'

View File

@@ -0,0 +1,33 @@
#**************************************************************************
#* MessagesBundle_fr.properties -- French language error messages
#*
#* Copyright (c) 1999 Free Software Foundation, Inc.
#* Michel Robitaille <robitail@IRO.UMontreal.CA>, 1996,
#* Edouard G. Parmelan <edouard.parmelan@quadratec.fr>, 1999.
#* These messages are encoded in ISO-8859-1
#*
#* This program is free software; you can redistribute it and/or modify
#* it under the terms of the GNU Library General Public License as published
#* by the Free Software Foundation; either version 2 of the License or
#* (at your option) any later version.
#*
#* This program is distributed in the hope that it will be useful, but
#* WITHOUT ANY WARRANTY; without even the implied warranty of
#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
#* GNU Library General Public License for more details.
#*
#* You should have received a copy of the GNU Library General Public License
#* along with this program; see the file COPYING.LIB. If not, write to
#* the Free Software Foundation Inc., 59 Temple Place - Suite 330,
#* Boston, MA 02111-1307 USA
#**************************************************************************/
getopt.ambigious={0}: l'option ''{1}'' est ambigu\u00EB
getopt.arguments1={0}: l'option ''--{1}'' ne permet pas de param\u00E8tre
getopt.arguments2={0}: l'option ''{1}{2}'' ne permet pas de param\u00E8tre
getopt.requires={0}: l'option ''{1}'' requiert un param\u00E8tre
getopt.unrecognized={0}: option non reconnue ''--{1}''
getopt.unrecognized2={0}: option non reconnue ''{1}{2}''
getopt.illegal={0}: option ill\u00E9gale -- {1}
getopt.invalid={0}: option invalide -- {1}
getopt.requires2={0}: cette option requiert un param\u00E8tre -- {1}
getopt.invalidValue=Valeur invalide {0} pour le param\u00E8tre 'has_arg'

View File

@@ -0,0 +1,30 @@
#**************************************************************************
#* MessagesBundle.properties -- Hungarian language error messages
#*
#* Copyright (c) 2001 by Gyula Csom (csom@informix.hu)
#*
#* This program is free software; you can redistribute it and/or modify
#* it under the terms of the GNU Library General Public License as published
#* by the Free Software Foundation; either version 2 of the License or
#* (at your option) any later version.
#*
#* This program is distributed in the hope that it will be useful, but
#* WITHOUT ANY WARRANTY; without even the implied warranty of
#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
#* GNU Library General Public License for more details.
#*
#* You should have received a copy of the GNU Library General Public License
#* along with this program; see the file COPYING.LIB. If not, write to
#* the Free Software Foundation Inc., 59 Temple Place - Suite 330,
#* Boston, MA 02111-1307 USA
#**************************************************************************/
getopt.ambigious={0}: opci\u00F3 ''{1}'' f\u00E9lre\u00E9rthet\u0151
getopt.arguments1={0}: opci\u00F3 ''--{1}'' nem enged meg argumentumot
getopt.arguments2={0}: opci\u00F3 ''{1}{2}'' nem enged meg argumentumot
getopt.requires={0}: opci\u00F3 ''{1}'' argumentumot ig\u00E9nyel
getopt.unrecognized={0}: ismeretlen opci\u00F3 ''--{1}''
getopt.unrecognized2={0}: ismeretlen opci\u00F3 ''{1}{2}''
getopt.illegal={0}: illeg\u00E1lis opci\u00F3 -- {1}
getopt.invalid={0}: \u00E9rv\u00E9nytelen opci\u00F3 -- {1}
getopt.requires2={0}: az opci\u00F3 argumentumot ig\u00E9nyel -- {1}
getopt.invalidValue=\u00C9rv\u00E9nytelen \u00E9rt\u00E9k {0} a k\u00F6vetkez\u0151 param\u00E9terhez 'has_arg'

View File

@@ -0,0 +1,30 @@
#**************************************************************************
#* MessagesBundle.properties -- Italian language error messages
#*
#* Copyright (c) 2005 by Sandro Tosi (matrixhasu@gmail.com)
#*
#* This program is free software; you can redistribute it and/or modify
#* it under the terms of the GNU Library General Public License as published
#* by the Free Software Foundation; either version 2 of the License or
#* (at your option) any later version.
#*
#* This program is distributed in the hope that it will be useful, but
#* WITHOUT ANY WARRANTY; without even the implied warranty of
#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
#* GNU Library General Public License for more details.
#*
#* You should have received a copy of the GNU Library General Public License
#* along with this program; see the file COPYING.LIB. If not, write to
#* the Free Software Foundation Inc., 59 Temple Place - Suite 330,
#* Boston, MA 02111-1307 USA
#**************************************************************************/
getopt.ambigious={0}: l'opzione ''{1}'' \u00E8 ambigua
getopt.arguments1={0}: l'opzione ''--{1}'' non ammette un argomento
getopt.arguments2={0}: l'opzione ''{1}{2}'' non ammette un argomento
getopt.requires={0}: l'opzione ''{1}'' richiede un argomento
getopt.unrecognized={0}: opzione non riconosciuta ''--{1}''
getopt.unrecognized2={0}: opzione non riconosciuta ''{1}{2}''
getopt.illegal={0}: opzione illegale -- {1}
getopt.invalid={0}: opzione invalida -- {1}
getopt.requires2={0}: l'opzione richiede un argomento -- {1}
getopt.invalidValue=Valore non valido {0} per il parametro 'has_arg'

View File

@@ -0,0 +1,30 @@
#**************************************************************************
#* MessagesBundle.properties -- Japanese language error messages
#*
#* Copyright (c) 2001 by Yasuoka Masahiko (yasuoka@yasuoka.net)
#*
#* This program is free software; you can redistribute it and/or modify
#* it under the terms of the GNU Library General Public License as published
#* by the Free Software Foundation; either version 2 of the License or
#* (at your option) any later version.
#*
#* This program is distributed in the hope that it will be useful, but
#* WITHOUT ANY WARRANTY; without even the implied warranty of
#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
#* GNU Library General Public License for more details.
#*
#* You should have received a copy of the GNU Library General Public License
#* along with this program; see the file COPYING.LIB. If not, write to
#* the Free Software Foundation Inc., 59 Temple Place - Suite 330,
#* Boston, MA 02111-1307 USA
#**************************************************************************/
getopt.ambigious={0}: ''{1}'' \u30aa\u30d7\u30b7\u30e7\u30f3\u306f\u66d6\u6627\u3067\u3059\u3002
getopt.arguments1={0}: ''--{1}'' \u30aa\u30d7\u30b7\u30e7\u30f3\u306f\u30d1\u30e9\u30e1\u30fc\u30bf\u3092\u3082\u3061\u307e\u305b\u3093\u3002
getopt.arguments2={0}: ''{1}{2}'' \u30aa\u30d7\u30b7\u30e7\u30f3\u306f\u30d1\u30e9\u30e1\u30fc\u30bf\u3092\u3082\u3061\u307e\u305b\u3093\u3002
getopt.requires={0}: ''{1}'' \u30aa\u30d7\u30b7\u30e7\u30f3\u306b\u306f\u30d1\u30e9\u30e1\u30fc\u30bf\u304c\u5fc5\u8981\u3067\u3059\u3002
getopt.unrecognized={0}: ''--{1}'' \u306f\u7121\u52b9\u306a\u30aa\u30d7\u30b7\u30e7\u30f3\u3067\u3059\u3002
getopt.unrecognized2={0}: ''{1}{2}'' \u306f\u7121\u52b9\u306a\u30aa\u30d7\u30b7\u30e7\u30f3\u3067\u3059\u3002
getopt.illegal={0}: -- {1} \u306f\u4e0d\u6b63\u306a\u30aa\u30d7\u30b7\u30e7\u30f3\u3067\u3059\u3002
getopt.invalid={0}: -- {1} \u30aa\u30d7\u30b7\u30e7\u30f3\u306f\u6b63\u3057\u304f\u3042\u308a\u307e\u305b\u3093\u3002
getopt.requires2={0}: -- {1} \u30aa\u30d7\u30b7\u30e7\u30f3\u306b\u306f\u30d1\u30e9\u30e1\u30fc\u30bf\u304c\u5fc5\u8981\u3067\u3059\u3002
getopt.invalidValue={0} \u306f\u3001'has_arg' \u30d1\u30e9\u30e1\u30fc\u30bf\u3068\u3057\u3066\u4e0d\u6b63\u306a\u5024\u3067\u3059\u3002

View File

@@ -0,0 +1,30 @@
#**************************************************************************
#* MessagesBundle.properties -- Norwegian language error messages
#*
#* Copyright (c) 1999 by Bj\u00F8rn-Ove Heimsund (s811@ii.uib.no)
#*
#* This program is free software; you can redistribute it and/or modify
#* it under the terms of the GNU Library General Public License as published
#* by the Free Software Foundation; either version 2 of the License or
#* (at your option) any later version.
#*
#* This program is distributed in the hope that it will be useful, but
#* WITHOUT ANY WARRANTY; without even the implied warranty of
#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
#* GNU Library General Public License for more details.
#*
#* You should have received a copy of the GNU Library General Public License
#* along with this program; see the file COPYING.LIB. If not, write to
#* the Free Software Foundation Inc., 59 Temple Place - Suite 330,
#* Boston, MA 02111-1307 USA
#**************************************************************************/
getopt.ambigious={0}: flagget ''{1}'' er flertydig
getopt.arguments1={0}: flagget ''--{1}'' tillater ikke et argument
getopt.arguments2={0}: flagget ''{1}{2}'' tillater ikke et argument
getopt.requires={0}: flagget ''{1}'' krever et argument
getopt.unrecognized={0}: ukjent flagg ''--{1}''
getopt.unrecognized2={0}: ukjent flagg ''{1}{2}''
getopt.illegal={0}: ugyldig flagg -- {1}
getopt.invalid={0}: ugyldig flagg -- {1}
getopt.requires2={0}: flagget krever et argument -- {1}
getopt.invalidValue=Ugyldig verdi {0} for parameter 'has_arg'

View File

@@ -0,0 +1,30 @@
#**************************************************************************
#* MessagesBundle_nl.properties -- Dutch language error messages
#*
#* Copyright (c) 1999 by Ernst de Haan (ernst@jollem.com)
#*
#* This program is free software; you can redistribute it and/or modify
#* it under the terms of the GNU Library General Public License as published
#* by the Free Software Foundation; either version 2 of the License or
#* (at your option) any later version.
#*
#* This program is distributed in the hope that it will be useful, but
#* WITHOUT ANY WARRANTY; without even the implied warranty of
#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
#* GNU Library General Public License for more details.
#*
#* You should have received a copy of the GNU Library General Public License
#* along with this program; see the file COPYING.LIB. If not, write to
#* the Free Software Foundation Inc., 59 Temple Place - Suite 330,
#* Boston, MA 02111-1307 USA
#**************************************************************************/
getopt.ambigious={0}: optie ''{1}'' is ambigue
getopt.arguments1={0}: optie ''--{1}'' staat geen argumenten toe
getopt.arguments2={0}: optie ''{1}{2}'' staat geen argumenten toe
getopt.requires={0}: optie ''{1}'' heeft een argument nodig
getopt.unrecognized={0}: onbekende optie ''--{1}''
getopt.unrecognized2={0}: onbekende optie ''{1}{2}''
getopt.illegal={0}: niet-toegestane optie -- {1}
getopt.invalid={0}: onjuiste optie -- {1}
getopt.requires2={0}: optie heeft een argument nodig -- {1}
getopt.invalidValue=Ongeldige waarde {0} voor parameter 'has_arg'

View File

@@ -0,0 +1,31 @@
#**************************************************************************
#* MessagesBundle_pl.properties -- Polish language error messages
#*
#* Polish Messages Copyright (c) 2006 by Krzysztof Szyma?ski (sirch.s@gmail.com)
#* These messages are encoded in ISO-8859-2
#*
#* This program is free software; you can redistribute it and/or modify
#* it under the terms of the GNU Library General Public License as published
#* by the Free Software Foundation; either version 2 of the License or
#* (at your option) any later version.
#*
#* This program is distributed in the hope that it will be useful, but
#* WITHOUT ANY WARRANTY; without even the implied warranty of
#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
#* GNU Library General Public License for more details.
#*
#* You should have received a copy of the GNU Library General Public License
#* along with this program; see the file COPYING.LIB. If not, write to
#* the Free Software Foundation Inc., 59 Temple Place - Suite 330,
#* Boston, MA 02111-1307 USA
#**************************************************************************/
getopt.ambigious={0}: opcja ''{1}''jest wieloznaczna
getopt.arguments1={0}: opcja ''--{1}'' nie akceptuje argumentu
getopt.arguments2={0}: opcja ''{1}{2}'' nie akceptuje argumentu
getopt.requires={0}: opcja ''{1}'' wymaga argumentu
getopt.unrecognized={0}: nierozpoznana opcja ''--{1}''
getopt.unrecognized2={0}: nierozpoznana opcja ''{1}{2}''
getopt.illegal={0}: nie dopuszczalna opcja --{1}
getopt.invalid={0}: b??dna opcja --{1}
getopt.requires2={0}: opcja --{1} oczekuje argumentu
getopt.invalidValue=Nie poprawna warto?? {0} argument 'has_arg'

View File

@@ -0,0 +1,32 @@
#**************************************************************************
#* MessagesBundle_fr.properties -- Romanian language error messages
#*
#* Copyright (c) 1999 Free Software Foundation, Inc.
#* Marian-Nicolae Ion <marian_ion@noos.fr>, 2004,
#* These messages are encoded in ISO-8859-2
#*
#* This program is free software; you can redistribute it and/or modify
#* it under the terms of the GNU Library General Public License as published
#* by the Free Software Foundation; either version 2 of the License or
#* (at your optiunea) any later version.
#*
#* This program is distributed in the hope that it will be useful, but
#* WITHOUT ANY WARRANTY; without even the implied warranty of
#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
#* GNU Library General Public License for more details.
#*
#* You should have received a copy of the GNU Library General Public License
#* along with this program; see the file COPYING.LIB. If not, write to
#* the Free Software Foundation Inc., 59 Temple Place - Suite 330,
#* Boston, MA 02111-1307 USA
#**************************************************************************/
getopt.ambigious={0}: op\u0163iunea ''{1}'' este ambigu\u0103
getopt.arguments1={0}: op\u0163iunea ''--{1}'' nu accept\u0103 parametru
getopt.arguments2={0}: op\u0163iunea ''{1}{2}'' nu accept\u0103 parametru
getopt.requires={0}: op\u0163iunea ''{1}'' cere un parametru
getopt.unrecognized={0}: op\u0163iune necunoscut\u0103 ''--{1}''
getopt.unrecognized2={0}: op\u0163iune necunoscut\u0103 ''{1}{2}''
getopt.illegal={0}: op\u0163iune ilegal\u0103 -- {1}
getopt.invalid={0}: op\u0163iune invalid\u0103 -- {1}
getopt.requires2={0}: aceast\u0103 op\u0163iune cere un parametru -- {1}
getopt.invalidValue=Valoare invalid\u0103 {0} pentru parametrul 'has_arg'

View File

@@ -0,0 +1,30 @@
#**************************************************************************
#* MessagesBundle.properties Simple Chinese language error messages
#*
#* Copyright (c) 2012 by David Zhang (david290@qq.com)
#*
#* This program is free software; you can redistribute it and/or modify
#* it under the terms of the GNU Library General Public License as published
#* by the Free Software Foundation; either version 2 of the License or
#* (at your option) any later version.
#*
#* This program is distributed in the hope that it will be useful, but
#* WITHOUT ANY WARRANTY; without even the implied warranty of
#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
#* GNU Library General Public License for more details.
#*
#* You should have received a copy of the GNU Library General Public License
#* along with this program; see the file COPYING.LIB. If not, write to
#* the Free Software Foundation Inc., 59 Temple Place - Suite 330,
#* Boston, MA 02111-1307 USA
#**************************************************************************/
getopt.ambigious={0}: \u9009\u9879 ''{1}'' \u6709\u6B67\u4E49
getopt.arguments1={0}:\u9009\u9879''--{1}'' \u4E0D\u80FD\u5E26\u53C2\u6570
getopt.arguments2={0}:\u9009\u9879''{1}{2}''\u4E0D\u80FD\u5E26\u53C2\u6570
getopt.requires={0}: \u9009\u9879 ''{1}'' \u8981\u6C42\u5E26\u6709\u53C2\u6570
getopt.unrecognized={0}: \u65E0\u6CD5\u8BC6\u522B\u7684\u9009\u9879 ''--{1}''
getopt.unrecognized2={0}:\u65E0\u6CD5\u8BC6\u522B\u7684\u9009\u9879''{1}{2}''
getopt.illegal={0}: \u975E\u6CD5\u9009\u9879 -- {1}
getopt.invalid={0}: \u65E0\u6548\u9009\u9879 -- {1}
getopt.requires2={0}:\u9009\u9879\u9700\u8981\u6709\u53C2\u6570 -- {1}
getopt.invalidValue=\u9009\u9879 'has_arg'\u7684\u503C {0} \u975E\u6CD5

View File

@@ -0,0 +1,30 @@
#**************************************************************************
#* MessagesBundle.properties - Triditional Chinese language error messages
#*
#* Copyright (c) 2012 by David Zhang (david290@qq.com)
#*
#* This program is free software; you can redistribute it and/or modify
#* it under the terms of the GNU Library General Public License as published
#* by the Free Software Foundation; either version 2 of the License or
#* (at your option) any later version.
#*
#* This program is distributed in the hope that it will be useful, but
#* WITHOUT ANY WARRANTY; without even the implied warranty of
#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
#* GNU Library General Public License for more details.
#*
#* You should have received a copy of the GNU Library General Public License
#* along with this program; see the file COPYING.LIB. If not, write to
#* the Free Software Foundation Inc., 59 Temple Place - Suite 330,
#* Boston, MA 02111-1307 USA
#**************************************************************************/
getopt.ambigious={0}: \u9078\u9805 ''{1}'' \u6709\u6B67\u7FA9
getopt.arguments1={0}:\u9078\u9805''--{1}'' \u4E0D\u80FD\u5E36\u53C3\u6578
getopt.arguments2={0}:\u9078\u9805''{1}{2}''\u4E0D\u80FD\u5E36\u53C3\u6578
getopt.requires={0}: \u9078\u9805 ''{1}'' \u8981\u6C42\u5E36\u6709\u53C3\u6578
getopt.unrecognized={0}: \u7121\u6CD5\u8B58\u5225\u7684\u9078\u9805 ''--{1}''
getopt.unrecognized2={0}:\u7121\u6CD5\u8B58\u5225\u7684\u9078\u9805''{1}{2}''
getopt.illegal={0}: \u975E\u6CD5\u9078\u9805 -- {1}
getopt.invalid={0}: \u7121\u6548\u9078\u9805 -- {1}
getopt.requires2={0}:\u9078\u9805\u9700\u8981\u6709\u53C3\u6578 -- {1}
getopt.invalidValue=\u9078\u9805 'has_arg'\u7684\u503C {0} \u975E\u6CD5

View File

@@ -0,0 +1,25 @@
<html><body>
<p>
This is Java getopt 1.0.14 (released 2012/02/08)
</p><p>
Added in I2P 0.9.12.
Source was retrieved from <a href="https://github.com/arenn/java-getopt">here</a>.
Previous version 1.0.13 (released 2006/08/29)
is available <a href="http://www.urbanophile.com/arenn/hacking/getopt/">here</a>.
</p><p>
Copyright (c) 1998 by Aaron M. Renn (arenn@urbanophile.com),
LGPL v2.
</p><p>
Changes:
<ul><li>
Simplified Chinese
MessagesBundle_chs.properties renamed to MessagesBundle_zh.properties
</li><li>
Traditional Chinese
MessagesBundle_cht.properties renamed to MessagesBundle_zh_TW.properties
</li><li>
Norwegian Bokmaal
MessagesBundle_no.properties renamed to MessagesBundle_nb.properties
</li></ul>
</p>
</body></html>

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