forked from I2P_Developers/i2p.i2p
Compare commits
125 Commits
i2p-0.9.11
...
i2p-0.9.12
Author | SHA1 | Date | |
---|---|---|---|
90cd68900e | |||
3f865edb4f | |||
![]() |
2e8681de2c | ||
2d85b98c20 | |||
![]() |
d28d6efb79 | ||
![]() |
43d84a5f07 | ||
![]() |
e4d57f62bb | ||
![]() |
a974268e7b | ||
1695af7011 | |||
![]() |
682c4cd0b8 | ||
![]() |
0f6d039391 | ||
![]() |
d6233a8798 | ||
![]() |
4f12e81dbb | ||
![]() |
ab612d0088 | ||
![]() |
3fa7bb9dc5 | ||
![]() |
22b3d4d70b | ||
bd6c588c74 | |||
6c202e8f1d | |||
24e6750529 | |||
![]() |
af7ce8e18e | ||
c73f0eeeb5 | |||
c68769cf7f | |||
3e639a319d | |||
1bbb79f5b1 | |||
![]() |
84e6991374 | ||
![]() |
5d1796bb6f | ||
![]() |
bfba732f76 | ||
738c5ed14e | |||
beed080390 | |||
3624d66c12 | |||
2cca2781fd | |||
31d485299c | |||
a39f667c2f | |||
5283fc923e | |||
c57552f4e9 | |||
96b4c6b219 | |||
51911bd9a8 | |||
1f5926e4e9 | |||
d6a02a13ad | |||
![]() |
e282491798 | ||
![]() |
2b0dfed012 | ||
9d80aff977 | |||
a0724dc009 | |||
8c820bb237 | |||
3fdc964eac | |||
597662d0dc | |||
![]() |
17c80c29e6 | ||
![]() |
5d0bfc63fa | ||
![]() |
0c449f8b8e | ||
![]() |
36b6baa33e | ||
![]() |
2c049878c6 | ||
81c58c1796 | |||
36a3edf612 | |||
4b6fd3d387 | |||
f777696e14 | |||
c9c181c14a | |||
a62b7a4374 | |||
9d7a9c9895 | |||
5d6a1c5e35 | |||
c48266fdc4 | |||
895d54d36d | |||
![]() |
ba0e1a3aa9 | ||
![]() |
6ec665db50 | ||
![]() |
7f4c52cf42 | ||
![]() |
37728e38c9 | ||
18b4a2427b | |||
3102970540 | |||
c679091afd | |||
91cdf85772 | |||
aab8b10adf | |||
![]() |
5bcfe1ec72 | ||
4209c291ba | |||
7c5dc7fa55 | |||
c6dfb8744a | |||
6e0ca92041 | |||
2f7eb56790 | |||
8c98ef7328 | |||
45997fd1d5 | |||
6a3e5ec620 | |||
18cbf3d253 | |||
4df6a6f47b | |||
![]() |
5542406f3d | ||
a9fceae181 | |||
c79ff0dc09 | |||
e2fc5c6957 | |||
5667a6647f | |||
b70d616083 | |||
![]() |
75fa2b1809 | ||
66d9017d58 | |||
![]() |
53efb7119a | ||
![]() |
8b946bb56b | ||
8ed34e3edf | |||
![]() |
d8fef53aef | ||
6af82f2a9a | |||
36b2547ca4 | |||
72e96cdd23 | |||
a2ba9bbdb1 | |||
![]() |
f6d9a6917f | ||
1956068698 | |||
855cae0a45 | |||
ef3a12f01a | |||
37bf750ab9 | |||
9a01fdf57c | |||
deec84713f | |||
0d028122a6 | |||
4998f86efe | |||
839bd51bc8 | |||
936f2bb317 | |||
0cd774273c | |||
fe391ff29f | |||
001b127258 | |||
7c00a5165f | |||
e1c3e2c1c7 | |||
e9b3577eec | |||
3622501471 | |||
b7207fd29f | |||
4dc1241d2f | |||
2cacded182 | |||
ec22a1dafc | |||
28575dbdae | |||
17e63b054c | |||
fba209ca7d | |||
41e071efe5 | |||
e8e239616f | |||
5842e25205 |
47
.gitignore
vendored
Normal file
47
.gitignore
vendored
Normal file
@@ -0,0 +1,47 @@
|
||||
# Just to try and prevent some noob disasters.
|
||||
# Use git add -f foo.jar to ignore this ignore list
|
||||
|
||||
# generated release files
|
||||
*.exe
|
||||
*.[gx]z
|
||||
*.bz2
|
||||
*.[rwjt]ar
|
||||
*.sig
|
||||
*.su[d23]
|
||||
*.deb
|
||||
*.zip
|
||||
*.torrent
|
||||
|
||||
*~
|
||||
web-fragment.xml
|
||||
web-out.xml
|
||||
*.out
|
||||
|
||||
# Temporary/build dirs
|
||||
build/
|
||||
pkg-temp/
|
||||
classes/
|
||||
dist/
|
||||
/installer/resources/locale/mo
|
||||
/tmp
|
||||
/apps/jetty/jettylib
|
||||
*_jsp.java
|
||||
*.class
|
||||
|
||||
# Debian-related
|
||||
/debian/copyright
|
||||
/debian/changelog
|
||||
|
||||
# Build property overrides
|
||||
/override.properties
|
||||
|
||||
# Reporting
|
||||
*.fba
|
||||
sloccount.sc
|
||||
/reports/
|
||||
|
||||
# Don't allow patches
|
||||
*.(diff|patch)
|
||||
|
||||
# but allow debian/patches
|
||||
!/debian/patches/*.(patch|diff)
|
@@ -16,10 +16,12 @@ _jsp\.java$
|
||||
\.sig$
|
||||
\.sud$
|
||||
\.su2$
|
||||
.\su3$
|
||||
\.tar$
|
||||
\.war$
|
||||
.\deb$
|
||||
\.zip$
|
||||
\.torrent$
|
||||
^\.
|
||||
~$
|
||||
web-fragment.xml
|
||||
@@ -31,7 +33,7 @@ web-out.xml
|
||||
/build
|
||||
/classes
|
||||
/dist
|
||||
/mo
|
||||
^installer/resources/locale/mo
|
||||
/tmp
|
||||
^apps/jetty/jettylib
|
||||
|
||||
|
19
.tx/config
19
.tx/config
@@ -242,6 +242,25 @@ 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.pt_BR = core/java/src/gnu/getopt/MessagesBundle_pt_BR.properties
|
||||
trans.ro = core/java/src/gnu/getopt/MessagesBundle_ro.properties
|
||||
trans.ru_RU = core/java/src/gnu/getopt/MessagesBundle_ru.properties
|
||||
trans.zh_CN = core/java/src/gnu/getopt/MessagesBundle_zh.properties
|
||||
|
||||
[main]
|
||||
host = https://www.transifex.com
|
||||
|
||||
|
@@ -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
|
||||
@@ -39,7 +39,10 @@ To uninstall I2P:
|
||||
rm -rf $I2PInstallDir ~/.i2p
|
||||
|
||||
Supported JVMs:
|
||||
Windows: Latest available from http://java.com/download (1.5+ supported)
|
||||
Linux: Latest available from http://java.com/download (1.5+ supported)
|
||||
FreeBSD: 1.5-compatible (NIO required)
|
||||
Other operating systems and JVMs: See https://trac.i2p2.de/wiki/java
|
||||
All platforms: Java 1.6 or higher required; 1.7 or higher recommended
|
||||
Windows: OpenJDK or Oracle from http://java.com/download
|
||||
Linux: OpenJDK or Oracle from http://java.com/download
|
||||
FreeBSD: OpenJDK or Oracle from http://java.com/download
|
||||
Raspberry Pi: Oracle 8 Early Access https://jdk8.java.net/download.html
|
||||
PowerPC: IBM SDK 7 http://www.ibm.com/developerworks/java/jdk/linux/download.html
|
||||
Other operating systems and JVMs: See https://trac.i2p2.de/wiki/java or https://geti2p.net/download
|
||||
|
@@ -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:
|
||||
@@ -177,7 +182,7 @@ Applications:
|
||||
By welterde.
|
||||
See licenses/LICENSE-GPLv2.txt
|
||||
|
||||
Jetty 7.6.14.v20131031:
|
||||
Jetty 8.1.14.v20131031:
|
||||
See licenses/ABOUT-Jetty.html
|
||||
See licenses/NOTICE-Jetty.html
|
||||
See licenses/LICENSE-Apache2.0.txt
|
||||
|
10
README.txt
10
README.txt
@@ -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
|
||||
|
@@ -221,15 +221,17 @@ public class BOB implements Runnable, ClientApp {
|
||||
if (!cfg.isAbsolute()) {
|
||||
cfg = new File(I2PAppContext.getGlobalContext().getConfigDir(), configLocation);
|
||||
}
|
||||
FileInputStream fi = null;
|
||||
try {
|
||||
FileInputStream fi = new FileInputStream(cfg);
|
||||
fi = new FileInputStream(cfg);
|
||||
props.load(fi);
|
||||
fi.close();
|
||||
} catch (FileNotFoundException fnfe) {
|
||||
_log.warn("Unable to load up the BOB config file " + cfg.getAbsolutePath() + ", Using defaults.", fnfe);
|
||||
save = true;
|
||||
} catch (IOException ioe) {
|
||||
_log.warn("IOException on BOB config file " + cfg.getAbsolutePath() + ", using defaults.", ioe);
|
||||
} finally {
|
||||
if (fi != null) try { fi.close(); } catch (IOException ioe) {}
|
||||
}
|
||||
}
|
||||
// Global router and client API configurations that are missing are set to defaults here.
|
||||
@@ -276,13 +278,15 @@ public class BOB implements Runnable, ClientApp {
|
||||
if (!cfg.isAbsolute()) {
|
||||
cfg = new File(I2PAppContext.getGlobalContext().getConfigDir(), configLocation);
|
||||
}
|
||||
FileOutputStream fo = null;
|
||||
try {
|
||||
_log.warn("Writing new defaults file " + cfg.getAbsolutePath());
|
||||
FileOutputStream fo = new FileOutputStream(cfg);
|
||||
fo = new FileOutputStream(cfg);
|
||||
props.store(fo, cfg.getAbsolutePath());
|
||||
fo.close();
|
||||
} catch (IOException ioe) {
|
||||
_log.error("IOException on BOB config file " + cfg.getAbsolutePath(), ioe);
|
||||
} finally {
|
||||
if (fo != null) try { fo.close(); } catch (IOException ioe) {}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -7,6 +7,7 @@
|
||||
<property name="jar" value="addressbook.jar"/>
|
||||
<property name="war" value="addressbook.war"/>
|
||||
<property name="javac.compilerargs" value="" />
|
||||
<property name="javac.version" value="1.6" />
|
||||
|
||||
<target name="init">
|
||||
<mkdir dir="${build}"/>
|
||||
@@ -24,6 +25,18 @@
|
||||
<typefound name="depend" />
|
||||
</condition>
|
||||
<target name="depend" if="depend.available">
|
||||
<depend
|
||||
cache="../../build"
|
||||
srcdir="${src}"
|
||||
destdir="${build}" >
|
||||
<!-- Depend on classes instead of jars where available -->
|
||||
<classpath>
|
||||
<pathelement location="../../core/java/build/obj" />
|
||||
</classpath>
|
||||
</depend>
|
||||
</target>
|
||||
|
||||
<target name="dependServlet" if="depend.available">
|
||||
<depend
|
||||
cache="../../build"
|
||||
srcdir="${src}"
|
||||
@@ -37,9 +50,23 @@
|
||||
</target>
|
||||
|
||||
<target name="compile" depends="init, depend">
|
||||
<javac debug="true" deprecation="on" source="1.5" target="1.5"
|
||||
<javac debug="true" deprecation="on" source="${javac.version}" target="${javac.version}"
|
||||
includeAntRuntime="false"
|
||||
srcdir="${src}" destdir="${build}">
|
||||
srcdir="${src}" destdir="${build}"
|
||||
excludes="net/i2p/addressbook/Servlet.java">
|
||||
<compilerarg line="${javac.compilerargs}" />
|
||||
<classpath>
|
||||
<pathelement location="../../core/java/build/i2p.jar" />
|
||||
<pathelement location="../jetty/jettylib/javax.servlet.jar" />
|
||||
</classpath>
|
||||
</javac>
|
||||
</target>
|
||||
|
||||
<target name="compileServlet" depends="init, dependServlet, compile">
|
||||
<javac debug="true" deprecation="on" source="${javac.version}" target="${javac.version}"
|
||||
includeAntRuntime="false"
|
||||
srcdir="${src}" destdir="${build}"
|
||||
includes="net/i2p/addressbook/Servlet.java">
|
||||
<compilerarg line="${javac.compilerargs}" />
|
||||
<classpath>
|
||||
<pathelement location="../../core/java/build/i2p.jar" />
|
||||
@@ -50,9 +77,9 @@
|
||||
|
||||
<!-- unused for now, as we oddly ship addressbook as a .war -->
|
||||
<target name="jar" depends="compile, changes">
|
||||
<jar basedir="${build}" destfile="${dist}/${jar}">
|
||||
<!-- set if unset -->
|
||||
<property name="workspace.changes" value="" />
|
||||
<jar basedir="${build}" destfile="${dist}/${jar}">
|
||||
<manifest>
|
||||
<attribute name="Main-Class" value="addressbook.Daemon"/>
|
||||
<attribute name="Implementation-Version" value="${full.version}" />
|
||||
@@ -64,7 +91,7 @@
|
||||
</jar>
|
||||
</target>
|
||||
|
||||
<target name="war" depends="compile, changes, warUpToDate" unless="war.uptodate">
|
||||
<target name="war" depends="compileServlet, changes, warUpToDate" unless="war.uptodate">
|
||||
<mkdir dir="${dist}/tmp"/>
|
||||
<mkdir dir="${dist}/tmp/WEB-INF"/>
|
||||
<mkdir dir="${dist}/tmp/WEB-INF/classes"/>
|
||||
|
@@ -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")));
|
||||
}
|
||||
|
||||
|
@@ -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://i2p-projekt.i2p/hosts.txt");
|
||||
defaultSubs.add(DEFAULT_SUB);
|
||||
|
||||
SubscriptionList subscriptions = new SubscriptionList(subscriptionFile,
|
||||
etagsFile, lastModifiedFile, lastFetchedFile, delay, defaultSubs, settings
|
||||
|
@@ -7,12 +7,13 @@
|
||||
<property name="jar" value="desktopgui.jar"/>
|
||||
<property name="resources" value="resources"/>
|
||||
<property name="javadoc" value="javadoc"/>
|
||||
<property name="javac.compilerargs" value=""/>
|
||||
<property name="javac.version" value="1.6" />
|
||||
<property name="require.gettext" value="true" />
|
||||
|
||||
<condition property="no.bundle">
|
||||
<isfalse value="${require.gettext}" />
|
||||
</condition>
|
||||
<property name="javac.compilerargs" value=""/>
|
||||
<property name="require.gettext" value="true" />
|
||||
|
||||
<target name="init">
|
||||
<mkdir dir="${build}"/>
|
||||
@@ -27,7 +28,7 @@
|
||||
</target>
|
||||
|
||||
<target name="compile" depends="init">
|
||||
<javac debug="true" deprecation="on" source="1.5" target="1.5"
|
||||
<javac debug="true" deprecation="on" source="${javac.version}" target="${javac.version}"
|
||||
includeAntRuntime="false"
|
||||
srcdir="${src}" destdir="${build}">
|
||||
<compilerarg line="${javac.compilerargs}" />
|
||||
|
@@ -17,29 +17,28 @@
|
||||
<classpath>
|
||||
<pathelement location="../../../core/java/build/obj" />
|
||||
<pathelement location="../../ministreaming/java/build/obj" />
|
||||
<pathelement location="../../jetty/jettylib/org.mortbay.jetty.jar" />
|
||||
<pathelement location="../../jetty/jettylib/javax.servlet.jar" />
|
||||
<pathelement location="../../jetty/jettylib/jetty-servlet.jar" />
|
||||
<pathelement location="../../jetty/jettylib/jetty-util.jar" />
|
||||
</classpath>
|
||||
</depend>
|
||||
</target>
|
||||
|
||||
<property name="javac.compilerargs" value="" />
|
||||
<property name="javac.version" value="1.6" />
|
||||
<property name="require.gettext" value="true" />
|
||||
|
||||
<condition property="no.bundle">
|
||||
<isfalse value="${require.gettext}" />
|
||||
</condition>
|
||||
<property name="javac.compilerargs" value="" />
|
||||
<property name="require.gettext" value="true" />
|
||||
|
||||
<target name="compile" depends="depend">
|
||||
<mkdir dir="./build" />
|
||||
<mkdir dir="./build/obj" />
|
||||
<javac
|
||||
srcdir="./src"
|
||||
debug="true" deprecation="on" source="1.5" target="1.5"
|
||||
debug="true" deprecation="on" source="${javac.version}" target="${javac.version}"
|
||||
destdir="./build/obj"
|
||||
includeAntRuntime="false"
|
||||
classpath="../../../core/java/build/i2p.jar:../../jetty/jettylib/org.mortbay.jetty.jar:../../jetty/jettylib/javax.servlet.jar:../../jetty/jettylib/jetty-servlet.jar:../../jetty/jettylib/jetty-util.jar:../../ministreaming/java/build/mstreaming.jar" >
|
||||
classpath="../../../core/java/build/i2p.jar:../../jetty/jettylib/javax.servlet.jar:../../ministreaming/java/build/mstreaming.jar" >
|
||||
<compilerarg line="${javac.compilerargs}" />
|
||||
</javac>
|
||||
</target>
|
||||
|
@@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -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);
|
||||
|
@@ -5,13 +5,18 @@ import java.io.File;
|
||||
import net.i2p.I2PAppContext;
|
||||
import net.i2p.util.FileUtil;
|
||||
|
||||
import org.eclipse.jetty.server.Server;
|
||||
//import org.eclipse.jetty.server.Server;
|
||||
|
||||
/**
|
||||
* @deprecated does not work
|
||||
*/
|
||||
public class RunStandalone {
|
||||
/****
|
||||
static {
|
||||
System.setProperty("org.mortbay.http.Version.paranoid", "true");
|
||||
System.setProperty("org.mortbay.xml.XmlParser.NotValidating", "true");
|
||||
}
|
||||
****/
|
||||
|
||||
private RunStandalone(String args[]) {}
|
||||
|
||||
@@ -21,6 +26,8 @@ public class RunStandalone {
|
||||
}
|
||||
|
||||
public void start() {
|
||||
throw new RuntimeException("unsupported");
|
||||
/****
|
||||
File workDir = new File(I2PAppContext.getGlobalContext().getTempDir(), "jetty-work");
|
||||
boolean workDirRemoved = FileUtil.rmdir(workDir, false);
|
||||
if (!workDirRemoved)
|
||||
@@ -29,8 +36,6 @@ public class RunStandalone {
|
||||
if (!workDirCreated)
|
||||
System.err.println("ERROR: Unable to create Jetty temporary work directory");
|
||||
|
||||
throw new RuntimeException("unsupported");
|
||||
/****
|
||||
try {
|
||||
_server = new Server("jetty-i2psnark.xml");
|
||||
// just blow up NPE if we don't have a context
|
||||
|
@@ -24,7 +24,9 @@
|
||||
<condition property="no.bundle">
|
||||
<isfalse value="${require.gettext}" />
|
||||
</condition>
|
||||
|
||||
<property name="javac.compilerargs" value="" />
|
||||
<property name="javac.version" value="1.6" />
|
||||
<property name="require.gettext" value="true" />
|
||||
|
||||
<target name="compile" depends="depend">
|
||||
@@ -238,7 +240,7 @@
|
||||
<arg value="-webapp" />
|
||||
<arg value="../jsp/" />
|
||||
</java>
|
||||
<javac debug="true" deprecation="on" source="1.5" target="1.5"
|
||||
<javac debug="true" deprecation="on" source="${javac.version}" target="${javac.version}"
|
||||
includeAntRuntime="false"
|
||||
destdir="../jsp/WEB-INF/classes/" srcdir="../jsp/WEB-INF/classes" includes="**/*.java">
|
||||
<compilerarg line="${javac.compilerargs}" />
|
||||
|
@@ -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");
|
||||
}
|
||||
}
|
||||
@@ -1217,9 +1326,9 @@ public class I2PTunnel extends EventDispatcherImpl implements Logging {
|
||||
_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);
|
||||
|
@@ -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
|
||||
|
@@ -48,6 +48,7 @@ public class I2PTunnelHTTPServer extends I2PTunnelServer {
|
||||
public static final String OPT_POST_TOTAL_BAN_TIME = "postTotalBanTime";
|
||||
public static final String OPT_POST_MAX = "maxPosts";
|
||||
public static final String OPT_POST_TOTAL_MAX = "maxTotalPosts";
|
||||
public static final String OPT_REJECT_INPROXY = "rejectInproxy";
|
||||
public static final int DEFAULT_POST_WINDOW = 5*60;
|
||||
public static final int DEFAULT_POST_BAN_TIME = 30*60;
|
||||
public static final int DEFAULT_POST_TOTAL_BAN_TIME = 10*60;
|
||||
@@ -95,6 +96,19 @@ public class I2PTunnelHTTPServer extends I2PTunnelServer {
|
||||
"</body></html>")
|
||||
.getBytes();
|
||||
|
||||
private final static byte[] ERR_INPROXY =
|
||||
("HTTP/1.1 403 Denied\r\n"+
|
||||
"Content-Type: text/html; charset=iso-8859-1\r\n"+
|
||||
"Cache-control: no-cache\r\n"+
|
||||
"Connection: close\r\n"+
|
||||
"Proxy-Connection: close\r\n"+
|
||||
"\r\n"+
|
||||
"<html><head><title>403 Denied</title></head>\n"+
|
||||
"<body><h2>403 Denied</h2>\n" +
|
||||
"<p>Inproxy access denied. You must run <a href=\"https://geti2p.net/\">I2P</a> to access this site.</p>\n" +
|
||||
"</body></html>")
|
||||
.getBytes();
|
||||
|
||||
public I2PTunnelHTTPServer(InetAddress host, int port, String privData, String spoofHost, Logging l, EventDispatcher notifyThis, I2PTunnel tunnel) {
|
||||
super(host, port, privData, l, notifyThis, tunnel);
|
||||
setupI2PTunnelHTTPServer(spoofHost);
|
||||
@@ -198,6 +212,24 @@ public class I2PTunnelHTTPServer extends I2PTunnelServer {
|
||||
CLIENT_SKIPHEADERS, getTunnel().getContext());
|
||||
long afterHeaders = getTunnel().getContext().clock().now();
|
||||
|
||||
Properties opts = getTunnel().getClientOptions();
|
||||
if (Boolean.parseBoolean(opts.getProperty(OPT_REJECT_INPROXY)) &&
|
||||
(headers.containsKey("X-Forwarded-For") ||
|
||||
headers.containsKey("X-Forwarded-Server") ||
|
||||
headers.containsKey("X-Forwarded-Host"))) {
|
||||
if (_log.shouldLog(Log.WARN))
|
||||
_log.warn("Refusing inproxy access: " + peerHash.toBase64());
|
||||
try {
|
||||
// Send a 403, so the user doesn't get an HTTP Proxy error message
|
||||
// and blame his router or the network.
|
||||
socket.getOutputStream().write(ERR_INPROXY);
|
||||
} catch (IOException ioe) {}
|
||||
try {
|
||||
socket.close();
|
||||
} catch (IOException ioe) {}
|
||||
return;
|
||||
}
|
||||
|
||||
if (_postThrottler != null &&
|
||||
command.length() >= 5 &&
|
||||
command.substring(0, 5).toUpperCase(Locale.US).equals("POST ")) {
|
||||
@@ -221,7 +253,6 @@ public class I2PTunnelHTTPServer extends I2PTunnelServer {
|
||||
addEntry(headers, DEST64_HEADER, socket.getPeerDestination().toBase64());
|
||||
|
||||
// Port-specific spoofhost
|
||||
Properties opts = getTunnel().getClientOptions();
|
||||
String spoofHost;
|
||||
int ourPort = socket.getLocalPort();
|
||||
if (ourPort != 80 && ourPort > 0 && ourPort <= 65535 && opts != null) {
|
||||
@@ -309,6 +340,13 @@ public class I2PTunnelHTTPServer extends I2PTunnelServer {
|
||||
if (_log.shouldLog(Log.WARN))
|
||||
_log.warn("Error while receiving the new HTTP request", ex);
|
||||
} catch (OutOfMemoryError oom) {
|
||||
// Often actually a file handle limit problem so we can safely send a response
|
||||
// java.lang.OutOfMemoryError: unable to create new native thread
|
||||
try {
|
||||
// Send a 503, so the user doesn't get an HTTP Proxy error message
|
||||
// and blame his router or the network.
|
||||
socket.getOutputStream().write(ERR_UNAVAILABLE);
|
||||
} catch (IOException ioe) {}
|
||||
try {
|
||||
socket.close();
|
||||
} catch (IOException ioe) {}
|
||||
@@ -668,15 +706,21 @@ public class I2PTunnelHTTPServer extends I2PTunnelServer {
|
||||
else
|
||||
value = "";
|
||||
|
||||
if ("accept-encoding".equals(name.toLowerCase(Locale.US)))
|
||||
String lcName = name.toLowerCase(Locale.US);
|
||||
if ("accept-encoding".equals(lcName))
|
||||
name = "Accept-encoding";
|
||||
else if ("x-accept-encoding".equals(name.toLowerCase(Locale.US)))
|
||||
else if ("x-accept-encoding".equals(lcName))
|
||||
name = "X-Accept-encoding";
|
||||
else if ("x-forwarded-for".equals(lcName))
|
||||
name = "X-Forwarded-For";
|
||||
else if ("x-forwarded-server".equals(lcName))
|
||||
name = "X-Forwarded-Server";
|
||||
else if ("x-forwarded-host".equals(lcName))
|
||||
name = "X-Forwarded-Host";
|
||||
|
||||
// For incoming, we remove certain headers to prevent spoofing.
|
||||
// For outgoing, we remove certain headers to improve anonymity.
|
||||
boolean skip = false;
|
||||
String lcName = name.toLowerCase(Locale.US);
|
||||
for (String skipHeader: skipHeaders) {
|
||||
if (skipHeader.toLowerCase(Locale.US).equals(lcName)) {
|
||||
skip = true;
|
||||
|
@@ -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) {
|
||||
|
@@ -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();
|
||||
@@ -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.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(" ");
|
||||
|
@@ -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.");
|
||||
|
@@ -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);
|
||||
|
@@ -14,6 +14,8 @@ import java.util.Properties;
|
||||
import java.util.Set;
|
||||
import java.util.TreeMap;
|
||||
|
||||
import net.i2p.client.I2PClient;
|
||||
import net.i2p.crypto.SigType;
|
||||
import net.i2p.data.Base64;
|
||||
import net.i2p.data.Destination;
|
||||
import net.i2p.data.PrivateKeyFile;
|
||||
@@ -177,6 +179,17 @@ 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.9.12 */
|
||||
public boolean isSigTypeAvailable(int code) {
|
||||
SigType type = SigType.getByCode(code);
|
||||
return type != null && type.isAvailable();
|
||||
}
|
||||
|
||||
/** @since 0.8.9 */
|
||||
public boolean getDCC(int tunnel) {
|
||||
return getBooleanProperty(tunnel, I2PTunnelIRCClient.PROP_DCC);
|
||||
@@ -358,6 +371,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");
|
||||
|
@@ -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;
|
||||
@@ -807,6 +808,21 @@ public class IndexBean {
|
||||
return false;
|
||||
}
|
||||
|
||||
/** @since 0.9.12 */
|
||||
public void setRejectInproxy(String moo) {
|
||||
_booleanOptions.add(I2PTunnelHTTPServer.OPT_REJECT_INPROXY);
|
||||
}
|
||||
|
||||
/** @since 0.9.12 */
|
||||
public boolean isRejectInproxy(int tunnel) {
|
||||
TunnelController tun = getController(tunnel);
|
||||
if (tun != null) {
|
||||
Properties opts = tun.getClientOptionProps();
|
||||
return Boolean.parseBoolean(opts.getProperty(I2PTunnelHTTPServer.OPT_REJECT_INPROXY));
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
protected static final String PROP_ENABLE_ACCESS_LIST = "i2cp.enableAccessList";
|
||||
protected static final String PROP_ENABLE_BLACKLIST = "i2cp.enableBlackList";
|
||||
|
||||
@@ -983,6 +999,7 @@ public class IndexBean {
|
||||
} catch (NumberFormatException nfe) {}
|
||||
}
|
||||
}
|
||||
|
||||
public void setCert(String val) {
|
||||
if (val != null) {
|
||||
try {
|
||||
@@ -990,10 +1007,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)
|
||||
@@ -1227,20 +1258,22 @@ public class IndexBean {
|
||||
};
|
||||
private static final String _booleanServerOpts[] = {
|
||||
"i2cp.reduceOnIdle", "i2cp.encryptLeaseSet", PROP_ENABLE_ACCESS_LIST, PROP_ENABLE_BLACKLIST,
|
||||
I2PTunnelServer.PROP_USE_SSL
|
||||
I2PTunnelServer.PROP_USE_SSL,
|
||||
I2PTunnelHTTPServer.OPT_REJECT_INPROXY
|
||||
};
|
||||
private static final String _otherClientOpts[] = {
|
||||
"i2cp.reduceIdleTime", "i2cp.reduceQuantity", "i2cp.closeIdleTime",
|
||||
"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,
|
||||
|
@@ -449,6 +449,43 @@ 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>
|
||||
<% if (editBean.isSigTypeAvailable(1)) { %>
|
||||
<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>
|
||||
<% }
|
||||
if (editBean.isSigTypeAvailable(2)) { %>
|
||||
<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>
|
||||
<% }
|
||||
if (editBean.isSigTypeAvailable(3)) { %>
|
||||
<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>
|
||||
<% } // isAvailable %>
|
||||
</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>
|
||||
|
@@ -381,7 +381,22 @@ input.default { width: 1px; height: 1px; visibility: hidden; }
|
||||
<textarea rows="2" style="height: 8em;" cols="60" id="hostField" name="accessList" title="Access List" wrap="off" spellcheck="false"><%=editBean.getAccessList(curTunnel)%></textarea>
|
||||
</div>
|
||||
|
||||
<div class="subdivider">
|
||||
<% if (("httpserver".equals(tunnelType)) || ("httpbidirserver".equals(tunnelType))) {
|
||||
%><div class="rowItem">
|
||||
<div id="optionsField" class="rowItem">
|
||||
<label>
|
||||
<%=intl._("Block Access via Inproxies")%>:
|
||||
</label>
|
||||
</div>
|
||||
<div id="portField" class="rowItem">
|
||||
<label for="access" accesskey="d">
|
||||
<%=intl._("Enable")%>:
|
||||
</label>
|
||||
<input value="1" type="checkbox" id="startOnLoad" name="rejectInproxy" title="Deny inproxy access when enabled"<%=(editBean.isRejectInproxy(curTunnel) ? " checked=\"checked\"" : "")%> class="tickbox" />
|
||||
</div>
|
||||
</div>
|
||||
<% } // httpserver
|
||||
%><div class="subdivider">
|
||||
<hr />
|
||||
</div>
|
||||
|
||||
@@ -491,6 +506,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 +549,44 @@ 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>
|
||||
<% if (editBean.isSigTypeAvailable(1)) { %>
|
||||
<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>
|
||||
<% }
|
||||
if (editBean.isSigTypeAvailable(2)) { %>
|
||||
<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>
|
||||
<% }
|
||||
if (editBean.isSigTypeAvailable(3)) { %>
|
||||
<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>
|
||||
<% } // isAvailable %>
|
||||
</div>
|
||||
|
||||
<div class="subdivider">
|
||||
<hr />
|
||||
</div>
|
||||
<% } // isAdvanced %>
|
||||
|
||||
<div id="customOptionsField" class="rowItem">
|
||||
<label for="customOptions" accesskey="u">
|
||||
|
@@ -2,12 +2,13 @@
|
||||
# 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:
|
||||
# blabla, 2011
|
||||
# D.A. Loader <>, 2012
|
||||
# driz <driz@i2pmail.org>, 2012
|
||||
# ducki2p <ducki2p@gmail.com>, 2011
|
||||
# Ettore Atalan <atalanttore@googlemail.com>, 2014
|
||||
# foo <foo@bar>, 2009
|
||||
# echeloni2p <echelon@i2pmail.org>, 2014
|
||||
# mixxy, 2011
|
||||
@@ -18,15 +19,14 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: I2P\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2014-01-09 18:07+0000\n"
|
||||
"PO-Revision-Date: 2014-01-05 16:17+0000\n"
|
||||
"Last-Translator: echeloni2p <echelon@i2pmail.org>\n"
|
||||
"Language-Team: German (http://www.transifex.com/projects/p/I2P/language/"
|
||||
"de/)\n"
|
||||
"Language: de\n"
|
||||
"POT-Creation-Date: 2014-02-06 18:27+0000\n"
|
||||
"PO-Revision-Date: 2014-03-10 13:40+0000\n"
|
||||
"Last-Translator: Ettore Atalan <atalanttore@googlemail.com>\n"
|
||||
"Language-Team: German (http://www.transifex.com/projects/p/I2P/language/de/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: de\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: ../java/build/Proxy.java:5 ../java/build/Proxy.java:11
|
||||
@@ -90,28 +90,21 @@ msgstr "Der HTTP-Proxy ist nicht bereit"
|
||||
msgid ""
|
||||
"It is offline, there is network congestion, or your router is not yet well-"
|
||||
"integrated with peers."
|
||||
msgstr ""
|
||||
"Er ist Offline, das Netzwerk ist überlastet oder Ihr Router ist nicht gut "
|
||||
"ins Netzwerk integriert."
|
||||
msgstr "Er ist Offline, das Netzwerk ist überlastet oder Ihr Router ist nicht gut ins Netzwerk integriert."
|
||||
|
||||
#: ../java/build/Proxy.java:14
|
||||
#, java-format
|
||||
msgid ""
|
||||
"You may want to {0}retry{1} as this will randomly reselect an outproxy from "
|
||||
"the pool you have defined {2}here{3} (if you have more than one configured)."
|
||||
msgstr ""
|
||||
"Sie können es {0}noch einmal versuchen{1}, dieses verwendet einen zufällig "
|
||||
"aus dem {2}hier definierten{3} Pool Outproxy (falls Sie mehr als einen "
|
||||
"eingerichtet haben)."
|
||||
msgstr "Sie können es {0}noch einmal versuchen{1}, dieses verwendet einen zufällig aus dem {2}hier definierten{3} Pool Outproxy (falls Sie mehr als einen eingerichtet haben)."
|
||||
|
||||
#: ../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}."
|
||||
msgstr ""
|
||||
"Falls Sie weiterhin Probleme haben, können Sie {0}hier{1} Ihre Liste der "
|
||||
"Outproxies ändern."
|
||||
"If you continue to have trouble you may want to edit your outproxy list "
|
||||
"{0}here{1}."
|
||||
msgstr "Falls Sie weiterhin Probleme haben, können Sie {0}hier{1} Ihre Liste der Outproxies ändern."
|
||||
|
||||
#: ../java/build/Proxy.java:16 ../java/build/Proxy.java:38
|
||||
#: ../java/build/Proxy.java:59 ../java/build/Proxy.java:102
|
||||
@@ -134,9 +127,7 @@ msgstr "Dein Browser unterstützt keine iFrames."
|
||||
msgid ""
|
||||
"Do not use the proxy to access the router console, localhost, or local LAN "
|
||||
"destinations."
|
||||
msgstr ""
|
||||
"Benutzen Sie den Proxy nicht um auf Ihre Router Konsole, Localhost Adressen "
|
||||
"oder lokale LAN Ziele zuzugreifen."
|
||||
msgstr "Benutzen Sie den Proxy nicht um auf Ihre Router Konsole, Localhost Adressen oder lokale LAN Ziele zuzugreifen."
|
||||
|
||||
#: ../java/build/Proxy.java:26
|
||||
msgid "Warning: Eepsite Unknown"
|
||||
@@ -152,32 +143,25 @@ msgstr "Die Eepsite wurde nicht im Adressbuch ihres Routers gefunden."
|
||||
|
||||
#: ../java/build/Proxy.java:34
|
||||
msgid "Check the link or find a Base 32 or Base 64 address."
|
||||
msgstr ""
|
||||
"Kontrollieren Sie den Link oder finden Sie eine Base 32, bzw. eine Base 64 "
|
||||
"Adresse."
|
||||
msgstr "Kontrollieren Sie den Link oder finden Sie eine Base 32, bzw. eine Base 64 Adresse."
|
||||
|
||||
#: ../java/build/Proxy.java:35
|
||||
#, java-format
|
||||
msgid "If you have the Base 64 address, {0}add it to your addressbook{1}."
|
||||
msgstr ""
|
||||
"Haben Sie eine Base 64 Adresse, {0}fügen Sie diese ihrem Adressbuch hinzu{1}."
|
||||
msgstr "Haben Sie eine Base 64 Adresse, {0}fügen Sie diese ihrem Adressbuch hinzu{1}."
|
||||
|
||||
#: ../java/build/Proxy.java:36
|
||||
msgid ""
|
||||
"Otherwise, find a Base 32 or address helper link, or use a jump service link "
|
||||
"below."
|
||||
msgstr ""
|
||||
"Finden Sie alternativ eine Base 32 Adresse, einen Adress-Hilfs-Link oder "
|
||||
"nutzen Sie einen der Jump-Service Links unten."
|
||||
"Otherwise, find a Base 32 or address helper link, or use a jump service link"
|
||||
" below."
|
||||
msgstr "Finden Sie alternativ eine Base 32 Adresse, einen Adress-Hilfs-Link oder nutzen Sie einen der Jump-Service Links unten."
|
||||
|
||||
#: ../java/build/Proxy.java:37
|
||||
#, java-format
|
||||
msgid ""
|
||||
"Seeing this page often? See {0}the FAQ{1} for help in {2}adding some "
|
||||
"subscriptions{3} to your addressbook."
|
||||
msgstr ""
|
||||
"Ist diese Seite oft offline? Schauen Sie in der {0}FAQ{1} nach Hilfe zum {2}"
|
||||
"Eintragen einger Subscriptionen{3} zu Ihrem Adressbuch. "
|
||||
msgstr "Ist diese Seite oft offline? Schauen Sie in der {0}FAQ{1} nach Hilfe zum {2}Eintragen einger Subscriptionen{3} zu Ihrem Adressbuch. "
|
||||
|
||||
#: ../java/build/Proxy.java:39 ../java/build/Proxy.java:45
|
||||
msgid "Warning: Invalid Request URI"
|
||||
@@ -185,17 +169,13 @@ msgstr "Warnung: Ungültige Anfrage URI"
|
||||
|
||||
#: ../java/build/Proxy.java:46
|
||||
msgid "The request URI is invalid, and probably contains illegal characters."
|
||||
msgstr ""
|
||||
"Die angefragte URI ist ungültig und enthält möglicherweise nicht erlaubte "
|
||||
"Zeichen."
|
||||
msgstr "Die angefragte URI ist ungültig und enthält möglicherweise nicht erlaubte Zeichen."
|
||||
|
||||
#: ../java/build/Proxy.java:47
|
||||
msgid ""
|
||||
"If you clicked a link, check the end of the URI for any characters the "
|
||||
"browser has mistakenly added on."
|
||||
msgstr ""
|
||||
"Falls Sie einen Link angeklickt hatten, kontrollieren Sie das Ende der URI "
|
||||
"nach ungültigen Zeichen, die ihr Browser fälschlicherweise angehangen hat."
|
||||
msgstr "Falls Sie einen Link angeklickt hatten, kontrollieren Sie das Ende der URI nach ungültigen Zeichen, die ihr Browser fälschlicherweise angehangen hat."
|
||||
|
||||
#: ../java/build/Proxy.java:48 ../java/build/Proxy.java:54
|
||||
msgid "Warning: Invalid Destination"
|
||||
@@ -205,17 +185,13 @@ msgstr "lokales Ziel"
|
||||
msgid ""
|
||||
"The eepsite destination specified was not valid, or was otherwise "
|
||||
"unreachable."
|
||||
msgstr ""
|
||||
"Die genannte Eepsite Adresse ist nicht gültig, oder andersweitig "
|
||||
"unerreichbar."
|
||||
msgstr "Die genannte Eepsite Adresse ist nicht gültig, oder andersweitig unerreichbar."
|
||||
|
||||
#: ../java/build/Proxy.java:56
|
||||
msgid ""
|
||||
"Perhaps you pasted in the wrong Base 64 string or the link you are following "
|
||||
"is bad."
|
||||
msgstr ""
|
||||
"Möglicherweise haben Sie einen falschen Base 64 String eingetragen oder der "
|
||||
"gefolgte Link ist ungültig."
|
||||
"Perhaps you pasted in the wrong Base 64 string or the link you are following"
|
||||
" is bad."
|
||||
msgstr "Möglicherweise haben Sie einen falschen Base 64 String eingetragen oder der gefolgte Link ist ungültig."
|
||||
|
||||
#: ../java/build/Proxy.java:57
|
||||
msgid "The I2P host could also be offline."
|
||||
@@ -232,9 +208,7 @@ msgstr "Warnung: Anfrage abgelehnt"
|
||||
|
||||
#: ../java/build/Proxy.java:67
|
||||
msgid "You attempted to connect to a non-I2P website or location."
|
||||
msgstr ""
|
||||
"Sie haben versucht eine Webseite oder Adresse ausserhalb von I2P zu "
|
||||
"erreichen,"
|
||||
msgstr "Sie haben versucht eine Webseite oder Adresse ausserhalb von I2P zu erreichen,"
|
||||
|
||||
#: ../java/build/Proxy.java:68 ../java/build/Proxy.java:74
|
||||
msgid "Warning: No Outproxy Configured"
|
||||
@@ -244,9 +218,7 @@ msgstr "Warnung: Kein Outproxy eingerichtet"
|
||||
msgid ""
|
||||
"Your request was for a site outside of I2P, but you have no HTTP outproxy "
|
||||
"configured."
|
||||
msgstr ""
|
||||
"Dieser Seitenaufruf ist nach außerhalb von I2P adressiert aber es ist kein "
|
||||
"Ausgangsproxy eingestellt."
|
||||
msgstr "Dieser Seitenaufruf ist nach außerhalb von I2P adressiert aber es ist kein Ausgangsproxy eingestellt."
|
||||
|
||||
#: ../java/build/Proxy.java:76
|
||||
msgid "Please configure an outproxy in I2PTunnel."
|
||||
@@ -260,27 +232,20 @@ msgstr "Warnung: Destinations Schlüssel Konflikt"
|
||||
msgid ""
|
||||
"The addresshelper link you followed specifies a different destination key "
|
||||
"than a host entry in your host database."
|
||||
msgstr ""
|
||||
"Der von Ihnen gefolgte Adresshelfer Link definiert einen anderen "
|
||||
"Destinations Schlüssel als der Host Eintrag in ihrer Host Datenbank."
|
||||
msgstr "Der von Ihnen gefolgte Adresshelfer Link definiert einen anderen Destinations Schlüssel als der Host Eintrag in ihrer Host Datenbank."
|
||||
|
||||
#: ../java/build/Proxy.java:85
|
||||
msgid ""
|
||||
"Someone could be trying to impersonate another eepsite, or people have given "
|
||||
"two eepsites identical names."
|
||||
msgstr ""
|
||||
"Jemand kann versuchen Ihnen eine gefälschte Eepsite darzubieten oder zwei "
|
||||
"Eepsites haben zufäälig den selben Namen."
|
||||
"Someone could be trying to impersonate another eepsite, or people have given"
|
||||
" two eepsites identical names."
|
||||
msgstr "Jemand kann versuchen Ihnen eine gefälschte Eepsite darzubieten oder zwei Eepsites haben zufäälig den selben Namen."
|
||||
|
||||
#: ../java/build/Proxy.java:86
|
||||
msgid ""
|
||||
"You can resolve the conflict by considering which key you trust, and either "
|
||||
"discarding the addresshelper link, discarding the host entry from your host "
|
||||
"database, or naming one of them differently."
|
||||
msgstr ""
|
||||
"Sie können diesen Konflikt lösen, in dem Sie entscheiden, welchem Schlüssel "
|
||||
"Sie vertrauen und entweder den Adresshelfer Link löschen, den Host Eintrag "
|
||||
"aus ihrere Host Datenbank löschen oder einen anders benennen."
|
||||
msgstr "Sie können diesen Konflikt lösen, in dem Sie entscheiden, welchem Schlüssel Sie vertrauen und entweder den Adresshelfer Link löschen, den Host Eintrag aus ihrere Host Datenbank löschen oder einen anders benennen."
|
||||
|
||||
#: ../java/build/Proxy.java:87
|
||||
msgid "Proxy Authorization Required"
|
||||
@@ -291,7 +256,8 @@ msgid "I2P HTTP Proxy Authorization Required"
|
||||
msgstr "Anmeldung für den I2P-HTTP-Proxy vonnöten"
|
||||
|
||||
#: ../java/build/Proxy.java:89
|
||||
msgid "This proxy is configured to require a username and password for access."
|
||||
msgid ""
|
||||
"This proxy is configured to require a username and password for access."
|
||||
msgstr "Dieser Proxy kann nur mit Benutzername und Passwort erreicht werde."
|
||||
|
||||
#: ../java/build/Proxy.java:90
|
||||
@@ -299,19 +265,15 @@ msgstr "Dieser Proxy kann nur mit Benutzername und Passwort erreicht werde."
|
||||
msgid ""
|
||||
"Please enter your username and password, or check your {0}router "
|
||||
"configuration{1} or {2}I2PTunnel configuration{3}."
|
||||
msgstr ""
|
||||
"Bitte Benutzername und Passwort eingeben, oder überprüfe die {0}Router-"
|
||||
"Einstellungen{1} oder die {2}I2P-Tunnel Einstellungen{3}"
|
||||
msgstr "Bitte Benutzername und Passwort eingeben, oder überprüfe die {0}Router-Einstellungen{1} oder die {2}I2P-Tunnel Einstellungen{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."
|
||||
msgstr ""
|
||||
"Um die Authorisierung zu deaktivieren, entfernen Sie die Einstellung {0}"
|
||||
"i2ptunnel.proxy.auth=basic{1}, stoppen und starten Sie dann den HTTP Tunnel "
|
||||
"neu."
|
||||
"To disable authorization, remove the configuration "
|
||||
"{0}i2ptunnel.proxy.auth=basic{1}, then stop and restart the HTTP Proxy "
|
||||
"tunnel."
|
||||
msgstr "Um die Authorisierung zu deaktivieren, entfernen Sie die Einstellung {0}i2ptunnel.proxy.auth=basic{1}, stoppen und starten Sie dann den HTTP Tunnel neu."
|
||||
|
||||
#: ../java/build/Proxy.java:92 ../java/build/Proxy.java:98
|
||||
msgid "Warning: Eepsite Unreachable"
|
||||
@@ -325,9 +287,7 @@ msgstr "Die Eepsite ist nicht erreichbar."
|
||||
msgid ""
|
||||
"The eepsite is offline, there is network congestion, or your router is not "
|
||||
"yet well-integrated with peers."
|
||||
msgstr ""
|
||||
"Die Eepsite ist offline, das Netzwerk ist überlastet oder ihr Router ist "
|
||||
"nicht gut ins Netzwerk integriert. "
|
||||
msgstr "Die Eepsite ist offline, das Netzwerk ist überlastet oder ihr Router ist nicht gut ins Netzwerk integriert. "
|
||||
|
||||
#: ../java/build/Proxy.java:103
|
||||
msgid "Information: New Host Name"
|
||||
@@ -341,9 +301,7 @@ msgstr "Information: Ein neuer Hostname mit Adresshelfer."
|
||||
msgid ""
|
||||
"The address helper link you followed is for a new host name that is not in "
|
||||
"your address book."
|
||||
msgstr ""
|
||||
"Der Adresshelferlink, den du versuchst aufzurufen, ist für einen neuen "
|
||||
"Adressnamen, welcher nicht in dem Adressbuch ist."
|
||||
msgstr "Der Adresshelferlink, den du versuchst aufzurufen, ist für einen neuen Adressnamen, welcher nicht in dem Adressbuch ist."
|
||||
|
||||
#: ../java/build/Proxy.java:111
|
||||
msgid "You may save this host name to your local address book."
|
||||
@@ -352,25 +310,19 @@ msgstr "Du kannst den Adressnamen in deinem Adressbuch speichern."
|
||||
#: ../java/build/Proxy.java:112
|
||||
msgid ""
|
||||
"If you save it to your address book, you will not see this message again."
|
||||
msgstr ""
|
||||
"Wenn Sie ihn ins Adressbuch speichern, sehen Sie diese Nachricht nicht noch "
|
||||
"einmal."
|
||||
msgstr "Wenn Sie ihn ins Adressbuch speichern, sehen Sie diese Nachricht nicht noch einmal."
|
||||
|
||||
#: ../java/build/Proxy.java:113
|
||||
msgid ""
|
||||
"If you do not save it, the host name will be forgotten after the next router "
|
||||
"restart."
|
||||
msgstr ""
|
||||
"Speichern Sie ihn nicht, ist der Host Name nach dem nächsten Router Neustart "
|
||||
"vergessen."
|
||||
"If you do not save it, the host name will be forgotten after the next router"
|
||||
" restart."
|
||||
msgstr "Speichern Sie ihn nicht, ist der Host Name nach dem nächsten Router Neustart vergessen."
|
||||
|
||||
#: ../java/build/Proxy.java:114
|
||||
msgid ""
|
||||
"If you do not wish to visit this host, click the \"back\" button on your "
|
||||
"browser."
|
||||
msgstr ""
|
||||
"Möchten Sie diesen Host nicht besuchen, klicken Sie auf den \"Zurück\" Knopf "
|
||||
"ihres Browsers."
|
||||
msgstr "Möchten Sie diesen Host nicht besuchen, klicken Sie auf den \"Zurück\" Knopf ihres Browsers."
|
||||
|
||||
#: ../java/build/Proxy.java:115 ../java/build/Proxy.java:121
|
||||
msgid "Warning: Bad Address Helper"
|
||||
@@ -379,22 +331,17 @@ msgstr "Warnung: Ungültiger Adress-Helfer"
|
||||
#: ../java/build/Proxy.java:122
|
||||
#, java-format
|
||||
msgid "The helper key in the URL ({0}i2paddresshelper={1}) is not resolvable."
|
||||
msgstr ""
|
||||
"Der Helfer-Schlüssel in der URL ({0}i2paddresshelper={1}) ist nicht "
|
||||
"auflösbar."
|
||||
msgstr "Der Helfer-Schlüssel in der URL ({0}i2paddresshelper={1}) ist nicht auflösbar."
|
||||
|
||||
#: ../java/build/Proxy.java:123
|
||||
msgid "It seems to be garbage data, or a mistyped Base 32 address."
|
||||
msgstr ""
|
||||
"Es scheinen Mülldaten oder eine falsch getippte Base 32 Adresse zu sein."
|
||||
msgstr "Es scheinen Mülldaten oder eine falsch getippte Base 32 Adresse zu sein."
|
||||
|
||||
#: ../java/build/Proxy.java:124
|
||||
msgid ""
|
||||
"Check your URL to try and fix the helper key to be a valid Base 32 hostname "
|
||||
"or Base 64 key."
|
||||
msgstr ""
|
||||
"Kontrollieren Sie die URL und versuchen Sie den Helfer-Schlüssel in einen "
|
||||
"korrekten Base 32 Hostnamen oder Base 64 Schlüssel zu bringen."
|
||||
msgstr "Kontrollieren Sie die URL und versuchen Sie den Helfer-Schlüssel in einen korrekten Base 32 Hostnamen oder Base 64 Schlüssel zu bringen."
|
||||
|
||||
#: ../java/build/Proxy.java:125 ../java/build/Proxy.java:131
|
||||
msgid "Warning: Non-HTTP Protocol"
|
||||
@@ -405,82 +352,74 @@ msgid "The request uses a bad protocol."
|
||||
msgstr "Die Anfrage nutzt ein ungültiges Protokoll."
|
||||
|
||||
#: ../java/build/Proxy.java:133
|
||||
#, java-format
|
||||
msgid "The I2P HTTP Proxy supports {0}http://{1} requests ONLY."
|
||||
msgstr "Der I2P HTTP Proxy unterstützt einzig nur {0}http://{1} Anfragen."
|
||||
msgid "The I2P HTTP Proxy supports HTTP and HTTPS requests only."
|
||||
msgstr "Der I2P HTTP-Proxy unterstützt nur HTTP- und HTTPS-Anfragen."
|
||||
|
||||
#: ../java/build/Proxy.java:134
|
||||
#, java-format
|
||||
msgid ""
|
||||
"Other protocols such as {0}https://{1} and {0}ftp://{1} are not allowed."
|
||||
msgstr ""
|
||||
"Andere Protokolle wie {0}https://{1} oder {0}ftp://{1} sind nicht erlaubt."
|
||||
msgid "Other protocols such as FTP are not allowed."
|
||||
msgstr "Andere Protokolle wie FTP sind nicht erlaubt."
|
||||
|
||||
#: ../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 "Dies scheint kein gültiges Ziel zu sein:"
|
||||
|
||||
#: ../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 "Der I2P-Adresshelfer kann dir bei solch einem Ziel nicht helfen."
|
||||
|
||||
#: ../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</"
|
||||
"a>. To visit the conflicting addresshelper destination, click <a href="
|
||||
"\"{1}\">here</a>."
|
||||
msgstr ""
|
||||
"Um das Ziel in Ihrer Host-Datenbank zu besuchen, klicken Sie <a href="
|
||||
"\"{0}\">hier</a>, und um das Ziel aus der kollidierenden Adresshelfer-"
|
||||
"Anfrage zu besuchen, <a href=\"{1}\">hier</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 "Um das Ziel in Ihrer Host-Datenbank zu besuchen, klicken Sie <a href=\"{0}\">hier</a>, und um das Ziel aus der kollidierenden Adresshelfer-Anfrage zu besuchen, <a href=\"{1}\">hier</a>!"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1042
|
||||
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1151
|
||||
msgid "Host"
|
||||
msgstr "Host"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1046
|
||||
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1155
|
||||
msgid "Base 32"
|
||||
msgstr "Base 32"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1050
|
||||
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1159
|
||||
msgid "Destination"
|
||||
msgstr "Ziel"
|
||||
|
||||
#: ../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 "Weiter zu {0}, ohne zu speichern"
|
||||
|
||||
#: ../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 "{0} im Router-Adressbuch speichern und auf die Eepseite weiterleiten"
|
||||
|
||||
#. 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 "{0} im Master-Adressbuch speichern und auf die Eepseite weiterleiten"
|
||||
|
||||
#: ../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 "{0} im privaten Adressbuch speichern und auf die Eepseite weiterleiten"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1180
|
||||
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1290
|
||||
msgid "HTTP Outproxy"
|
||||
msgstr "HTTP-Outproxy"
|
||||
|
||||
#: ../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 ""
|
||||
"Durch Klicken auf einen der untenstehenden Links bekommen Sie einen "
|
||||
"Adresshelfer von einem \"Sprung\"-Service:"
|
||||
"Click a link below to look for an address helper by using a \"jump\" "
|
||||
"service:"
|
||||
msgstr "Durch Klicken auf einen der untenstehenden Links bekommen Sie einen Adresshelfer von einem \"Sprung\"-Service:"
|
||||
|
||||
#. 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 "Weiterleitungsdienst {0}"
|
||||
@@ -514,14 +453,12 @@ msgstr "Weiterleitung zu {0}"
|
||||
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:210
|
||||
#, java-format
|
||||
msgid "Saved {0} to the {1} addressbook, redirecting now."
|
||||
msgstr ""
|
||||
"{0} wurde ins {1} Adressbuch geschrieben. Du wirst nun weitergeleitet."
|
||||
msgstr "{0} wurde ins {1} Adressbuch geschrieben. Du wirst nun weitergeleitet."
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:211
|
||||
#, java-format
|
||||
msgid "Failed to save {0} to the {1} addressbook, redirecting now."
|
||||
msgstr ""
|
||||
"Konnte {0} nicht im {1} Adressbuch speichern. Du wirst nun weitergeleitet."
|
||||
msgstr "Konnte {0} nicht im {1} Adressbuch speichern. Du wirst nun weitergeleitet."
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:213
|
||||
msgid "Click here if you are not redirected automatically."
|
||||
|
@@ -2,7 +2,7 @@
|
||||
# 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:
|
||||
# Boxoa590, 2012-2013
|
||||
# ducki2p <ducki2p@gmail.com>, 2011
|
||||
@@ -13,15 +13,14 @@ 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: 2014-01-09 09:54+0000\n"
|
||||
"POT-Creation-Date: 2014-02-06 18:27+0000\n"
|
||||
"PO-Revision-Date: 2014-03-22 14: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/build/Proxy.java:5 ../java/build/Proxy.java:11
|
||||
@@ -85,28 +84,21 @@ msgstr "Le proxy HTTP n'est pas en place"
|
||||
msgid ""
|
||||
"It is offline, there is network congestion, or your router is not yet well-"
|
||||
"integrated with peers."
|
||||
msgstr ""
|
||||
"Il est hors ligne, ou il y a congestion du réseau, ou votre routeur n'est "
|
||||
"pas encore bien intégré avec les pairs."
|
||||
msgstr "Il est hors ligne, ou il y a congestion du réseau, ou votre routeur n'est pas encore bien intégré avec les pairs."
|
||||
|
||||
#: ../java/build/Proxy.java:14
|
||||
#, java-format
|
||||
msgid ""
|
||||
"You may want to {0}retry{1} as this will randomly reselect an outproxy from "
|
||||
"the pool you have defined {2}here{3} (if you have more than one configured)."
|
||||
msgstr ""
|
||||
"Vous pouvez vouloir {0}réessayer{1} car cela va re-sélectionner au hasard un "
|
||||
"outproxy du pool que vous avez défini {2}içi{3} (si vous en avez plus d'un "
|
||||
"de configuré)."
|
||||
msgstr "Vous pouvez vouloir {0}réessayer{1} car cela va re-sélectionner au hasard un outproxy parmi le pool que vous avez défini {2}ici{3} (si vous en avez plus d'un de configuré)."
|
||||
|
||||
#: ../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}."
|
||||
msgstr ""
|
||||
"Si vous continuez à avoir des dérangements vous pouvez vouloir modifier "
|
||||
"votre liste de outproxy {0}içi{1}."
|
||||
"If you continue to have trouble you may want to edit your outproxy list "
|
||||
"{0}here{1}."
|
||||
msgstr "Si vous continuez à avoir des dérangements vous pourriez vouloir modifier votre liste de outproxy {0}ici{1}."
|
||||
|
||||
#: ../java/build/Proxy.java:16 ../java/build/Proxy.java:38
|
||||
#: ../java/build/Proxy.java:59 ../java/build/Proxy.java:102
|
||||
@@ -129,9 +121,7 @@ msgstr "Votre navigateur n'est pas compatible iFrames."
|
||||
msgid ""
|
||||
"Do not use the proxy to access the router console, localhost, or local LAN "
|
||||
"destinations."
|
||||
msgstr ""
|
||||
"Ne pas utiliser le proxy pour accéder à la console du routeur, ni au "
|
||||
"localhost, ni vers des destinations de votre LAN local."
|
||||
msgstr "Ne pas utiliser le proxy pour accéder à la console du routeur, ni au localhost, ni vers des destinations de votre LAN local."
|
||||
|
||||
#: ../java/build/Proxy.java:26
|
||||
msgid "Warning: Eepsite Unknown"
|
||||
@@ -143,8 +133,7 @@ msgstr "Avertissement : Eepsite pas trouvé dans le carnet d'adresses"
|
||||
|
||||
#: ../java/build/Proxy.java:33
|
||||
msgid "The eepsite was not found in your router's addressbook."
|
||||
msgstr ""
|
||||
"Le eepsite n'a pas été trouvé dans le carnet d'adresses de votre routeur."
|
||||
msgstr "Le eepsite n'a pas été trouvé dans le carnet d'adresses de votre routeur."
|
||||
|
||||
#: ../java/build/Proxy.java:34
|
||||
msgid "Check the link or find a Base 32 or Base 64 address."
|
||||
@@ -153,25 +142,20 @@ msgstr "Cliquez le lien ou trouvez une adresse 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 ""
|
||||
"Si vous avez l''adresse Base 64, {0}ajoutez-là à votre carnet d''adresse{1}."
|
||||
msgstr "Si vous avez l''adresse Base 64, {0}ajoutez-là à votre carnet d''adresse{1}."
|
||||
|
||||
#: ../java/build/Proxy.java:36
|
||||
msgid ""
|
||||
"Otherwise, find a Base 32 or address helper link, or use a jump service link "
|
||||
"below."
|
||||
msgstr ""
|
||||
"Sinon, trouver un lien d'assistant d'adresse ou un lien Base 32, ou utiliser "
|
||||
"ci-dessous un lien service de saut."
|
||||
"Otherwise, find a Base 32 or address helper link, or use a jump service link"
|
||||
" below."
|
||||
msgstr "Sinon, trouver un lien d'assistant d'adresse ou un lien Base 32, ou utiliser ci-dessous un lien service de saut."
|
||||
|
||||
#: ../java/build/Proxy.java:37
|
||||
#, java-format
|
||||
msgid ""
|
||||
"Seeing this page often? See {0}the FAQ{1} for help in {2}adding some "
|
||||
"subscriptions{3} to your addressbook."
|
||||
msgstr ""
|
||||
"Voyez-vous cette page souvent ? Voyez {0}la FAQ{1} pour de l'aide afin d'{2}"
|
||||
"ajouter quelques abonnements{3} à votre carnet d'adresses."
|
||||
msgstr "Voyez-vous cette page souvent ? Voyez {0}la FAQ{1} pour de l'aide afin d'{2}ajouter quelques abonnements{3} à votre carnet d'adresses."
|
||||
|
||||
#: ../java/build/Proxy.java:39 ../java/build/Proxy.java:45
|
||||
msgid "Warning: Invalid Request URI"
|
||||
@@ -179,17 +163,13 @@ msgstr "Avertissement : demande invalide d'URI"
|
||||
|
||||
#: ../java/build/Proxy.java:46
|
||||
msgid "The request URI is invalid, and probably contains illegal characters."
|
||||
msgstr ""
|
||||
"L'URI de la requête n'est pas valide, et contient probablement des "
|
||||
"caractères illégaux."
|
||||
msgstr "L'URI de la requête n'est pas valide, et contient probablement des caractères illégaux."
|
||||
|
||||
#: ../java/build/Proxy.java:47
|
||||
msgid ""
|
||||
"If you clicked a link, check the end of the URI for any characters the "
|
||||
"browser has mistakenly added on."
|
||||
msgstr ""
|
||||
"Si vous avez cliqué sur un lien, vérifiez la fin de l'URI pour d'éventuels "
|
||||
"caractères que le navigateur aurait ajourté à tort."
|
||||
msgstr "Si vous avez cliqué sur un lien, vérifiez la fin de l'URI pour d'éventuels caractères que le navigateur aurait ajourté à tort."
|
||||
|
||||
#: ../java/build/Proxy.java:48 ../java/build/Proxy.java:54
|
||||
msgid "Warning: Invalid Destination"
|
||||
@@ -199,17 +179,13 @@ msgstr "Avertissement : destination invalide"
|
||||
msgid ""
|
||||
"The eepsite destination specified was not valid, or was otherwise "
|
||||
"unreachable."
|
||||
msgstr ""
|
||||
"La destination vers l'eepsite spécifié n'était pas valide, ou autrement "
|
||||
"était inaccessible."
|
||||
msgstr "La destination vers l'eepsite spécifié n'était pas valide, ou autrement était inaccessible."
|
||||
|
||||
#: ../java/build/Proxy.java:56
|
||||
msgid ""
|
||||
"Perhaps you pasted in the wrong Base 64 string or the link you are following "
|
||||
"is bad."
|
||||
msgstr ""
|
||||
"Peut-être que vous avez collé dans la mauvaise chaîne base 64, ou le lien "
|
||||
"que vous suivez est mauvais."
|
||||
"Perhaps you pasted in the wrong Base 64 string or the link you are following"
|
||||
" is bad."
|
||||
msgstr "Peut-être que vous avez collé dans la mauvaise chaîne base 64, ou le lien que vous suivez est mauvais."
|
||||
|
||||
#: ../java/build/Proxy.java:57
|
||||
msgid "The I2P host could also be offline."
|
||||
@@ -236,9 +212,7 @@ msgstr "Avertissement : pas de proxy sortant configuré"
|
||||
msgid ""
|
||||
"Your request was for a site outside of I2P, but you have no HTTP outproxy "
|
||||
"configured."
|
||||
msgstr ""
|
||||
"Votre demande était pour un site en dehors de I2P, mais vous n'avez aucun "
|
||||
"outproxy HTTP de configuré."
|
||||
msgstr "Votre demande était pour un site en dehors de I2P, mais vous n'avez aucun outproxy HTTP de configuré."
|
||||
|
||||
#: ../java/build/Proxy.java:76
|
||||
msgid "Please configure an outproxy in I2PTunnel."
|
||||
@@ -252,29 +226,20 @@ msgstr "Avertissement : conflit de clé de destination"
|
||||
msgid ""
|
||||
"The addresshelper link you followed specifies a different destination key "
|
||||
"than a host entry in your host database."
|
||||
msgstr ""
|
||||
"Le lien d'assistant d'adresse que vous avez suivi spécifie une clé de "
|
||||
"destination différente de l'entrée d'hôte contenue dans votre base de "
|
||||
"données hôte."
|
||||
msgstr "Le lien d'assistant d'adresse que vous avez suivi spécifie une clé de destination différente de l'entrée d'hôte contenue dans votre base de données hôte."
|
||||
|
||||
#: ../java/build/Proxy.java:85
|
||||
msgid ""
|
||||
"Someone could be trying to impersonate another eepsite, or people have given "
|
||||
"two eepsites identical names."
|
||||
msgstr ""
|
||||
"Quelqu'un pourrait essayer de se faire passer pour un autre eepsite, ou des "
|
||||
"gens ont donné des noms identiques à deux eepsites."
|
||||
"Someone could be trying to impersonate another eepsite, or people have given"
|
||||
" two eepsites identical names."
|
||||
msgstr "Quelqu'un pourrait essayer de se faire passer pour un autre eepsite, ou des gens ont donné des noms identiques à deux eepsites."
|
||||
|
||||
#: ../java/build/Proxy.java:86
|
||||
msgid ""
|
||||
"You can resolve the conflict by considering which key you trust, and either "
|
||||
"discarding the addresshelper link, discarding the host entry from your host "
|
||||
"database, or naming one of them differently."
|
||||
msgstr ""
|
||||
"Vous pouvez résoudre le conflit en considérant à quelle clé vous faites "
|
||||
"confiance, et soit rejeter le lien de l'assistant d'adresse en rejetant "
|
||||
"l'entrée d'hôte hors de votre base de données hôte, ou nommer l'une d'elles "
|
||||
"différemment."
|
||||
msgstr "Vous pouvez résoudre le conflit en considérant à quelle clé vous faites confiance, et soit rejeter le lien de l'assistant d'adresse en rejetant l'entrée d'hôte hors de votre base de données hôte, ou nommer l'une d'elles différemment."
|
||||
|
||||
#: ../java/build/Proxy.java:87
|
||||
msgid "Proxy Authorization Required"
|
||||
@@ -285,28 +250,24 @@ msgid "I2P HTTP Proxy Authorization Required"
|
||||
msgstr "Autorisation requise par le proxy HTTP de I2P"
|
||||
|
||||
#: ../java/build/Proxy.java:89
|
||||
msgid "This proxy is configured to require a username and password for access."
|
||||
msgstr ""
|
||||
"Ce proxy est configuré pour exiger un nom d'utilisateur et un mot de passe "
|
||||
"pour y accéder."
|
||||
msgid ""
|
||||
"This proxy is configured to require a username and password for access."
|
||||
msgstr "Ce proxy est configuré pour exiger un nom d''utilisateur et un mot de passe pour y accéder."
|
||||
|
||||
#: ../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 ""
|
||||
"Veuillez saisir votre nom d''utilisateur et mot de passe, ou vérifier votre "
|
||||
"{0}configuration de routeur{1} ou {2}configuration de I2PTunnel{3}."
|
||||
msgstr "Veuillez saisir votre nom d''utilisateur et mot de passe, ou vérifier votre {0}configuration de routeur{1} ou {2}configuration de I2PTunnel{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."
|
||||
msgstr ""
|
||||
"Pour désactiver l''autorisation, supprimer la configuration {0}i2ptunnel."
|
||||
"proxy.auth=basic{1}, puis arrêtez et redémarrez le tunnel du proxy HTTP."
|
||||
"To disable authorization, remove the configuration "
|
||||
"{0}i2ptunnel.proxy.auth=basic{1}, then stop and restart the HTTP Proxy "
|
||||
"tunnel."
|
||||
msgstr "Pour désactiver l''autorisation, supprimer la configuration {0}i2ptunnel.proxy.auth=basic{1}, puis arrêtez et redémarrez le tunnel du proxy HTTP."
|
||||
|
||||
#: ../java/build/Proxy.java:92 ../java/build/Proxy.java:98
|
||||
msgid "Warning: Eepsite Unreachable"
|
||||
@@ -320,9 +281,7 @@ msgstr "Le eepsite n'était pas joignable."
|
||||
msgid ""
|
||||
"The eepsite is offline, there is network congestion, or your router is not "
|
||||
"yet well-integrated with peers."
|
||||
msgstr ""
|
||||
"Le eepsite est hors ligne, ou il y a congestion du réseau, ou votre routeur "
|
||||
"n'est pas encore bien intégré avec les pairs."
|
||||
msgstr "Le eepsite est hors ligne, ou il y a congestion du réseau, ou votre routeur n'est pas encore bien intégré avec les pairs."
|
||||
|
||||
#: ../java/build/Proxy.java:103
|
||||
msgid "Information: New Host Name"
|
||||
@@ -336,38 +295,28 @@ msgstr "Information : nouveau nom d'hôte avec assistant d'adresse"
|
||||
msgid ""
|
||||
"The address helper link you followed is for a new host name that is not in "
|
||||
"your address book."
|
||||
msgstr ""
|
||||
"Le lien d'assistant d'adresse que vous avez suivi est pour un nouveau nom "
|
||||
"d'hôte qui n'est pas dans votre carnet d'adresses."
|
||||
msgstr "Le lien d'assistant d'adresse que vous avez suivi est pour un nouveau nom d'hôte qui n'est pas dans votre carnet d'adresses."
|
||||
|
||||
#: ../java/build/Proxy.java:111
|
||||
msgid "You may save this host name to your local address book."
|
||||
msgstr ""
|
||||
"Il vous est possible d'enregistrer ce nom d'hôte à votre carnet d'adresses "
|
||||
"local."
|
||||
msgstr "Il vous est possible d'enregistrer ce nom d'hôte à votre carnet d'adresses local."
|
||||
|
||||
#: ../java/build/Proxy.java:112
|
||||
msgid ""
|
||||
"If you save it to your address book, you will not see this message again."
|
||||
msgstr ""
|
||||
"Si vous l'enregistrez dans votre carnet d'adresses, vous ne verrez plus ce "
|
||||
"message."
|
||||
msgstr "Si vous l'enregistrez dans votre carnet d'adresses, vous ne verrez plus ce message."
|
||||
|
||||
#: ../java/build/Proxy.java:113
|
||||
msgid ""
|
||||
"If you do not save it, the host name will be forgotten after the next router "
|
||||
"restart."
|
||||
msgstr ""
|
||||
"Si vous n'enregistrez pas, le nom d'hôte sera oublié après le prochain "
|
||||
"redémarrage du routeur."
|
||||
"If you do not save it, the host name will be forgotten after the next router"
|
||||
" restart."
|
||||
msgstr "Si vous n'enregistrez pas, le nom d'hôte sera oublié après le prochain redémarrage du routeur."
|
||||
|
||||
#: ../java/build/Proxy.java:114
|
||||
msgid ""
|
||||
"If you do not wish to visit this host, click the \"back\" button on your "
|
||||
"browser."
|
||||
msgstr ""
|
||||
"Si vous ne souhaitez pas visiter cet hôte, cliquez sur le bouton \"précédent"
|
||||
"\" de votre navigateur."
|
||||
msgstr "Si vous ne souhaitez pas visiter cet hôte, cliquez sur le bouton \"précédent\" de votre navigateur."
|
||||
|
||||
#: ../java/build/Proxy.java:115 ../java/build/Proxy.java:121
|
||||
msgid "Warning: Bad Address Helper"
|
||||
@@ -376,22 +325,17 @@ msgstr "Avertissement : mauvais assistant d'adresse"
|
||||
#: ../java/build/Proxy.java:122
|
||||
#, java-format
|
||||
msgid "The helper key in the URL ({0}i2paddresshelper={1}) is not resolvable."
|
||||
msgstr ""
|
||||
"La clé auxiliaire dans l''URL ({0}i2paddresshelper={1}) n''est pas résoluble."
|
||||
msgstr "La clé auxiliaire dans l''URL ({0}i2paddresshelper={1}) n''est pas résoluble."
|
||||
|
||||
#: ../java/build/Proxy.java:123
|
||||
msgid "It seems to be garbage data, or a mistyped Base 32 address."
|
||||
msgstr ""
|
||||
"Il semble y avoir des données incorrectes, ou une faute de frappe dans "
|
||||
"l'adresse Base 32."
|
||||
msgstr "Il semble y avoir des données incorrectes, ou une faute de frappe dans l'adresse Base 32."
|
||||
|
||||
#: ../java/build/Proxy.java:124
|
||||
msgid ""
|
||||
"Check your URL to try and fix the helper key to be a valid Base 32 hostname "
|
||||
"or Base 64 key."
|
||||
msgstr ""
|
||||
"Vérifiez votre URL afin d'essayer de résoudre la clé d'assistance pour "
|
||||
"qu'elle soit un nom d'hôte Base 32 valide ou clé Base 64."
|
||||
msgstr "Vérifiez votre URL afin d'essayer de résoudre la clé d'assistance pour qu'elle soit un nom d'hôte Base 32 valide ou clé Base 64."
|
||||
|
||||
#: ../java/build/Proxy.java:125 ../java/build/Proxy.java:131
|
||||
msgid "Warning: Non-HTTP Protocol"
|
||||
@@ -402,87 +346,74 @@ msgid "The request uses a bad protocol."
|
||||
msgstr "La requête utilise un mauvais protocole."
|
||||
|
||||
#: ../java/build/Proxy.java:133
|
||||
#, java-format
|
||||
msgid "The I2P HTTP Proxy supports {0}http://{1} requests ONLY."
|
||||
msgstr ""
|
||||
"Le proxy HTTP I2P prend en charge les demandes {0}http://{1} uniquement."
|
||||
msgid "The I2P HTTP Proxy supports HTTP and HTTPS requests only."
|
||||
msgstr "Le proxy HTTP d'I2P soutient les requêtes HTTP et HTTPS seulement."
|
||||
|
||||
#: ../java/build/Proxy.java:134
|
||||
#, java-format
|
||||
msgid ""
|
||||
"Other protocols such as {0}https://{1} and {0}ftp://{1} are not allowed."
|
||||
msgstr ""
|
||||
"D''autres protocoles tels que {0}https://{1} et {0}ftp://{1} ne sont pas "
|
||||
"autorisés."
|
||||
msgid "Other protocols such as FTP are not allowed."
|
||||
msgstr "Les autres protocoles tel que le FTP ne sont pas permis."
|
||||
|
||||
#: ../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 "Cela semble être une mauvaise destination"
|
||||
|
||||
#: ../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 ""
|
||||
"L'assistant d'adresse ne peut pas vous aider avec une destination comme "
|
||||
"cela !"
|
||||
msgstr "L'assistant d'adresse ne peut pas vous aider avec une destination comme cela !"
|
||||
|
||||
#: ../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</"
|
||||
"a>. To visit the conflicting addresshelper destination, click <a href="
|
||||
"\"{1}\">here</a>."
|
||||
msgstr ""
|
||||
"Pour aller à la destination de votre base de données d''hôtes, cliquez <a "
|
||||
"href=\"{0}\">içi</a>. Pour aller à la destination de l''assistant d''adresse "
|
||||
"en conflit, cliquez <a href=\"{1}\">ici</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 "Pour aller à la destination de votre base de données d''hôtes, cliquez <a href=\"{0}\">ici</a>. Pour aller à la destination de l''assistant d''adresse en conflit, cliquez <a href=\"{1}\">ici</a>."
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1042
|
||||
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1151
|
||||
msgid "Host"
|
||||
msgstr "Hôte"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1046
|
||||
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1155
|
||||
msgid "Base 32"
|
||||
msgstr "Base 32"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1050
|
||||
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1159
|
||||
msgid "Destination"
|
||||
msgstr "Destination"
|
||||
|
||||
#: ../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 ""
|
||||
"Aller sur le site i2p {0} sans enregistrer dans un carnet d''adresses. "
|
||||
msgstr "Aller sur le site i2p {0} sans enregistrer dans un carnet d''adresses. "
|
||||
|
||||
#: ../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 "Ajouter au carnet d''adresse du routeur {0} et aller sur le site i2p"
|
||||
|
||||
#. 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 "Ajouter au carnet d''adresse principal {0} et aller sur le site i2p"
|
||||
|
||||
#: ../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 "Ajouter au carnet d''adresse privé {0} et aller sur le site i2p"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1180
|
||||
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1290
|
||||
msgid "HTTP Outproxy"
|
||||
msgstr "Proxy sortant HTTP"
|
||||
|
||||
#: ../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 ""
|
||||
"Cliquez sur un des liens ci-dessous pour chercher une aide d'adresse en "
|
||||
"utilisant un \"service de saut\":"
|
||||
"Click a link below to look for an address helper by using a \"jump\" "
|
||||
"service:"
|
||||
msgstr "Cliquez sur un des liens ci-dessous pour chercher une aide d'adresse en utilisant un \"service de saut\":"
|
||||
|
||||
#. 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 "{0} jump service"
|
||||
@@ -490,11 +421,11 @@ msgstr "{0} jump service"
|
||||
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:162
|
||||
#, java-format
|
||||
msgid "Added via address helper from {0}"
|
||||
msgstr "Ajouté via assistant d''adresse depuis {0}"
|
||||
msgstr "Ajouté via l''assistant d''adresse depuis {0}"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:164
|
||||
msgid "Added via address helper"
|
||||
msgstr "Ajouté via assitant d'adresse"
|
||||
msgstr "Ajouté via l''assistant d''adresse"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:187
|
||||
msgid "router"
|
||||
|
@@ -2,29 +2,28 @@
|
||||
# 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:
|
||||
# IOException <opexob@yandex.ru>, 2013
|
||||
# Андрей Лукьяненко <operru32@yandex.ru>, 2013
|
||||
# ducki2p <ducki2p@gmail.com>, 2011
|
||||
# foo <foo@bar>, 2009
|
||||
# gmind, 2012-2013
|
||||
# Nikolay Parukhin <parukhin@gmail.com>, 2014
|
||||
# sfix <anon-9b36b2e@lycos.com>, 2013
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: I2P\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2014-01-09 19:11+0000\n"
|
||||
"PO-Revision-Date: 2013-11-20 06:36+0000\n"
|
||||
"Last-Translator: IOException <opexob@yandex.ru>\n"
|
||||
"Language-Team: Russian (Russia) (http://www.transifex.com/projects/p/I2P/"
|
||||
"language/ru_RU/)\n"
|
||||
"Language: ru_RU\n"
|
||||
"POT-Creation-Date: 2014-02-06 18:27+0000\n"
|
||||
"PO-Revision-Date: 2014-03-17 19:03+0000\n"
|
||||
"Last-Translator: Nikolay Parukhin <parukhin@gmail.com>\n"
|
||||
"Language-Team: Russian (Russia) (http://www.transifex.com/projects/p/I2P/language/ru_RU/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
|
||||
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
|
||||
"Language: ru_RU\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
|
||||
|
||||
#: ../java/build/Proxy.java:5 ../java/build/Proxy.java:11
|
||||
msgid "Warning: Outproxy Not Found"
|
||||
@@ -87,28 +86,21 @@ msgstr "HTTP-прокси не поднят"
|
||||
msgid ""
|
||||
"It is offline, there is network congestion, or your router is not yet well-"
|
||||
"integrated with peers."
|
||||
msgstr ""
|
||||
"Возможно, он отключен, сеть перегружена или ваш маршрутизатор недостаточно "
|
||||
"интегрирован с другими узлами."
|
||||
msgstr "Возможно, он отключен, сеть перегружена или ваш маршрутизатор недостаточно интегрирован с другими узлами."
|
||||
|
||||
#: ../java/build/Proxy.java:14
|
||||
#, java-format
|
||||
msgid ""
|
||||
"You may want to {0}retry{1} as this will randomly reselect an outproxy from "
|
||||
"the pool you have defined {2}here{3} (if you have more than one configured)."
|
||||
msgstr ""
|
||||
"Вы можете {0}повторить{1} операцию (это случайным образом выберет прокси-"
|
||||
"сервер из определенного {2}здесь{3} списка, если вы настроили более одного "
|
||||
"прокси-сервера)."
|
||||
msgstr "Вы можете {0}повторить{1} операцию (это случайным образом выберет прокси-сервер из определенного {2}здесь{3} списка, если вы настроили более одного прокси-сервера)."
|
||||
|
||||
#: ../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}."
|
||||
msgstr ""
|
||||
"Если проблема продолжит появляться, вы можете изменить список прокси-"
|
||||
"серверов {0}здесь{1}."
|
||||
"If you continue to have trouble you may want to edit your outproxy list "
|
||||
"{0}here{1}."
|
||||
msgstr "Если проблема продолжит появляться, вы можете изменить список прокси-серверов {0}здесь{1}."
|
||||
|
||||
#: ../java/build/Proxy.java:16 ../java/build/Proxy.java:38
|
||||
#: ../java/build/Proxy.java:59 ../java/build/Proxy.java:102
|
||||
@@ -131,9 +123,7 @@ msgstr "Ваш браузер не поддерживает iFrames"
|
||||
msgid ""
|
||||
"Do not use the proxy to access the router console, localhost, or local LAN "
|
||||
"destinations."
|
||||
msgstr ""
|
||||
"Не используйте прокси-сервер для доступа к консоли маршрутизатора, "
|
||||
"локальному компьютеру или локальной сети."
|
||||
msgstr "Не используйте прокси-сервер для доступа к консоли маршрутизатора, локальному компьютеру или локальной сети."
|
||||
|
||||
#: ../java/build/Proxy.java:26
|
||||
msgid "Warning: Eepsite Unknown"
|
||||
@@ -158,20 +148,16 @@ msgstr "Если у вас есть адрес Base64, {0}добавьте ег
|
||||
|
||||
#: ../java/build/Proxy.java:36
|
||||
msgid ""
|
||||
"Otherwise, find a Base 32 or address helper link, or use a jump service link "
|
||||
"below."
|
||||
msgstr ""
|
||||
"В противном случае найдите ссылку Base32 или AddressHelper или используйте "
|
||||
"Jump-службу."
|
||||
"Otherwise, find a Base 32 or address helper link, or use a jump service link"
|
||||
" below."
|
||||
msgstr "В противном случае найдите ссылку Base32 или AddressHelper или используйте Jump-службу."
|
||||
|
||||
#: ../java/build/Proxy.java:37
|
||||
#, java-format
|
||||
msgid ""
|
||||
"Seeing this page often? See {0}the FAQ{1} for help in {2}adding some "
|
||||
"subscriptions{3} to your addressbook."
|
||||
msgstr ""
|
||||
"Если вы слишком часто попадаете на эту страницу, то обратитесь к {0}FAQ{1} "
|
||||
"за инструкциями по {2}добавлению подписок{3} адресной книги."
|
||||
msgstr "Если вы слишком часто попадаете на эту страницу, то обратитесь к {0}FAQ{1} за инструкциями по {2}добавлению подписок{3} адресной книги."
|
||||
|
||||
#: ../java/build/Proxy.java:39 ../java/build/Proxy.java:45
|
||||
msgid "Warning: Invalid Request URI"
|
||||
@@ -185,9 +171,7 @@ msgstr "Некорректный URI запроса. Возможно, он со
|
||||
msgid ""
|
||||
"If you clicked a link, check the end of the URI for any characters the "
|
||||
"browser has mistakenly added on."
|
||||
msgstr ""
|
||||
"Если вы прошли по ссылке, проверьте конец URI на наличие символов, ошибочно "
|
||||
"добавленных браузером."
|
||||
msgstr "Если вы прошли по ссылке, проверьте конец URI на наличие символов, ошибочно добавленных браузером."
|
||||
|
||||
#: ../java/build/Proxy.java:48 ../java/build/Proxy.java:54
|
||||
msgid "Warning: Invalid Destination"
|
||||
@@ -201,11 +185,9 @@ msgstr "Указанный адрес недействителен или нед
|
||||
|
||||
#: ../java/build/Proxy.java:56
|
||||
msgid ""
|
||||
"Perhaps you pasted in the wrong Base 64 string or the link you are following "
|
||||
"is bad."
|
||||
msgstr ""
|
||||
"Возможно, вы вставили неправильную строку Base64 или прошли по нерабочей "
|
||||
"ссылке."
|
||||
"Perhaps you pasted in the wrong Base 64 string or the link you are following"
|
||||
" is bad."
|
||||
msgstr "Возможно, вы вставили неправильную строку Base64 или прошли по нерабочей ссылке."
|
||||
|
||||
#: ../java/build/Proxy.java:57
|
||||
msgid "The I2P host could also be offline."
|
||||
@@ -232,9 +214,7 @@ msgstr "Предупреждение: Выходной прокси-сервер
|
||||
msgid ""
|
||||
"Your request was for a site outside of I2P, but you have no HTTP outproxy "
|
||||
"configured."
|
||||
msgstr ""
|
||||
"Вы запросили страницу вне сети I2P, но не имеете настроенного выходного "
|
||||
"прокси-сервера."
|
||||
msgstr "Вы запросили страницу вне сети I2P, но не имеете настроенного выходного прокси-сервера."
|
||||
|
||||
#: ../java/build/Proxy.java:76
|
||||
msgid "Please configure an outproxy in I2PTunnel."
|
||||
@@ -248,27 +228,20 @@ msgstr "Предупреждение: Конфликт ключа назначе
|
||||
msgid ""
|
||||
"The addresshelper link you followed specifies a different destination key "
|
||||
"than a host entry in your host database."
|
||||
msgstr ""
|
||||
"Ссылка AddressHelper, по которой вы прошли, определяет ключ назначения, "
|
||||
"отличный от указанного в адресной книге."
|
||||
msgstr "Ссылка AddressHelper, по которой вы прошли, определяет ключ назначения, отличный от указанного в адресной книге."
|
||||
|
||||
#: ../java/build/Proxy.java:85
|
||||
msgid ""
|
||||
"Someone could be trying to impersonate another eepsite, or people have given "
|
||||
"two eepsites identical names."
|
||||
msgstr ""
|
||||
"Кто-то может пытаться выдать себя за другой сайт или разные люди дали двум "
|
||||
"сайтам одинаковые имена."
|
||||
"Someone could be trying to impersonate another eepsite, or people have given"
|
||||
" two eepsites identical names."
|
||||
msgstr "Кто-то может пытаться выдать себя за другой сайт или разные люди дали двум сайтам одинаковые имена."
|
||||
|
||||
#: ../java/build/Proxy.java:86
|
||||
msgid ""
|
||||
"You can resolve the conflict by considering which key you trust, and either "
|
||||
"discarding the addresshelper link, discarding the host entry from your host "
|
||||
"database, or naming one of them differently."
|
||||
msgstr ""
|
||||
"Для разрешения конфликта вы можете определить, какому ключу вы доверяете, и "
|
||||
"либо отказаться от прохода по ссылке, либо удалить старый ключ, либо "
|
||||
"присвоить одному из них другое имя."
|
||||
msgstr "Для разрешения конфликта вы можете определить, какому ключу вы доверяете, и либо отказаться от прохода по ссылке, либо удалить старый ключ, либо присвоить одному из них другое имя."
|
||||
|
||||
#: ../java/build/Proxy.java:87
|
||||
msgid "Proxy Authorization Required"
|
||||
@@ -279,7 +252,8 @@ msgid "I2P HTTP Proxy Authorization Required"
|
||||
msgstr "Авторизация outproxy"
|
||||
|
||||
#: ../java/build/Proxy.java:89
|
||||
msgid "This proxy is configured to require a username and password for access."
|
||||
msgid ""
|
||||
"This proxy is configured to require a username and password for access."
|
||||
msgstr "Этот прокси-сервер требует имя пользователя и пароль для доступа."
|
||||
|
||||
#: ../java/build/Proxy.java:90
|
||||
@@ -287,18 +261,15 @@ msgstr "Этот прокси-сервер требует имя пользов
|
||||
msgid ""
|
||||
"Please enter your username and password, or check your {0}router "
|
||||
"configuration{1} or {2}I2PTunnel configuration{3}."
|
||||
msgstr ""
|
||||
"Введите имя и пароль или проверьте ваши {0}настройки маршрутизатора{1} и {2}"
|
||||
"настройки I2PTunnel{3}."
|
||||
msgstr "Введите имя и пароль или проверьте ваши {0}настройки маршрутизатора{1} и {2}настройки I2PTunnel{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."
|
||||
msgstr ""
|
||||
"Для отключения авторизации удалите строку {0}i2ptunnel.proxy.auth=basic{1} и "
|
||||
"перезапустите туннель HTTP Proxy."
|
||||
"To disable authorization, remove the configuration "
|
||||
"{0}i2ptunnel.proxy.auth=basic{1}, then stop and restart the HTTP Proxy "
|
||||
"tunnel."
|
||||
msgstr "Для отключения авторизации удалите строку {0}i2ptunnel.proxy.auth=basic{1} и перезапустите туннель HTTP Proxy."
|
||||
|
||||
#: ../java/build/Proxy.java:92 ../java/build/Proxy.java:98
|
||||
msgid "Warning: Eepsite Unreachable"
|
||||
@@ -312,9 +283,7 @@ msgstr "Сайт I2P недоступен."
|
||||
msgid ""
|
||||
"The eepsite is offline, there is network congestion, or your router is not "
|
||||
"yet well-integrated with peers."
|
||||
msgstr ""
|
||||
"Возможно, он отключен, сеть перегружена или ваш маршрутизатор недостаточно "
|
||||
"интегрирован с другими узлами."
|
||||
msgstr "Возможно, он отключен, сеть перегружена или ваш маршрутизатор недостаточно интегрирован с другими узлами."
|
||||
|
||||
#: ../java/build/Proxy.java:103
|
||||
msgid "Information: New Host Name"
|
||||
@@ -328,9 +297,7 @@ msgstr "Информация: Новый доменной адрес с AddressH
|
||||
msgid ""
|
||||
"The address helper link you followed is for a new host name that is not in "
|
||||
"your address book."
|
||||
msgstr ""
|
||||
"Ссылка AddressHelper, по которой вы прошли, ведет на домен, не внесенный в "
|
||||
"адресную книгу."
|
||||
msgstr "Ссылка AddressHelper, по которой вы прошли, ведет на домен, не внесенный в адресную книгу."
|
||||
|
||||
#: ../java/build/Proxy.java:111
|
||||
msgid "You may save this host name to your local address book."
|
||||
@@ -339,23 +306,19 @@ msgstr "Вы можете сохранить этот домен в свою л
|
||||
#: ../java/build/Proxy.java:112
|
||||
msgid ""
|
||||
"If you save it to your address book, you will not see this message again."
|
||||
msgstr ""
|
||||
"Если вы сохраните его в вашей адресной книге, вы больше не будете видеть это "
|
||||
"сообщение."
|
||||
msgstr "Если вы сохраните его в вашей адресной книге, вы больше не будете видеть это сообщение."
|
||||
|
||||
#: ../java/build/Proxy.java:113
|
||||
msgid ""
|
||||
"If you do not save it, the host name will be forgotten after the next router "
|
||||
"restart."
|
||||
msgstr ""
|
||||
"Если вы не сохраните его, он будет «забыт» после перезапуска маршрутизатора."
|
||||
"If you do not save it, the host name will be forgotten after the next router"
|
||||
" restart."
|
||||
msgstr "Если вы не сохраните его, он будет «забыт» после перезапуска маршрутизатора."
|
||||
|
||||
#: ../java/build/Proxy.java:114
|
||||
msgid ""
|
||||
"If you do not wish to visit this host, click the \"back\" button on your "
|
||||
"browser."
|
||||
msgstr ""
|
||||
"Если вы не хотите посещать этот сайт, нажмите кнопку «Назад» в браузере."
|
||||
msgstr "Если вы не хотите посещать этот сайт, нажмите кнопку «Назад» в браузере."
|
||||
|
||||
#: ../java/build/Proxy.java:115 ../java/build/Proxy.java:121
|
||||
msgid "Warning: Bad Address Helper"
|
||||
@@ -374,9 +337,7 @@ msgstr "Возможно, он содержит ненужные данные и
|
||||
msgid ""
|
||||
"Check your URL to try and fix the helper key to be a valid Base 32 hostname "
|
||||
"or Base 64 key."
|
||||
msgstr ""
|
||||
"Проверьте URL и попробуйте исправить ссылку с использованием корректной "
|
||||
"ссылки Base32 или Base64."
|
||||
msgstr "Проверьте URL и попробуйте исправить ссылку с использованием корректной ссылки Base32 или Base64."
|
||||
|
||||
#: ../java/build/Proxy.java:125 ../java/build/Proxy.java:131
|
||||
msgid "Warning: Non-HTTP Protocol"
|
||||
@@ -387,86 +348,74 @@ 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."
|
||||
msgstr "HTTP-прокси I2P поддерживает ТОЛЬКО протокол {0}http://{1}."
|
||||
msgid "The I2P HTTP Proxy supports HTTP and HTTPS requests only."
|
||||
msgstr "I2P HTTP прокси поддерживает только HTTP и HTTPS запросы."
|
||||
|
||||
#: ../java/build/Proxy.java:134
|
||||
#, java-format
|
||||
msgid ""
|
||||
"Other protocols such as {0}https://{1} and {0}ftp://{1} are not allowed."
|
||||
msgstr ""
|
||||
"Другие протоколы, такие как {0}https://{1} и {0}ftp://{1} не поддерживаются."
|
||||
msgid "Other protocols such as FTP are not allowed."
|
||||
msgstr "Другие протоколы, такие как FTP не допустимы."
|
||||
|
||||
#: ../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 "С таким адресом назначения i2paddresshelper вам не поможет!"
|
||||
|
||||
#: ../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</"
|
||||
"a>. To visit the conflicting addresshelper destination, click <a href="
|
||||
"\"{1}\">here</a>."
|
||||
msgstr ""
|
||||
"Для перехода по ссылке из локальной адресной книги, нажмите <a href="
|
||||
"\"{0}\">здесь</a>. Для перехода по новой addresshelper-ссылке, нажмите <a "
|
||||
"href=\"{1}\">здесь</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 "Для перехода по ссылке из локальной адресной книги, нажмите <a href=\"{0}\">здесь</a>. Для перехода по новой addresshelper-ссылке, нажмите <a href=\"{1}\">здесь</a>."
|
||||
|
||||
#: ../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 "Base 32"
|
||||
|
||||
#: ../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 "Продолжить переход к {0} без сохранения"
|
||||
|
||||
#: ../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 ""
|
||||
"Сохранить {0} в адресную книгу роутера (router address book) и продолжить "
|
||||
"переход к eep-сайту"
|
||||
msgstr "Сохранить {0} в адресную книгу роутера (router address book) и продолжить переход к eep-сайту"
|
||||
|
||||
#. 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 ""
|
||||
"Сохранить {0} в основную (master) адресную книгу и продолжить переход к eep-"
|
||||
"сайту"
|
||||
msgstr "Сохранить {0} в основную (master) адресную книгу и продолжить переход к eep-сайту"
|
||||
|
||||
#: ../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 ""
|
||||
"Сохранить {0} в приватную адресную книгу и продолжить переход к eep-сайту"
|
||||
msgstr "Сохранить {0} в приватную адресную книгу и продолжить переход к eep-сайту"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1180
|
||||
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1290
|
||||
msgid "HTTP Outproxy"
|
||||
msgstr "HTTP Outproxy"
|
||||
|
||||
#: ../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 ""
|
||||
"Jump-сервисы, которые, возможно, знают нужную Вам addresshelper-ссылку:"
|
||||
"Click a link below to look for an address helper by using a \"jump\" "
|
||||
"service:"
|
||||
msgstr "Jump-сервисы, которые, возможно, знают нужную Вам addresshelper-ссылку:"
|
||||
|
||||
#. 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 "{0} jump service"
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -14,8 +14,8 @@ 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-13 16:45+0000\n"
|
||||
"POT-Creation-Date: 2014-02-06 18:27+0000\n"
|
||||
"PO-Revision-Date: 2014-03-13 20:13+0000\n"
|
||||
"Last-Translator: Towatowa441\n"
|
||||
"Language-Team: French (http://www.transifex.com/projects/p/I2P/language/fr/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -24,141 +24,141 @@ msgstr ""
|
||||
"Language: fr\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 "interne"
|
||||
|
||||
#: ../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] "{0} entrant, {0} sortant tunnels"
|
||||
msgstr[1] "{0} entrants, {0} sortants tunnels"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/EditBean.java:440
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/EditBean.java:453
|
||||
msgid "lower bandwidth and reliability"
|
||||
msgstr "bande passante et fiabilité plus basses"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/EditBean.java:442
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/EditBean.java:455
|
||||
msgid "standard bandwidth and reliability"
|
||||
msgstr "basse passante et fiabilité standards"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/EditBean.java:444
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/EditBean.java:457
|
||||
msgid "higher bandwidth and reliability"
|
||||
msgstr "basse passante et fiabilité plus élevées"
|
||||
|
||||
#: ../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 "Les tunnels sont pas encore initialisés, s'il vous plaît rechargez dans deux minutes."
|
||||
|
||||
#: ../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 "Échec de soumission du formulaire: vous avez peut-être utilisé le bouton \"Page précédente\" ou \"Recharger\" de votre navigateur. Merci de soumettre à nouveau."
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java: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 "Si le problème persiste, vérifiez que vous avez activé les cookies dans votre navigateur."
|
||||
|
||||
#: ../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 "Configuration rechargée pour tous les tunnels"
|
||||
|
||||
#. and give them something to look at in any case
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:255
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:257
|
||||
msgid "Starting tunnel"
|
||||
msgstr "Démarrage du tunnel"
|
||||
|
||||
#. and give them something to look at in any case
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:268
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:270
|
||||
msgid "Stopping tunnel"
|
||||
msgstr "Arrêt du tunnel"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:334
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:336
|
||||
msgid "Configuration changes saved"
|
||||
msgstr "Modification de configuration enregistrée"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:337
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:339
|
||||
msgid "Failed to save configuration"
|
||||
msgstr "Échec d'enregistrement de la configuration"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:459
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:461
|
||||
msgid "New Tunnel"
|
||||
msgstr "Nouveau tunnel"
|
||||
|
||||
#: ../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 "Port non défini"
|
||||
|
||||
#: ../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 "Port invalide"
|
||||
|
||||
#: ../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 "Avertissement - les ports en dessous de 1024 ne sont pas recommandés"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:504
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:506
|
||||
msgid "Standard client"
|
||||
msgstr "Client standard"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:505
|
||||
msgid "HTTP client"
|
||||
msgstr "Client HTTP"
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:507
|
||||
msgid "HTTP/HTTPS client"
|
||||
msgstr "Client HTTP/HTTPS"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:506
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:508
|
||||
msgid "IRC client"
|
||||
msgstr "Client IRC"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:507
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:509
|
||||
msgid "Standard server"
|
||||
msgstr "Serveur standard"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:508
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:510
|
||||
msgid "HTTP server"
|
||||
msgstr "Serveur HTTP"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:509
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:511
|
||||
msgid "SOCKS 4/4a/5 proxy"
|
||||
msgstr "Mandataire SOCKS 4/4a/5"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:510
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:512
|
||||
msgid "SOCKS IRC proxy"
|
||||
msgstr "Mandataire IRC SOCKS"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:511
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:513
|
||||
msgid "CONNECT/SSL/HTTPS proxy"
|
||||
msgstr "Mandataire CONNECT/SSL/HTTPS"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:512
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:514
|
||||
msgid "IRC server"
|
||||
msgstr "Serveur IRC"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:513
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:515
|
||||
msgid "Streamr client"
|
||||
msgstr "Client flux"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:514
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:516
|
||||
msgid "Streamr server"
|
||||
msgstr "Serveur flux"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:515
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:517
|
||||
msgid "HTTP bidir"
|
||||
msgstr "bidir HTTP"
|
||||
|
||||
#: ../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 "Hôte non défini"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:605
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:607
|
||||
msgid "Invalid address"
|
||||
msgstr "Adresse incorrecte"
|
||||
|
||||
@@ -194,7 +194,7 @@ msgstr "Type"
|
||||
#: ../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 "Description"
|
||||
@@ -212,7 +212,7 @@ msgstr "Point d'accès"
|
||||
|
||||
#: ../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
|
||||
@@ -231,202 +231,211 @@ msgid "Outproxies"
|
||||
msgstr "Mandataires sortants"
|
||||
|
||||
#: ../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"
|
||||
msgstr "Destination de tunnel"
|
||||
msgid "SSL Outproxies"
|
||||
msgstr "Proxies sortants SSL"
|
||||
|
||||
#: ../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 "nom, nom:port, ou destination"
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:209
|
||||
msgid "Use Outproxy Plugin"
|
||||
msgstr "Utiliser plug-in proxy sortant"
|
||||
|
||||
#: ../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 "b32 déconseillée"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:224
|
||||
msgid "Shared Client"
|
||||
msgstr "Client partagé"
|
||||
|
||||
#: ../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 "(Partager les tunnels avec d'autres clients et des clients http/irc ? La modification requiert le redémarrage du client mandataire)"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java: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 "Démarrage automatique"
|
||||
|
||||
#: ../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 "(Cochez la case pour démarrage automatique en même temps que le routeur)"
|
||||
|
||||
#: ../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 "Destination de tunnel"
|
||||
|
||||
#: ../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 "nom, nom:port, ou destination"
|
||||
|
||||
#: ../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 "b32 déconseillée"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:239
|
||||
msgid "Shared Client"
|
||||
msgstr "Client partagé"
|
||||
|
||||
#: ../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 "(Partager les tunnels avec d'autres clients et des clients http/irc ? La modification requiert le redémarrage du client mandataire)"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java: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 "Démarrage automatique"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:255
|
||||
msgid "Enable DCC"
|
||||
msgstr "Active DCC"
|
||||
|
||||
#: ../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 "Options de réseau avancées"
|
||||
|
||||
#: ../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 "(ATTENTION : quand ce mandataire client est configuré pour partager les tunnels, ces options sont appliquées à tous les mandataires clients partagés)"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java: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 "Options de tunnel"
|
||||
|
||||
#: ../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 "Longueur"
|
||||
|
||||
#: ../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 "0 tunnel d'étape (aucun anonymat)"
|
||||
|
||||
#: ../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 "1 tunnel d'étape (bas anonymat)"
|
||||
|
||||
#: ../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 "2 tunnels d'étape (moyen anonymat)"
|
||||
|
||||
#: ../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 "3 tunnels d'étape (haut anonymat)"
|
||||
|
||||
#: ../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 "Tunnel de saut (performances médiocres)"
|
||||
|
||||
#: ../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 "Variance"
|
||||
|
||||
#: ../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 "Variance à 0 saut (pas d'aléa, performances stables)"
|
||||
|
||||
#: ../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 "Variance à + 0 ou 1 saut (aléa moyen, performances diminuées)"
|
||||
|
||||
#: ../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 "Variance à + 0 à 2 sauts (aléa élevé, performances diminuées)"
|
||||
|
||||
#: ../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 "Variance à +/- 0 ou 1 saut (aléas légers, performances diminuées)"
|
||||
|
||||
#: ../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 "Variance à +/- 0 à 2 sauts (déconseillée)"
|
||||
|
||||
#: ../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 "variance de saut"
|
||||
|
||||
#: ../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 "Nombre"
|
||||
|
||||
#: ../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 "Secours"
|
||||
|
||||
#: ../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 "Aucun tunnel de secours (pas de tolérance de pannes, pas de consommation de ressources) "
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java: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 "1 tunnel de secours par direction (légère tolérance de pannes, faible consommation de ressources)"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java: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 "2 tunnels de secours par direction (tolérance de pannes moyenne, consommation de ressources moyenne)"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java: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 "3 tunnels de secours par direction (tolérance de pannes élevée, consommation de ressources élevée)"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java: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 "Tunnels de secours"
|
||||
|
||||
#: ../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 "Profil"
|
||||
|
||||
#: ../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 "connexion interactive"
|
||||
|
||||
#: ../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 "connexion à fort transfert (téléchargements/sites web/BT)"
|
||||
|
||||
#: ../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 "Retard à la connexion"
|
||||
|
||||
#: ../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 "pour les connexions demande/réponse"
|
||||
|
||||
#: ../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 "Adresse I2CP du routeur"
|
||||
|
||||
#: ../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 "Hôte"
|
||||
|
||||
#: ../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
|
||||
@@ -435,107 +444,107 @@ msgstr "Hôte"
|
||||
msgid "Port"
|
||||
msgstr "Port"
|
||||
|
||||
#: ../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 "Réduire le nombre de tunnels quand inactif"
|
||||
|
||||
#: ../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 "Activer"
|
||||
|
||||
#: ../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 "Réduire à"
|
||||
|
||||
#: ../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 "Minutes d'inactivité"
|
||||
|
||||
#: ../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 "Fermer les tunnels quand inactif"
|
||||
|
||||
#: ../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 "Nouvelles clés à la réouverture"
|
||||
|
||||
#: ../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 "Désactiver"
|
||||
|
||||
#: ../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 "Retarder l'ouverture jusqu'à l'utilisation"
|
||||
|
||||
#: ../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 "Clé privée persistante"
|
||||
|
||||
#: ../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 "Fichier"
|
||||
|
||||
#: ../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 "Destination locale"
|
||||
|
||||
#: ../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 "Base locale 32"
|
||||
|
||||
#: ../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 "Autorisation locale"
|
||||
|
||||
#: ../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 "Identifiant"
|
||||
|
||||
#: ../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 "Mot de passe"
|
||||
|
||||
#: ../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 "Autorisation de mandataire sortant"
|
||||
|
||||
#: ../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 "Liste d'URL de sauts"
|
||||
|
||||
#: ../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 "Options personnelles"
|
||||
|
||||
#: ../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 "Annuler"
|
||||
|
||||
#: ../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 "Supprimer"
|
||||
|
||||
#: ../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 "Enregistrer"
|
||||
@@ -786,7 +795,7 @@ msgid "New server tunnel"
|
||||
msgstr "Nouveau tunnel serveur"
|
||||
|
||||
#: ../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
|
||||
@@ -796,7 +805,7 @@ msgid "Standard"
|
||||
msgstr "Standard"
|
||||
|
||||
#: ../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 "Créer"
|
||||
|
||||
@@ -821,11 +830,15 @@ msgstr "Mandataire sortant"
|
||||
msgid "Destination"
|
||||
msgstr "Destination"
|
||||
|
||||
#: ../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 "plugin interne"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:414
|
||||
msgid "none"
|
||||
msgstr "aucun"
|
||||
|
||||
#: ../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 "Nouveau tunnel client"
|
||||
|
||||
@@ -1146,7 +1159,7 @@ msgstr "Voici un résumé des options que vous avez choisies :"
|
||||
msgid ""
|
||||
"Alongside these basic settings, there are a number of advanced options for "
|
||||
"tunnel configuration."
|
||||
msgstr "Parallèlement à ces réglages de base, il ya un certain nombre d'options avancées pour la configuration du tunnel."
|
||||
msgstr "Parallèlement à ces réglages de base, il y a un certain nombre d'options avancées pour la configuration du tunnel."
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:665
|
||||
msgid ""
|
||||
|
@@ -4,14 +4,14 @@
|
||||
# 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: 2014-01-09 19:27+0000\n"
|
||||
"PO-Revision-Date: 2014-01-09 19:27+0000\n"
|
||||
"Last-Translator: kytv <killyourtv@i2pmail.org>\n"
|
||||
"POT-Creation-Date: 2014-02-06 18:27+0000\n"
|
||||
"PO-Revision-Date: 2014-02-13 10:06+0000\n"
|
||||
"Last-Translator: plazmism <gomidori@live.jp>\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"
|
||||
@@ -19,140 +19,140 @@ msgstr ""
|
||||
"Language: ja\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\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] ""
|
||||
|
||||
#: ../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 "トンネルを開始中"
|
||||
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
|
||||
msgid "Port not set"
|
||||
msgstr "ポート設定なし"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:485
|
||||
#: ../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: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
|
||||
msgid "Standard client"
|
||||
msgstr "通常クライアント"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:505
|
||||
msgid "HTTP client"
|
||||
msgstr "HTTP クライアント"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:506
|
||||
msgid "Standard client"
|
||||
msgstr "標準クライアント"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:507
|
||||
msgid "HTTP/HTTPS client"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:508
|
||||
msgid "IRC client"
|
||||
msgstr "IRC クライアント"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:507
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:509
|
||||
msgid "Standard server"
|
||||
msgstr "通常サーバー"
|
||||
msgstr "標準サーバー"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:508
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:510
|
||||
msgid "HTTP server"
|
||||
msgstr "HTTP サーバー"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:509
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:511
|
||||
msgid "SOCKS 4/4a/5 proxy"
|
||||
msgstr "SOCKS 4/4a/5 プロキシ"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:510
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:512
|
||||
msgid "SOCKS IRC proxy"
|
||||
msgstr "SOCKS IRC プロキシ"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:511
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:513
|
||||
msgid "CONNECT/SSL/HTTPS proxy"
|
||||
msgstr "CONNECT/SSL/HTTPS プロキシ"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:512
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:514
|
||||
msgid "IRC server"
|
||||
msgstr "IRC サーバー"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:513
|
||||
msgid "Streamr client"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:514
|
||||
msgid "Streamr server"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:515
|
||||
msgid "Streamr client"
|
||||
msgstr "Streamr クライアント"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:516
|
||||
msgid "Streamr server"
|
||||
msgstr "Streamr サーバー"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:517
|
||||
msgid "HTTP bidir"
|
||||
msgstr "HTTP 双方向"
|
||||
|
||||
#: ../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 "ホスト設定なし"
|
||||
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
|
||||
@@ -217,210 +217,219 @@ msgstr "必須"
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:201
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:482
|
||||
msgid "Reachable by"
|
||||
msgstr ""
|
||||
msgstr "次からアクセス可能:"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:196
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:358
|
||||
msgid "Outproxies"
|
||||
msgstr ""
|
||||
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/editClient_jsp.java:209
|
||||
msgid "Use Outproxy Plugin"
|
||||
msgstr "アウトプロキシのプラグインを使用"
|
||||
|
||||
#: ../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: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:218
|
||||
#: ../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 ""
|
||||
msgstr "b32 は非推奨です"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:224
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:239
|
||||
msgid "Shared Client"
|
||||
msgstr ""
|
||||
msgstr "共有クライアント"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:228
|
||||
#: ../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 ""
|
||||
msgstr "(他のクライアント及び irc/http クライアントとトンネルを共有しますか?変更にはクライアントプロキシの再起動が必要です)"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:232
|
||||
#: ../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 ""
|
||||
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/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: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 ""
|
||||
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 ""
|
||||
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 ""
|
||||
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 ""
|
||||
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 ""
|
||||
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 ""
|
||||
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 ""
|
||||
msgstr "0 ホップ分散 (非ランダム化、一貫したパフォーマンス)"
|
||||
|
||||
#: ../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 ""
|
||||
msgstr "+ 0-1 ホップ分散 (中間的な追加的ランダム化、パフォーマンス減退)"
|
||||
|
||||
#: ../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/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/editServer_jsp.java:325
|
||||
msgid "+/- 0-2 hop variance (not recommended)"
|
||||
msgstr ""
|
||||
msgstr "+ 0-2 ホップ分散 (高い追加的ランダム化、パフォーマンス減退)"
|
||||
|
||||
#: ../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 "+/- 0-1 ホップ分散 (標準的ランダム化、標準的パフォーマンス)"
|
||||
|
||||
#: ../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 "+/- 0-2 ホップ分散 (非推奨)"
|
||||
|
||||
#: ../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 ""
|
||||
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 ""
|
||||
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 ""
|
||||
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 "保存"
|
||||
@@ -548,7 +557,7 @@ msgstr ""
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:179
|
||||
msgid "Use SSL?"
|
||||
msgstr ""
|
||||
msgstr "SSLを使用しますか?"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:222
|
||||
msgid "Website name"
|
||||
@@ -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 ""
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -6,9 +6,21 @@ Retrieved from the file
|
||||
|
||||
minus the following files and directores:
|
||||
|
||||
build.xml
|
||||
deployer-howto.html
|
||||
images/*
|
||||
lib/catalina*
|
||||
LICENSE (see ../../../licenses/LICENSE-Apache2.0.txt, it's also inside every jar)
|
||||
RELEASE-NOTES
|
||||
build.xml
|
||||
deployer-howto.html
|
||||
images/*
|
||||
lib/catalina*
|
||||
lib/jsp-api.jar (see below)
|
||||
lib/servlet-api.jar (see below)
|
||||
LICENSE (see ../../../licenses/LICENSE-Apache2.0.txt, it's also inside every jar)
|
||||
RELEASE-NOTES
|
||||
|
||||
|
||||
We could use the following API jars from Apache Tomcat 7.x, supporting Servlet 3.0 and JSP 2.2,
|
||||
that are required for Jetty 8, but we just bundle the ones from Jetty 8 instead:
|
||||
|
||||
lib/jsp-api.jar
|
||||
lib/servlet-api.jar
|
||||
|
||||
For more info:
|
||||
http://tomcat.apache.org/whichversion.html
|
||||
|
Binary file not shown.
Binary file not shown.
@@ -1,13 +1,14 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project basedir="." default="all" name="jetty">
|
||||
|
||||
<property name="jetty.ver" value="7.6.14.v20131031" />
|
||||
<property name="jetty.ver" value="8.1.14.v20131031" />
|
||||
<property name="jetty.base" value="jetty-distribution-${jetty.ver}" />
|
||||
<property name="jetty.sha1" value="f83894b5641f920ed8ac31501b473528e52a23fd" />
|
||||
<property name="jetty.sha1" value="a6690261a822157c82fcc6327d05ac8c7dfed0a3" />
|
||||
<property name="jetty.filename" value="${jetty.base}.zip" />
|
||||
<property name="jetty.url" value="http://download.eclipse.org/jetty/${jetty.ver}/dist/${jetty.filename}" />
|
||||
<property name="verified.filename" value="verified.txt" />
|
||||
<property name="javac.compilerargs" value="" />
|
||||
<property name="javac.version" value="1.6" />
|
||||
<property name="tomcat.lib" value="apache-tomcat-deployer/lib" />
|
||||
|
||||
<target name="all" depends="build" />
|
||||
@@ -104,9 +105,10 @@
|
||||
jetty-servlets-xxx.jar: Needed for CGI for eepsite
|
||||
jetty-sslengine-xxx.jar: Old Jetty 6, now a dummy
|
||||
jetty-java5-threadpool-xxx.jar: Old Jetty 6, now a dummy
|
||||
glassfish 2.1: Not used, too old, see Tomcat below.
|
||||
jetty-rewrite-handler: Not used by I2P, but only 20KB and could be useful for eepsites
|
||||
jetty-management: Not used by I2P, but only 34KB and could be useful for eepsites, and we bundled it with Jetty 5
|
||||
javax.servlet.jsp-2.2.0.v201112011158.jar: Required API
|
||||
servlet-api-3.0.jar: Required API
|
||||
All of these are available in the Ubuntu packages libjetty-java and libjetty-extra-java
|
||||
-->
|
||||
<copy preservelastmodified="true" file="${jetty.base}/start.jar" tofile="jettylib/jetty-start.jar" />
|
||||
@@ -133,6 +135,10 @@
|
||||
<attribute name="Note" value="Intentionally empty" />
|
||||
</manifest>
|
||||
</jar>
|
||||
<jar destfile="jettylib/javax.servlet.jar" duplicate="preserve" filesetmanifest="mergewithoutmain" >
|
||||
<zipfileset excludes="about.html about_files about_files/* META-INF/ECLIPSEF.* META-INF/eclipse.inf plugin.properties" src="${jetty.base}/lib/servlet-api-3.0.jar" />
|
||||
<zipfileset excludes="about.html about_files about_files/* META-INF/ECLIPSEF.* META-INF/eclipse.inf plugin.properties" src="${jetty.base}/lib/jsp/javax.servlet.jsp-2.2.0.v201112011158.jar" />
|
||||
</jar>
|
||||
<!--
|
||||
<delete file="jetty.tar" />
|
||||
<delete dir="${jetty.base}" />
|
||||
@@ -152,10 +158,14 @@
|
||||
was set individually in wrapper.config, we rename and combine the jars as follows:
|
||||
jasper.jar : jasper-runtime.jar
|
||||
jasper-el.jar + el-api.jar : commons-el.jar
|
||||
servlet-api.jar + jsp-api.jar : javax.servlet.jar
|
||||
tomcat-juli.jar : Add to commons-logging.jar
|
||||
empty jar : jasper-compiler.jar
|
||||
Also, take NOTICE and LICENSE out of each one, we bundle those separately.
|
||||
|
||||
Not as of Jetty 8 (using from Jetty):
|
||||
servlet-api.jar + jsp-api.jar : javax.servlet.jar
|
||||
If we go to Tomcat 7:
|
||||
tomcat-api.jar + tomcat-util.jar: Add to javax.servlet.jar (as of Tomcat 7 / Jetty 8)
|
||||
-->
|
||||
<target name="copyTomcatLib" >
|
||||
<jar destfile="jettylib/jasper-runtime.jar" filesetmanifest="merge" >
|
||||
@@ -165,10 +175,14 @@
|
||||
<zipfileset excludes="META-INF/LICENSE META-INF/NOTICE" src="${tomcat.lib}/jasper-el.jar" />
|
||||
<zipfileset excludes="META-INF/**/*" src="${tomcat.lib}/el-api.jar" />
|
||||
</jar>
|
||||
<!--
|
||||
<jar destfile="jettylib/javax.servlet.jar" duplicate="preserve" filesetmanifest="mergewithoutmain" >
|
||||
<zipfileset excludes="META-INF/LICENSE META-INF/NOTICE" src="${tomcat.lib}/servlet-api.jar" />
|
||||
<zipfileset excludes="META-INF/**/*" src="${tomcat.lib}/jsp-api.jar" />
|
||||
<zipfileset excludes="META-INF/LICENSE META-INF/NOTICE" src="${tomcat.lib}/tomcat-api.jar" />
|
||||
<zipfileset excludes="META-INF/LICENSE META-INF/NOTICE" src="${tomcat.lib}/tomcat-util.jar" />
|
||||
</jar>
|
||||
-->
|
||||
<!-- Ant bug, don't set update and filesetmanifest or the update doesn't happen,
|
||||
Their bug tracker claims fixed in 1.8.0 but broken for me in 1.8.1
|
||||
-->
|
||||
@@ -214,7 +228,7 @@
|
||||
<mkdir dir="./build/obj" />
|
||||
<javac
|
||||
srcdir="./java/src"
|
||||
debug="true" deprecation="on" source="1.5" target="1.5"
|
||||
debug="true" deprecation="on" source="${javac.version}" target="${javac.version}"
|
||||
destdir="./build/obj"
|
||||
includeAntRuntime="false"
|
||||
classpath="../../core/java/build/i2p.jar:./jettylib/commons-logging.jar:./jettylib/javax.servlet.jar:./jettylib/org.mortbay.jetty.jar:./jettylib/jetty-http.jar:./jettylib/jetty-io.jar:./jettylib/jetty-security.jar:./jettylib/jetty-util.jar:./jettylib/jetty-xml.jar" >
|
||||
|
@@ -405,7 +405,7 @@ public class I2PRequestLog extends AbstractLifeCycle implements RequestLog
|
||||
}
|
||||
catch (IOException e)
|
||||
{
|
||||
Log.warn(e);
|
||||
Log.getLogger((String)null).warn(e);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -449,7 +449,7 @@ public class I2PRequestLog extends AbstractLifeCycle implements RequestLog
|
||||
{
|
||||
_fileOut = new RolloverFileOutputStream(_filename,_append,_retainDays,TimeZone.getTimeZone(_logTimeZone),_filenameDateFormat,null);
|
||||
_closeOut = true;
|
||||
Log.info("Opened "+getDatedFilename());
|
||||
Log.getLogger((String)null).info("Opened "+getDatedFilename());
|
||||
}
|
||||
else
|
||||
_fileOut = System.err;
|
||||
@@ -475,9 +475,9 @@ public class I2PRequestLog extends AbstractLifeCycle implements RequestLog
|
||||
protected void doStop() throws Exception
|
||||
{
|
||||
super.doStop();
|
||||
try {if (_writer != null) _writer.flush();} catch (IOException e) {Log.ignore(e);}
|
||||
try {if (_writer != null) _writer.flush();} catch (IOException e) {Log.getLogger((String)null).ignore(e);}
|
||||
if (_out != null && _closeOut)
|
||||
try {_out.close();} catch (IOException e) {Log.ignore(e);}
|
||||
try {_out.close();} catch (IOException e) {Log.getLogger((String)null).ignore(e);}
|
||||
|
||||
_out = null;
|
||||
_fileOut = null;
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
apps/jetty/jetty-distribution-8.1.14.v20131031/start.jar
Normal file
BIN
apps/jetty/jetty-distribution-8.1.14.v20131031/start.jar
Normal file
Binary file not shown.
@@ -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);
|
||||
|
||||
|
@@ -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);
|
||||
}
|
||||
@@ -224,7 +225,10 @@ public class I2PSocketManagerFactory {
|
||||
|
||||
private static I2PSocketManager createManager(I2PSession session, Properties opts, String name) {
|
||||
I2PAppContext context = I2PAppContext.getGlobalContext();
|
||||
String classname = opts.getProperty(PROP_MANAGER, DEFAULT_MANAGER);
|
||||
// As of 0.9.12, ignore this setting, as jwebcache and i2phex set it to the old value.
|
||||
// There is no other valid manager.
|
||||
//String classname = opts.getProperty(PROP_MANAGER, DEFAULT_MANAGER);
|
||||
String classname = DEFAULT_MANAGER;
|
||||
try {
|
||||
Class<?> cls = Class.forName(classname);
|
||||
if (!I2PSocketManager.class.isAssignableFrom(cls))
|
||||
@@ -257,6 +261,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);
|
||||
|
@@ -0,0 +1,13 @@
|
||||
package net.i2p.client.streaming;
|
||||
|
||||
/**
|
||||
* Moved to net.i2p.client.streaming.impl in 0.9.10.
|
||||
* Restored as a dummy class in 0.9.12, as i2phex imports it and
|
||||
* calls I2PSocketManagerFull.class.getName() to pass to I2PSocketManagerFactory.
|
||||
* I2PSocketManagerFactory ignores the class setting as of 0.9.12.
|
||||
* This does not implement I2PSocketManager. Do not use.
|
||||
*
|
||||
* @since 0.9.12
|
||||
* @deprecated
|
||||
*/
|
||||
public class I2PSocketManagerFull {}
|
@@ -46,13 +46,16 @@
|
||||
<targetfilelist dir="." files="build/obj/net/i2p/router/web/UpdateHandler.class" />
|
||||
</dependset>
|
||||
</target>
|
||||
|
||||
<property name="javac.compilerargs" value="" />
|
||||
<property name="javac.version" value="1.6" />
|
||||
|
||||
<target name="compile" depends="prepare, depend, dependVersion">
|
||||
<mkdir dir="./build" />
|
||||
<mkdir dir="./build/obj" />
|
||||
<javac
|
||||
srcdir="./src"
|
||||
debug="true" deprecation="on" source="1.5" target="1.5"
|
||||
debug="true" deprecation="on" source="${javac.version}" target="${javac.version}"
|
||||
includeAntRuntime="false"
|
||||
destdir="./build/obj">
|
||||
<compilerarg line="${javac.compilerargs}" />
|
||||
@@ -342,7 +345,7 @@
|
||||
<arg value="../jsp/" />
|
||||
</java>
|
||||
|
||||
<javac debug="true" deprecation="on" source="1.5" target="1.5"
|
||||
<javac debug="true" deprecation="on" source="${javac.version}" target="${javac.version}"
|
||||
encoding="UTF-8"
|
||||
includeAntRuntime="false"
|
||||
destdir="../jsp/WEB-INF/classes/"
|
||||
|
@@ -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);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -53,19 +53,20 @@ public class CSSHelper extends HelperBase {
|
||||
|
||||
/**
|
||||
* change default language for the router AND save it
|
||||
* @param lang xx OR xx_XX
|
||||
* @param lang xx OR xx_XX OR xxx OR xxx_XX
|
||||
*/
|
||||
public void setLang(String lang) {
|
||||
// Protected with nonce in css.jsi
|
||||
if (lang != null) {
|
||||
if (lang != null && lang.length() > 0) {
|
||||
Map m = new HashMap(2);
|
||||
if (lang.length() == 2) {
|
||||
int under = lang.indexOf('_');
|
||||
if (under < 0) {
|
||||
m.put(Messages.PROP_LANG, lang.toLowerCase(Locale.US));
|
||||
m.put(Messages.PROP_COUNTRY, "");
|
||||
_context.router().saveConfig(m, null);
|
||||
} else if (lang.length() == 5) {
|
||||
m.put(Messages.PROP_LANG, lang.substring(0, 2).toLowerCase(Locale.US));
|
||||
m.put(Messages.PROP_COUNTRY, lang.substring(3, 5).toUpperCase(Locale.US));
|
||||
} else if (under > 0 && lang.length() > under + 1) {
|
||||
m.put(Messages.PROP_LANG, lang.substring(0, under).toLowerCase(Locale.US));
|
||||
m.put(Messages.PROP_COUNTRY, lang.substring(under + 1).toUpperCase(Locale.US));
|
||||
_context.router().saveConfig(m, null);
|
||||
}
|
||||
}
|
||||
|
@@ -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;
|
||||
|
@@ -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)
|
||||
|
@@ -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
|
||||
|
@@ -3,6 +3,7 @@ package net.i2p.router.web;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
import java.util.Properties;
|
||||
|
||||
import net.i2p.apps.systray.UrlLauncher;
|
||||
import net.i2p.router.Router;
|
||||
@@ -57,7 +58,8 @@ public class ConfigServiceHandler extends FormHandler {
|
||||
private final boolean _rekey;
|
||||
private final boolean _tellWrapper;
|
||||
private static final int HASHCODE = -123999871;
|
||||
private static final int WAIT = 30*1000;
|
||||
// RPi takes a long time to write out the peer profiles
|
||||
private static final int WAIT = SystemVersion.isARM() ? 4*60*1000 : 2*60*1000;
|
||||
|
||||
public UpdateWrapperOrRekeyTask(boolean rekey, boolean tellWrapper) {
|
||||
_rekey = rekey;
|
||||
@@ -68,8 +70,19 @@ public class ConfigServiceHandler extends FormHandler {
|
||||
try {
|
||||
if (_rekey)
|
||||
ContextHelper.getContext(null).router().killKeys();
|
||||
if (_tellWrapper)
|
||||
WrapperManager.signalStopping(WAIT);
|
||||
if (_tellWrapper) {
|
||||
int wait = WAIT;
|
||||
Properties props = WrapperManager.getProperties();
|
||||
String tmout = props.getProperty("wrapper.jvm_exit.timeout");
|
||||
if (tmout != null) {
|
||||
try {
|
||||
int cwait = Integer.parseInt(tmout) * 1000;
|
||||
if (cwait > wait)
|
||||
wait = cwait;
|
||||
} catch (NumberFormatException nfe) {}
|
||||
}
|
||||
WrapperManager.signalStopping(wait);
|
||||
}
|
||||
} catch (Throwable t) {
|
||||
t.printStackTrace();
|
||||
}
|
||||
|
@@ -70,6 +70,7 @@ public class ConfigUIHelper extends HelperBase {
|
||||
* See http://en.wikipedia.org/wiki/ISO_639-1 .
|
||||
* Any language-specific flag added to the icon set must be
|
||||
* added to the top-level build.xml for the updater.
|
||||
* As of 0.9.12, ISO 639-2 three-letter codes are supported also.
|
||||
*/
|
||||
private static final String langs[][] = {
|
||||
{ "ar", "lang_ar", _x("Arabic"), null },
|
||||
@@ -103,11 +104,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\" ");
|
||||
@@ -116,7 +139,8 @@ public class ConfigUIHelper extends HelperBase {
|
||||
buf.append("checked=\"checked\" ");
|
||||
buf.append("value=\"").append(lang).append("\">")
|
||||
.append("<img height=\"11\" width=\"16\" alt=\"\" src=\"/flags.jsp?c=").append(langs[i][1]).append("\"> ");
|
||||
String slang = lang.length() > 2 ? lang.substring(0, 2) : lang;
|
||||
int under = lang.indexOf('_');
|
||||
String slang = (under > 0) ? lang.substring(0, under) : lang;
|
||||
buf.append(Messages.getDisplayLanguage(slang, langs[i][2], _context));
|
||||
String name = langs[i][3];
|
||||
if (name != null) {
|
||||
|
@@ -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;
|
||||
|
@@ -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();
|
||||
|
@@ -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();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -36,6 +36,7 @@ public class HomeHelper extends HelperBase {
|
||||
"";
|
||||
|
||||
static final String DEFAULT_FAVORITES =
|
||||
"anoncoin.i2p" + S + _x("The Anoncoin project") + S + "http://anoncoin.i2p/" + S + I + "anoncoin_32.png" + S +
|
||||
_x("Bug Reports") + S + _x("Bug tracker") + S + "http://trac.i2p2.i2p/report/1" + S + I + "bug.png" + S +
|
||||
//"colombo-bt.i2p" + S + _x("The Italian Bittorrent Resource") + S + "http://colombo-bt.i2p/" + S + I + "colomboicon.png" + S +
|
||||
_x("Dev Forum") + S + _x("Development forum") + S + "http://zzz.i2p/" + S + I + "group_gear.png" + S +
|
||||
|
@@ -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>");
|
||||
@@ -206,8 +209,8 @@ public class NetDbRenderer {
|
||||
if (median != null) {
|
||||
double log2 = biLog2(median);
|
||||
buf.append("</b></p><p><b>Median distance (bits): ").append(fmt.format(log2));
|
||||
// 3 for 8 floodfills... -1 for median
|
||||
int total = (int) Math.round(Math.pow(2, 3 + 256 - 1 - log2));
|
||||
// 2 for 4 floodfills... -1 for median
|
||||
int total = (int) Math.round(Math.pow(2, 2 + 256 - 1 - log2));
|
||||
buf.append("</b></p><p><b>Estimated total floodfills: ").append(total);
|
||||
buf.append("</b></p><p><b>Estimated total leasesets: ").append(total * rapCount / 8);
|
||||
} else {
|
||||
|
@@ -19,6 +19,8 @@ import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
import net.i2p.CoreVersion;
|
||||
import net.i2p.I2PAppContext;
|
||||
import net.i2p.app.ClientApp;
|
||||
import net.i2p.app.ClientAppState;
|
||||
import net.i2p.data.DataHelper;
|
||||
import net.i2p.router.RouterContext;
|
||||
import net.i2p.router.RouterVersion;
|
||||
@@ -121,7 +123,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())
|
||||
@@ -602,6 +604,20 @@ public class PluginStarter implements Runnable {
|
||||
_pendingPluginClients.put(pluginName, new ConcurrentHashSet<SimpleTimer2.TimedEvent>());
|
||||
|
||||
for(ClientAppConfig app : apps) {
|
||||
// If the client is a running ClientApp that we want to stop,
|
||||
// bypass all the logic below.
|
||||
ClientApp ca = ctx.routerAppManager().getClientApp(app.className, LoadClientAppsJob.parseArgs(app.args));
|
||||
if (ca != null && ca.getState() == ClientAppState.RUNNING) {
|
||||
if (action.equals("stop")) {
|
||||
try {
|
||||
ca.shutdown(LoadClientAppsJob.parseArgs(app.stopargs));
|
||||
} catch (Throwable t) {
|
||||
throw new Exception(t);
|
||||
}
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
if (action.equals("start") && app.disabled)
|
||||
continue;
|
||||
String argVal[];
|
||||
|
@@ -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)) {
|
||||
|
@@ -244,7 +244,7 @@ public class StatsGenerator {
|
||||
buf.append(":</b> ");
|
||||
}
|
||||
|
||||
private final static DecimalFormat _fmt = new DecimalFormat("###,##0.00");
|
||||
private final static DecimalFormat _fmt = new DecimalFormat("###,##0.0##");
|
||||
private final static String num(double num) { synchronized (_fmt) { return _fmt.format(num); } }
|
||||
|
||||
private final static DecimalFormat _pct = new DecimalFormat("#0.00%");
|
||||
|
@@ -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("\">");
|
||||
|
@@ -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
|
||||
|
@@ -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) ||
|
||||
|
@@ -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
|
||||
|
@@ -4,9 +4,12 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<%
|
||||
// Let's make this easy...
|
||||
final Integer ERROR_CODE = (Integer) request.getAttribute(org.eclipse.jetty.server.Dispatcher.ERROR_STATUS_CODE);
|
||||
final String ERROR_URI = (String) request.getAttribute(org.eclipse.jetty.server.Dispatcher.ERROR_REQUEST_URI);
|
||||
final String ERROR_MESSAGE = (String) request.getAttribute(org.eclipse.jetty.server.Dispatcher.ERROR_MESSAGE);
|
||||
// These are defined in Jetty 7 org.eclipse.jetty.server.Dispatcher,
|
||||
// and in Servlet 3.0 (Jetty 8) javax.servlet.RequestDispatcher,
|
||||
// just use the actual strings here to make it compatible with either
|
||||
final Integer ERROR_CODE = (Integer) request.getAttribute("javax.servlet.error.status_code");
|
||||
final String ERROR_URI = (String) request.getAttribute("javax.servlet.error.request_uri");
|
||||
final String ERROR_MESSAGE = (String) request.getAttribute("javax.servlet.error.message");
|
||||
if (ERROR_CODE != null && ERROR_MESSAGE != null) {
|
||||
// this is deprecated but we don't want sendError()
|
||||
response.setStatus(ERROR_CODE.intValue(), ERROR_MESSAGE);
|
||||
|
@@ -3,11 +3,14 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<%
|
||||
// Let's make this easy...
|
||||
final Integer ERROR_CODE = (Integer) request.getAttribute(org.eclipse.jetty.server.Dispatcher.ERROR_STATUS_CODE);
|
||||
final String ERROR_URI = (String) request.getAttribute(org.eclipse.jetty.server.Dispatcher.ERROR_REQUEST_URI);
|
||||
final String ERROR_MESSAGE = (String) request.getAttribute(org.eclipse.jetty.server.Dispatcher.ERROR_MESSAGE);
|
||||
final Class ERROR_CLASS = (Class)request.getAttribute(org.eclipse.jetty.server.Dispatcher.ERROR_EXCEPTION_TYPE);
|
||||
final Throwable ERROR_THROWABLE = (Throwable)request.getAttribute(org.eclipse.jetty.server.Dispatcher.ERROR_EXCEPTION);
|
||||
// These are defined in Jetty 7 org.eclipse.jetty.server.Dispatcher,
|
||||
// and in Servlet 3.0 (Jetty 8) javax.servlet.RequestDispatcher,
|
||||
// just use the actual strings here to make it compatible with either
|
||||
final Integer ERROR_CODE = (Integer) request.getAttribute("javax.servlet.error.status_code");
|
||||
final String ERROR_URI = (String) request.getAttribute("javax.servlet.error.request_uri");
|
||||
final String ERROR_MESSAGE = (String) request.getAttribute("javax.servlet.error.message");
|
||||
final Class ERROR_CLASS = (Class) request.getAttribute("javax.servlet.error.exception_type");
|
||||
final Throwable ERROR_THROWABLE = (Throwable) request.getAttribute("javax.servlet.error.exception");
|
||||
if (ERROR_CODE != null && ERROR_MESSAGE != null) {
|
||||
// this is deprecated but we don't want sendError()
|
||||
response.setStatus(ERROR_CODE.intValue(), ERROR_MESSAGE);
|
||||
@@ -31,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>
|
||||
|
@@ -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>
|
||||
|
@@ -11,7 +11,7 @@ msgstr ""
|
||||
"Project-Id-Version: I2P\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-10-14 13:33+0000\n"
|
||||
"PO-Revision-Date: 2014-02-04 19:47+0000\n"
|
||||
"PO-Revision-Date: 2014-02-13 13:04+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"
|
||||
@@ -432,334 +432,334 @@ msgid "Latvia"
|
||||
msgstr "Letônia"
|
||||
|
||||
msgid "Libyan Arab Jamahiriya"
|
||||
msgstr ""
|
||||
msgstr "Líbia"
|
||||
|
||||
msgid "Morocco"
|
||||
msgstr ""
|
||||
msgstr "Marrocos"
|
||||
|
||||
msgid "Monaco"
|
||||
msgstr ""
|
||||
msgstr "Mônaco"
|
||||
|
||||
msgid "Republic of Moldova"
|
||||
msgstr ""
|
||||
msgstr "Moldávia"
|
||||
|
||||
msgid "Montenegro"
|
||||
msgstr ""
|
||||
msgstr "Montenegro"
|
||||
|
||||
msgid "Saint Martin"
|
||||
msgstr ""
|
||||
msgstr "São Martinho"
|
||||
|
||||
msgid "Madagascar"
|
||||
msgstr ""
|
||||
msgstr "Madagascar"
|
||||
|
||||
msgid "Marshall Islands"
|
||||
msgstr ""
|
||||
msgstr "Ilhas Marshall"
|
||||
|
||||
msgid "The Former Yugoslav Republic of Macedonia"
|
||||
msgstr ""
|
||||
msgstr "Macedônia"
|
||||
|
||||
msgid "Mali"
|
||||
msgstr ""
|
||||
msgstr "Mali"
|
||||
|
||||
msgid "Myanmar"
|
||||
msgstr ""
|
||||
msgstr "Myanmar"
|
||||
|
||||
msgid "Mongolia"
|
||||
msgstr ""
|
||||
msgstr "Mongólia"
|
||||
|
||||
msgid "Macao"
|
||||
msgstr ""
|
||||
msgstr "Macau"
|
||||
|
||||
msgid "Northern Mariana Islands"
|
||||
msgstr ""
|
||||
msgstr "Ilhas Marianas do Norte"
|
||||
|
||||
msgid "Martinique"
|
||||
msgstr ""
|
||||
msgstr "Martinica"
|
||||
|
||||
msgid "Mauritania"
|
||||
msgstr ""
|
||||
msgstr "Mauritânia"
|
||||
|
||||
msgid "Montserrat"
|
||||
msgstr ""
|
||||
msgstr "Montserrat"
|
||||
|
||||
msgid "Malta"
|
||||
msgstr ""
|
||||
msgstr "Malta"
|
||||
|
||||
msgid "Mauritius"
|
||||
msgstr ""
|
||||
msgstr "Maurício"
|
||||
|
||||
msgid "Maldives"
|
||||
msgstr ""
|
||||
msgstr "Maldivas"
|
||||
|
||||
msgid "Malawi"
|
||||
msgstr ""
|
||||
msgstr "Malawi"
|
||||
|
||||
msgid "Mexico"
|
||||
msgstr ""
|
||||
msgstr "México"
|
||||
|
||||
msgid "Malaysia"
|
||||
msgstr ""
|
||||
msgstr "Malásia"
|
||||
|
||||
msgid "Mozambique"
|
||||
msgstr ""
|
||||
msgstr "Moçambique"
|
||||
|
||||
msgid "Namibia"
|
||||
msgstr ""
|
||||
msgstr "Namíbia"
|
||||
|
||||
msgid "New Caledonia"
|
||||
msgstr ""
|
||||
msgstr "Nova Caledônia"
|
||||
|
||||
msgid "Niger"
|
||||
msgstr ""
|
||||
msgstr "Níger"
|
||||
|
||||
msgid "Norfolk Island"
|
||||
msgstr ""
|
||||
msgstr "Ilha Norfolk"
|
||||
|
||||
msgid "Nigeria"
|
||||
msgstr ""
|
||||
msgstr "Nigéria"
|
||||
|
||||
msgid "Nicaragua"
|
||||
msgstr ""
|
||||
msgstr "Nicarágua"
|
||||
|
||||
msgid "Netherlands"
|
||||
msgstr ""
|
||||
msgstr "Holanda"
|
||||
|
||||
msgid "Norway"
|
||||
msgstr ""
|
||||
msgstr "Noruega"
|
||||
|
||||
msgid "Nepal"
|
||||
msgstr ""
|
||||
msgstr "Nepal"
|
||||
|
||||
msgid "Nauru"
|
||||
msgstr ""
|
||||
msgstr "Nauru"
|
||||
|
||||
msgid "Niue"
|
||||
msgstr ""
|
||||
msgstr "Niue"
|
||||
|
||||
msgid "New Zealand"
|
||||
msgstr ""
|
||||
msgstr "Nova Zelândia"
|
||||
|
||||
msgid "Oman"
|
||||
msgstr ""
|
||||
msgstr "Omã"
|
||||
|
||||
msgid "Panama"
|
||||
msgstr ""
|
||||
msgstr "Panamá"
|
||||
|
||||
msgid "Peru"
|
||||
msgstr ""
|
||||
msgstr "Peru"
|
||||
|
||||
msgid "French Polynesia"
|
||||
msgstr ""
|
||||
msgstr "Polinésia Francesa"
|
||||
|
||||
msgid "Papua New Guinea"
|
||||
msgstr ""
|
||||
msgstr "Papua-Nova Guiné"
|
||||
|
||||
msgid "Philippines"
|
||||
msgstr ""
|
||||
msgstr "Filipinas"
|
||||
|
||||
msgid "Pakistan"
|
||||
msgstr ""
|
||||
msgstr "Paquistão"
|
||||
|
||||
msgid "Poland"
|
||||
msgstr ""
|
||||
msgstr "Polônia"
|
||||
|
||||
msgid "Saint Pierre and Miquelon"
|
||||
msgstr ""
|
||||
msgstr "Saint-Pierre e Miquelon"
|
||||
|
||||
msgid "Pitcairn Islands"
|
||||
msgstr ""
|
||||
msgstr "Ilhas Pitcairn"
|
||||
|
||||
msgid "Puerto Rico"
|
||||
msgstr ""
|
||||
msgstr "Porto Rico"
|
||||
|
||||
msgid "Palestinian Territory"
|
||||
msgstr ""
|
||||
msgstr "Território palestino"
|
||||
|
||||
msgid "Portugal"
|
||||
msgstr ""
|
||||
msgstr "Portugal"
|
||||
|
||||
msgid "Palau"
|
||||
msgstr ""
|
||||
msgstr "Palau"
|
||||
|
||||
msgid "Paraguay"
|
||||
msgstr ""
|
||||
msgstr "Paraguai"
|
||||
|
||||
msgid "Qatar"
|
||||
msgstr ""
|
||||
msgstr "Catar"
|
||||
|
||||
msgid "Réunion"
|
||||
msgstr ""
|
||||
msgstr "Reunião"
|
||||
|
||||
msgid "Romania"
|
||||
msgstr ""
|
||||
msgstr "Romênia"
|
||||
|
||||
msgid "Serbia"
|
||||
msgstr ""
|
||||
msgstr "Sérvia"
|
||||
|
||||
msgid "Russian Federation"
|
||||
msgstr ""
|
||||
msgstr "Rússia"
|
||||
|
||||
msgid "Rwanda"
|
||||
msgstr ""
|
||||
msgstr "Ruanda"
|
||||
|
||||
msgid "Saudi Arabia"
|
||||
msgstr ""
|
||||
msgstr "Arábia Saudita"
|
||||
|
||||
msgid "Solomon Islands"
|
||||
msgstr ""
|
||||
msgstr "Ilhas Salomão"
|
||||
|
||||
msgid "Seychelles"
|
||||
msgstr ""
|
||||
msgstr "Seychelles"
|
||||
|
||||
msgid "Sudan"
|
||||
msgstr ""
|
||||
msgstr "Sudão"
|
||||
|
||||
msgid "Sweden"
|
||||
msgstr ""
|
||||
msgstr "Suécia"
|
||||
|
||||
msgid "Singapore"
|
||||
msgstr ""
|
||||
msgstr "Singapura"
|
||||
|
||||
msgid "Saint Helena"
|
||||
msgstr ""
|
||||
msgstr "Santa Helena"
|
||||
|
||||
msgid "Slovenia"
|
||||
msgstr ""
|
||||
msgstr "Eslovênia"
|
||||
|
||||
msgid "Svalbard and Jan Mayen"
|
||||
msgstr ""
|
||||
msgstr "Svalbard e Jan Mayen"
|
||||
|
||||
msgid "Slovakia"
|
||||
msgstr ""
|
||||
msgstr "Eslováquia"
|
||||
|
||||
msgid "Sierra Leone"
|
||||
msgstr ""
|
||||
msgstr "Serra Leoa"
|
||||
|
||||
msgid "San Marino"
|
||||
msgstr ""
|
||||
msgstr "São Marinho"
|
||||
|
||||
msgid "Senegal"
|
||||
msgstr ""
|
||||
msgstr "Senegal"
|
||||
|
||||
msgid "Somalia"
|
||||
msgstr ""
|
||||
msgstr "Somália"
|
||||
|
||||
msgid "Suriname"
|
||||
msgstr ""
|
||||
msgstr "Suriname"
|
||||
|
||||
msgid "Sao Tome and Principe"
|
||||
msgstr ""
|
||||
msgstr "São Tomé e Príncipe"
|
||||
|
||||
msgid "El Salvador"
|
||||
msgstr ""
|
||||
msgstr "El Salvador"
|
||||
|
||||
msgid "Syrian Arab Republic"
|
||||
msgstr ""
|
||||
msgstr "Síria"
|
||||
|
||||
msgid "Swaziland"
|
||||
msgstr ""
|
||||
msgstr "Suazilândia"
|
||||
|
||||
msgid "Turks and Caicos Islands"
|
||||
msgstr ""
|
||||
msgstr "Turks e Caicos"
|
||||
|
||||
msgid "Chad"
|
||||
msgstr ""
|
||||
msgstr "Chade"
|
||||
|
||||
msgid "French Southern Territories"
|
||||
msgstr ""
|
||||
msgstr "Terras Austrais e Antárticas Francesas"
|
||||
|
||||
msgid "Togo"
|
||||
msgstr ""
|
||||
msgstr "Togo"
|
||||
|
||||
msgid "Thailand"
|
||||
msgstr ""
|
||||
msgstr "Tailândia"
|
||||
|
||||
msgid "Tajikistan"
|
||||
msgstr ""
|
||||
msgstr "Tajiquistão"
|
||||
|
||||
msgid "Tokelau"
|
||||
msgstr ""
|
||||
msgstr "Tokelau"
|
||||
|
||||
msgid "Timor-Leste"
|
||||
msgstr ""
|
||||
msgstr "Timor-Leste"
|
||||
|
||||
msgid "Turkmenistan"
|
||||
msgstr ""
|
||||
msgstr "Turcomenistão"
|
||||
|
||||
msgid "Tunisia"
|
||||
msgstr ""
|
||||
msgstr "Tunísia"
|
||||
|
||||
msgid "Tonga"
|
||||
msgstr ""
|
||||
msgstr "Tonga"
|
||||
|
||||
msgid "Turkey"
|
||||
msgstr ""
|
||||
msgstr "Turquia"
|
||||
|
||||
msgid "Trinidad and Tobago"
|
||||
msgstr ""
|
||||
msgstr "Trinidad e Tobago"
|
||||
|
||||
msgid "Tuvalu"
|
||||
msgstr ""
|
||||
msgstr "Tuvalu"
|
||||
|
||||
msgid "Taiwan"
|
||||
msgstr ""
|
||||
msgstr "Taiwan"
|
||||
|
||||
msgid "United Republic of Tanzania"
|
||||
msgstr ""
|
||||
msgstr "Tanzânia"
|
||||
|
||||
msgid "Ukraine"
|
||||
msgstr ""
|
||||
msgstr "Ucrânia"
|
||||
|
||||
msgid "Uganda"
|
||||
msgstr ""
|
||||
msgstr "Uganda"
|
||||
|
||||
msgid "United States Minor Outlying Islands"
|
||||
msgstr ""
|
||||
msgstr "Ilhas Menores Distantes dos Estados Unidos"
|
||||
|
||||
msgid "United States"
|
||||
msgstr ""
|
||||
msgstr "Estados Unidos"
|
||||
|
||||
msgid "Uruguay"
|
||||
msgstr ""
|
||||
msgstr "Uruguai"
|
||||
|
||||
msgid "Uzbekistan"
|
||||
msgstr ""
|
||||
msgstr "Uzbequistão"
|
||||
|
||||
msgid "Holy See (Vatican City State)"
|
||||
msgstr ""
|
||||
msgstr "Santa Sé (Cidade do Vaticano)"
|
||||
|
||||
msgid "Saint Vincent and the Grenadines"
|
||||
msgstr ""
|
||||
msgstr "São Vicente e Granadinas"
|
||||
|
||||
msgid "Venezuela"
|
||||
msgstr ""
|
||||
msgstr "Venezuela"
|
||||
|
||||
msgid "Virgin Islands"
|
||||
msgstr ""
|
||||
msgstr "Ilhas Virgens"
|
||||
|
||||
msgid "Viet Nam"
|
||||
msgstr ""
|
||||
msgstr "Vietnã"
|
||||
|
||||
msgid "Vanuatu"
|
||||
msgstr ""
|
||||
msgstr "Vanuatu"
|
||||
|
||||
msgid "Wallis and Futuna"
|
||||
msgstr ""
|
||||
msgstr "Wallis e Futuna"
|
||||
|
||||
msgid "Samoa"
|
||||
msgstr ""
|
||||
msgstr "Samoa"
|
||||
|
||||
msgid "Yemen"
|
||||
msgstr ""
|
||||
msgstr "Iêmen"
|
||||
|
||||
msgid "Mayotte"
|
||||
msgstr ""
|
||||
msgstr "Mayotte"
|
||||
|
||||
msgid "South Africa"
|
||||
msgstr ""
|
||||
msgstr "África do Sul"
|
||||
|
||||
msgid "Zambia"
|
||||
msgstr ""
|
||||
msgstr "Zâmbia"
|
||||
|
||||
msgid "Zimbabwe"
|
||||
msgstr ""
|
||||
msgstr "Zimbábue"
|
||||
|
@@ -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:
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: I2P routerconsole\n"
|
||||
"Project-Id-Version: I2P\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-07-13 21:46+0000\n"
|
||||
"PO-Revision-Date: 2011-03-04 14:02-0000\n"
|
||||
"Last-Translator: hamada <hamada@mail.i2p>\n"
|
||||
"Language-Team: hamada@mail.i2p\n"
|
||||
"Language: ar\n"
|
||||
"PO-Revision-Date: 2014-02-23 16:51+0000\n"
|
||||
"Last-Translator: kytv <killyourtv@i2pmail.org>\n"
|
||||
"Language-Team: Arabic (http://www.transifex.com/projects/p/I2P/language/ar/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 "
|
||||
"&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n"
|
||||
"X-Generator: Virtaal 0.6.1\n"
|
||||
"Language: ar\n"
|
||||
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
|
||||
|
||||
msgid "Congratulations on getting I2P installed!"
|
||||
msgstr ""
|
||||
@@ -31,11 +30,12 @@ msgstr "انتظر قليلا بينما يتم ربط الإتصال بباقي
|
||||
|
||||
#, 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 "بسنما يتم الإتصال {0}بتغير بيانات سرعة الشبكة في{1} قم {2}صفحة الخيارات{3}."
|
||||
|
||||
msgid "Also you can setup your browser to use the I2P proxy to reach eepsites."
|
||||
msgid ""
|
||||
"Also you can setup your browser to use the I2P proxy to reach eepsites."
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
@@ -53,12 +53,12 @@ msgstr ""
|
||||
|
||||
#, java-format
|
||||
msgid ""
|
||||
"Once you have a \"shared clients\" destination listed on the left, please {0}"
|
||||
"check out{1} our {2}FAQ{3}."
|
||||
"Once you have a \"shared clients\" destination listed on the left, please "
|
||||
"{0}check out{1} our {2}FAQ{3}."
|
||||
msgstr "عندما عندما تظهر عبارة \"shared clients\" على اليسار يمكنك حينها {0}زيارة{1} {2}الأسئلة الشائعة{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 "IRC اتصل بخادم الدردشة الفورية على {0}localhost:6668{1} {2}#i2p-help{3} or {4}#i2p{5}."
|
||||
"Point your IRC client to {0}localhost:6668{1} and say hi to us on "
|
||||
"{2}#i2p{3}."
|
||||
msgstr ""
|
||||
|
@@ -2,22 +2,23 @@
|
||||
# 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:
|
||||
# Ashoka <martin2p@posteo.de>, 2013
|
||||
# blabla <blabla@trash-mail.com>, 2014
|
||||
# Ashoka <martin2p@posteo.de>, 2013
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: I2P\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-09-20 10:25+0000\n"
|
||||
"PO-Revision-Date: 2013-09-16 07:09+0000\n"
|
||||
"Last-Translator: Ashoka <martin2p@posteo.de>\n"
|
||||
"Language-Team: German (http://www.transifex.com/projects/p/I2P/language/"
|
||||
"de/)\n"
|
||||
"Language: de\n"
|
||||
"POT-Creation-Date: 2013-07-13 21:46+0000\n"
|
||||
"PO-Revision-Date: 2014-02-25 16:10+0000\n"
|
||||
"Last-Translator: blabla <blabla@trash-mail.com>\n"
|
||||
"Language-Team: German (http://www.transifex.com/projects/p/I2P/language/de/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: de\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
msgid "Congratulations on getting I2P installed!"
|
||||
@@ -28,51 +29,39 @@ msgstr "Willkommen im I2P!"
|
||||
|
||||
#, java-format
|
||||
msgid "Please {0}have patience{1} as I2P boots up and finds peers."
|
||||
msgstr ""
|
||||
"Hab noch {0}etwas Geduld{1}, während I2P startet und weitere I2P-Router "
|
||||
"findet."
|
||||
msgstr "Hab noch {0}etwas Geduld{1}, während I2P startet und weitere I2P-Router findet."
|
||||
|
||||
#, java-format
|
||||
msgid ""
|
||||
"While you are waiting, please {0}adjust your bandwidth settings{1} on the {2}"
|
||||
"configuration page{3}."
|
||||
msgstr ""
|
||||
"Passe bitte in der Zwischenzeit {0}deine Einstellungen zur Bandbreite{1} auf "
|
||||
"der{2}Einstellungsseite{3} an!"
|
||||
"While you are waiting, please {0}adjust your bandwidth settings{1} on the "
|
||||
"{2}configuration page{3}."
|
||||
msgstr "Passe bitte in der Zwischenzeit {0}deine Einstellungen zur Bandbreite{1} auf der{2}Einstellungsseite{3} an!"
|
||||
|
||||
msgid "Also you can setup your browser to use the I2P proxy to reach eepsites."
|
||||
msgstr ""
|
||||
"Auch kannst Du gleich deinen Browser für die Nutzung von I2P einrichten."
|
||||
msgid ""
|
||||
"Also you can setup your browser to use the I2P proxy to reach eepsites."
|
||||
msgstr "Auch kannst Du gleich deinen Browser für die Nutzung von I2P einrichten."
|
||||
|
||||
msgid ""
|
||||
"Just enter 127.0.0.1 (or localhost) port 4444 as a http proxy into your "
|
||||
"browser settings."
|
||||
msgstr ""
|
||||
"Setze in den Einstellungen zum Browser ein HTTP Proxy ein mit 127.0.0.1 "
|
||||
"(oder localhost) mit Port 4444 als Ziel."
|
||||
msgstr "Setze in den Browsereinstellungen einen HTTP Proxy ein: 127.0.0.1 (oder localhost), Port 4444."
|
||||
|
||||
msgid "Do not use SOCKS for this."
|
||||
msgstr "Benutze keine SOCKS dafür."
|
||||
msgstr "Benutze kein SOCKS dafür."
|
||||
|
||||
#, java-format
|
||||
msgid ""
|
||||
"More information can be found on the {0}I2P browser proxy setup page{1}."
|
||||
msgstr ""
|
||||
"Mehr Informationen gibt es auf der {0}I2P browser proxy Setup Seite{1}."
|
||||
msgstr "Mehr Informationen gibt es auf der {0}I2P-Browserproxysetup-Seite{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 ""
|
||||
"Sobald auf der linken Seite eine Verbindung namens \"versch. Klienten\" "
|
||||
"aufgelistet ist, kannst Du unsere {0}{1} {2}FAQ{3} besuchen."
|
||||
"Once you have a \"shared clients\" destination listed on the left, please "
|
||||
"{0}check out{1} our {2}FAQ{3}."
|
||||
msgstr "Sobald auf der linken Seite eine Verbindung namens \"versch. Klienten\" aufgelistet ist, kannst Du unsere {0}{1} {2}FAQ{3} besuchen."
|
||||
|
||||
#, 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 ""
|
||||
"Verbinde deinen IRC-Klienten mit dem Server auf {0}localhost:6668{1} und "
|
||||
"schau bei uns im Kanal <a href=\"irc://127.0.0.1:6668/i2p-de\">#i2p-de</a>, "
|
||||
"{2}#i2p-help{3} oder {4}#i2p{5} vorbei!"
|
||||
"Point your IRC client to {0}localhost:6668{1} and say hi to us on "
|
||||
"{2}#i2p{3}."
|
||||
msgstr "Verbinde deinen IRC-Klienten mit {0}localhost:6668{1} und sag uns in {2}#i2p{3} Hallo!"
|
||||
|
@@ -58,6 +58,5 @@ msgstr ""
|
||||
|
||||
#, 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}."
|
||||
"Point your IRC client to {0}localhost:6668{1} and say hi to us on {2}#i2p{3}."
|
||||
msgstr ""
|
||||
|
@@ -2,22 +2,23 @@
|
||||
# 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:
|
||||
# strel, 2014
|
||||
# trolly, 2013
|
||||
# trolly, 2013
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: I2P\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-08-11 15:42+0000\n"
|
||||
"PO-Revision-Date: 2013-07-25 09:30+0000\n"
|
||||
"Last-Translator: trolly\n"
|
||||
"Language-Team: Spanish (http://www.transifex.com/projects/p/I2P/language/"
|
||||
"es/)\n"
|
||||
"Language: es\n"
|
||||
"POT-Creation-Date: 2013-07-13 21:46+0000\n"
|
||||
"PO-Revision-Date: 2014-02-24 00:55+0000\n"
|
||||
"Last-Translator: strel\n"
|
||||
"Language-Team: Spanish (http://www.transifex.com/projects/p/I2P/language/es/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: es\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
msgid "Congratulations on getting I2P installed!"
|
||||
@@ -28,29 +29,22 @@ msgstr "¡Bienvenido a I2P!"
|
||||
|
||||
#, java-format
|
||||
msgid "Please {0}have patience{1} as I2P boots up and finds peers."
|
||||
msgstr ""
|
||||
"¡ Por favor, tenga {0}paciencia{1} mientras I2P se arranca y encuentra otros "
|
||||
"pares!"
|
||||
msgstr "¡ Por favor, tenga {0}paciencia{1} mientras I2P se arranca y encuentra otros pares!"
|
||||
|
||||
#, java-format
|
||||
msgid ""
|
||||
"While you are waiting, please {0}adjust your bandwidth settings{1} on the {2}"
|
||||
"configuration page{3}."
|
||||
msgstr ""
|
||||
"Este es el momento ideal para adaptar tu {0}configuración del ancho "
|
||||
"de banda{1} en la {2}página de configuración{3}."
|
||||
"While you are waiting, please {0}adjust your bandwidth settings{1} on the "
|
||||
"{2}configuration page{3}."
|
||||
msgstr "Este es el momento ideal para adaptar tu {0}configuración del ancho de banda{1} en la {2}página de configuración{3}."
|
||||
|
||||
msgid "Also you can setup your browser to use the I2P proxy to reach eepsites."
|
||||
msgstr ""
|
||||
"También puede configurar su navegador para usar el proxy de I2P para ver las "
|
||||
"eepsites."
|
||||
msgid ""
|
||||
"Also you can setup your browser to use the I2P proxy to reach eepsites."
|
||||
msgstr "También puede configurar su navegador para usar el proxy de I2P para ver las eepsites."
|
||||
|
||||
msgid ""
|
||||
"Just enter 127.0.0.1 (or localhost) port 4444 as a http proxy into your "
|
||||
"browser settings."
|
||||
msgstr ""
|
||||
"Simplemente escriba 127.0.0.1 (o localhost) puerto 4444 en la configuración "
|
||||
"de proxy de su navegador."
|
||||
msgstr "Simplemente escriba 127.0.0.1 (o localhost) puerto 4444 en la configuración de proxy de su navegador."
|
||||
|
||||
msgid "Do not use SOCKS for this."
|
||||
msgstr "No use SOCKS para esto."
|
||||
@@ -58,23 +52,16 @@ msgstr "No use SOCKS para esto."
|
||||
#, java-format
|
||||
msgid ""
|
||||
"More information can be found on the {0}I2P browser proxy setup page{1}."
|
||||
msgstr ""
|
||||
"Puede encontrarse más información en la web{1} de configuración del proxy "
|
||||
"del navegador de {0}I2P"
|
||||
msgstr "Puede encontrarse más información en la web{1} de configuración del proxy del navegador de {0}I2P"
|
||||
|
||||
#, java-format
|
||||
msgid ""
|
||||
"Once you have a \"shared clients\" destination listed on the left, please {0}"
|
||||
"check out{1} our {2}FAQ{3}."
|
||||
msgstr ""
|
||||
"En cuanto veas a la izquierda una conexión llamada \"clientes "
|
||||
"diferentes\", puedes visitar nuestros {0}{1} {2}FAQ{3}."
|
||||
"Once you have a \"shared clients\" destination listed on the left, please "
|
||||
"{0}check out{1} our {2}FAQ{3}."
|
||||
msgstr "En cuanto veas a la izquierda una conexión llamada \"clientes diferentes\", puedes visitar nuestros {0}{1} {2}FAQ{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 ""
|
||||
"¡Conécta tu cliente IRC con el servidor {0}localhost:6668{1} y "
|
||||
"ven a saludarnos en los canales <a href=\"irc://127.0.0.1:6668/i2p-es\">#i2p-"
|
||||
"es</a>, {2}#i2p-help{3} o {4}#i2p{5}!"
|
||||
"Point your IRC client to {0}localhost:6668{1} and say hi to us on "
|
||||
"{2}#i2p{3}."
|
||||
msgstr "Dirija su cliente de IRC hacia {0}localhost:6668{1} y salúdenos en {2}#i2p{3}."
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user